TAPs 0.7.7.3
TAPsModel.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsModel.cpp
00003 
00004 A Base (Abstract) Model
00005 
00006 SUKITTI PUNAK   (11/02/2004)
00007 UPDATE          (03/15/2006)
00008 ******************************************************************************/
00009 #include "TAPsModel.hpp"
00010 // Using Inclusion Model (i.e. definitions are included in declarations)
00011 //                       (this name.cpp is included in name.hpp)
00012 // Each friend is defined directly inside its declaration.
00013 
00014 BEGIN_NAMESPACE_TAPs__OpenGL
00015 //=============================================================================
00016 //-----------------------------------------------------------------------------
00017 // static initialization
00018 template <typename T> int Model<T>::m_iTotal = 0;
00019 //-----------------------------------------------------------------------------
00020 // Default Constructor
00021 template <typename T>
00022 Model<T>::Model ()
00023     : ColDetSupport<T>(), 
00024       PhysicsSupport<T>(), 
00025       m_iId( ++m_iTotal ), m_pcName( NULL )
00026 {
00027     #ifdef  TAPs_DEBUG_MODE
00028     std::cout   << "Model<" << typeid(T).name() << "> #" << m_iId << " constructor\n";
00029     #endif//TAPs_DEBUG_MODE
00030 }
00031 //-----------------------------------------------------------------------------
00032 // Constructor
00033 template <typename T>
00034 Model<T>::Model (char *name)
00035     : //TransformationSupport<T>(), 
00036       m_iId( ++m_iTotal ), m_pcName( name )
00037 {
00038     #ifdef  TAPs_DEBUG_MODE
00039     std::cout   << "Model<" << typeid(T).name() << "> #" << m_iId << " constructor\n";
00040     #endif//TAPs_DEBUG_MODE
00041 }
00042 //-----------------------------------------------------------------------------
00043 // Destructor
00044 template <typename T>
00045 Model<T>::~Model ()
00046 {
00047     if ( m_pcName ) {
00048         delete [] m_pcName;
00049         m_pcName = NULL;
00050     }
00051     --m_iTotal;
00052 
00053     #ifdef  TAPs_DEBUG_MODE
00054     std::cout   << "Model<" << typeid(T).name() << "> #" << m_iId << " destructor\n";
00055     #endif//TAPs_DEBUG_MODE
00056 }
00057 //-----------------------------------------------------------------------------
00058 // Return this object info as a string
00059 template <typename T>
00060 std::string Model<T>::StrInfo () const
00061 {
00062     std::ostringstream ss;
00063     ss << "Model<" << typeid(T).name() << ">";
00064     ss << " ID: " << GetID() << " Name: " << GetName();
00065     return ss.str();
00066 }
00067 //-----------------------------------------------------------------------------
00068 // Get/Set Fns
00069 template <typename T>
00070 int Model<T>::GetID () const
00071 {
00072     return m_iId;
00073 }
00074 //-----------------------------------------------------------------------------
00075 template <typename T>
00076 void Model<T>::SetID ( int id )
00077 {
00078     m_iId = id;
00079 }
00080 //-----------------------------------------------------------------------------
00081 template <typename T>
00082 char const * const Model<T>::GetName () const
00083 {
00084     return m_pcName;
00085 }
00086 //-----------------------------------------------------------------------------
00087 template <typename T>
00088 void Model<T>::SetName ( char *name )
00089 {
00090     m_pcName = new char[ strlen(name) + 1 ];
00091     strcpy( m_pcName, name );
00092 }
00093 //-----------------------------------------------------------------------------
00094 //=============================================================================
00095 END_NAMESPACE_TAPs__OpenGL
00096 //-----------------------------------------------------------------------------
00097 //345678901234567890123456789012345678901234567890123456789012345678901234567890
00098 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines