TAPs 0.7.7.3
TAPsOpenGLXTrigonalModel.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines