![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: trueAggregateSubordinateEntry.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 00013 #ifndef DtTrueAggregateSubordinatesEntry_H_ 00014 #define DtTrueAggregateSubordinatesEntry_H_ 00015 00016 #include "vrfutil/rwObjType.h" 00017 #include "vrfutil/rwString.h" 00018 #include "vrfutil/rwVector.h" 00019 #include "vrfutil/rwBoolean.h" 00020 #include "geometry/point.h" 00021 00022 #include "vrfutil/trueAggregateSubordinateEntryFact.h" 00023 00024 #include "vrfutil/vrfutilDefines.h" 00025 class DT_DLL_vrfutil DtSubordinateEntry : public DtReaderWriter 00026 { 00027 public: 00029 DtSubordinateEntry(); 00030 00032 DtSubordinateEntry(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL); 00033 DtSubordinateEntry(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL); 00034 00036 DtSubordinateEntry(const DtString& name, 00037 const DtSubordinateEntry& orig, 00038 DtReaderWriterRegistry* parentRegistry = NULL); 00039 00040 DtSubordinateEntry(const DtSymbolString& name, 00041 const DtSubordinateEntry& orig, 00042 DtReaderWriterRegistry* parentRegistry = NULL); 00043 00045 const DtSubordinateEntry& operator=(const DtSubordinateEntry & orig); 00046 00047 virtual ~DtSubordinateEntry(); 00048 00049 00050 virtual DtSubordinateEntry* clone(const DtSymbolString& name, 00051 DtReaderWriterRegistry* parentRegistry = NULL) const; 00052 00053 virtual DtSubordinateEntry* clone(const DtString& name, 00054 DtReaderWriterRegistry* parentRegistry = NULL) const; 00055 00058 virtual const DtString& subordinateEntryType() const; 00059 virtual void setSubordinateEntryType(const DtString& entryType); 00061 00064 virtual const DtRwObjectType& subordinateType() const; 00065 virtual void setSubordinateType(const DtObjectType& subordinateType); 00067 00070 virtual bool isDestroyed() const; 00071 virtual void setDestroyed(bool trueFalse); 00073 00074 virtual DtPoint positionOffset(const DtPoint& accumOffset = DtPoint(0, 0, 0)) const; 00075 virtual void setPositionOffset(const DtVector& offset = DtVector(0, 0, 0)) ; 00076 00079 static void addSubordinateEntryCreatorFcn(const DtString& type, 00080 DtSubordinateEntryCreatorFcn fcn); 00081 00086 static DtSubordinateEntryFactory* factory(); 00087 static void setFactory(DtSubordinateEntryFactory* factory); 00089 00097 static DtSubordinateEntry* createSubordinateEntry(DtlObjPtr mtlStream, 00098 const DtFilename& searchPath, const DtVariableBindingsList& variableBindings); 00099 00104 static DtSubordinateEntry* createSubordinateEntry(const char* pName); 00105 00106 00107 protected: 00108 00112 DtRwString mySubordinateEntryType; 00113 00118 DtRwObjectType mySubordinateType; 00119 00123 DtRwBoolean myDestroyed; 00124 00126 DtRwVector myPositionOffset; 00127 00128 static DtSubordinateEntryFactory* myFactory; 00129 00130 }; 00131 00132 namespace DtBufferSerialize 00133 { 00134 DT_DLL_vrfutil int getSize(const DtSubordinateEntry& val); 00135 DT_DLL_vrfutil char* encode(const DtSubordinateEntry& data, char *buffer); 00136 DT_DLL_vrfutil const char* decode(DtSubordinateEntry &data, const char *buffer); 00137 } 00138 #endif 00139 00140 00141