![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsShape.hpp 00003 ******************************************************************************/ 00007 /****************************************************************************** 00008 SUKITTI PUNAK (03/25/2010) 00009 UPDATE (05/01/2010) 00010 ******************************************************************************/ 00011 #ifndef TAPs_SHAPE_HPP 00012 #define TAPs_SHAPE_HPP 00013 00014 #include "../../OpenGLModelFromFile/TAPsReadModels.hpp" 00015 00016 BEGIN_NAMESPACE_TAPs 00017 //============================================================================= 00018 template <typename T> 00019 class Shape { 00020 //============================================================================= 00021 public: 00022 // Member Functions ------------------------------------------------------- 00024 friend std::ostream & operator<< ( std::ostream &output, Shape<T> const &obj ) 00025 { 00026 output << obj.StrInfo(); 00027 return output; 00028 } 00029 //------------------------------------------------------------------------- 00031 Shape (); 00033 //Shape ( Shape<T> const &orig ); 00035 virtual ~Shape (); 00036 //------------------------------------------------------------------------- 00038 virtual std::string StrInfo () const; 00039 //------------------------------------------------------------------------- 00041 //inline Shape<T> & operator= ( Shape<T> const &orig ); 00042 00044 void SetShapeType ( Enum::Shape type ); 00046 void GetShapeType ( Enum::Shape & type ) const; 00047 00049 bool SetModelFromFile ( 00050 std::string modelFile, 00051 //Enum::ModelType modelType = Enum::MODEL_TYPE_POLYGONAL //!< model type 00052 Enum::ModelType modelType = Enum::MODEL_TYPE_XPOLYGONAL 00053 //Enum::ModelType modelType = Enum::MODEL_TYPE_HALFEDGE //!< model type 00054 ); 00055 00056 #if defined(__gl_h_) || defined(__GL_H__) 00057 00058 OpenGL::OpenGLModel<T> const * GetPtrToModel () const { return m_pModel; } 00060 OpenGL::OpenGLModel<T> * GetPtrToModel () { return m_pModel; } 00061 #endif 00062 00063 // Data Members ----------------------------------------------------------- 00064 00065 //============================================================================= 00066 protected: 00067 // Member Functions ------------------------------------------------------- 00068 // Data Members ----------------------------------------------------------- 00069 Enum::Shape m_ShapeType; 00070 #if defined(__gl_h_) || defined(__GL_H__) 00071 OpenGL::OpenGLModel<T> * m_pModel; 00072 #endif 00073 //============================================================================= 00074 private: 00075 // Member Functions ------------------------------------------------------- 00076 // Data Members ----------------------------------------------------------- 00077 //============================================================================= 00078 00079 #if defined(__gl_h_) || defined(__GL_H__) 00080 public: 00082 virtual void Draw () const; 00083 #endif 00084 00085 //============================================================================= 00086 }; // END CLASS Shape 00087 //============================================================================= 00088 //----------------------------------------------------------------------------- 00090 typedef Shape<int> Shapei; 00091 typedef Shape<float> Shapef; 00092 typedef Shape<double> Shaped; 00093 //============================================================================= 00094 END_NAMESPACE_TAPs 00095 //----------------------------------------------------------------------------- 00097 #include "TAPsShape.cpp" 00098 00100 // Include definition if TAPs_USE_EXPORT is not defined 00101 //#if !defined( TAPs_USE_EXPORT ) 00102 // #include "TAPsShape.cpp" 00103 //#endif 00104 //----------------------------------------------------------------------------- 00105 #endif 00106 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00107 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----