mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
Set dp branch as trunk
This commit is contained in:
119
Geom.cpp
Normal file
119
Geom.cpp
Normal file
@@ -0,0 +1,119 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#include "system.hpp"
|
||||
#include "classes.hpp"
|
||||
#include <gl/gl.h>
|
||||
#include <gl/glu.h>
|
||||
#include "opengl/glut.h"
|
||||
#pragma hdrstop
|
||||
|
||||
#include "Texture.h"
|
||||
#include "usefull.h"
|
||||
#include "Globals.h"
|
||||
#include "Geom.h"
|
||||
|
||||
|
||||
__fastcall TGeometry::TGeometry()
|
||||
{
|
||||
}
|
||||
|
||||
__fastcall TGeometry::~TGeometry()
|
||||
{
|
||||
}
|
||||
|
||||
bool __fastcall TGeometry::Init()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
vector3 __fastcall TGeometry::Load(TQueryParserComp *Parser)
|
||||
{
|
||||
str= Parser->GetNextSymbol().LowerCase();
|
||||
tmp->TextureID= TTexturesManager::GetTextureID(str.c_str());
|
||||
|
||||
i=0;
|
||||
do
|
||||
{
|
||||
tf= Parser->GetNextSymbol().ToDouble();
|
||||
TempVerts[i].Point.x= tf;
|
||||
tf= Parser->GetNextSymbol().ToDouble();
|
||||
TempVerts[i].Point.y= tf;
|
||||
tf= Parser->GetNextSymbol().ToDouble();
|
||||
TempVerts[i].Point.z= tf;
|
||||
tf= Parser->GetNextSymbol().ToDouble();
|
||||
TempVerts[i].Normal.x= tf;
|
||||
tf= Parser->GetNextSymbol().ToDouble();
|
||||
TempVerts[i].Normal.y= tf;
|
||||
tf= Parser->GetNextSymbol().ToDouble();
|
||||
TempVerts[i].Normal.z= tf;
|
||||
|
||||
str= Parser->GetNextSymbol().LowerCase();
|
||||
if (str=="x")
|
||||
TempVerts[i].tu= (TempVerts[i].Point.x+Parser->GetNextSymbol().ToDouble())/Parser->GetNextSymbol().ToDouble();
|
||||
else
|
||||
if (str=="y")
|
||||
TempVerts[i].tu= (TempVerts[i].Point.y+Parser->GetNextSymbol().ToDouble())/Parser->GetNextSymbol().ToDouble();
|
||||
else
|
||||
if (str=="z")
|
||||
TempVerts[i].tu= (TempVerts[i].Point.z+Parser->GetNextSymbol().ToDouble())/Parser->GetNextSymbol().ToDouble();
|
||||
else
|
||||
TempVerts[i].tu= str.ToDouble();;
|
||||
|
||||
str= Parser->GetNextSymbol().LowerCase();
|
||||
if (str=="x")
|
||||
TempVerts[i].tv= (TempVerts[i].Point.x+Parser->GetNextSymbol().ToDouble())/Parser->GetNextSymbol().ToDouble();
|
||||
else
|
||||
if (str=="y")
|
||||
TempVerts[i].tv= (TempVerts[i].Point.y+Parser->GetNextSymbol().ToDouble())/Parser->GetNextSymbol().ToDouble();
|
||||
else
|
||||
if (str=="z")
|
||||
TempVerts[i].tv= (TempVerts[i].Point.z+Parser->GetNextSymbol().ToDouble())/Parser->GetNextSymbol().ToDouble();
|
||||
else
|
||||
TempVerts[i].tv= str.ToDouble();;
|
||||
|
||||
// tf= Parser->GetNextSymbol().ToDouble();
|
||||
// TempVerts[i].tu= tf;
|
||||
// tf= Parser->GetNextSymbol().ToDouble();
|
||||
// TempVerts[i].tv= tf;
|
||||
|
||||
TempVerts[i].Point.RotateZ(aRotate.z/180*M_PI);
|
||||
TempVerts[i].Point.RotateX(aRotate.x/180*M_PI);
|
||||
TempVerts[i].Point.RotateY(aRotate.y/180*M_PI);
|
||||
TempVerts[i].Normal.RotateZ(aRotate.z/180*M_PI);
|
||||
TempVerts[i].Normal.RotateX(aRotate.x/180*M_PI);
|
||||
TempVerts[i].Normal.RotateY(aRotate.y/180*M_PI);
|
||||
|
||||
TempVerts[i].Point+= pOrigin;
|
||||
tmp->pCenter+= TempVerts[i].Point;
|
||||
|
||||
i++;
|
||||
|
||||
// }
|
||||
} while ( Parser->GetNextSymbol().LowerCase()!="endtri" );
|
||||
|
||||
nv= i;
|
||||
tmp->Init(nv);
|
||||
tmp->pCenter/= (nv>0?nv:1);
|
||||
|
||||
// memcpy(tmp->Vertices,TempVerts,nv*sizeof(TGroundVertex));
|
||||
|
||||
r= 0;
|
||||
for (int i=0; i<nv; i++)
|
||||
{
|
||||
tmp->Vertices[i]= TempVerts[i];
|
||||
tf= SquareMagnitude(tmp->Vertices[i].Point-tmp->pCenter);
|
||||
if (tf>r)
|
||||
r= tf;
|
||||
}
|
||||
|
||||
// tmp->fSquareRadius= 2000*2000+r;
|
||||
tmp->fSquareRadius+= r;
|
||||
|
||||
}
|
||||
|
||||
bool __fastcall TGeometry::Render()
|
||||
{
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
Reference in New Issue
Block a user