collisiondetectors/CD_Solid.h

Go to the documentation of this file.
00001 //## begin module%377944220020.cm preserve=no
00002 //        %X% %Q% %Z% %W%
00003 //## end module%377944220020.cm
00004 
00005 //## begin module%377944220020.cp preserve=no
00006 //## end module%377944220020.cp
00007 
00008 //## Module: CD_Solid%377944220020; Pseudo Package specification
00009 //## Source file: C:\project\mpk\code\CollisionDetectors\CD_Solid.h
00010 
00011 #ifndef CD_Solid_h
00012 #define CD_Solid_h 1
00013 
00014 //## begin module%377944220020.additionalIncludes preserve=no
00015 //## end module%377944220020.additionalIncludes
00016 
00017 //## begin module%377944220020.includes preserve=yes
00018 #include <set>
00019 //## end module%377944220020.includes
00020 
00021 // CD_BasicStyle
00022 #include "CollisionDetectors\CD_BasicStyle.h"
00023 #include "CollisionDetectors\CD_LinearContinuous.h"
00024 
00025 class Entity;
00026 class MPK_Box;
00027 class MPK_Cylinder;
00028 class Facet;
00029 class Mesh;
00030 class ObjectGroup;
00031 
00032 //## begin module%377944220020.additionalDeclarations preserve=yes
00033 //## end module%377944220020.additionalDeclarations
00034 
00035 
00036 //## begin CD_Solid%377944220020.preface preserve=yes
00037 //## end CD_Solid%377944220020.preface
00038 
00039 //## Class: CD_Solid%377944220020
00040 //## Category: CollisionDetectors%36FB14140230
00041 //## Persistence: Transient
00042 //## Cardinality/Multiplicity: n
00043 
00044 //## Uses: <unnamed>%377D2CED00BC;Entity { -> F}
00045 //## Uses: <unnamed>%377D2CEF020A;Mesh { -> F}
00046 //## Uses: <unnamed>%377D2D4402C0;ObjectGroup { -> F}
00047 //## Uses: <unnamed>%377D56E2029D;Facet { -> F}
00048 //## Uses: <unnamed>%3949AFF70348;MPK_Cylinder { -> F}
00049 //## Uses: <unnamed>%3949B054033E;MPK_Box { -> F}
00050 
00051 #pragma warning( push )
00052 #pragma warning( disable : 4250 )
00053 
00054 class CD_Solid 
00055 : 
00056         public CD_BasicStyle,  //## Inherits: <unnamed>%3779442A02AD
00057         public CD_LinearContinuous
00058 {
00059   //## begin CD_Solid%377944220020.initialDeclarations preserve=yes
00060   //## end CD_Solid%377944220020.initialDeclarations
00061 
00062   public:
00063     //## Constructors (specified)
00064       //## Operation: CD_Solid%930942586
00065       //        IMPROVE: why is the parameter not CONST?
00066       CD_Solid (Universe& universe);
00067 
00068       //## Operation: CD_Solid%930942587
00069       CD_Solid (const CD_Solid& right);
00070 
00071     //## Destructor (generated)
00072       virtual ~CD_Solid();
00073 
00074 
00075     //## Other Operations (specified)
00076       //## Operation: Clone%930942581
00077       //        this virtual function provides a copy of the object
00078       virtual CollisionDetectorBase* Clone () const;
00079 
00080       //## Operation: IsInterfering%930942585
00081       virtual bool IsInterfering (const Configuration& config);
00082 
00083       //## Operation: AddEntityToSolid%930942588
00084       bool AddEntityToSolid (const Entity* entity);
00085 
00086       //## Operation: AddMeshToSolid%930942589
00087       int AddMeshToSolid (const Mesh& mesh);
00088 
00089       //## Operation: SetCollidingPairs%931206292
00090       void SetCollidingPairs () const;
00091 
00092       //## Operation: GetNewIndex%930961054
00093       static unsigned int GetNewIndex ();
00094 
00095       //## Operation: ActivateFrames%931291666
00096       virtual void ActivateFrames (const unsigned int frame1, const unsigned int frame2);
00097 
00098       //## Operation: DeactivateFrames%931291667
00099       virtual void DeactivateFrames (const unsigned int frame1, const unsigned int frame2);
00100 
00101     // Additional Public Declarations
00102       //## begin CD_Solid%377944220020.public preserve=yes
00103       //## end CD_Solid%377944220020.public
00104 
00105   protected:
00106     // Data Members for Associations
00107 
00108       //## Association: CollisionDetectors::<unnamed>%37811482037A
00109       //## Role: CD_Solid::meshes%3781148300C9
00110       //## begin CD_Solid::meshes%3781148300C9.role preserve=no  protected: Mesh { -> UFHAN}
00111       std::vector< const Mesh* > meshes;
00112       //## end CD_Solid::meshes%3781148300C9.role
00113 
00114     // Additional Protected Declarations
00115       //## begin CD_Solid%377944220020.protected preserve=yes
00116           int AddCylinderToSolid( const MPK_Cylinder* cylinder ) ;
00117 
00118           void MarkIndexEntityRelationship( int index, const Entity* entity ) ;
00119       //## end CD_Solid%377944220020.protected
00120   private:
00121     // Data Members for Class Attributes
00122 
00123       //## Attribute: allIndexesGlobal%377D55C1011B
00124       //## begin CD_Solid::allIndexesGlobal%377D55C1011B.attr preserve=no  private: static std::set< unsigned int> {UA} 
00125       static std::set< unsigned int> allIndexesGlobal;
00126       //## end CD_Solid::allIndexesGlobal%377D55C1011B.attr
00127 
00128       //## Attribute: indexes%377D55F70227
00129       //## begin CD_Solid::indexes%377D55F70227.attr preserve=no  private: std::vector< unsigned int> {UA} 
00130       std::vector< unsigned int> indexes;
00131       //## end CD_Solid::indexes%377D55F70227.attr
00132 
00133       //## Attribute: firstUnusedIndex%377D574A0057
00134       //## begin CD_Solid::firstUnusedIndex%377D574A0057.attr preserve=no  private: static unsigned int {UA} 0
00135       static unsigned int firstUnusedIndex;
00136       //## end CD_Solid::firstUnusedIndex%377D574A0057.attr
00137 
00138       //## Attribute: frameSolid%377D65230240
00139       //## begin CD_Solid::frameSolid%377D65230240.attr preserve=no  private: std::vector< std::set< unsigned int > >  {UA} 
00140       std::vector< std::set< unsigned int > >  frameSolid;
00141       //## end CD_Solid::frameSolid%377D65230240.attr
00142 
00143       //## Attribute: activeCollisionDetector%378115800299
00144       //## begin CD_Solid::activeCollisionDetector%378115800299.attr preserve=no  private: static int {UA} -1
00145       static int activeCollisionDetector;
00146       //## end CD_Solid::activeCollisionDetector%378115800299.attr
00147 
00148       //## Attribute: maxCollisionDetector%378115A60276
00149       //## begin CD_Solid::maxCollisionDetector%378115A60276.attr preserve=no  private: static int {UA} -1
00150       static int maxCollisionDetector;
00151       //## end CD_Solid::maxCollisionDetector%378115A60276.attr
00152 
00153       //## Attribute: collisionDetectorID%378115B5017D
00154       //## begin CD_Solid::collisionDetectorID%378115B5017D.attr preserve=no  private: int {UA} 
00155       int collisionDetectorID;
00156       //## end CD_Solid::collisionDetectorID%378115B5017D.attr
00157 
00158       //## Attribute: currentCollisionDetectorID%3781428500B1
00159       //## begin CD_Solid::currentCollisionDetectorID%3781428500B1.attr preserve=no  private: static int {UA} -1
00160       static int currentCollisionDetectorID;
00161       //## end CD_Solid::currentCollisionDetectorID%3781428500B1.attr
00162 
00163       //## Attribute: shapeIDs%378143800025
00164       //## begin CD_Solid::shapeIDs%378143800025.attr preserve=no  private: std::vector< void*> {UA} 
00165       std::vector< void*> shapeIDs;
00166       //## end CD_Solid::shapeIDs%378143800025.attr
00167 
00168     // Additional Private Declarations
00169       //## begin CD_Solid%377944220020.private preserve=yes
00170       //## end CD_Solid%377944220020.private
00171 
00172   private: //## implementation
00173     // Additional Implementation Declarations
00174       //## begin CD_Solid%377944220020.implementation preserve=yes
00175       //## end CD_Solid%377944220020.implementation
00176 
00177 };
00178 
00179 #pragma warning( pop )
00180 //## begin CD_Solid%377944220020.postscript preserve=yes
00181 struct MyObject {
00182   int id;
00183 } ; 
00184 //## end CD_Solid%377944220020.postscript
00185 
00186 // Class CD_Solid 
00187 
00188 //## begin module%377944220020.epilog preserve=yes
00189 //## end module%377944220020.epilog
00190 
00191 
00192 #endif

Generated on Sat Apr 1 21:30:37 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO