mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-21 22:59:19 +02:00
Konwersja na UTF-8
Konwersja na UTF-8 Konwersja na UTF-8 Konwersja na UTF-8 Konwersja na UTF-8 Konwersja do UTF-8 Konwersja na UTF-8 Konwersja na UTF-8 Konwersja na UTF-8
This commit is contained in:
172
Model3d.h
172
Model3d.h
@@ -29,12 +29,12 @@ class TStringPack
|
||||
{
|
||||
char *data;
|
||||
//+0 - 4 bajty: typ kromki
|
||||
//+4 - 4 bajty: długość łącznie z nagłówkiem
|
||||
//+8 - obszar łańcuchów znakowych, każdy zakończony zerem
|
||||
//+4 - 4 bajty: długość łącznie z nagłówkiem
|
||||
//+8 - obszar łańcuchów znakowych, każdy zakończony zerem
|
||||
int *index;
|
||||
//+0 - 4 bajty: typ kromki
|
||||
//+4 - 4 bajty: długość łącznie z nagłówkiem
|
||||
//+8 - tabela indeksów
|
||||
//+4 - 4 bajty: długość łącznie z nagłówkiem
|
||||
//+8 - tabela indeksów
|
||||
public:
|
||||
char *String(int n);
|
||||
char *StringAt(int n)
|
||||
@@ -115,14 +115,14 @@ struct THitBoxContainer
|
||||
};
|
||||
*/
|
||||
|
||||
/* Ra: tego nie będziemy już używać, bo można wycisnąć więcej
|
||||
/* Ra: tego nie będziemy już używać, bo można wycisnąć więcej
|
||||
typedef enum
|
||||
{smt_Unknown, //nieznany
|
||||
smt_Mesh, //siatka
|
||||
smt_Point,
|
||||
smt_FreeSpotLight, //punkt świetlny
|
||||
smt_FreeSpotLight, //punkt świetlny
|
||||
smt_Text, //generator tekstu
|
||||
smt_Stars //wiele punktów świetlnych
|
||||
smt_Stars //wiele punktów świetlnych
|
||||
} TSubModelType;
|
||||
*/
|
||||
// Ra: specjalne typy submodeli, poza tym GL_TRIANGLES itp.
|
||||
@@ -134,74 +134,74 @@ const int TP_TEXT = 259;
|
||||
enum TAnimType // rodzaj animacji
|
||||
{
|
||||
at_None, // brak
|
||||
at_Rotate, // obrót względem wektora o kąt
|
||||
at_RotateXYZ, // obrót względem osi o kąty
|
||||
at_Translate, // przesunięcie
|
||||
at_Rotate, // obrót względem wektora o kąt
|
||||
at_RotateXYZ, // obrót względem osi o kąty
|
||||
at_Translate, // przesunięcie
|
||||
at_SecondsJump, // sekundy z przeskokiem
|
||||
at_MinutesJump, // minuty z przeskokiem
|
||||
at_HoursJump, // godziny z przeskokiem 12h/360°
|
||||
at_Hours24Jump, // godziny z przeskokiem 24h/360°
|
||||
at_Seconds, // sekundy płynnie
|
||||
at_Minutes, // minuty płynnie
|
||||
at_Hours, // godziny płynnie 12h/360°
|
||||
at_Hours24, // godziny płynnie 24h/360°
|
||||
at_Billboard, // obrót w pionie do kamery
|
||||
at_Wind, // ruch pod wpływem wiatru
|
||||
at_HoursJump, // godziny z przeskokiem 12h/360°
|
||||
at_Hours24Jump, // godziny z przeskokiem 24h/360°
|
||||
at_Seconds, // sekundy płynnie
|
||||
at_Minutes, // minuty płynnie
|
||||
at_Hours, // godziny płynnie 12h/360°
|
||||
at_Hours24, // godziny płynnie 24h/360°
|
||||
at_Billboard, // obrót w pionie do kamery
|
||||
at_Wind, // ruch pod wpływem wiatru
|
||||
at_Sky, // animacja nieba
|
||||
at_IK = 0x100, // odwrotna kinematyka - submodel sterujący (np. staw skokowy)
|
||||
at_IK11 = 0x101, // odwrotna kinematyka - submodel nadrzędny do sterowango (np. stopa)
|
||||
at_IK21 = 0x102, // odwrotna kinematyka - submodel nadrzędny do sterowango (np. podudzie)
|
||||
at_IK22 = 0x103, // odwrotna kinematyka - submodel nadrzędny do nadrzędnego sterowango (np. udo)
|
||||
at_Digital = 0x200, // dziesięciocyfrowy licznik mechaniczny (z cylindrami)
|
||||
at_DigiClk = 0x201, // zegar cyfrowy jako licznik na dziesięciościanach
|
||||
at_Undefined = 0x800000FF // animacja chwilowo nieokreślona
|
||||
at_IK = 0x100, // odwrotna kinematyka - submodel sterujący (np. staw skokowy)
|
||||
at_IK11 = 0x101, // odwrotna kinematyka - submodel nadrzędny do sterowango (np. stopa)
|
||||
at_IK21 = 0x102, // odwrotna kinematyka - submodel nadrzędny do sterowango (np. podudzie)
|
||||
at_IK22 = 0x103, // odwrotna kinematyka - submodel nadrzędny do nadrzędnego sterowango (np. udo)
|
||||
at_Digital = 0x200, // dziesięciocyfrowy licznik mechaniczny (z cylindrami)
|
||||
at_DigiClk = 0x201, // zegar cyfrowy jako licznik na dziesięciościanach
|
||||
at_Undefined = 0x800000FF // animacja chwilowo nieokreślona
|
||||
};
|
||||
|
||||
class TModel3d;
|
||||
class TSubModelInfo;
|
||||
|
||||
class TSubModel
|
||||
{ // klasa submodelu - pojedyncza siatka, punkt świetlny albo grupa punktów
|
||||
// Ra: ta klasa ma mieć wielkość 256 bajtów, aby pokryła się z formatem binarnym
|
||||
// Ra: nie przestawiać zmiennych, bo wczytują się z pliku binarnego!
|
||||
{ // klasa submodelu - pojedyncza siatka, punkt świetlny albo grupa punktów
|
||||
// Ra: ta klasa ma mieć wielkość 256 bajtów, aby pokryła się z formatem binarnym
|
||||
// Ra: nie przestawiać zmiennych, bo wczytują się z pliku binarnego!
|
||||
private:
|
||||
TSubModel *Next;
|
||||
TSubModel *Child;
|
||||
int eType; // Ra: modele binarne dają więcej możliwości niż mesh złożony z trójkątów
|
||||
int iName; // numer łańcucha z nazwą submodelu, albo -1 gdy anonimowy
|
||||
int eType; // Ra: modele binarne dają więcej możliwości niż mesh złożony z trójkątów
|
||||
int iName; // numer łańcucha z nazwą submodelu, albo -1 gdy anonimowy
|
||||
public: // chwilowo
|
||||
TAnimType b_Anim;
|
||||
|
||||
private:
|
||||
int iFlags; // flagi informacyjne:
|
||||
// bit 0: =1 faza rysowania zależy od wymiennej tekstury 0
|
||||
// bit 1: =1 faza rysowania zależy od wymiennej tekstury 1
|
||||
// bit 2: =1 faza rysowania zależy od wymiennej tekstury 2
|
||||
// bit 3: =1 faza rysowania zależy od wymiennej tekstury 3
|
||||
// bit 4: =1 rysowany w fazie nieprzezroczystych (stała tekstura albo brak)
|
||||
// bit 5: =1 rysowany w fazie przezroczystych (stała tekstura)
|
||||
// bit 7: =1 ta sama tekstura, co poprzedni albo nadrzędny
|
||||
// bit 8: =1 wierzchołki wyświetlane z indeksów
|
||||
// bit 9: =1 wczytano z pliku tekstowego (jest właścicielem tablic)
|
||||
// bit 13: =1 wystarczy przesunięcie zamiast mnożenia macierzy (trzy jedynki)
|
||||
// bit 0: =1 faza rysowania zależy od wymiennej tekstury 0
|
||||
// bit 1: =1 faza rysowania zależy od wymiennej tekstury 1
|
||||
// bit 2: =1 faza rysowania zależy od wymiennej tekstury 2
|
||||
// bit 3: =1 faza rysowania zależy od wymiennej tekstury 3
|
||||
// bit 4: =1 rysowany w fazie nieprzezroczystych (stała tekstura albo brak)
|
||||
// bit 5: =1 rysowany w fazie przezroczystych (stała tekstura)
|
||||
// bit 7: =1 ta sama tekstura, co poprzedni albo nadrzędny
|
||||
// bit 8: =1 wierzchołki wyświetlane z indeksów
|
||||
// bit 9: =1 wczytano z pliku tekstowego (jest właścicielem tablic)
|
||||
// bit 13: =1 wystarczy przesunięcie zamiast mnożenia macierzy (trzy jedynki)
|
||||
// bit 14: =1 wymagane przechowanie macierzy (animacje)
|
||||
// bit 15: =1 wymagane przechowanie macierzy (transform niejedynkowy)
|
||||
union
|
||||
{ // transform, nie każdy submodel musi mieć
|
||||
{ // transform, nie każdy submodel musi mieć
|
||||
float4x4 *fMatrix; // pojedyncza precyzja wystarcza
|
||||
// matrix4x4 *dMatrix; //do testu macierz podwójnej precyzji
|
||||
// matrix4x4 *dMatrix; //do testu macierz podwójnej precyzji
|
||||
int iMatrix; // w pliku binarnym jest numer matrycy
|
||||
};
|
||||
int iNumVerts; // ilość wierzchołków (1 dla FreeSpotLight)
|
||||
int iVboPtr; // początek na liście wierzchołków albo indeksów
|
||||
int iNumVerts; // ilość wierzchołków (1 dla FreeSpotLight)
|
||||
int iVboPtr; // początek na liście wierzchołków albo indeksów
|
||||
int iTexture; // numer nazwy tekstury, -1 wymienna, 0 brak
|
||||
float fVisible; // próg jasności światła do załączenia submodelu
|
||||
float fLight; // próg jasności światła do zadziałania selfillum
|
||||
float fVisible; // próg jasności światła do załączenia submodelu
|
||||
float fLight; // próg jasności światła do zadziałania selfillum
|
||||
float f4Ambient[4];
|
||||
float f4Diffuse[4]; // float ze względu na glMaterialfv()
|
||||
float f4Diffuse[4]; // float ze względu na glMaterialfv()
|
||||
float f4Specular[4];
|
||||
float f4Emision[4];
|
||||
float fWireSize; // nie używane, ale wczytywane
|
||||
float fWireSize; // nie używane, ale wczytywane
|
||||
float fSquareMaxDist;
|
||||
float fSquareMinDist;
|
||||
// McZapkie-050702: parametry dla swiatla:
|
||||
@@ -210,36 +210,36 @@ class TSubModel
|
||||
bool bUseNearAtten; // te 3 zmienne okreslaja rysowanie aureoli wokol zrodla swiatla
|
||||
int iFarAttenDecay; // ta zmienna okresla typ zaniku natezenia swiatla (0:brak, 1,2: potega 1/R)
|
||||
float fFarDecayRadius; // normalizacja j.w.
|
||||
float fCosFalloffAngle; // cosinus kąta stożka pod którym widać światło
|
||||
float fCosHotspotAngle; // cosinus kąta stożka pod którym widać aureolę i zwiększone natężenie
|
||||
// światła
|
||||
float fCosFalloffAngle; // cosinus kąta stożka pod którym widać światło
|
||||
float fCosHotspotAngle; // cosinus kąta stożka pod którym widać aureolę i zwiększone natężenie
|
||||
// światła
|
||||
float fCosViewAngle; // cos kata pod jakim sie teraz patrzy
|
||||
// Ra: dalej są zmienne robocze, można je przestawiać z zachowaniem rozmiaru klasy
|
||||
// Ra: dalej są zmienne robocze, można je przestawiać z zachowaniem rozmiaru klasy
|
||||
int TextureID; // numer tekstury, -1 wymienna, 0 brak
|
||||
bool bWire; // nie używane, ale wczytywane
|
||||
// short TexAlpha; //Ra: nie używane już
|
||||
GLuint uiDisplayList; // roboczy numer listy wyświetlania
|
||||
float Opacity; // nie używane, ale wczytywane
|
||||
bool bWire; // nie używane, ale wczytywane
|
||||
// short TexAlpha; //Ra: nie używane już
|
||||
GLuint uiDisplayList; // roboczy numer listy wyświetlania
|
||||
float Opacity; // nie używane, ale wczytywane
|
||||
// ABu: te same zmienne, ale zdublowane dla Render i RenderAlpha,
|
||||
// bo sie chrzanilo przemieszczanie obiektow.
|
||||
// Ra: już się nie chrzani
|
||||
// Ra: już się nie chrzani
|
||||
float f_Angle;
|
||||
float3 v_RotateAxis;
|
||||
float3 v_Angles;
|
||||
|
||||
public: // chwilowo
|
||||
float3 v_TransVector;
|
||||
float8 *Vertices; // roboczy wskaźnik - wczytanie T3D do VBO
|
||||
int iAnimOwner; // roboczy numer egzemplarza, który ustawił animację
|
||||
float8 *Vertices; // roboczy wskaźnik - wczytanie T3D do VBO
|
||||
int iAnimOwner; // roboczy numer egzemplarza, który ustawił animację
|
||||
TAnimType b_aAnim; // kody animacji oddzielnie, bo zerowane
|
||||
public:
|
||||
float4x4 *mAnimMatrix; // macierz do animacji kwaternionowych (należy do AnimContainer)
|
||||
char space[8]; // wolne miejsce na przyszłe zmienne (zmniejszyć w miarę potrzeby)
|
||||
float4x4 *mAnimMatrix; // macierz do animacji kwaternionowych (należy do AnimContainer)
|
||||
char space[8]; // wolne miejsce na przyszłe zmienne (zmniejszyć w miarę potrzeby)
|
||||
public:
|
||||
TSubModel **
|
||||
smLetter; // wskaźnik na tablicę submdeli do generoania tekstu (docelowo zapisać do E3D)
|
||||
TSubModel *Parent; // nadrzędny, np. do wymnażania macierzy
|
||||
int iVisible; // roboczy stan widoczności
|
||||
smLetter; // wskaźnik na tablicę submdeli do generoania tekstu (docelowo zapisać do E3D)
|
||||
TSubModel *Parent; // nadrzędny, np. do wymnażania macierzy
|
||||
int iVisible; // roboczy stan widoczności
|
||||
// AnsiString asTexture; //robocza nazwa tekstury do zapisania w pliku binarnym
|
||||
// AnsiString asName; //robocza nazwa
|
||||
char *pTexture; // robocza nazwa tekstury do zapisania w pliku binarnym
|
||||
@@ -251,12 +251,12 @@ class TSubModel
|
||||
void RaAnimation(TAnimType a);
|
||||
|
||||
public:
|
||||
static int iInstance; // identyfikator egzemplarza, który aktualnie renderuje model
|
||||
static int iInstance; // identyfikator egzemplarza, który aktualnie renderuje model
|
||||
static GLuint *ReplacableSkinId;
|
||||
static int iAlpha; // maska bitowa dla danego przebiegu
|
||||
static double fSquareDist;
|
||||
static TModel3d *pRoot;
|
||||
static std::string *pasText; // tekst dla wyświetlacza (!!!! do przemyślenia)
|
||||
static std::string *pasText; // tekst dla wyświetlacza (!!!! do przemyślenia)
|
||||
TSubModel();
|
||||
~TSubModel();
|
||||
void FirstInit();
|
||||
@@ -348,18 +348,18 @@ class TSubModel
|
||||
class TSubModelInfo
|
||||
{ // klasa z informacjami o submodelach, do tworzenia pliku binarnego
|
||||
public:
|
||||
TSubModel *pSubModel; // wskaźnik na submodel
|
||||
TSubModel *pSubModel; // wskaźnik na submodel
|
||||
int iTransform; // numer transformu (-1 gdy brak)
|
||||
int iName; // numer nazwy
|
||||
int iTexture; // numer tekstury
|
||||
int iNameLen; // długość nazwy
|
||||
int iTextureLen; // długość tekstury
|
||||
int iNext, iChild; // numer następnego i potomnego
|
||||
static int iTotalTransforms; // ilość transformów
|
||||
static int iTotalNames; // ilość nazw
|
||||
static int iTotalTextures; // ilość tekstur
|
||||
int iNameLen; // długość nazwy
|
||||
int iTextureLen; // długość tekstury
|
||||
int iNext, iChild; // numer następnego i potomnego
|
||||
static int iTotalTransforms; // ilość transformów
|
||||
static int iTotalNames; // ilość nazw
|
||||
static int iTotalTextures; // ilość tekstur
|
||||
static int iCurrent; // aktualny obiekt
|
||||
static TSubModelInfo *pTable; // tabele obiektów pomocniczych
|
||||
static TSubModelInfo *pTable; // tabele obiektów pomocniczych
|
||||
TSubModelInfo()
|
||||
{
|
||||
pSubModel = NULL;
|
||||
@@ -368,8 +368,8 @@ class TSubModelInfo
|
||||
}
|
||||
void Reset()
|
||||
{
|
||||
pTable = this; // ustawienie wskaźnika tabeli obiektów
|
||||
iTotalTransforms = iTotalNames = iTotalTextures = iCurrent = 0; // zerowanie liczników
|
||||
pTable = this; // ustawienie wskaźnika tabeli obiektów
|
||||
iTotalTransforms = iTotalNames = iTotalTextures = iCurrent = 0; // zerowanie liczników
|
||||
}
|
||||
~TSubModelInfo(){};
|
||||
};
|
||||
@@ -378,24 +378,24 @@ class TModel3d : public CMesh
|
||||
{
|
||||
private:
|
||||
// TMaterial *Materials;
|
||||
// int MaterialsCount; //Ra: nie używane
|
||||
// bool TractionPart; //Ra: nie używane
|
||||
// int MaterialsCount; //Ra: nie używane
|
||||
// bool TractionPart; //Ra: nie używane
|
||||
TSubModel *Root; // drzewo submodeli
|
||||
int iFlags; // Ra: czy submodele mają przezroczyste tekstury
|
||||
int iFlags; // Ra: czy submodele mają przezroczyste tekstury
|
||||
public: // Ra: tymczasowo
|
||||
int iNumVerts; // ilość wierzchołków (gdy nie ma VBO, to m_nVertexCount=0)
|
||||
int iNumVerts; // ilość wierzchołków (gdy nie ma VBO, to m_nVertexCount=0)
|
||||
private:
|
||||
TStringPack Textures; // nazwy tekstur
|
||||
TStringPack Names; // nazwy submodeli
|
||||
int *iModel; // zawartość pliku binarnego
|
||||
int iSubModelsCount; // Ra: używane do tworzenia binarnych
|
||||
std::string asBinary; // nazwa pod którą zapisać model binarny
|
||||
int *iModel; // zawartość pliku binarnego
|
||||
int iSubModelsCount; // Ra: używane do tworzenia binarnych
|
||||
std::string asBinary; // nazwa pod którą zapisać model binarny
|
||||
public:
|
||||
inline TSubModel * GetSMRoot()
|
||||
{
|
||||
return (Root);
|
||||
};
|
||||
// double Radius; //Ra: nie używane
|
||||
// double Radius; //Ra: nie używane
|
||||
TModel3d();
|
||||
TModel3d(char *FileName);
|
||||
~TModel3d();
|
||||
@@ -415,7 +415,7 @@ class TModel3d : public CMesh
|
||||
void RaRender(double fSquareDistance, GLuint *ReplacableSkinId = NULL, int iAlpha = 0x30300030);
|
||||
void RaRenderAlpha(double fSquareDistance, GLuint *ReplacableSkinId = NULL,
|
||||
int iAlpha = 0x30300030);
|
||||
// jeden kąt obrotu
|
||||
// jeden kąt obrotu
|
||||
void Render(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL,
|
||||
int iAlpha = 0x30300030);
|
||||
void RenderAlpha(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL,
|
||||
@@ -424,7 +424,7 @@ class TModel3d : public CMesh
|
||||
int iAlpha = 0x30300030);
|
||||
void RaRenderAlpha(vector3 pPosition, double fAngle = 0, GLuint *ReplacableSkinId = NULL,
|
||||
int iAlpha = 0x30300030);
|
||||
// trzy kąty obrotu
|
||||
// trzy kąty obrotu
|
||||
void Render(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId = NULL,
|
||||
int iAlpha = 0x30300030);
|
||||
void RenderAlpha(vector3 *vPosition, vector3 *vAngle, GLuint *ReplacableSkinId = NULL,
|
||||
|
||||
Reference in New Issue
Block a user