//----------------------------------------------------------------------------- // File: objects.h // // Desc: // // Copyright (c) 1994-2000 Microsoft Corporation //----------------------------------------------------------------------------- #ifndef __objects_h__ #define __objects_h__ //----------------------------------------------------------------------------- // Name: // Desc: //----------------------------------------------------------------------------- class OBJECT_BUILD_INFO { public: float m_radius; float m_divSize; int m_nSlices; BOOL m_bTexture; IPOINT2D* m_texRep; }; //----------------------------------------------------------------------------- // Name: OBJECT classes // Desc: - Display list objects //----------------------------------------------------------------------------- class OBJECT { protected: int m_listNum; int m_nSlices; IDirect3DDevice8* m_pd3dDevice; LPDIRECT3DVERTEXBUFFER8 m_pVB; DWORD m_dwNumTriangles; public: void Draw( D3DXMATRIX* pWorldMat ); OBJECT( IDirect3DDevice8* pd3dDevice ); ~OBJECT(); }; //----------------------------------------------------------------------------- // Name: // Desc: //----------------------------------------------------------------------------- class PIPE_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, float length, float start_s, float s_end ); public: PIPE_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, float length ); PIPE_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, float length, float start_s, float end_s ); }; //----------------------------------------------------------------------------- // Name: // Desc: //----------------------------------------------------------------------------- class ELBOW_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); public: ELBOW_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, int notch ); ELBOW_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); }; //----------------------------------------------------------------------------- // Name: // Desc: //----------------------------------------------------------------------------- class BALLJOINT_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); public: // texturing version only BALLJOINT_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); }; //----------------------------------------------------------------------------- // Name: // Desc: //----------------------------------------------------------------------------- class SPHERE_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, float radius, float start_s, float end_s ); public: SPHERE_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, float radius, float start_s, float end_s ); SPHERE_OBJECT( IDirect3DDevice8* pd3dDevice, OBJECT_BUILD_INFO *state, float radius ); }; #endif // __objects_h__