Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct vector
- {
- float x;
- float z;
- float y;
- };
- struct VERTLIST //список вершин текущего объекта
- {
- WORD num; // число вершин
- vector *vertices; // координаты каждой из вершин
- };
- struct FACELIST //список граней текущего объекта
- {
- WORD num; // число граней
- struct
- {
- WORD v0; // номер первой вершины грани
- WORD v1; // номер второй вершины грани
- WORD v2; // номер третьей вершины грани
- WORD flags; // флаги грани
- } *faces; // собственно список граней
- };
- struct FACEMAT //название материала и список тех граней объекта, которым назначен этот материал
- {
- char *name; // название материала
- WORD num; // число граней из этого материала
- WORD *face_nums; // список номеров граней из этого материала
- };
- struct MAPLIST //текстурные координаты вершин текущего объекта
- {
- WORD num; // число вершин
- struct
- {
- float u; // координата текстуры U (по горизонтали)
- float v; // координата текстуры V (по вертикали)
- } *texcoords; // собственно список текстурных координат
- };
- struct TRMATRIX //содержит матрицу перевода объекта
- {
- float rotmatrix[3][3]; // матрица поворота
- vector offset; // смещение начального объекта
- };
- struct MATNAME //название материала
- {
- char *name; // название материала
- };
- struct MAPFILE //имя файла с текстурой
- {
- char *filename; // имя файла с текстурой
- };
- struct TRACKOBJNAME //название объекта, информация о поведении которого задается в текущем блоке CHUNK_TRACKINFO
- {
- char *name; // название объекта
- WORD flags[2]; // флаги
- WORD parent; // номер объекта-родителя
- };
- struct TRACKPIVOT //координаты центра вращения объекта
- {
- vector pivotpoint; // координаты центра вращения
- };
- struct TRACKPOS //траектория объекта, заданная ключевыми значениями положения объекта
- {
- WORD flags; // флаги
- BYTE unknown[8]; //
- DWORD num; // число ключевых значений
- struct
- {
- DWORD frame; // кадр данного ключевого значения
- WORD splineflags; // флаги сплайна
- float *splineinfo; // параметры сплайна (кол-во и тип зависит от значения splineflags)
- vector pos; // положение объекта
- } *keys; // собственно ключевые значения
- };
- struct TRACKROTATE //траектория вращения объекта, заданная ключевыми значениями
- { //вектора направления оси вращения и угла поворота относительно этой оси
- WORD flags; // флаги
- BYTE unknown[8]; //
- DWORD num; // число ключевых значений
- struct
- {
- DWORD frame; // кадр данного ключевого значения
- WORD splineflags; // флаги сплайна
- float *splineinfo; // параметры сплайна (кол-во и тип зависит от значения splineflags)
- float angle; // угол поворота (в радианах)
- vector pos; // положение объекта
- } *keys; // собственно ключевые значения
- };
- struct TRACKFOV //поведение FOV (угла зрения) камеры, заданное ключевыми значениями
- {
- WORD flags; // флаги
- BYTE unknown[8]; //
- DWORD num; // число ключевых значений
- struct
- {
- DWORD frame; // кадр данного ключевого значения
- WORD splineflags; // флаги сплайна
- float *splineinfo; // параметры сплайна (кол-во и тип зависит от значения splineflags)
- float FOV; // значение FOV
- } *keys; // собственно ключевые значения
- };
- struct TRACKROLL //поведение roll (угла наклона) камеры, заданное ключевыми значениями
- {
- WORD flags; // флаги
- BYTE unknown[8]; //
- DWORD num; // число ключевых значений
- struct
- {
- DWORD frame; // кадр данного ключевого значения
- WORD splineflags; // флаги сплайна
- float *splineinfo; // параметры сплайна (кол-во и тип зависит от значения splineflags)
- float roll; // значение roll
- } *keys; // собственно ключевые значения
- };
- struct TRIMESH //trimesh-объект
- {
- VERTLIST vertlist;
- FACELIST facelist;
- FACEMAT facemat;
- MAPLIST maplist;
- TRMATRIX trmatrix;
- };
- struct TEXTURE //текстура материала
- {
- MAPFILE mapfile;
- };
- struct MATERIAL //материал
- {
- MATNAME matname;
- TEXTURE texture;
- };
- struct TRACKINFO //поведение объекта
- {
- TRACKOBJNAME trackobjname;
- TRACKPIVOT trackpivot;
- TRACKPOS trackpos;
- TRACKROTATE trackrotate;
- };
- struct TRACKCAMERA //поведение камеры
- {
- TRACKFOV trackfov;
- TRACKROLL trackroll;
- };
- struct KEYFRAMER //информация об анимации
- {
- TRACKINFO trackinfo;
- TRACKCAMERA trackcamera;
- };
- struct OBJBLOCK //объект
- {
- TRIMESH trimesh;
- };
- struct OBJMESH //всяческие объекты
- {
- OBJBLOCK objblock;
- };
- struct SCENE //сцена
- {
- OBJMESH objmesh;
- MATERIAL material;
- KEYFRAMER keyframer;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement