00001 //## begin module%37195CDA01B8.cm preserve=no 00002 // %X% %Q% %Z% %W% 00003 //## end module%37195CDA01B8.cm 00004 00005 //## begin module%37195CDA01B8.cp preserve=no 00006 //## end module%37195CDA01B8.cp 00007 00008 //## Module: Entity%37195CDA01B8; Pseudo Package specification 00009 //## Source file: C:\project\mpk\code\Universe\Entity.h 00010 00011 #ifndef Entity_h 00012 #define Entity_h 1 00013 00014 //## begin module%37195CDA01B8.additionalIncludes preserve=no 00015 //## end module%37195CDA01B8.additionalIncludes 00016 00017 //## begin module%37195CDA01B8.includes preserve=yes 00018 #include "additional/streams/ifstreamwithcomments.h" 00019 //## end module%37195CDA01B8.includes 00020 00021 // FrameManager 00022 #include "Kinematics\FrameManager.h" 00023 00024 class Matrix4x4; 00025 00026 //## begin module%37195CDA01B8.additionalDeclarations preserve=yes 00027 //## end module%37195CDA01B8.additionalDeclarations 00028 00029 00030 //## begin Entity%37195CDA01B8.preface preserve=yes 00031 //## end Entity%37195CDA01B8.preface 00032 00033 //## Class: Entity%37195CDA01B8; Abstract 00034 // this is the base class for every type of c++ object that 00035 // can be added to the universe 00036 //## Category: Universe%36FB145C0082 00037 //## Persistence: Transient 00038 //## Cardinality/Multiplicity: n 00039 00040 //## Uses: <unnamed>%3731E04D001E;Matrix4x4 { -> F} 00041 //## Uses: <unnamed>%37FCF3160113;FrameManager { -> F} 00042 00043 class Entity 00044 { 00045 //## begin Entity%37195CDA01B8.initialDeclarations preserve=yes 00046 //## end Entity%37195CDA01B8.initialDeclarations 00047 00048 public: 00049 //## Constructors (specified) 00050 //## Operation: Entity%925324836 00051 Entity (FrameManager* frameManager); 00052 00053 //## Operation: Entity%925324843 00054 Entity (const Entity& right); 00055 00056 //## Destructor (generated) 00057 virtual ~Entity(); 00058 00059 00060 //## Other Operations (specified) 00061 //## Operation: Clone%924739812 00062 // this operation allocates memory for a copy of this 00063 // object, and returns a pointer to this new instantiation. 00064 virtual Entity* Clone () const = 0; 00065 00066 //## Operation: IsInterfering%925235846 00067 virtual bool IsInterfering (const Entity* entity) const = 0; 00068 00069 //## Operation: SetBaseFrame%925235861 00070 virtual void SetBaseFrame (const unsigned int baseFrame); 00071 00072 //## Operation: SetFrameManager%925503316 00073 virtual void SetFrameManager (FrameManager* frameManager); 00074 00075 //## Operation: GetTransform%926014529 00076 Matrix4x4 GetTransform () const; 00077 00078 //## Operation: CanCheckInterference%926300301 00079 virtual bool CanCheckInterference (const Entity* entity) const = 0; 00080 00081 //## Operation: BaseFrame%926807003 00082 unsigned int BaseFrame () const; 00083 00084 //## Operation: SetName%961125353 00085 void SetName (const char* name); 00086 00087 //## Operation: GetName%961125354 00088 const char* GetName () const; 00089 00090 // Additional Public Declarations 00091 //## begin Entity%37195CDA01B8.public preserve=yes 00092 virtual bool DeserializeEntity( IfstreamWithComments& is ) ; 00093 //## end Entity%37195CDA01B8.public 00094 protected: 00095 // Data Members for Class Attributes 00096 00097 //## Attribute: baseFrame%371E7E9202F8 00098 // this is the frame in which the entity is defined 00099 //## begin Entity::baseFrame%371E7E9202F8.attr preserve=no protected: unsigned int {UA} 00100 unsigned int baseFrame; 00101 //## end Entity::baseFrame%371E7E9202F8.attr 00102 00103 //## Attribute: name%39499B9C0014 00104 //## begin Entity::name%39499B9C0014.attr preserve=no protected: char* {UA} NULL 00105 char* name; 00106 //## end Entity::name%39499B9C0014.attr 00107 00108 // Data Members for Associations 00109 00110 //## Association: geometry::<unnamed>%37263D5600F0 00111 //## Role: Entity::frameManager%37263D560349 00112 //## begin Entity::frameManager%37263D560349.role preserve=no protected: FrameManager { -> 1RHAN} 00113 FrameManager* frameManager; 00114 //## end Entity::frameManager%37263D560349.role 00115 00116 // Additional Protected Declarations 00117 //## begin Entity%37195CDA01B8.protected preserve=yes 00118 //## end Entity%37195CDA01B8.protected 00119 00120 private: 00121 // Additional Private Declarations 00122 //## begin Entity%37195CDA01B8.private preserve=yes 00123 //## end Entity%37195CDA01B8.private 00124 00125 private: //## implementation 00126 // Additional Implementation Declarations 00127 //## begin Entity%37195CDA01B8.implementation preserve=yes 00128 //## end Entity%37195CDA01B8.implementation 00129 00130 }; 00131 00132 //## begin Entity%37195CDA01B8.postscript preserve=yes 00133 //## end Entity%37195CDA01B8.postscript 00134 00135 // Class Entity 00136 00137 //## begin module%37195CDA01B8.epilog preserve=yes 00138 //## end module%37195CDA01B8.epilog 00139 00140 00141 #endif