ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
geometry.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef WATCHMAKER_GEOMETRY_H
23 #define WATCHMAKER_GEOMETRY_H
24 
25 #include "watchmaker/t3d.h"
26 
27 #define MAX_RECURSION_LEVEL 10
28 
29 #define MAX_PARTICLES 10
30 
31 namespace Watchmaker {
32 
33 #define LEFTCLIP 0
34 #define RIGHTCLIP 1
35 #define TOPCLIP 2
36 #define BOTTOMCLIP 3
37 #define NUMCLIPPLANES 4
38 
39 extern t3dNORMAL ClipPlanes[NUMCLIPPLANES];
40 
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[];
48 
49 extern t3dBODY *t3dRxt;
50 extern t3dBODY *t3dSky;
51 //s extern t3dBODY *t3dSun;
52 
53 extern uint8 FloorHit;
54 extern t3dV3F t3d3dMousePos;
55 extern t3dV3F FloorHitCoords;
56 extern uint32 StatNumTris, StatNumVerts;
57 
58 struct WindowInfo;
59 
60 uint16 t3dBackfaceCulling(NormalList &normals, uint32 NumNormals, t3dV3F *eye);
61 
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);
81 void t3dSortMeshes();
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);
88 } // End of namespace Watchmaker
89 
90 #endif // WATCHMAKER_GEOMETRY_H
Definition: 2d_stuff.h:30
Type
Definition: log.h:33