22 #ifndef WATCHMAKER_GEOMETRY_H 23 #define WATCHMAKER_GEOMETRY_H 25 #include "watchmaker/t3d.h" 27 #define MAX_RECURSION_LEVEL 10 29 #define MAX_PARTICLES 10 37 #define NUMCLIPPLANES 4 39 extern t3dNORMAL ClipPlanes[NUMCLIPPLANES];
41 extern t3dBODY *t3dCurRoom, *t3dOrigRoom;
42 extern t3dCAMERA *t3dCurCamera;
43 extern t3dM3X3F t3dCurViewMatrix;
44 extern t3dBODY *PortalCrossed;
45 extern t3dCHARACTER *t3dCurCharacter;
46 extern uint32 t3d_NumMeshesVisible;
47 extern t3dMESH *t3d_VisibleMeshes[];
49 extern t3dBODY *t3dRxt;
50 extern t3dBODY *t3dSky;
53 extern uint8 FloorHit;
54 extern t3dV3F t3d3dMousePos;
55 extern t3dV3F FloorHitCoords;
56 extern uint32 StatNumTris, StatNumVerts;
60 uint16 t3dBackfaceCulling(NormalList &normals, uint32 NumNormals, t3dV3F *eye);
62 void t3dReleaseBody(t3dBODY *b);
63 void t3dReleaseCharacter(t3dCHARACTER *b);
64 unsigned char t3dCreateSmokeParticle(
unsigned int Num,
unsigned char Type,
unsigned int Opacity);
65 void t3dCalcRejectedMeshFromPortal(t3dBODY *body);
66 void t3dSetViewport(t3dCAMERA *cam, WindowInfo &info, t3dF32 fov, uint8 sup);
67 t3dF32 t3dCheckWithFloor();
68 void t3dCreateProceduralSky();
69 void t3dCalcMeshBones(t3dMESH *mesh, int32 last);
70 void t3dResetPipeline();
71 void t3dRotateMoveCamera(t3dCAMERA *cam, t3dF32 AngleX, t3dF32 AngleY, t3dF32 AngleSpeed);
72 void t3dReleaseParticles();
73 void t3dResetMesh(t3dMESH *mesh);
74 void t3dShowBoundingBox(t3dBODY *b);
75 void t3dShowBounds(t3dPAN *p, uint32 numpan);
76 bool t3dTransformBody(t3dBODY *b);
77 void t3dTransformSky();
78 bool t3dTransformCharacter(t3dCHARACTER *c);
79 void t3dProcessPortals();
80 t3dBODY *t3dCheckPortalCrossed(t3dV3F *a);
82 void QueueMaterialList(MaterialTable &MatList,
unsigned int NumMat,
signed short int ViewMatrixNum);
83 void ProcessMaterialList();
84 void t3dAddTriangle(t3dF32 x1, t3dF32 y1, t3dF32 x2, t3dF32 y2, t3dF32 x3, t3dF32 y3,
85 int32 r, int32 g, int32 b, int32 a);
86 void t3dAddQuad(t3dF32 x1, t3dF32 y1, t3dF32 x2, t3dF32 y2, t3dF32 x3, t3dF32 y3, t3dF32 x4, t3dF32 y4,
87 int32 r, int32 g, int32 b, int32 a);
90 #endif // WATCHMAKER_GEOMETRY_H Definition: 2d_stuff.h:30