00001 //## begin module%37548423012E.cm preserve=no 00002 // %X% %Q% %Z% %W% 00003 //## end module%37548423012E.cm 00004 00005 //## begin module%37548423012E.cp preserve=no 00006 //## end module%37548423012E.cp 00007 00008 //## Module: CD_Vcollide%37548423012E; Pseudo Package specification 00009 //## Source file: C:\project\mpk\code\CollisionDetectors\CD_Vcollide.h 00010 00011 #ifndef CD_Vcollide_h 00012 #define CD_Vcollide_h 1 00013 00014 //## begin module%37548423012E.additionalIncludes preserve=no 00015 //## end module%37548423012E.additionalIncludes 00016 00017 //## begin module%37548423012E.includes preserve=yes 00018 #pragma warning( disable : 4786 ) 00019 //#include <vcollide\src\vcollide.h> 00020 #include <set> 00021 #include <vector> 00022 //## end module%37548423012E.includes 00023 00024 // CD_BasicStyle 00025 #include "CollisionDetectors\CD_BasicStyle.h" 00026 #include "CollisionDetectors\CD_LinearDiscrete.h" 00027 #include "CollisionDetectors\CD_LinearContinuous.h" 00028 // Mesh 00029 #include "geometry\Mesh.h" 00030 00031 class Facet; 00032 class ObjectGroup; 00033 class LinkBase; 00034 00035 //## begin module%37548423012E.additionalDeclarations preserve=yes 00036 //## end module%37548423012E.additionalDeclarations 00037 00038 00039 //## begin CD_Vcollide%37548423012E.preface preserve=yes 00040 //## end CD_Vcollide%37548423012E.preface 00041 00042 //## Class: CD_Vcollide%37548423012E 00043 //## Category: CollisionDetectors%36FB14140230 00044 //## Persistence: Transient 00045 //## Cardinality/Multiplicity: n 00046 00047 //## Uses: <unnamed>%375570ED0345;Mesh { -> F} 00048 //## Uses: <unnamed>%37557B31002D;ObjectGroup { -> F} 00049 //## Uses: <unnamed>%3755DD660133;Facet { -> F} 00050 //## Uses: <unnamed>%37961FEF02BD;LinkBase { -> F} 00051 //## Uses: <unnamed>%38569F09028A;Mesh { -> } 00052 #pragma warning( push ) 00053 #pragma warning( disable : 4250 ) 00054 00055 class CD_Vcollide 00056 : 00057 public CD_BasicStyle, //## Inherits: <unnamed>%37556E3E0030 00058 public CD_LinearContinuous 00059 { 00060 //## begin CD_Vcollide%37548423012E.initialDeclarations preserve=yes 00061 //## end CD_Vcollide%37548423012E.initialDeclarations 00062 00063 public: 00064 //## Constructors (specified) 00065 //## Operation: CD_Vcollide%928344296 00066 // IMPROVE: why is the parameter not CONST? 00067 CD_Vcollide (Universe& universe); 00068 00069 //## Operation: CD_Vcollide%930249730 00070 CD_Vcollide (const CD_Vcollide& right); 00071 00072 //## Destructor (generated) 00073 virtual ~CD_Vcollide(); 00074 00075 00076 //## Other Operations (specified) 00077 //## Operation: Clone%928344287 00078 // this virtual function provides a copy of the object 00079 virtual CollisionDetectorBase* Clone () const; 00080 00081 //## Operation: IsInterfering%928344289 00082 virtual bool IsInterfering (const Configuration& config); 00083 00084 virtual bool IsInterfering (const Frame &pose); 00085 00086 //## Operation: AddEntityToVcollide%928344302 00087 bool AddEntityToVcollide (const Entity* entity); 00088 00089 //## Operation: AddMeshToVcollide%928373069 00090 int AddMeshToVcollide (const Mesh& mesh); 00091 00092 //## Operation: DeactivateFrames%928449848 00093 void DeactivateFrames (const unsigned int frame1, const unsigned int frame2); 00094 00095 //## Operation: ActivateFrames%931291665 00096 void ActivateFrames (const unsigned int frame1, const unsigned int frame2); 00097 00098 // Data Members for Associations 00099 00100 //## Association: CollisionDetectors::<unnamed>%376F05220368 00101 //## Role: CD_Vcollide::meshes%376F052300E9 00102 //## begin CD_Vcollide::meshes%376F052300E9.role preserve=no public: Mesh {0..n -> RFHAN} 00103 std::vector<Mesh*> meshes; 00104 //## end CD_Vcollide::meshes%376F052300E9.role 00105 00106 // Additional Public Declarations 00107 //## begin CD_Vcollide%37548423012E.public preserve=yes 00108 //## end CD_Vcollide%37548423012E.public 00109 00110 protected: 00111 00112 //## Other Operations (specified) 00113 //## Operation: UpdateMovedLink%928449851 00114 void UpdateMovedLink (const unsigned int linkNum) const; 00115 00116 // Data Members for Class Attributes 00117 00118 //## Attribute: vcollide%37556D4503CC 00119 //## begin CD_Vcollide::vcollide%37556D4503CC.attr preserve=no protected: VCollide* {UAM} 00120 mutable VCollide* vcollide; 00121 //## end CD_Vcollide::vcollide%37556D4503CC.attr 00122 00123 //## Attribute: dirtyElements%3755D8BB02CF 00124 //## begin CD_Vcollide::dirtyElements%3755D8BB02CF.attr preserve=no protected: std::set< unsigned int > {UA} 00125 std::set< unsigned int > dirtyElements; 00126 //## end CD_Vcollide::dirtyElements%3755D8BB02CF.attr 00127 00128 //## Attribute: linkVcollide%375705050326 00129 // this tells us which vcollide indexes are owned by which 00130 // links 00131 //## begin CD_Vcollide::linkVcollide%375705050326.attr preserve=no protected: std::vector< std::set< unsigned int > > {UA} 00132 std::vector< std::set< unsigned int > > linkVcollide; 00133 //## end CD_Vcollide::linkVcollide%375705050326.attr 00134 00135 //## Attribute: vcollideIndexes%376FFF5903B7 00136 //## begin CD_Vcollide::vcollideIndexes%376FFF5903B7.attr preserve=no protected: std::vector< int > {UA} 00137 std::vector< int > vcollideIndexes; 00138 //## end CD_Vcollide::vcollideIndexes%376FFF5903B7.attr 00139 00140 // Additional Protected Declarations 00141 //## begin CD_Vcollide%37548423012E.protected preserve=yes 00142 //## end CD_Vcollide%37548423012E.protected 00143 00144 private: 00145 // Data Members for Class Attributes 00146 00147 //## Attribute: universePointer%3844480802B8 00148 //## begin CD_Vcollide::universePointer%3844480802B8.attr preserve=no private: Universe* {UA} NULL 00149 Universe* universePointer; 00150 //## end CD_Vcollide::universePointer%3844480802B8.attr 00151 00152 // Additional Private Declarations 00153 //## begin CD_Vcollide%37548423012E.private preserve=yes 00154 //## end CD_Vcollide%37548423012E.private 00155 00156 private: //## implementation 00157 // Additional Implementation Declarations 00158 //## begin CD_Vcollide%37548423012E.implementation preserve=yes 00159 //## end CD_Vcollide%37548423012E.implementation 00160 00161 }; 00162 00163 #pragma warning( pop ) 00164 //## begin CD_Vcollide%37548423012E.postscript preserve=yes 00165 //## end CD_Vcollide%37548423012E.postscript 00166 00167 // Class CD_Vcollide 00168 00169 //## begin module%37548423012E.epilog preserve=yes 00170 //## end module%37548423012E.epilog 00171 00172 00173 #endif