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