⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmathstructdef.h.svn-base

📁 自己做的小游戏
💻 SVN-BASE
字号:
/////////////////structdef.h/////////////

#if !defined(__STRUCT__DEFINE__)
#define __STRUCT__DEFINE__
//////////////////////////////////////////
#define  UNKNOW        -2
#define  IN_BACK_OF    -1
#define  COINCIDENT     0
#define  IN_FRONT_OF    1
#define  SPANNING       2
 
#define  REVERSE        3
#define  PERPENDICULAR  4
#define  SHARP_ANGLE    5
#define  OBTUSE_ANGLE   6 

#define  OUT_POLYGON   -1
#define  ON_BORDER      0
#define  IN_POLYGON     1
//////// Ammo define
#define  M16            1
#define  RIFLE          2
#define  ROCKET         3

#define  RIFLE_P        1
#define  EXPLOSION_P    2
#define  ROCKET_P       3  
#define  SMOKE_P        4
//////////////////////////////////////////
//////////////////////////////////////////
struct VERTEX
{
	VERTEX(){}
	VERTEX(float x,float y,float z){   xpos=x; ypos=y; zpos=z;} 
	float xpos;
	float ypos;
	float zpos;
};
struct NORMAL
{
	NORMAL(){}
	NORMAL(float x,float y,float z){   nx=x; ny=y; nz=z;} 
	float nx;
	float ny;
	float nz;
};
struct TRIANGLE
{
	TRIANGLE(){}
	TRIANGLE(VERTEX iv1,VERTEX iv2,VERTEX iv3){V1=iv1;V2=iv2;V3=iv3;}
	VERTEX V1;
	VERTEX V2;
	VERTEX V3;
};


struct TEXCOORD
{
	TEXCOORD(){}
	TEXCOORD(float iu,float iv){u=iu;v=iv;}
	float u;
	float v;
};
struct PLANE
{
	PLANE(){}
	PLANE(float a,float b,float c,float d){A=a;B=b;C=c;D=d;}
	float A;
	float B;
	float C;
	float D;
};
struct QUAD
{
	QUAD(){}
	QUAD(VERTEX iv1,VERTEX iv2,VERTEX iv3,VERTEX iv4){V0=iv1;V1=iv2;V2=iv3;V3=iv4;}
	VERTEX V0;
	VERTEX V1;
	VERTEX V2;
	VERTEX V3;
	PLANE  plane;
};
struct CUBE
{
	CUBE(){}
	CUBE(VERTEX iv1,VERTEX iv2,VERTEX iv3,VERTEX iv4,
		 VERTEX iv5,VERTEX iv6,VERTEX iv7,VERTEX iv8)
	{V0=iv1;V1=iv2;V2=iv3;V3=iv4;
	 V4=iv5;V5=iv6;V6=iv7;V7=iv8;}
	CUBE(float radius,VERTEX vCenter)
	{
		V0=VERTEX(vCenter.xpos-radius,vCenter.ypos-radius,vCenter.zpos+radius);
		V1=VERTEX(vCenter.xpos+radius,vCenter.ypos-radius,vCenter.zpos+radius);
		V2=VERTEX(vCenter.xpos+radius,vCenter.ypos-radius,vCenter.zpos-radius);
		V3=VERTEX(vCenter.xpos-radius,vCenter.ypos-radius,vCenter.zpos-radius);
		V4=VERTEX(vCenter.xpos-radius,vCenter.ypos+radius,vCenter.zpos+radius);
		V5=VERTEX(vCenter.xpos+radius,vCenter.ypos+radius,vCenter.zpos+radius);
		V6=VERTEX(vCenter.xpos+radius,vCenter.ypos+radius,vCenter.zpos-radius);
		V7=VERTEX(vCenter.xpos-radius,vCenter.ypos+radius,vCenter.zpos-radius);
	}
	VERTEX V0;                       // Down_Front_Left
	VERTEX V1;                       // Down_Front_Right
	VERTEX V2;                       // Down_Back _Right
	VERTEX V3;                       // Down_Back _Left
	VERTEX V4;                       // Up  _Front_Left
	VERTEX V5;                       // Up  _Front_Right
	VERTEX V6;                       // Up  _Back _Right
	VERTEX V7;                       // Up  _Back _Left
};
struct TRI_FACE
{
	VERTEX v1;
	VERTEX v2;
	VERTEX v3;
	TEXCOORD tex1;
	TEXCOORD tex2;
	TEXCOORD tex3;
	NORMAL n;
	float  d;  // param about face 
	float  powABC; // the normal length=pow (a*a+b*b+c*c ,0.5)
	float  powBC;//the normal length=pow (b*b+c*c ,0.5)
};

struct TRI_TEX
{
    TEXCOORD uv1;
    TEXCOORD uv2;
    TEXCOORD uv3;
};
struct COLOR
{
	COLOR(){}
	COLOR(float red,float green,float blue){r=red;g=green;b=blue;}
	float r;
	float g;
	float b;
};
////////////////////////////////////////////////
struct LIGHT
{
	VERTEX          position;
	COLOR           color;
	unsigned char   brightness;
	unsigned char   attenuation;
	unsigned char   coefficient;
};
struct RLM_QUAD
{
	int   texid;
	PLANE plane;
	int   vertindex[4];
    TEXCOORD texcoord[4];
};
struct BOUNDARY_3D
{
    BOUNDARY_3D()
	{
		minx=miny=minz= 9999;
		maxx=maxy=maxz=-9999;
	} 
	float minx,maxx;
	float miny,maxy;
	float minz,maxz;
};
struct BOUNDARY_2D
{
    BOUNDARY_2D()
	{
		minx=minz= 9999;
		maxx=maxz=-9999;
	} 
    BOUNDARY_2D(int min_x,int max_x,int min_z,int max_z)
	{
		minx=min_x;
		maxx=max_x;
		minz=min_z;
		maxz=max_z;
	} 
	int minx,maxx;
	int minz,maxz;
};
struct TERRAIN_SKIN
{
	unsigned char TextureIndex;
	unsigned char TextureOrder; 
};
struct MOVE_VERTEX
{
	unsigned char xpos; 
	unsigned char zpos; 
};

struct PARTICLE
{
	float	    life;					// Particle Life
	float	    fade;					// Fade Speed
	float    	size;					// 
	VERTEX      pos;
    NORMAL      normal;
	float	    rotate;					// X Rotate
};
struct GRID_BIAS
{
	unsigned char xbias; 
	unsigned char zbias; 
};
////////////////////////////////////////////////
////////////////////////////////////////////////

////////////////////////////////////////////////
#endif 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -