00001 #ifndef Universe_h 00002 #define Universe_h 1 00003 00004 #include "CollisionDetectors\CD_JointLimits.h" 00005 00006 #include "Kinematics\FrameManager.h" 00007 00008 00009 class Configuration; 00010 class DH_Link; 00011 class Entity; 00012 class IfstreamWithComments; 00013 class LinkBase; 00014 class Mesh; 00015 class RobotBase; 00016 00017 class Universe : public CD_JointLimits //## Inherits: <unnamed>%375439E90135 00018 { 00019 //## begin Universe%36FB1455010E.initialDeclarations preserve=yes 00020 //## end Universe%36FB1455010E.initialDeclarations 00021 00022 public: 00023 //## Constructors (specified) 00024 //## Operation: Universe%961125355 00025 Universe (); 00026 00027 //## Operation: Universe%961125358 00028 Universe (const Universe& right); 00029 00030 //## Destructor (generated) 00031 virtual ~Universe(); 00032 00033 00034 //## Other Operations (specified) 00035 //## Operation: AddEntity%922649211 00036 void AddEntity (Entity* entity); 00037 00038 //## Operation: AddLink%924739817 00039 void AddLink (LinkBase* link); 00040 00041 //## Operation: GetFrameManager%924978286 00042 // Returns the frame manager associated with this universe. 00043 FrameManager* GetFrameManager (); 00044 00045 //## Operation: GetAllEntities%924978289 00046 // provides access to all the entities in the universe 00047 const std::vector< Entity* >& GetAllEntities () const; 00048 00049 //## Operation: GetAllLinks%924978292 00050 // provides access to all the entities in the universe 00051 const std::vector< LinkBase* > GetAllLinks () const; 00052 00053 //## Operation: SetConfiguration%926014533 00054 void SetConfiguration (const Configuration& configuration); 00055 00056 //## Operation: Empty%927844451 00057 void Empty (); 00058 00059 //## Operation: JointMax%928263339 00060 virtual double JointMax (const unsigned int jointNum) const; 00061 00062 //## Operation: JointMin%928263340 00063 virtual double JointMin (const unsigned int jointNum) const; 00064 00065 //## Operation: DOF%928263341 00066 virtual unsigned int DOF () const; 00067 00068 //## Operation: JointWraps%928263342 00069 virtual bool JointWraps (const unsigned int jointNum) const; 00070 00071 //## Operation: GetConfiguration%940357560 00072 Configuration GetConfiguration () const; 00073 00074 //## Operation: GetEntity%961125356 00075 const Entity* GetEntity (const char* name) const; 00076 00077 //## Operation: Clone%961125360 00078 // this virtual function provides a copy of the object 00079 virtual CollisionDetectorBase* Clone () const; 00080 00081 // Additional Public Declarations 00082 //## begin Universe%36FB1455010E.public preserve=yes 00083 //## end Universe%36FB1455010E.public 00084 00085 protected: 00086 00087 //## Other Operations (specified) 00088 //## Operation: TotalPolys%961125357 00089 int TotalPolys () const; 00090 00091 // Data Members for Associations 00092 00093 //## Association: Universe::<unnamed>%37195D99001E 00094 //## Role: Universe::entities%37195D990280 00095 //## begin Universe::entities%37195D990280.role preserve=no protected: Entity { -> 0..nRFHAN} 00096 std::vector<Entity*> entities; 00097 //## end Universe::entities%37195D990280.role 00098 00099 //## Association: Universe::<unnamed>%371E857F03D4 00100 //## Role: Universe::links%371E85820154 00101 //## begin Universe::links%371E85820154.role preserve=no protected: LinkBase { -> 0..nRFHAN} 00102 std::vector<LinkBase*> links; 00103 //## end Universe::links%371E85820154.role 00104 00105 FrameManager theFrameManager; 00106 00107 int totalPolys ; 00108 private: 00109 private: //## implementation 00110 }; 00111 00112 std::ostream & operator<<( std::ostream &os, const Universe& v ) ; 00113 IfstreamWithComments & operator>>( IfstreamWithComments &is, Universe& v ) ; 00114 00115 #endif