![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfObjParams.h,v $ $Revision: 1.45 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtVrfObjectParameters_H_ 00016 #define DtVrfObjectParameters_H_ 00017 00018 #include "vrfutil/rdrWritr.h" 00019 #include "vrfutil/rwObjType.h" 00020 #include "vrfutil/rwBndingVol.h" 00021 #include "vrfobjparam/paramFact.h" 00022 #include "vrfutil/rwFormType.h" 00023 #include "vrfutil/rwBndGeomType.h" 00024 #include "vrfutil/rwForce.h" 00025 #include "vrfutil/rwReal.h" 00026 #include "vrfutil/rwBoolean.h" 00027 #include "vrfutil/rwString.h" 00028 #include "vrfutil/vlClock.h" 00029 #include "vrfutil/rwDRTypes.h" 00030 #include "vrfobjparam/rwDeadReckonThresholds.h" 00031 #include "vrfobjparam/compDescLst.h" 00032 #include "vrfutil/subObjList.h" 00033 #include "vrfobjparam/connDescList.h" 00034 #include "vrfutil/rsrcMgr.h" 00035 #include "vrfutil/rwSensorSignatureList.h" 00036 #include "vrfobjparam/simSector.h" 00037 #include "vrfobjparam/vrfRadioDescriptorList.h" 00038 #include "vrfobjparam/compSystemDescriptorList.h" 00039 #include <list> 00040 #include "vrfutil/rwFile.h" 00041 #include "vrfobjparam/taskExecutionRules.h" 00042 00043 class DtSimResource; 00044 class DtVrfObjectSubComponentTypes; 00045 class DtFilename; 00046 class DtVrfStateRepositoryUserExtension; 00047 class DtRadioDescriptorList; 00048 class DtSimArtPartDescriptor; 00049 00054 #include "vrfobjparam/vrfobjparamDefines.h" 00055 class DT_DLL_vrfobjparam DtVrfObjectParameters : public DtReaderWriter 00056 { 00057 00058 public: 00060 DtVrfObjectParameters(const DtString& name = DtString::nullString(), 00061 DtReaderWriterRegistry* parentRegistry = NULL); 00062 DtVrfObjectParameters(const DtSymbolString& name, 00063 DtReaderWriterRegistry* parentRegistry = NULL); 00064 00066 virtual ~DtVrfObjectParameters(); 00067 00068 protected: 00070 DtVrfObjectParameters(const DtVrfObjectParameters& orig, 00071 const DtString& name = DtString::nullString(), 00072 DtReaderWriterRegistry* parentRegistry = NULL); 00073 00074 DtVrfObjectParameters(const DtVrfObjectParameters& orig, 00075 const DtSymbolString& name, 00076 DtReaderWriterRegistry* parentRegistry = NULL); 00077 00078 public: 00080 DtVrfObjectParameters& operator=(const DtVrfObjectParameters& orig); 00081 00082 virtual DtVrfObjectParameters* clone( 00083 const DtString& name = DtString::nullString(), 00084 DtReaderWriterRegistry* parentRegistry = NULL) const; 00085 00086 virtual DtVrfObjectParameters* clone( 00087 const DtSymbolString& name, 00088 DtReaderWriterRegistry* parentRegistry = NULL) const; 00089 00095 virtual bool init(); 00096 00102 virtual DtString type() const; 00103 00115 virtual bool inheritValues(const DtVrfObjectParameters * benefactor); 00116 00117 virtual void inheritValuesFromThisType( 00118 const DtVrfObjectParameters * benefactor); 00119 00121 virtual bool createLocalSubComponentTypes(); 00122 00124 virtual bool createRemoteSubComponentTypes(); 00125 00130 virtual DtVrfObjectSubComponentTypes * localVrfSubComponentTypes() const; 00131 00136 virtual DtVrfObjectSubComponentTypes * remoteVrfSubComponentTypes() const; 00137 00140 virtual void setMinTickPeriod(DtReal minTickPeriod); 00141 00144 virtual DtReal minTickPeriod() const; 00145 00148 virtual void setMinTickPeriodVariance(DtReal minTickPeriodVariance); 00149 00152 virtual DtReal minTickPeriodVariance() const; 00153 00157 virtual DtForceType forceType() const; 00158 virtual void setForceType(const DtForceType force); 00159 00161 virtual const DtString& category() const; 00162 00163 virtual void setCategory(const DtString& category); 00164 00166 virtual bool categorySpecified() const; 00167 00169 virtual const DtString& echelonLevel() const; 00170 00171 virtual void setEchelonLevel(const DtString& echelonLevel); 00172 00174 virtual bool echelonLevelSpecified() const; 00175 00177 virtual bool organized() const; 00178 00179 virtual void setOrganized(bool organized); 00180 00182 00183 virtual const DtComponentSystemDescriptorList& systemDescriptorList() const; 00184 virtual DtComponentSystemDescriptorList& systemDescriptorList(); 00185 virtual void setSystemDescriptorList(const DtComponentSystemDescriptorList& list); 00187 00189 virtual const DtComponentDescriptorList& sensorDescriptorList() const; 00190 virtual DtComponentDescriptorList& sensorDescriptorList(); 00191 virtual void setSensorDescriptorList(const DtComponentDescriptorList& list); 00192 00194 virtual const DtComponentDescriptorList& controllerDescriptorList() const; 00195 virtual DtComponentDescriptorList& controllerDescriptorList(); 00196 virtual void setControllerDescriptorList(const DtComponentDescriptorList& 00197 list); 00198 00200 virtual const DtComponentDescriptorList& actuatorDescriptorList() const; 00201 virtual DtComponentDescriptorList& actuatorDescriptorList(); 00202 virtual void setActuatorDescriptorList(const DtComponentDescriptorList& 00203 list); 00204 00206 virtual const DtConnectionDescriptorList& connectionDescriptorList() const; 00207 virtual DtConnectionDescriptorList& connectionDescriptorList(); 00208 virtual void setConnectionDescriptorList(const DtConnectionDescriptorList& 00209 list); 00210 00212 virtual DtDeadReckonTypes deadReckoningAlgorithm() const; 00213 virtual void setDeadReckoningAlgorithm(DtDeadReckonTypes 00214 deadReckoningAlgorithm); 00215 00217 00218 virtual const DtRwBoolean deadReckoningAllowGuiOverrides() const; 00219 virtual void setDeadReckoningAllowGuiOverrides(bool allow); 00221 00223 virtual const DtRwDeadReckonThresholds& deadReckoningThresholds() const; 00224 virtual void setDeadReckoningThresholds(const DtRwDeadReckonThresholds& 00225 deadReckoningThresholds); 00226 00228 virtual DtReal mass() const; 00229 virtual void setMass(const DtReal mass); 00230 00232 00233 virtual const DtRadioDescriptorList& radioDescriptorList() const; 00234 virtual DtRadioDescriptorList& radioDescriptorList(); 00236 00238 virtual const DtRwSensorSignatureList& sensorSignatureList() const; 00239 virtual DtRwSensorSignatureList& sensorSignatureList(); 00240 00244 virtual const DtVrfSubObjectParameterList& subordinateObjects() const; 00245 virtual void setSubordinateObjects( 00246 const DtVrfSubObjectParameterList& subordinateObjects); 00247 00252 virtual const DtVrfSubObjectParameterList& attachedObjects() const; 00253 virtual void setAttachedObjects( 00254 const DtVrfSubObjectParameterList& attachedObjects); 00255 00260 virtual DtVrfObjectSubComponentTypes * localSubComponentTypes() const; 00261 00266 virtual DtVrfObjectSubComponentTypes * remoteSubComponentTypes() const; 00267 00270 virtual void putData(FILE *fp, int indentLevel = 0); 00271 00274 virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath, 00275 const DtVariableBindingsList& variableBindings); 00276 00278 virtual const Dt3dBoundingVolume * boundingVolume() const; 00279 00281 virtual void setBoundingVolume(const Dt3dBoundingVolume& newBoundingVolume); 00282 00288 virtual void setBoundingVolume(const DtVector& localBvolDiagonal, 00289 const DtVector& offset = DtVector::zero()); 00290 00292 virtual DtSimBoundingGeometry::DtSimBoundingGeometryType 00293 boundingGeometryType() const; 00294 virtual void setBoundingGeometryType( 00295 DtSimBoundingGeometry::DtSimBoundingGeometryType type); 00296 00298 virtual DtAggregateFormation formation() const; 00299 virtual void setFormation(DtAggregateFormation formation); 00300 00302 virtual const DtString& engagementRules() const; 00303 virtual void setEngagementRules(const DtString& engagementRules); 00304 00306 virtual const DtSimResourceManager& resourceManager() const; 00307 virtual void setResourceManager(const DtSimResourceManager& resourceManager); 00308 00310 virtual void setStateRepositoryUserExtensionType(const DtString& type); 00311 virtual const DtString& stateRepositoryUserExtensionType() const; 00312 00314 virtual DtObjectType objectType() const; 00315 virtual void setObjectType(const DtObjectType& objectType); 00316 00323 virtual bool taskedBySuperiorUponTaskComplete() const; 00324 virtual void setTaskedBySuperiorUponTaskComplete(bool trueOrFalse); 00325 00326 static DtVrfObjectParameters * createParameters(DtlObjPtr mtlStream, 00327 const DtFilename& searchPath, const DtVariableBindingsList& variableBindings); 00328 static DtVrfObjectParameters * createParameters(const char* name); 00329 00330 static DtVrfObjectParameterFactory * factory(); 00331 00332 static void setFactory(DtVrfObjectParameterFactory * factory); 00333 00334 static void addParameterCreatorFcn(const DtString & type, 00335 DtSimObjectParametersCreatorFcn fcn); 00336 00338 static DtVrfObjectParameters * creator(); 00339 00341 void setParameterType(const DtString&); 00342 const DtString& parameterType() const; 00343 00346 virtual void setStateRepositoryUserExtension( 00347 const DtVrfStateRepositoryUserExtension& userExtension); 00348 virtual DtVrfStateRepositoryUserExtension* stateRepositoryUserExtension() const; 00349 00353 virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath = 00354 DtFilename::nullFilename(), 00355 const DtVariableBindingsList& variableBindings = nullVariableReference()); 00356 00360 virtual DtTime underFireTime() const; 00361 00365 virtual void setUnderFireTime(DtTime time); 00366 00370 virtual bool underFireTimeSpecified() const; 00371 00375 virtual DtReal underFireDistance() const; 00376 00380 virtual void setUnderFireDistance(DtReal underFireDistance); 00381 00386 virtual bool underFireDistanceSpecified() const; 00387 00389 00390 virtual const DtSimSector& initialSectorOfResponsibility() const; 00391 virtual void setInitialSectorOfResponsibility(const DtSimSector& sor); 00393 00395 00396 virtual DtTaskExecutionRules& taskExecutionRules(); 00397 virtual const DtTaskExecutionRules& taskExecutionRules() const; 00399 00401 00402 virtual void setTaskExecutionRulesFilename(const DtFilename&); 00403 virtual const DtReaderWriterFile& taskExecutionRulesFilename() const; 00405 00410 virtual const std::list<DtSimArtPartDescriptor*>* completeArtPartList() const; 00411 00412 protected: 00413 00420 virtual DtVrfSubObjectParameterList* createSubordinateObjectsList( 00421 const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry) const; 00422 00429 virtual DtVrfSubObjectParameterList* createAttachedObjectsList( 00430 const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry) const; 00431 00434 virtual void rebuildArtPartList(); 00435 00439 virtual void addArtPartsFromSystem(DtComponentSystemDescriptor* systemDesc, 00440 std::list<DtSimArtPartDescriptor*>& artPartList); 00441 00442 protected: 00443 00458 DtObjectType myObjectType; 00459 00463 00475 DtRwBoundingGeometryType myBoundingGeometryType; 00476 00488 DtRwBoundingVolume myBvol; 00489 00494 DtVrfObjectSubComponentTypes * myLocalSubComponentTypes; 00495 00500 DtVrfObjectSubComponentTypes * myRemoteSubComponentTypes; 00501 00512 DtRwFormationType myFormationType; 00513 00524 DtRwForceType myForceType; 00525 00532 DtRwString myCategory; 00533 00540 DtRwString myEchelonLevel; 00541 00547 DtRwBoolean myOrganized; 00548 00554 DtRwReal myMinTickPeriod; 00555 00562 DtRwReal myMinTickPeriodVariance; 00563 00576 DtRwDeadReckonTypes myDeadReckoningAlgorithm; 00577 00586 DtRwDeadReckonThresholds myDeadReckoningThresholds; 00587 00588 DtRwBoolean myDeadReckoningAllowGuiOverrides; 00589 00592 DtRadioDescriptorList myRadioDescriptorList; 00593 00598 DtComponentSystemDescriptorList mySystemDescriptorList; 00599 00602 DtComponentDescriptorList mySensorDescriptorList; 00603 00606 DtComponentDescriptorList myControllerDescriptorList; 00607 00610 DtComponentDescriptorList myActuatorDescriptorList; 00611 00640 DtConnectionDescriptorList myConnectionDescriptorList; 00641 00646 DtRwReal myMass; 00647 00651 DtRwSensorSignatureList mySensorSignatureList; 00652 00682 DtVrfSubObjectParameterList* mySubordinateObjects; 00683 00687 DtVrfSubObjectParameterList* myAttachedObjects; 00688 00697 DtRwString myEngagementRules; 00698 00714 DtSimResourceManager myResourceManager; 00715 00722 DtRwString myStateRepositoryUserExtensionType; 00723 00729 DtRwBoolean myTaskedBySuperiorUponTaskComplete; 00730 00737 DtVrfStateRepositoryUserExtension* myStateRepositoryUserExtension; 00738 00743 DtRwTime myUnderFireTime; 00744 00749 DtRwReal myUnderFireDistance; 00750 00758 DtSimSector myInitialSectorOfResponsibility; 00759 00766 DtReaderWriterFile myTaskExecutionRulesFilename; 00768 00771 DtTaskExecutionRules myTaskExecutionRules; 00772 00775 DtString myParameterType; 00776 00777 static DtVrfObjectParameterFactory * theFactory; 00778 00783 std::list<DtSimArtPartDescriptor*> myCompleteArtPartList; 00784 00785 }; 00786 00787 inline void DtVrfObjectParameters::setParameterType(const DtString& t) 00788 { 00789 myParameterType = t; 00790 } 00791 00792 inline const DtString& DtVrfObjectParameters::parameterType() const 00793 { 00794 return myParameterType; 00795 } 00796 00797 #endif 00798