00001 //## begin module%36FE7C26037A.cm preserve=no 00002 // %X% %Q% %Z% %W% 00003 //## end module%36FE7C26037A.cm 00004 00005 //## begin module%36FE7C26037A.cp preserve=no 00006 //## end module%36FE7C26037A.cp 00007 00008 //## Module: Frame%36FE7C26037A; Pseudo Package body 00009 //## Source file: C:\user\gipson\projects\mpk\code\geometry\Frame.cpp 00010 00011 //## begin module%36FE7C26037A.additionalIncludes preserve=no 00012 //## end module%36FE7C26037A.additionalIncludes 00013 00014 //## begin module%36FE7C26037A.includes preserve=yes 00015 #include <assert.h> 00016 #include <list> 00017 #include <algorithm> 00018 #include <set> 00019 //## end module%36FE7C26037A.includes 00020 00021 // Vector4 00022 #include "math\Vector4.h" 00023 // Frame 00024 #include "geometry\Frame.h" 00025 //## begin module%36FE7C26037A.additionalDeclarations preserve=yes 00026 //## end module%36FE7C26037A.additionalDeclarations 00027 00028 00029 // Class Frame 00030 00031 00032 00033 00034 00035 00036 00037 Frame::Frame () 00038 //## begin Frame::Frame%923117054.hasinit preserve=no 00039 //## end Frame::Frame%923117054.hasinit 00040 //## begin Frame::Frame%923117054.initialization preserve=yes 00041 :baseFrame( 0 ) 00042 //## end Frame::Frame%923117054.initialization 00043 { 00044 //## begin Frame::Frame%923117054.body preserve=yes 00045 strcpy( name, "Unnamed" ) ; 00046 //## end Frame::Frame%923117054.body 00047 } 00048 00049 Frame::Frame (const Matrix4x4& right) 00050 //## begin Frame::Frame%926014532.hasinit preserve=no 00051 //## end Frame::Frame%926014532.hasinit 00052 //## begin Frame::Frame%926014532.initialization preserve=yes 00053 : Matrix4x4( right ), 00054 baseFrame( 0 ) 00055 //## end Frame::Frame%926014532.initialization 00056 { 00057 //## begin Frame::Frame%926014532.body preserve=yes 00058 // assert( false ) ; //baseframe not initialized 00059 strcpy( name, "Unnamed" ) ; 00060 //## end Frame::Frame%926014532.body 00061 } 00062 00063 00064 Frame::~Frame() 00065 { 00066 //## begin Frame::~Frame%.body preserve=yes 00067 //## end Frame::~Frame%.body 00068 } 00069 00070 00071 00072 //## Other Operations (implementation) 00073 void Frame::SetBaseFrame (const unsigned int base) 00074 { 00075 //## begin Frame::SetBaseFrame%923117055.body preserve=yes 00076 baseFrame = base ; 00077 //IMPROVE: determine whether or not this is a valid base frame 00078 //## end Frame::SetBaseFrame%923117055.body 00079 } 00080 00081 unsigned int Frame::BaseFrameNum () const 00082 { 00083 //## begin Frame::BaseFrameNum%923117056.body preserve=yes 00084 return baseFrame ; 00085 //## end Frame::BaseFrameNum%923117056.body 00086 } 00087 00088 bool Frame::operator < (const Frame& right) const 00089 { 00090 //## begin Frame::operator<%945198430.body preserve=yes 00091 assert( false ) ; 00092 return false ; 00093 //## end Frame::operator<%945198430.body 00094 } 00095 00096 Frame Frame::EvaluateOverall () const 00097 { 00098 //## begin Frame::EvaluateOverall%923255743.body preserve=yes 00099 assert( false ) ; 00100 return Frame() ; 00101 //## end Frame::EvaluateOverall%923255743.body 00102 } 00103 00104 Vector4 Frame::GetTranslationVector () const 00105 { 00106 //## begin Frame::GetTranslationVector%926300305.body preserve=yes 00107 Vector4 returnMe ; 00108 returnMe[ 0 ] = ( *this )( 0, 3 ) ; 00109 returnMe[ 1 ] = ( *this )( 1, 3 ) ; 00110 returnMe[ 2 ] = ( *this )( 2, 3 ) ; 00111 return returnMe ; 00112 //## end Frame::GetTranslationVector%926300305.body 00113 } 00114 00115 bool Frame::operator == (const Frame& right) const 00116 { 00117 //## begin Frame::operator==%945198431.body preserve=yes 00118 assert( false ) ; 00119 return false ; 00120 //## end Frame::operator==%945198431.body 00121 } 00122 00123 // Additional Declarations 00124 //## begin Frame%36FE7C26037A.declarations preserve=yes 00125 Frame::Frame( const Frame& right ): 00126 Matrix4x4( right ), 00127 baseFrame( right.baseFrame ) 00128 { 00129 strcpy( name, right.name ) ; 00130 } 00131 //## end Frame%36FE7C26037A.declarations 00132 //## begin module%36FE7C26037A.epilog preserve=yes 00133 Frame& Frame::operator =( const Frame& right ) 00134 { 00135 assert( right.baseFrame < 20 ) ; 00136 SetValues(right); 00137 return *this ; 00138 } 00139 //## end module%36FE7C26037A.epilog 00140 00141 00142 // Detached code regions: 00143 // WARNING: this code will be lost if code is regenerated. 00144 #if 0 00145 //## begin Frame::SetValues%969569780.body preserve=no 00146 //IMPROVE: this is way inefficient 00147 *this = values; 00148 //## end Frame::SetValues%969569780.body 00149 00150 #endif