OpenGLTrigonalModel< T > Class Template Reference

#include <TAPsOpenGLTrigonalModel.hpp>

Inheritance diagram for OpenGLTrigonalModel< T >:

Inheritance graph
[legend]
Collaboration diagram for OpenGLTrigonalModel< T >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 OpenGLTrigonalModel ()
virtual ~OpenGLTrigonalModel ()

Protected Member Functions

virtual void DrawGL (GLenum)

Friends

std::ostream & operator<< (std::ostream &output, OpenGLTrigonalModel< T > const &o)


Detailed Description

template<typename T>
class OpenGLTrigonalModel< T >

Definition at line 21 of file TAPsOpenGLTrigonalModel.hpp.


Constructor & Destructor Documentation

template<typename T>
BEGIN_NAMESPACE_TAPs__OpenGL OpenGLTrigonalModel< T >::OpenGLTrigonalModel (  )  [inline]

Definition at line 23 of file TAPsOpenGLTrigonalModel.cpp.

00024     : TrigonalModel<T>()
00025 {
00026     #ifdef  TAPs_DEBUG_MODE
00027     std::cout << "OpenGLTrigonalModel<" << typeid(T).name() << "> constructor\n";
00028     #endif//TAPs_DEBUG_MODE
00029 }

template<typename T>
OpenGLTrigonalModel< T >::~OpenGLTrigonalModel (  )  [inline, virtual]

Definition at line 33 of file TAPsOpenGLTrigonalModel.cpp.

00034 {
00035     #ifdef  TAPs_DEBUG_MODE
00036     std::cout << "OpenGLTrigonalModel<" << typeid(T).name() << "> destructor\n";
00037     #endif//TAPs_DEBUG_MODE
00038 }


Member Function Documentation

template<typename T>
void OpenGLTrigonalModel< T >::DrawGL ( GLenum  drawMode  )  [inline, protected, virtual]

Implements OpenGLSupport.

Definition at line 76 of file TAPsOpenGLTrigonalModel.cpp.

00077 {
00078     if ( isFacetShading ) {
00079         // Draw the object
00080         //glEnable( GL_TEXTURE_2D );
00081         for ( int i = 0; i < m_iNoFaces; ++i )
00082         {
00083             glBegin( drawMode );
00084             for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j )
00085             {
00086                 // Draw texture
00087                 if ( m_prFace[i].GetNoTexCoords() != 0 ) {
00088                     glTexCoord2f( static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2 ) ), 
00089                                 static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2+1 ) ) );
00090                 }
00091                 // Normal of the face
00092                 glNormal3f ( static_cast<float>( m_prFace[i].GetNormal()[0] ), 
00093                              static_cast<float>( m_prFace[i].GetNormal()[1] ), 
00094                              static_cast<float>( m_prFace[i].GetNormal()[2] ) );
00095                 // Draw the vertex
00096                 glVertex3f ( 
00097                     static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ][0] ), 
00098                     static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ][1] ), 
00099                     static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ][2] ) );
00100             }
00101             glEnd();
00102         }
00103         //glDisable( GL_TEXTURE_2D );
00104     }
00105     else {
00106         // Draw the object
00107         //glEnable( GL_TEXTURE_2D );
00108         for ( int i = 0; i < m_iNoFaces; i++ )
00109         {
00110             glBegin( drawMode );
00111 
00112             // Normal of the face
00113             glNormal3f ( static_cast<float>( m_prFace[i].GetNormal()[0] ), 
00114                          static_cast<float>( m_prFace[i].GetNormal()[1] ), 
00115                          static_cast<float>( m_prFace[i].GetNormal()[2] ) ); 
00116 
00117             for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j )
00118             {
00119                 // Draw texture
00120                 if ( m_prFace[i].GetNoTexCoords() != 0 ) {
00121                     glTexCoord2f( static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2 ) ), 
00122                                 static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2+1 ) ) );
00123                 }
00124 
00125                 // FIX THIS
00126                 // Normal of the vertex
00127                 //glNormal3f ( static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ].GetNormal()[0] ), 
00128                 //           static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ].GetNormal()[1] ), 
00129                 //           static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ].GetNormal()[2] ) ); 
00130                 
00131                 // Draw the vertex
00132                 glVertex3f ( 
00133                     static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ][0] ), 
00134                     static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ][1] ), 
00135                     static_cast<float>( m_prVertex[ m_prFace[i].GetVertexNo( j ) ][2] ) );
00136             }
00137             glEnd();
00138         }
00139         //glDisable( GL_TEXTURE_2D );
00140     }
00141 }


Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  output,
OpenGLTrigonalModel< T > const &  o 
) [friend]

Definition at line 24 of file TAPsOpenGLTrigonalModel.hpp.

00025     {
00026         output  << "\n======================\n"
00027                 <<   "TAPs::OpenGL::OpenGLTrigonalModel<"
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_prVertex[i];
00038         }
00039         output  << "\n}";
00040         //----------------------------------------------------------------
00041         // Faces Node
00042         output  << "\n\nFaces " << o.m_iNoFaces  << "\n{";
00043         for ( int i = 0; i < o.m_iNoFaces; ++i ) {
00044             output << "\n  #" << i << "\t" << o.m_prFace[i];
00045         }
00046         output  << "\n}";
00047         return output;
00048     }


The documentation for this class was generated from the following files:

Generated on Mon Oct 13 11:45:48 2008 for TAPs by  doxygen 1.5.6