00001 //## begin module%36FE80AD0258.cm preserve=no 00002 // %X% %Q% %Z% %W% 00003 //## end module%36FE80AD0258.cm 00004 00005 //## begin module%36FE80AD0258.cp preserve=no 00006 //## end module%36FE80AD0258.cp 00007 00008 //## Module: ObjectGroup%36FE80AD0258; Pseudo Package specification 00009 //## Source file: E:\mpk\code\geometry\ObjectGroup.h 00010 00011 #ifndef ObjectGroup_h 00012 #define ObjectGroup_h 1 00013 00014 //## begin module%36FE80AD0258.additionalIncludes preserve=no 00015 //## end module%36FE80AD0258.additionalIncludes 00016 00017 //## begin module%36FE80AD0258.includes preserve=yes 00018 #include <vector> 00019 #include <iostream> 00020 00021 using std::ostream ; 00022 //## end module%36FE80AD0258.includes 00023 00024 // ObjectBase 00025 #include "geometry\ObjectBase.h" 00026 00027 class Frame; 00028 class IGS_Group; 00029 00030 //## begin module%36FE80AD0258.additionalDeclarations preserve=yes 00031 //## end module%36FE80AD0258.additionalDeclarations 00032 00033 00034 //## begin ObjectGroup%36FE80AD0258.preface preserve=yes 00035 //## end ObjectGroup%36FE80AD0258.preface 00036 00037 //## Class: ObjectGroup%36FE80AD0258 00038 // This class represents a group of objects that are all 00039 // stored in the same reference frame. 00040 //## Category: geometry%36FE7BDE030C 00041 //## Persistence: Transient 00042 //## Cardinality/Multiplicity: n 00043 00044 class ObjectGroup : public ObjectBase //## Inherits: <unnamed>%373B30E10387 00045 { 00046 //## begin ObjectGroup%36FE80AD0258.initialDeclarations preserve=yes 00047 //## end ObjectGroup%36FE80AD0258.initialDeclarations 00048 00049 public: 00050 //## Constructors (specified) 00051 //## Operation: ObjectGroup%926969419 00052 ObjectGroup (FrameManager* frameManager); 00053 00054 //## Operation: ObjectGroup%926969420 00055 ObjectGroup (const ObjectGroup& right); 00056 00057 //creates an ObjectGroup out of an IGS_Group 00058 ObjectGroup( const IGS_Group& right ); 00059 00060 //## Destructor (generated) 00061 virtual ~ObjectGroup(); 00062 00063 00064 //## Other Operations (specified) 00065 //## Operation: operator[]%922649203 00066 const ObjectBase* operator [] (const unsigned int index) const; 00067 00068 //## Operation: AddObject%922649216 00069 int AddObject (const ObjectBase* object); 00070 00071 //removes all the elements from the group 00072 void Clear(); 00073 00074 //## Operation: IsInterfering%925235847 00075 virtual bool IsInterfering (const Entity* entity) const; 00076 00077 //## Operation: SetFrameManager%926969418 00078 virtual void SetFrameManager (FrameManager* frameManager); 00079 00080 //## Operation: Clone%926969421 00081 virtual Entity* Clone () const; 00082 00083 //## Operation: CanCheckInterference%926969422 00084 virtual bool CanCheckInterference (const Entity* entity) const; 00085 00086 //## Operation: SetBaseFrame%927936639 00087 void SetBaseFrame (const unsigned int baseFrame); 00088 00089 //## Operation: SetFrame%928263343 00090 virtual void SetFrame (const Matrix4x4& frame); 00091 00092 //## Operation: Size%928344303 00093 unsigned int Size () const; 00094 00095 //## Operation: Serialize%934220963 00096 virtual void Serialize (ostream& os) const; 00097 00098 //## Operation: Deserialize%934220964 00099 virtual void Deserialize (IfstreamWithComments& is); 00100 00101 virtual bool Verify() const; 00102 00103 // Data Members for Associations 00104 00105 //## Association: geometry::<unnamed>%36FE810001EA 00106 //## Role: ObjectGroup::offsetFrame%36FE81010213 00107 //## begin ObjectGroup::offsetFrame%36FE81010213.role preserve=no public: Frame { -> 1RFHAN} 00108 Frame* offsetFrame; 00109 //## end ObjectGroup::offsetFrame%36FE81010213.role 00110 00111 //## Association: geometry::<unnamed>%36FE862501EA 00112 //## Role: ObjectGroup::baseFrame%36FE86260137 00113 //## begin ObjectGroup::baseFrame%36FE86260137.role preserve=no public: Frame { -> 1RFHAN} 00114 Frame* baseFrame; 00115 //## end ObjectGroup::baseFrame%36FE86260137.role 00116 00117 // Additional Public Declarations 00118 //## begin ObjectGroup%36FE80AD0258.public preserve=yes 00119 virtual int TotalPolys() const; 00120 //## end ObjectGroup%36FE80AD0258.public 00121 00122 protected: 00123 // Data Members for Associations 00124 00125 //## Association: geometry::objects%36FE80BE01D6 00126 //## Role: ObjectGroup::objects%36FE80BF00B5 00127 //## begin ObjectGroup::objects%36FE80BF00B5.role preserve=no protected: ObjectBase { -> 0..nRFHAN} 00128 std::vector<ObjectBase*> objects; 00129 //## end ObjectGroup::objects%36FE80BF00B5.role 00130 00131 // Additional Protected Declarations 00132 //## begin ObjectGroup%36FE80AD0258.protected preserve=yes 00133 //## end ObjectGroup%36FE80AD0258.protected 00134 00135 private: 00136 // Additional Private Declarations 00137 //## begin ObjectGroup%36FE80AD0258.private preserve=yes 00138 //## end ObjectGroup%36FE80AD0258.private 00139 00140 private: //## implementation 00141 // Additional Implementation Declarations 00142 //## begin ObjectGroup%36FE80AD0258.implementation preserve=yes 00143 //## end ObjectGroup%36FE80AD0258.implementation 00144 00145 }; 00146 00147 //## begin ObjectGroup%36FE80AD0258.postscript preserve=yes 00148 //## end ObjectGroup%36FE80AD0258.postscript 00149 00150 // Class ObjectGroup 00151 00152 //## begin module%36FE80AD0258.epilog preserve=yes 00153 //## end module%36FE80AD0258.epilog 00154 00155 00156 #endif