![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfAggregateSR.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtVrfAggregateStateRepository_H_ 00013 #define DtVrfAggregateStateRepository_H_ 00014 00015 #include "vrfobjcore/vrfMvObjSR.h" 00016 #include "vrfutil/rwFormType.h" 00017 #include "vrfutil/rwAggregateState.h" 00018 #include "geometry/tdbextent.h" 00019 #include <vlpi/disEnums.h> 00020 00021 class DtFormation; 00022 class DtFormationState; 00023 class DtAggregateObjectParameters; 00024 00025 #include "vrfobjcore/vrfobjcoreDefines.h" 00026 class DT_DLL_vrfobjcore DtVrfAggregateStateRepository : public DtVrfMovingObjectStateRepository 00027 { 00028 protected: 00030 DtVrfAggregateStateRepository(); 00031 00032 public: 00033 00034 DtVrfAggregateStateRepository (DtVrfObject* vrfObject, 00035 const DtObjectType& objectType, DtVrfObjectParameters* parameters, 00036 const DtString& rwName = DtString::nullString(), 00037 DtReaderWriterRegistry* parentRegistry = 0); 00038 00039 DtVrfAggregateStateRepository (const DtVrfAggregateStateRepository& orig, 00040 const DtString& rwName = DtString::nullString(), 00041 DtReaderWriterRegistry* parentRegistry = 0); 00042 00043 const DtVrfAggregateStateRepository & operator= ( 00044 const DtVrfAggregateStateRepository & orig); 00045 00046 virtual ~DtVrfAggregateStateRepository(); 00047 00048 virtual DtSimObjectStateRepository* clone( 00049 const DtString& rwName = DtString::nullString(), 00050 DtReaderWriterRegistry* parentRegistry = 0) const; 00051 00054 virtual bool init(); 00055 00057 virtual DtString type() const; 00058 00059 virtual DtFormationState* formationState() const; 00060 00061 virtual void setFormation(DtAggregateFormation formation); 00062 virtual DtAggregateFormation formation() const; 00063 00065 00066 00067 00068 00069 00070 00071 virtual void setFormationName(const DtString& name); 00072 virtual DtString formationName() const; 00074 00080 00081 virtual void setAggregateState(enum DtAggregateState state); 00082 virtual enum DtAggregateState aggregateState() const; 00084 00086 virtual bool formationNameSpecified() const; 00087 00089 virtual double formationHalfLength(); 00090 00092 virtual const int vrfMovingObjectStateRepositorySubType() const; 00093 00095 virtual const int aggregateStateRepositorySubType() const; 00096 00098 virtual void getSelf(DtlObjPtr args, 00099 const DtFilename& searchPath, const DtVariableBindingsList& variableBindings); 00100 00102 static DtVrfObjectStateRepository* creator (const DtString& name, 00103 DtVrfObject* vrfObject,const DtObjectType& objectType, 00104 DtVrfObjectParameters* parameters, 00105 DtReaderWriterRegistry* parentRegistry); 00106 00109 static DtVrfAggregateStateRepository* isVrfAggregateStateRepository( 00110 DtSimObjectStateRepository* repository); 00111 00112 static const DtVrfAggregateStateRepository* isVrfAggregateStateRepository( 00113 const DtSimObjectStateRepository* repository); 00114 00115 virtual bool aggregatedExtent(DtExtent& extent); 00116 00117 virtual bool computeExtentFromParameters(const DtString& formationName, DtExtent& extent); 00118 00119 virtual void setParameterEntry(DtVrfObjectParameters* parameterEntry); 00120 00121 protected: 00122 00123 virtual void createFormationState(); 00124 00125 virtual bool computeExtent(const DtAggregateObjectParameters& parameterEntry, 00126 const DtString& formationName, DtExtent& extent); 00127 00128 virtual std::list<DtVector> generateFormationPositions( 00129 const DtVrfObjectParameters& parameterEntry, DtFormation& formation); 00130 00131 virtual bool getFormation(const DtString& formationName, 00132 const DtAggregateObjectParameters& parameterEntry, 00133 DtFormation& formation); 00134 00139 virtual void preGetSelf(); 00140 virtual void postGetSelf(); 00141 00142 protected: 00143 00144 DtRwFormationType myFormation; 00145 DtRwString myFormationName; 00146 DtFormationState* myFormationState; 00147 DtRwAggregateState myAggregateState; 00148 00149 DtExtent myCachedExtent; 00150 bool myCachedExtentIsValid; 00151 }; 00152 00153 #endif 00154 00155