1 #ifndef TOKAMAK_SAMPLE_APP
2 #define TOKAMAK_SAMPLE_APP
3 
4 #include "tokamak.h"
5 
6 #define NUM_LIGHT 2
7 #define GROUND_Y 3.0f
8 #define CAMERA_SIZE 0.2f
9 
10 // MinBound and MaxBound are the bounding box representing the cell mesh.
11 
12 extern ID3DXEffect*            g_pEffect;
13 extern D3DXHANDLE              g_hDiffuse;             // Handles to material parameters in effect
14 extern D3DXHANDLE              g_hSpecular;
15 extern D3DXHANDLE              g_hTex;
16 extern D3DXHANDLE              g_hPower;
17 extern D3DXHANDLE				g_hAmbient;
18 extern D3DXHANDLE				g_hLightTokamak[NUM_LIGHT];
19 extern D3DXHANDLE				g_hLightColorTokamak[NUM_LIGHT];
20 extern D3DXHANDLE				g_hViewPos;
21 extern D3DXHANDLE              g_hMatWVP;
22 extern D3DXHANDLE              g_hMatWV;
23 extern D3DXHANDLE              g_hMatW;
24 extern CFirstPersonCamera		g_Camera;               // Camera
25 
26 extern D3DXHANDLE g_hShaderTechTokamak;
27 extern D3DXVECTOR4 vLightWorld[NUM_LIGHT];
28 extern D3DXVECTOR4 vLightColor[NUM_LIGHT];
29 extern IDirect3DDevice9 * g_pD3dDevice;
30 
31 class CRenderPrimitive
32 {
33 public:
34 
35 	// for display
36 	CDXUTMesh mMesh;
37 	D3DXMATERIAL mMaterial;
38 	s32 mIsCylinder;
39 //	D3DXMATRIX mWorld;
40 
41 	CRenderPrimitive();
42 	void SetDiffuseColor(const D3DXCOLOR &c);
43 	void SetGraphicBox(float Width, float Height, float Depth);
44 	void SetGraphicSphere(float radius);
45 	void SetGraphicCylinder(float radius, float length);
46 	void Render(IDirect3DDevice9* pd3dDevice, neT3 * matrix);
47 };
48 
49 #endif //TOKAMAK_SAMPLE_HEADER