VR-Forces 4.0.4 Class Documentation
include/vrfobjparam/vrfObjParams.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)