![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: attachMgr.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef DtAttachmentManager_H_ 00015 #define DtAttachmentManager_H_ 00016 00017 #include "vrfobjcore/vrfobjcoreDefines.h" 00018 #include "vrfobjcore/srIterator.h" 00019 #include <vlutil/vlList.h> 00020 #include <matrix/vlVector.h> 00021 #include <vl/hostStructs.h> 00022 #include <vrfExtProtocol/objType.h> 00023 00024 class DtSimObjectStateRepository; 00025 class DtSimObjectStateRepositoryIterator; 00026 class DtRecursiveStateRepositoryIterator; 00027 class Coordinate_System; 00028 00058 class DT_DLL_vrfobjcore DtAttachmentManager 00059 { 00060 00061 private: 00063 DtAttachmentManager(); 00064 00065 public: 00067 DtAttachmentManager(DtSimObjectStateRepository* owner); 00068 00070 DtAttachmentManager(const DtAttachmentManager& orig); 00071 00073 const DtAttachmentManager& operator=(const DtAttachmentManager& orig); 00074 00076 virtual ~DtAttachmentManager(); 00077 00079 virtual DtAttachmentManager* clone() const; 00080 00082 virtual void attachPart(DtSimObjectStateRepository* part); 00083 00085 virtual void detachPart(DtSimObjectStateRepository* part); 00086 00089 virtual DtSimObjectStateRepository* findPartByType( 00090 const DtObjectType& childType); 00091 00092 virtual const DtSimObjectStateRepository* findPartByType( 00093 const DtObjectType& childType) const; 00094 00096 virtual int numAttachments() const; 00097 00101 virtual const DtSimObjectStateRepositoryIterator& iterator() const; 00102 00106 virtual DtRecursiveStateRepositoryIterator* spawnRecursiveIterator() const; 00107 00112 virtual DtVector getPartAttachPoint(const DtObjectType& partType, bool recurse = false) 00113 const; 00114 00117 virtual void parentKinematicsChanged(); 00118 00119 virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem); 00120 00121 const DtList& elements() const { return myElements; }; 00122 00123 protected: 00124 00126 void emptyList(); 00127 00130 void copyList(const DtList& otherElements); 00131 00132 protected: 00133 00135 DtList myElements; 00136 DtSimObjectStateRepository* myOwner; 00137 DtSimObjectStateRepositoryIterator* myIterator; 00138 }; 00139 00140 #endif