/******************************Module*Header*******************************\ * Module Name: objects.h * * Copyright (c) 1994 Microsoft Corporation * \**************************************************************************/ #ifndef __objects_h__ #define __objects_h__ #include "sspipes.h" #include "state.h" class OBJECT_BUILD_INFO { public: float radius; float divSize; int nSlices; BOOL bTexture; IPOINT2D *texRep; }; /**************************************************************************\ * * OBJECT classes * * - Display list objects * \**************************************************************************/ class OBJECT { protected: int listNum; int nSlices; public: void Draw(); OBJECT(); ~OBJECT(); }; class PIPE_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, float length, float start_s, float s_end ); public: PIPE_OBJECT( OBJECT_BUILD_INFO *state, float length ); PIPE_OBJECT( OBJECT_BUILD_INFO *state, float length, float start_s, float end_s ); }; class ELBOW_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); public: ELBOW_OBJECT( OBJECT_BUILD_INFO *state, int notch ); ELBOW_OBJECT( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); }; 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( OBJECT_BUILD_INFO *state, int notch, float start_s, float end_s ); }; class SPHERE_OBJECT : public OBJECT { private: void Build( OBJECT_BUILD_INFO *state, float radius, float start_s, float end_s ); public: SPHERE_OBJECT( OBJECT_BUILD_INFO *state, float radius, float start_s, float end_s ); SPHERE_OBJECT( OBJECT_BUILD_INFO *state, float radius ); }; #endif // __objects_h__