basic/geometry/ObjectGroup.h

Go to the documentation of this file.
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

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