![]() |
TAPs 0.7.7.3
|
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