TAPs 0.7.7.3
TAPsRoomBasic.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsRoomBasic.cpp
00003 ******************************************************************************/
00007 /******************************************************************************
00008 SUKITTI PUNAK   (08/30/2010)
00009 UPDATE          (09/03/2010)
00010 ******************************************************************************/
00011 #include "TAPsRoomBasic.hpp"
00012 // Using Inclusion Model (i.e. definitions are included in declarations)
00013 //                       (this name.cpp is included in name.hpp)
00014 // Each friend is defined directly inside its declaration.
00015 
00016 BEGIN_NAMESPACE_TAPs
00017 //=============================================================================
00018 // Constructors
00019 //-----------------------------------------------------------------------------
00020 template <typename T>
00021 RoomBasic<T>::RoomBasic ()
00022     : HalfDimensions( T(0.5), T(0.5), T(0.5) )
00023     , ColorOfWallXp( 1.0f, 0.7f, 0.7f, 0.8f )
00024     , ColorOfWallXn( 0.9f, 0.6f, 0.6f, 0.8f )
00025     , ColorOfWallYp( 0.7f, 1.0f, 0.7f, 0.8f )
00026     , ColorOfWallYn( 0.6f, 0.9f, 0.6f, 0.8f )
00027     , ColorOfWallZp( 0.7f, 0.7f, 1.0f, 0.8f )
00028     , ColorOfWallZn( 0.6f, 0.6f, 0.9f, 0.8f )
00029 {}
00030 //-----------------------------------------------------------------------------
00031 template <typename T>
00032 RoomBasic<T>::RoomBasic ( RoomBasic<T> const &orig )
00033     : Center( orig.Center )
00034     , HalfDimensions( orig.HalfDimensions )
00035     , Transform( orig.Transform )
00036     , ColorOfWallXp( orig.ColorOfWallXp )
00037     , ColorOfWallXn( orig.ColorOfWallXn )
00038     , ColorOfWallYp( orig.ColorOfWallYp )
00039     , ColorOfWallYn( orig.ColorOfWallYn )
00040     , ColorOfWallZp( orig.ColorOfWallZp )
00041     , ColorOfWallZn( orig.ColorOfWallZn )
00042 {}
00043 //-----------------------------------------------------------------------------
00044 template <typename T>
00045 RoomBasic<T>::~RoomBasic ()
00046 {}
00047 //-----------------------------------------------------------------------------
00048 template <typename T>
00049 std::string RoomBasic<T>::StrInfo () const
00050 {
00051     std::ostringstream ss;
00052     ss << "RoomBasic<" << typeid(T).name() << ">";
00053     ss << "is centered at " << Center;
00054     ss << " with dimensions of " << HalfDimensions*2;
00055     ss << " and transformation of " << Transform;
00056     ss << "\n";
00057     return ss.str();
00058 }
00059 //-----------------------------------------------------------------------------
00060 //=============================================================================
00061 // Assignment Operator
00062 //-----------------------------------------------------------------------------
00063 template <typename T>
00064 RoomBasic<T> & RoomBasic<T>::operator= ( RoomBasic<T> const &orig )
00065 {   
00066     Center = orig.Center;
00067     HalfDimensions = orig.HalfDimensions;
00068     Transform = orig.Transform;
00069     ColorOfWallXp = orig.ColorOfWallXp;
00070     ColorOfWallXn = orig.ColorOfWallXn;
00071     ColorOfWallYp = orig.ColorOfWallYp;
00072     ColorOfWallYn = orig.ColorOfWallYn;
00073     ColorOfWallZp = orig.ColorOfWallZp;
00074     ColorOfWallZn = orig.ColorOfWallZn;
00075     return *this;
00076 }
00077 //-----------------------------------------------------------------------------
00078 //=============================================================================
00079 
00080 
00081 //=============================================================================
00082 // OpenGL
00083 #if defined(__gl_h_) || defined(__GL_H__)
00084 template <typename T>
00085 void RoomBasic<T>::Draw () const
00086 {
00087     Transform.TransformByOpenGLForDrawing();
00088     glPushAttrib( GL_ALL_ATTRIB_BITS );
00089     glPushMatrix();
00090     glTranslatef( Center[0], Center[1], Center[2] );
00091     glEnable( GL_COLOR_MATERIAL );
00092     glBegin( GL_QUADS );
00093         glColor4f( ColorOfWallZp[0], ColorOfWallZp[1], ColorOfWallZp[2], ColorOfWallZp[3] );
00094         glVertex3f( -HalfDimensions[0], -HalfDimensions[1],  HalfDimensions[2] );
00095         glVertex3f( -HalfDimensions[0],  HalfDimensions[1],  HalfDimensions[2] );
00096         glVertex3f(  HalfDimensions[0],  HalfDimensions[1],  HalfDimensions[2] );
00097         glVertex3f(  HalfDimensions[0], -HalfDimensions[1],  HalfDimensions[2] );
00098         glColor4f( ColorOfWallZn[0], ColorOfWallZn[1], ColorOfWallZn[2], ColorOfWallZn[3] );
00099         glVertex3f( -HalfDimensions[0], -HalfDimensions[1], -HalfDimensions[2] );
00100         glVertex3f(  HalfDimensions[0], -HalfDimensions[1], -HalfDimensions[2] );
00101         glVertex3f(  HalfDimensions[0],  HalfDimensions[1], -HalfDimensions[2] );
00102         glVertex3f( -HalfDimensions[0],  HalfDimensions[1], -HalfDimensions[2] );
00103         glColor4f( ColorOfWallYp[0], ColorOfWallYp[1], ColorOfWallYp[2], ColorOfWallYp[3] );
00104         glVertex3f( -HalfDimensions[0],  HalfDimensions[1],  HalfDimensions[2] );
00105         glVertex3f(  HalfDimensions[0],  HalfDimensions[1],  HalfDimensions[2] );
00106         glVertex3f(  HalfDimensions[0],  HalfDimensions[1], -HalfDimensions[2] );
00107         glVertex3f( -HalfDimensions[0],  HalfDimensions[1], -HalfDimensions[2] );
00108         glColor4f( ColorOfWallYn[0], ColorOfWallYn[1], ColorOfWallYn[2], ColorOfWallYn[3] );
00109         glVertex3f( -HalfDimensions[0], -HalfDimensions[1],  HalfDimensions[2] );
00110         glVertex3f( -HalfDimensions[0], -HalfDimensions[1], -HalfDimensions[2] );
00111         glVertex3f(  HalfDimensions[0], -HalfDimensions[1], -HalfDimensions[2] );
00112         glVertex3f(  HalfDimensions[0], -HalfDimensions[1],  HalfDimensions[2] );
00113         glColor4f( ColorOfWallXp[0], ColorOfWallXp[1], ColorOfWallXp[2], ColorOfWallXp[3] );
00114         glVertex3f(  HalfDimensions[0], -HalfDimensions[1],  HalfDimensions[2] );
00115         glVertex3f(  HalfDimensions[0], -HalfDimensions[1], -HalfDimensions[2] );
00116         glVertex3f(  HalfDimensions[0],  HalfDimensions[1], -HalfDimensions[2] );
00117         glVertex3f(  HalfDimensions[0],  HalfDimensions[1],  HalfDimensions[2] );
00118         glColor4f( ColorOfWallXn[0], ColorOfWallXn[1], ColorOfWallXn[2], ColorOfWallXn[3] );
00119         glVertex3f( -HalfDimensions[0], -HalfDimensions[1], -HalfDimensions[2] );
00120         glVertex3f( -HalfDimensions[0], -HalfDimensions[1],  HalfDimensions[2] );
00121         glVertex3f( -HalfDimensions[0],  HalfDimensions[1],  HalfDimensions[2] );
00122         glVertex3f( -HalfDimensions[0],  HalfDimensions[1], -HalfDimensions[2] );
00123     glEnd();
00124     glPopMatrix();
00125     glPopAttrib();
00126 }
00127 //-----------------------------------------------------------------------------
00128 #endif  // OpenGL
00129 //=============================================================================
00130 
00131 
00132 //=============================================================================
00133 END_NAMESPACE_TAPs
00134 //34567890123456789012345678901234567890123456789012345678901234567890123456789
00135 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines