18 #include <vlpi/entityType.h>
27 #include "tbb/mutex.h"
28 #include "tbb/queuing_rw_mutex.h"
34 #include <vlpi/disEnums.h>
35 #include <vlpi/artPartSpec.h>
36 #include <vlutil/vlString.h>
37 #include <vlpi/thresholder.h>
40 #include <vlutil/vlConfig.h>
44 #include "boost/logic/tribool.hpp"
45 #include <boost/signals2.hpp>
68 class DtArticulatedPartStateRepository;
69 class DtArticulatedPartManager;
126 virtual const int vrfObjectStateRepositorySubType()
const;
128 virtual bool init()
override;
129 virtual void initializeFromParameters();
138 virtual void setJoystickMovementControlled(
bool);
139 virtual bool joystickMovementControlled()
const;
149 virtual void restoreEntity();
166 return myResourceManager;
171 return myResourceManager;
179 virtual void setNavigationEnabled(
bool);
180 virtual bool navigationEnabled()
const;
183 virtual void restoreResourcesFromParameters();
188 virtual void setSOR(DtReal center, DtReal
size);
190 virtual DtReal SORSize()
const;
191 virtual DtReal SORCenter()
const;
198 virtual void upgradeFromImport();
205 virtual bool isContactHostile(
const DtSimObject*)
const;
209 virtual bool isContactHostile(
const DtVector& location,
int perceivedForce)
const;
213 virtual bool inSOR(
const DtSimObject* entity)
const;
217 virtual bool canFireAt(
const DtVector& location)
const;
221 virtual void setRequestTaskNeeded(
bool value);
222 virtual bool requestTaskNeeded()
const;
227 virtual bool hasTasks()
const;
230 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName);
233 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName,
int taskId);
237 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
240 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
248 virtual std::string taskStatusListPrintString()
const;
252 virtual std::string suspendedTaskListPrintString()
const;
265 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtSymbolString& componentName)
const;
267 virtual void setReinitializing(
bool);
270 return myReinitializing;
286 std::vector<DtGroundInteractionPt*> groundInteractionPts,
287 bool* terrainDataAvailable =
nullptr)
const;
292 virtual void updateSupportPoints(
const DtVector& newPosition,
293 const DtReal newHeading);
306 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
340 virtual void timedTick();
344 virtual void setMinTickPeriod(
double minTickPeriod);
347 virtual double minTickPeriod()
const;
350 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
353 virtual double minTickPeriodVariance()
const;
358 virtual void setNextTickTime(
double nextTickTime);
361 virtual double nextTickTime()
const;
368 virtual double calculateNextTickTime()
const;
370 virtual bool createProcessStateRepositoryManager();
377 systemProcessStateRepositoryManager()
const;
391 virtual void processObjectGeometry(
const DtList& vertices);
400 virtual void processObjectGeometry();
419 virtual void place(
const DtVector& location,
bool* dataAvailable =
nullptr,
420 bool requireAllData =
false);
436 virtual void place(
const DtReal heading,
bool* dataAvailable =
nullptr,
437 bool requireAllData =
false);
451 virtual void place(
const DtVector& location,
const DtReal heading,
452 bool clampToGroundFlag =
true,
bool* dataAvailable =
nullptr,
453 bool requireAllData =
false);
457 virtual void reclampToGround();
459 virtual DtReal mass()
const;
460 virtual void setMass(
const DtReal mass);
462 virtual DtTime lastTimeFiredUpon()
const;
463 virtual void setLastTimeFiredUpon(
const DtTime time);
465 virtual bool systemEnabled(
const DtString& systemName)
const;
466 virtual void setSystemEnabled(
const DtString& systemName,
bool enabled);
476 virtual int targetPriorityLevel(
const DtUUID& obj)
const;
488 virtual suppressionLevels suppressionLevel()
const;
489 virtual void setSuppressionLevel(
const suppressionLevels l);
490 virtual bool isSuppressed()
const;
494 virtual const DtString& nonLethalDamageEffect()
const;
495 virtual void setNonLethalDamageEffect(
const DtString& nonLethalDamageEffect);
500 virtual const DtUUID & occupyingObjectId()
const;
501 virtual void setOccupyingObjectId(
const DtUUID & objId);
512 virtual int nextTaskId();
515 virtual int nextSuspendId();
526 virtual int spawningTaskId(
int subtaskId)
const;
528 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
529 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
530 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
531 virtual bool isSubtasked(
const DtSymbolString& componentName)
const;
532 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
533 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
534 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
535 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName);
536 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName,
int taskId);
537 virtual void removeInactiveSubtaskStatus(
const DtSymbolString& componentName);
538 virtual void removeInactiveSubtaskStatus(
const DtSymbolString& componentName,
int taskId);
539 virtual void printPendingSubtaskIds(
const DtSymbolString& componentName)
const;
540 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName)
const;
541 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName,
int taskId)
const;
553 virtual bool taskedBySuperiorUponTaskComplete()
const;
555 virtual void setParentWasDestroyedWhenEmbarked(
bool);
556 virtual bool parentWasDestroyedWhenEmbarked()
const;
565 DtVector localBoundingVolumeCenterPosition()
const;
569 void setCurrentHeading(
const DtReal heading);
579 virtual void restoreStateProperties();
582 virtual void initStatePropertiesNotToBeRestored();
586 virtual void updateCachedStateProperties();
606 virtual void setTasked(
const DtSymbolString& componentName,
bool tasked);
607 virtual void setTasked(
const DtSymbolString& componentName,
int taskID,
bool tasked);
618 virtual void initializeNextTaskId();
621 virtual void setOrientationRelativeToParent();
633 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
637 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
660 virtual void setUserTarget(
const DtUUID& target);
661 virtual DtUUID userTarget()
const;
674 virtual void setInternalUserData(
const DtString& s,
void*);
675 virtual void* getInternalUserData(
const DtString&)
const;
676 virtual void removeInternalUserData(
const DtString&);
677 virtual void clearInternalUserData();
680 return myInternalUserDataMap;
692 virtual void embarkedParentDeleted();
695 virtual bool createResourceDatabaseLogger();
821 bool myReinitializing =
false;
849 VRF4API_METHOD virtual void setAppearance(
const DtAppearance& app);
918 VRF4API_METHOD void setFirePowerKilled(
const bool firePowerKilled);
982 VRF4API_METHOD virtual void setIsSubordinateOfForceLevel(
bool yesNo);
990 VRF4API_METHOD virtual void appendExtendedData(
const std::map<DtString, DtString>&);
1003 VRF4API_METHOD virtual void setExtendedDataMap(
const std::map<std::string, std::string>&);
1073 DtDeadReckonTypes deadReckoningAlgorithm);
1079 const DtThresholder& thresholder);
1083 #include "vrfobjcore/vrfObjectStateRepository.inl"
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
DtRwBoolean myParentWasDestroyedWhenEmbarked
Set to true when the entity is embarked on a destroyed parent so they do not become destroyed...
Definition: vrfObjectStateRepository.h:759
double myNextTickTime
Definition: vrfObjectStateRepository.h:792
DtTaskStatusList myTaskStatusList
Contains the myTasked and myCurrentTaskMsg members from the DtTaskControllerComponent class...
Definition: vrfObjectStateRepository.h:748
double myLastTickSimTime
Definition: vrfObjectStateRepository.h:793
const int DtPolygonVisibilityTest
Definition: vrfObjectStateRepository.h:73
The articulated part manager maintains a tree of articulated and attached parts for the state reposit...
Definition: articulatedPartManager.h:33
This class is used to interface with the terrain a particular entity is "attached" to...
Definition: attachedTerrain.h:57
Objects may contain a collection of other objects, such as overlays or pseudo-aggregate entities...
Definition: subordinateManager.h:43
virtual const InternalUserDataMap & internalUserDataMap() const
Internal user data is data that is not saved to the scenario and will last only as long as this inter...
Definition: vrfObjectStateRepository.h:678
suppressionLevels
The current suppression level. An enumeration with 4 values. Determined from suppression value in the...
Definition: vrfObjectStateRepository.h:482
DtReal myMass
Definition: vrfObjectStateRepository.h:730
This is a DtReaderWriter subclass which holds the status of a subtask that was issues by another task...
Definition: taskStatusEntry.h:28
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
virtual const int objectStateRepositorySubType() const
virtual void restoreFromLegacyRWData()
A readable, writable type that holds an articulated part type, attached-to part type, attachment point, and a list of art-part params (DtSimArtPartParamList). The read/write name is not used for anything in particular, and therefore may be used for file readability.
Definition: simArtPartDescriptor.h:28
virtual bool init()
Our 'virtual' constructor. Calls all the create<>() methods.
DtRwStringList mySystemsDisabledList
if this object is a subordinate, this is used to write out the name of the parent ...
Definition: vrfObjectStateRepository.h:769
DtRwInt myNextSuspendId
Definition: vrfObjectStateRepository.h:754
Description: DtSimSector is a readable/writable description of a sector of responsibility (center and...
Definition: simSector.h:20
virtual void detachFromParent()
boost::signals2::signal< void()> signal_statePropertiesRestored
Signal sent when state properties are restored.
Definition: vrfObjectStateRepository.h:135
voidpf void uLong size
Definition: ioapi.h:39
boost::signals2::signal< void(DtVrfObjectStateRepository *)> signal_postInitFromParams
Signal sent right after initializeFromParameters is called.
Definition: vrfObjectStateRepository.h:132
Definition: readerWriter.h:85
bool myPaused
Definition: vrfObjectStateRepository.h:812
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
class DtSimResourceManager:
Definition: simResourceManager.h:19
virtual void postGetSelf() override
Hook function called immediately following getSelf().
Definition: simObjectStateRepository.h:59
std::map< DtString, std::map< DtString, DtRwJoystickControl > > JoystickControls
Controls by function group.
Definition: vrfObjectStateRepository.h:102
Definition: readerWriterRegistry.h:39
DtSimResourceManager myResourceManager
This resource manager is used for all the top-level resource only. Component Systems now contain reso...
Definition: vrfObjectStateRepository.h:736
DtVrfProcessStateRepositoryManager * mySystemProcessSRManager
Definition: vrfObjectStateRepository.h:714
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:49
DtSimulationServices * mySimulationServices
Definition: vrfObjectStateRepository.h:715
File: weaponPSR.h.
Definition: vrfWeaponPSR.h:32
Responsible for monitoring resources for a particular entity and issuing database updates when the va...
Definition: resourceDatabaseLogger.h:16
Description: This repository is an internal repository accessible only by local objects. It holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.
Definition: vrfObjectStateRepository.h:91
const DtSimObjectStateRepository & operator=(const DtSimObjectStateRepository &orig)
double myMinTickPeriodVariance
Definition: vrfObjectStateRepository.h:791
DtSensorContactInfoList myObjectContactList
The situational awareness of this object. List of other objects that this object is currently aware o...
Definition: vrfObjectStateRepository.h:797
uuid class
Definition: rwUUID.h:26
DtRwInt mySuppressionLevel
The current enumerated level of suppression, derived from the value.
Definition: vrfObjectStateRepository.h:724
DtGroundInteractionPt myGroundCenter
Definition: vrfObjectStateRepository.h:717
DtSimSector mySectorOfResponsibility
These really apply to a single weapon, and should be part of a weapon controller/actuator suite of so...
Definition: vrfObjectStateRepository.h:740
static DtReaderWriterFactory * factory()
DtRwProperties myInternalStateProperties
Definition: vrfObjectStateRepository.h:774
Definition: rangeItem.h:149
The DtPhysicalWorld is the primary interface to and manager of all of the "physical" aspects of the s...
Definition: physicalWorld.h:112
DtRwUUID myUserTarget
Definition: vrfObjectStateRepository.h:772
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtResourceDatabaseLogger * myResourceDbLogger
Resource logger for logging resource information to a database, if enabled.
Definition: vrfObjectStateRepository.h:819
DtSuspendedTaskStatusList mySuspendedTaskStatusList
Definition: vrfObjectStateRepository.h:750
Definition: taskStatusList.h:22
Version of the DtVrfProcessStateRepositoryManager that is used specifically to read in scenario files...
Definition: legacyProcessStateRepositoryManager.h:27
DtVrfObjectStateRepository *(* DtSimObjectStateRepositoryCreatorFcn)(const DtString &name, DtLocalObject *simObjects, DtReaderWriterRegistry *parentRegistry)
Definition: simObjectStateRepositoryFactory.h:20
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
const int DtEntityVisibilityTest
Definition: vrfObjectStateRepository.h:72
DtRwInt myNextTaskId
The next available ID that can be assigned to a task for this entity.
Definition: vrfObjectStateRepository.h:753
Class Description: Readable, writable form of DtAppearance.
Definition: rwAppearance.h:16
DtRwBoolean myRequestTaskNeeded
Moved here from the DtLocalTaskManager class.
Definition: vrfObjectStateRepository.h:743
A list of DtSuspendedTaskStatusEntry instances, each representing a different suspend ID...
Definition: suspendedTaskInfo.h:113
DtTime myLastTimeFiredUpon
Under fire parameters.
Definition: vrfObjectStateRepository.h:720
Description: Readable, Writable int.
Definition: rwInt.h:25
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual void createLegacyRWData()
Creates the legacy data used for any pre/put operation. Override this to create your legacy data atta...
Instances of DtVrfStateRepositoryUserExtension can be used by customers to extend the base DtVrfObjec...
Definition: vrfStateRepositoryUserExtension.h:20
bool reinitializing() const
Definition: vrfObjectStateRepository.h:268
class DtSimObjectStateRepositoryFactory:
Definition: simObjectStateRepositoryFactory.h:29
Definition: rangeItem.h:206
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
JoystickControls myJoystickControls
Map of available joystick controls for this particular entity.
Definition: vrfObjectStateRepository.h:807
DtRwString myNonLethalDamageEffect
The current non lethal damage type (sick, faint, etc.). Default value is empty string.
Definition: vrfObjectStateRepository.h:728
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
bool myJoystickMovementControlled
If true movement is controlled by joystick so will not be able to be taskable as a subordinate...
Definition: vrfObjectStateRepository.h:810
Definition: echelonId.h:13
virtual void prePutSelf() override
Hook function called immediately prior to putSelf().
bool(* DtVisibilityTest)(double rangeSquared, const DtEntityIdentifier &eyeKey, const DtVector &localEyePoint, const DtVector &localEndPoint, const DtVrfObjectStateRepository *sr)
Definition: vrfObjectStateRepository.h:76
DtVrfStateRepositoryUserExtension * myStateRepositoryUserExtension
Data that is "private" to this object in that it should be the only one that is referencing this data...
Definition: vrfObjectStateRepository.h:711
virtual void setToLegacyRWData()
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
std::map< int, DtString > ExtendedLabels
Definition: vrfObjectStateRepository.h:98
std::map< DtString, DtString > ExtendedData
Definition: vrfObjectStateRepository.h:99
DtRwNLengthUUIDVector is a named, readable/writable vector of DtUUIDs. Can be used in place of a NLen...
Definition: rwNLengthUUIDVector.h:30
DtRwNLengthUUIDVector myEngagementZones
Definition: vrfObjectStateRepository.h:712
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:80
double myMinTickPeriod
For performance and memory usage reasons, the copy of the parameter entry that used to be made when c...
Definition: vrfObjectStateRepository.h:790
DtUUID myOccupyingObjectId
Definition: vrfObjectStateRepository.h:731
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Definition: vrfObjectStateRepository.h:816
virtual bool attachToParent(const DtUUID &parent)
Looks up the parent state repository using the given echelon ID and puts it in a call to attachToPare...
Class Invariant: The DtGroundInteractionPt class must always have a valid DtAttachedTerrain or DtSimM...
Definition: groundInteractionPt.h:28
static DtSimObjectStateRepositoryFactory * theFactory
Definition: vrfObjectStateRepository.h:777
std::map< DtString, void * > InternalUserDataMap
Internal user data is data that is not saved to the scenario and will last only as long as this inter...
Definition: vrfObjectStateRepository.h:673
DtRwBoolean myNavigationEnabled
Whether or not this object can navigate in navigation areas. Default is true.
Definition: vrfObjectStateRepository.h:762
virtual const DtSimResourceManager & resourceManager() const
Definition: vrfObjectStateRepository.h:164
virtual void preGetSelf() override
Hook function called immediately prior to getSelf().
Definition: rwStringList.h:20
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
virtual void processSimObjectDeleted(const DtSimObject *)
These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/f...
std::vector< DtString > myStatePropertiesNotToBeRestored
The list of state properties that should not be updated by restoreStateProperties.
Definition: vrfObjectStateRepository.h:804
InternalUserDataMap myInternalUserDataMap
Definition: vrfObjectStateRepository.h:770
class DtLocalVertexList:
Definition: localVertexList.h:20
virtual DtSimResourceManager & resourceManager()
Definition: vrfObjectStateRepository.h:169
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:23
A DtTaskMsg is a DtRadioMsg with a pointer to a task. The type of the taskMsg is just the type of the...
Definition: taskMessage.h:21
const int DtFeatureVisibilityTest
Definition: vrfObjectStateRepository.h:74
DtWeaponInfoList * myWeaponInfoList
List of WeaponInfo classes that provide data on all weapons that have made their information availabl...
Definition: vrfObjectStateRepository.h:801
DtRwPriorityTargetListMap myTargetPriorityList
Target Priority List.
Definition: vrfObjectStateRepository.h:765
Definition: weaponInfoList.h:13
A locally simulated VRF object.
Definition: localObject.h:98
virtual DtString type() const
returns DtSimObjectStateRepositoryType