📄 typedef.h
字号:
};
struct FLOAT_RECT
{
float fLeft;
float fTop;
float fRight;
float fBottom;
};
struct COLORVALUE
{
float r;
float g;
float b;
float a;
};
struct TVERTEX
{
float u;
float v;
};
struct TPVERTEX
{
float x;
float y;
float z;
float tu;
float tv;
};
struct NODE_TM
{
float fRotAng;
float fPosX,fPosY,fPosZ;
float fRotAxisX,fRotAxisY,fRotAxisZ;
float fScaleX,fScaleY,fScaleZ;
float fScaleAxisX,fScaleAxisY,fScaleAxisZ;
float fScaleAngle;
MATRIX4 mat4;
MATRIX4 mat4Inverse;
};
enum SPOT_LIGHT_TYPE
{
SPOT_LIGHT_TYPE_PRJIMAGE = 0,
SPOT_LIGHT_TYPE_SHADOW = 1,
SPOT_LIGHT_TYPE_MIRROR = 2
};
struct LIGHT_DESC
{
DWORD dwAmbient;
DWORD dwDiffuse;
DWORD dwSpecular;
VECTOR3 v3Point;
float fRs;
VECTOR3 v3To;
VECTOR3 v3Up;
DWORD dwProjTexIndex;
float fFov;
float fNear;
float fFar;
float fWidth;
float fHeight;
void* pMtlHandle;
DWORD dwFlag;
SPOT_LIGHT_TYPE type;
};
//#define LIGHT_DESC_SIZE (4 + VECTOR3_SIZE + 4 + VECTOR3_SIZE + VECTOR3_SIZE + 4 + 4 + 4 + 4);
//#define LIGHT_DESC_RS_OFFSET 4+VECTOR3_SIZE
struct MIRROR_DESC
{
VECTOR3 v3Point;
float fRs;
VECTOR3 v3To;
VECTOR3 v3Up;
float fFov;
float fNear;
float fFar;
float fWidth;
float fHeight;
DWORD dwFlag;
};
struct DIRECTIONAL_LIGHT_DESC
{
DWORD dwAmbient;
DWORD dwDiffuse;
DWORD dwSpecular;
VECTOR3 v3Dir;
BOOL bEnable;
};
struct LIGHT_INDEX_DESC
{
void* pMtlHandle;
BYTE bLightIndex;
BYTE bTexOP;
BYTE bReserved2;
BYTE bReserved3;
};
struct INDEX_BUFFER_DESC
{
DWORD dwIndicesNum;
WORD* pIndex;
};
struct INDEX_POS
{
DWORD dwX;
DWORD dwY;
};
struct PLANE
{
VECTOR3 v3Up;
float D;
};
#define PLANE_D_OFFSET VECTOR3_SIZE
struct PATCH;
struct TEXTURE_PLANE
{
VECTOR3 v3Normal;
VECTOR3 v3Rect[4];
DWORD dwEntryPosX;
DWORD dwEntryPosY;
PLANE plane;
DWORD dwReserved;
DWORD dwPatchNum;
PATCH* pPatch;
DWORD dwTexelSize;
};
class CBaseObject;
class CMeshObject;
#pragma pack(push,1)
struct TGA_HEADER
{
char idLength;
char ColorMapType;
char ImageType;
WORD ColorMapFirst;
WORD ColorMapLast;
char ColorMapBits;
WORD FirstX;
WORD FirstY;
WORD width;
WORD height;
char Bits;
char Descriptor;
};
#pragma pack(pop)
#ifdef _MAX_EXP
#define MAXEXP_MAX_MATERIAL_NUM 65536
struct FACE
{
WORD a;
WORD b;
WORD c;
WORD mtlid;
VECTOR3 v3Normal[3];
};
struct TFACE
{
WORD a;
WORD b;
WORD c;
WORD flag;
};
#define MAX_PHYSIQUE_OBJECT_NUM 512
struct POINT3D_REF_TVERTEX
{
VECTOR3* pv3Point;
TVERTEX* ptv;
POINT3D_REF_TVERTEX* pNext;
WORD wIndex;
};
struct PATCH
{
VECTOR3 v3Point;
VECTOR3 v3Normal;
float fDistance;
DWORD dwColor;
DWORD sx;
DWORD sy;
TEXTURE_PLANE* pTexPlane;
};
#else
struct PATCH
{
DWORD dwColor;
VECTOR3 v3Point;
WORD sx;
WORD sy;
DWORD dwLightColor[4];
};
#define PATCH_SX_OFFSET 4+VECTOR3_SIZE
#define PATCH_SY_OFFSET 4+VECTOR3_SIZE+2
#define PATCH_LIGHT_COLOR_OFFSET 4+VECTOR3_SIZE+2+2
#define PATCH_SIZE 36
#endif
#pragma pack(push,1)
struct BONE
{
void* pBone;
float fWeight;
VECTOR3 v3Offset;
VECTOR3 v3NormalOffset;
};
struct PHYSIQUE_VERTEX
{
BYTE bBonesNum;
BONE* pBoneList;
};
#pragma pack(pop)
#define POS_OFFSET_IN_BONE 8
#define NORMAL_OFFSET_IN_BONE 20
#define BONE_SIZE 32
#define PHYSIQUE_VERTEX_SIZE 5
struct COLLISION_FACE
{
VECTOR3 v3Point[3];
VECTOR3 v3Up;
float D;
};
struct MATERIAL
{
DWORD dwTextureNum;
DWORD dwDiffuse;
DWORD dwAmbient;
DWORD dwSpecular;
float fTransparency;
float fShine;
float fShineStrength;
char szDiffuseTexmapFileName[MAX_NAME_LEN];
char szReflectTexmapFileName[MAX_NAME_LEN];
DWORD dwFlag;
DWORD GetFlag() {return dwFlag;}
char* GetDiffuseTexmapName() {return szDiffuseTexmapFileName;}
char* GetReflectTexmapName() {return szReflectTexmapFileName;}
DWORD GetDiffuse() {return dwDiffuse;}
DWORD GetAmbient() {return dwAmbient;}
DWORD GetSpecular() {return dwSpecular;}
float GetTransparency() {return fTransparency;}
float GetShine() {return fShine;}
float GetShineStrength() {return fShineStrength;}
};
struct MATERIAL_TABLE
{
MATERIAL* pMtl;
DWORD dwMtlIndex;
};
struct LIGHT_TEXTURE
{
TEXTURE_PLANE* pTexPlane;
DWORD dwTexPlaneNum;
DWORD dwSurfaceWidth;
DWORD dwSurfaceHeight;
DWORD dwBPS;
char* pBits;
};
struct VIEW_VOLUME
{
VECTOR3 From; // 墨皋扼狼 困摹.
PLANE Plane[4]; // 鉴辑措肺 哭率, 坷弗率, 酒贰, 困.
float fFar; // 矫痢栏肺何磐 啊厘 刚镑狼 芭府.
BOOL bIsOrtho;
float fWidth;
// 捞酒贰何畔 绝绢档 瞪妨唱.?
// VECTOR3 To; // 捞扒 鞘夸乐绰瘤 葛福摆焙.
// float fFov; // 墨皋扼 谅快狼 fov.
// float fHVRatio; // 啊肺, 技肺 厚啦, 老馆利栏肺 1.3333沥档摆瘤.
// VECTOR3 v3SenderPosition; // 橇肺璃记 溅档快俊辑 荐脚磊 困摹.
};
struct MESH_DESC
{
DWORD dwVertexNum;
VECTOR3* pv3WorldList;
VECTOR3* pv3LocalList;
DWORD dwTexVertexNum;
TVERTEX* ptvTexCoordList;
MATRIX4* pMatrixWorldInverse;
DWORD dwFaceGroupNum;
LIGHT_TEXTURE LightTexture;
DWORD* pVertexColor;
VECTOR3* pv3NormalLocal;
CMeshFlag meshFlag;
};
struct CAMERA_DESC
{
VECTOR3 v3From;
VECTOR3 v3To;
VECTOR3 v3Up; // 墨皋扼狼 up.
float fXRot;
float fYRot;
float fZRot;
float fFovX;
float fFovY;
float fAspect;
float fNear;
float fFar;
};
class CMaterial;
struct FACE_DESC
{
WORD* pIndex; // face index 硅凯 器牢磐
DWORD dwFacesNum; // face肮荐
DWORD dwMtlIndex; // 概磐府倔 牢郸胶
MATERIAL* pMaterial; // material
TVERTEX* ptUVLight1; // 扼捞飘 咆胶媚侩 uv谅钎.搁鉴辑客 1:1 措览
TVERTEX* ptUVLight2; // 扼捞飘 咆胶媚侩 uv谅钎.搁鉴辑客 1:1 措览.胶怕平 扼捞飘甘.
DWORD* pdwMtlIndex; // 概磐府倔 牢郸胶
};
struct IVERTEX
{
float x;
float y;
float z;
float u1;
float v1;
};
struct MOTION_DESC
{
DWORD dwTicksPerFrame;
DWORD dwFirstFrame;
DWORD dwLastFrame;
DWORD dwFrameSpeed;
DWORD dwKeyFrameStep;
char szMotionName[MAX_NAME_LEN];
};
struct MODEL_STATUS
{
DWORD dwFrame;
DWORD dwMotionIndex;
DWORD dwLODLevel;
float fDistanceFromView;
float fDistanceFactor;
void* pMotionObject;
BOOL bAxisAlignOK;
};
struct MOTION_STATUS
{
DWORD dwFrame;
DWORD dwMotionIndex;
void* pMotionUID;
};
struct BOUNDING_BOX
{
VECTOR3 v3Oct[8];
};
struct BOUNDING_SPHERE
{
VECTOR3 v3Point;
float fRs;
};
struct BOUNDING_CYLINDER
{
VECTOR3 v3Point;
float fRs;
float fAy;
};
struct BOUNDING_CAPSULE
{
VECTOR3 v3From;
VECTOR3 v3To;
float fRadius;
};
struct COLLISION_MESH_OBJECT_DESC_SAVELOAD
{
BOUNDING_BOX boundingBox;
BOUNDING_SPHERE boundingSphere;
BOUNDING_CYLINDER boundingCylinder;
DWORD dwObjIndex;
char szObjName[MAX_NAME_LEN];
};
struct COLLISION_MESH_OBJECT_DESC
{
BOUNDING_BOX boundingBox;
BOUNDING_SPHERE boundingSphere;
BOUNDING_CYLINDER boundingCylinder;
DWORD dwObjIndex;
};
struct COLLISION_MODEL_DESC
{
COLLISION_MESH_OBJECT_DESC colMeshModel;
DWORD dwColMeshObjectDescNum;
COLLISION_MESH_OBJECT_DESC colMeshObjectDesc[1];
};
struct OBJ_REF_DESC
{
COLLISION_MESH_OBJECT_DESC colMeshDescLocal;
COLLISION_MESH_OBJECT_DESC colMeshDescWorld;
MATRIX4 matResult;
MODEL_STATUS modelStatus;
};
struct IMAGE_HEADER
{
DWORD dwWidth;
DWORD dwHeight;
DWORD dwPitch;
DWORD dwBPS;
};
struct IMAGE_DESC
{
IMAGE_HEADER imgHeader;
char* pBits;
};
struct TEXTURE_TABLE
{
WORD wIndex;
char szTextureName[MAX_NAME_LEN];
};
struct PACKFILE_NAME_TABLE
{
char szFileName[_MAX_PATH];
DWORD dwFlag;
};
struct HFIELD_CREATE_DESC
{
float left;
float top;
float right;
float bottom;
float fFaceSize;
DWORD dwFacesNumPerObjAxis;
DWORD dwObjNumX;
DWORD dwObjNumZ;
DWORD dwDetailLevelNum;
DWORD dwIndexBufferNumLV0;
TEXTURE_TABLE* pTexTable;
DWORD dwTileTextureNum;
};
struct HFIELD_DESC
{
float left;
float top;
float right;
float bottom;
float fFaceSize;
DWORD dwFacesNumPerObjAxis;
DWORD dwObjNumX;
DWORD dwObjNumZ;
BYTE bDetailLevelNum;
BYTE bReserved0;
BYTE bReserved1;
BYTE bBlendEnable;
DWORD dwIndexBufferNumLV0;
TEXTURE_TABLE* pTexTable;
DWORD dwTileTextureNum;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -