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