![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsOpenGLXTrigonalModel.hpp 00003 00004 (X <==> Extra) 00005 Class OpenGLXTrigonalModel is for creating an Extra OpenGL Triangulated Model. 00006 00007 See class XTrigonalModel (in "../Model/TAPsXTrigonalModel.hpp") and 00008 class OpenGLSupport ("../OpenGL/TAPsOpenGLSupport.hpp") for detail. 00009 00010 SUKITTI PUNAK (11/02/2004) 00011 UPDATE (11/02/2004) 00012 ******************************************************************************/ 00013 #ifndef TAPs_OPENGL_XTRIGONAL_MODEL_HPP 00014 #define TAPs_OPENGL_XTRIGONAL_MODEL_HPP 00015 00016 #include "TAPsXTrigonalModel.hpp" 00017 00018 BEGIN_NAMESPACE_TAPs__OpenGL 00019 //============================================================================= 00020 template <typename T> 00021 class OpenGLXTrigonalModel : public /*virtual*/ XTrigonalModel<T> { 00022 //------------------------------------------------------------------------- 00023 // put it through ostream 00024 friend std::ostream & operator<< ( std::ostream &output, OpenGLXTrigonalModel<T> const &o ) 00025 { 00026 output << "\n======================\n" 00027 << "TAPs::OpenGL::OpenGLXTrigonalModel<" 00028 << typeid(T).name() << "> Class\n" 00029 << "======================\n"; 00030 //---------------------------------------------------------------- 00031 // Material Node from OpenGLSupport 00032 output << "\nMaterial Node" << "\n{\n" << o.material << "\n}"; 00033 //---------------------------------------------------------------- 00034 // Nodes from XPolygonalModel<T> 00035 output << "\n\nVertices " << o.m_iNoVertices << "\n{"; 00036 for ( int i = 0; i < o.m_iNoVertices; ++i ) { 00037 output << "\n #" << i << "\t" << o.m_prXVertex[i]; 00038 } 00039 output << "\n}"; 00040 //---------------------------------------------------------------- 00041 // Neighbor vertex ring#1 00042 if ( o.m_pviVertexRing1List ) { 00043 std::vector<int>::const_iterator iterator; 00044 output << "\n\nVertexRing1 " << o.m_iNoVertices << "\n{"; 00045 for ( int i = 0; i < o.m_iNoVertices; ++i ) { 00046 output << "\n #" << i; 00047 for ( iterator = o.m_pviVertexRing1List[i].begin(); 00048 iterator != o.m_pviVertexRing1List[i].end(); 00049 ++iterator ) 00050 { 00051 output << "\t" << *iterator; 00052 } 00053 } 00054 output << "\n}"; 00055 } 00056 //---------------------------------------------------------------- 00057 // Faces Node 00058 output << "\n\nFaces " << o.m_iNoFaces << "\n{"; 00059 for ( int i = 0; i < o.m_iNoFaces; ++i ) { 00060 output << "\n #" << i << "\t" << o.m_prFace[i]; 00061 } 00062 output << "\n}"; 00063 return output; 00064 } 00065 //----------------------------------------------------------------------------- 00066 // Member Functions ----------------------------------------------------------- 00067 public: 00068 //------------------------------------------------------------------------- 00069 // default constructor 00070 OpenGLXTrigonalModel(); 00071 //------------------------------------------------------------------------- 00072 // destructor 00073 virtual ~OpenGLXTrigonalModel(); 00074 //------------------------------------------------------------------------- 00075 //void DisplayGL() 00076 //virtual void DisplayGL( OpenGL::Enum::DrawMode DM = OpenGL::Enum::POLYGON ); 00077 protected: 00078 //------------------------------------------------------------------------- 00079 // Helper Fn 00080 // void DrawGL() 00081 virtual void DrawGL( GLenum ); 00082 //----------------------------------------------------------------------------- 00083 }; 00084 //============================================================================= 00085 END_NAMESPACE_TAPs__OpenGL 00086 //----------------------------------------------------------------------------- 00087 // Include definition if TAPs_USE_EXPORT is not defined 00088 //#if !defined( TAPs_USE_EXPORT ) 00089 #include "TAPsOpenGLXTrigonalModel.cpp" 00090 //#endif 00091 //----------------------------------------------------------------------------- 00092 #endif 00093 //345678901234567890123456789012345678901234567890123456789012345678901234567890 00094 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8