VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
16 #include "vrfobjparam/simSector.h"
19 #include "vrfutil/echelonId.h"
27 #include "tbb/mutex.h"
28 #include "tbb/queuing_rw_mutex.h"
32 
34 #include <vlpi/disEnums.h>
35 #include <vlpi/artPartSpec.h>
36 #include <vlutil/vlString.h>
37 #include <vlpi/thresholder.h>
38 
40 #include <vlutil/vlConfig.h>
41 #include <map>
42 #include <list>
43 
44 #include "boost/logic/tribool.hpp"
45 #include <boost/signals2.hpp>
46 
51 class DtVrfWeaponPSR;
52 class DtRwAppearance;
53 class DtTaskMessage;
59 class DtVrfObjectMessage;
62 class DtPhysicalWorld;
63 class DtAttachedTerrain;
64 class DtWeaponInfoList;
66 
67 namespace makVrf
68 {
69  class DtArticulatedPartStateRepository;
70  class DtArticulatedPartManager;
71 }
72 
73 const int DtEntityVisibilityTest = 1;
76 
77 typedef bool (*DtVisibilityTest)(double rangeSquared, const DtEntityIdentifier& eyeKey,
78  const DtVector& localEyePoint, const DtVector& localEndPoint, const DtVrfObjectStateRepository* sr);
79 
93 {
94 protected:
97 
98 public:
99  typedef std::map<int, DtString> ExtendedLabels;
100  typedef std::map<DtString, DtString> ExtendedData;
101 
103  typedef std::map<DtString, std::map<DtString, DtRwJoystickControl> > JoystickControls;
104 
106  DtVrfObjectStateRepository(DtLocalObject* vrfObject, const DtString& rwName = DtString::nullString(),
107  DtReaderWriterRegistry* parentRegistry = nullptr);
108 
110  virtual ~DtVrfObjectStateRepository();
111 
112 private:
115 
118  const DtVrfObjectStateRepository& orig);
119 
120 public:
121  virtual DtString type() const override;
122 
124  virtual const int objectStateRepositorySubType() const override;
125 
127  virtual const int vrfObjectStateRepositorySubType() const;
128 
129  virtual bool init() override;
130  virtual void initializeFromParameters();
131 
133  boost::signals2::signal<void (DtVrfObjectStateRepository*)> signal_postInitFromParams;
134 
136  boost::signals2::signal<void ()> signal_statePropertiesRestored;
137 
139  virtual void setJoystickMovementControlled(bool);
140  virtual bool joystickMovementControlled() const;
141 
146  virtual DtVrfStateRepositoryUserExtension* userExtension() const;
147 
150  virtual void restoreEntity();
151 
154  virtual void addJoystickControls(const DtRwJoystickControls&);
155  virtual const JoystickControls& joystickControls() const;
157 
168 
169  virtual const DtObjectResourceManager* objectResourceManager() const;
170  virtual DtObjectResourceManager* objectResourceManager();
172 
181  virtual const DtSimResourceManager& oldResourceManager() const;
183  virtual DtSimResourceManager& oldResourceManager();
184 
186  virtual DtSimResource* oldLookupResource(const DtString & resourceName);
187  virtual const DtSimResource* oldLookupResource(const DtString & resourceName) const;
188 
191  virtual void oldAddResource(DtSimResource* resource);
192 
194  virtual void oldRemoveResource(DtSimResource* resource);
196 
199  virtual void setNavigationEnabled(bool);
200  virtual bool navigationEnabled() const;
202 
203  virtual void restoreResourcesFromParameters();
204 
207 
208  virtual void setSOR(DtReal center, DtReal size);
209 
210  virtual DtReal SORSize() const;
211  virtual DtReal SORCenter() const;
212 
213  virtual const DtSimSector& SOR() const;
215 
218  virtual void upgradeFromImport();
219 
222  virtual bool isContactHostile(DtRwSensorContactInfo*) const;
223 
225  virtual bool isContactHostile(const DtSimObject*) const;
226 
229  virtual bool isContactHostile(const DtVector& location, int perceivedForce) const;
230 
233  virtual bool inSOR(const DtSimObject* entity) const;
234 
237  virtual bool canFireAt(const DtVector& location) const;
238 
240 
241  virtual void setRequestTaskNeeded(bool value);
242  virtual bool requestTaskNeeded() const;
244 
247  virtual bool hasTasks() const;
248 
250  virtual void clearCurrentTaskMsg(const DtSymbolString& componentName);
251 
253  virtual void clearCurrentTaskMsg(const DtSymbolString& componentName, int taskId);
254 
256 
257  virtual void setCurrentTaskMsg(const DtSymbolString& componentName,
258  const DtTaskMessage & taskMsg);
259 
260  virtual void setCurrentTaskMsg(const DtSymbolString& componentName,
261  const DtTaskMessage & taskMsg, int taskId);
263 
265  virtual const DtTaskStatusList* taskStatusList() const;
266  virtual DtTaskStatusList* taskStatusList();
267 
269  virtual std::string taskStatusListPrintString() const;
270 
272  virtual DtSuspendedTaskStatusList* suspendedTaskStatusList();
274  virtual std::string suspendedTaskListPrintString() const;
275 
277  virtual DtTaskMessage* taskByType(const DtSimTaskMessageType& task) const;
278 
281  virtual DtTaskMessage* currentTaskMsg(const DtSymbolString& componentName) const;
282 
284  virtual DtTaskMessage* currentTaskMsg(const DtSymbolString& componentName, int taskId) const;
285 
287  virtual std::list<DtTaskMessage*> allCurrentTaskMsg(const DtSymbolString& componentName) const;
288 
289  virtual void putSelf(std::string& fp,
290  int indentLevel = 0,
291  bool writeUnspecified = false,
292  const DtFilename& path = DtReaderWriter::appPath()) override;
293 
306  virtual bool placePoints(const DtAttachedTerrain& attachedTerrain,
307  std::vector<DtGroundInteractionPt*> groundInteractionPts,
308  bool* terrainDataAvailable = nullptr) const;
309 
313  virtual void updateSupportPoints(const DtVector& newPosition,
314  const DtReal newHeading);
315 
318 
319  virtual void processSimObjectDeleted( const DtSimObject* pRemovedObject ) override;
321 
323  static DtVrfObjectStateRepository* createRepository(const DtString & name,
324  const DtString & type, DtLocalObject* simObject,
325  DtReaderWriterRegistry* parentRegistry = nullptr);
326 
327  static void addSimObjectStateRepositoryCreatorFcn(const DtString & type,
329 
334 
336  static void setFactory(DtSimObjectStateRepositoryFactory* factory);
338 
341 
342  virtual DtSimulationServices* simulationServices();
343  virtual const DtSimulationServices* simulationServices() const;
345 
348 
349  virtual DtPhysicalWorld* physicalWorld();
350  virtual const DtPhysicalWorld* physicalWorld() const;
352 
355  virtual void tick();
356 
361  virtual void timedTick();
362 
365  virtual void setMinTickPeriod(double minTickPeriod);
366 
368  virtual double minTickPeriod() const;
369 
371  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
372 
374  virtual double minTickPeriodVariance() const;
375 
379  virtual void setNextTickTime(double nextTickTime);
380 
382  virtual double nextTickTime() const;
383 
389  virtual double calculateNextTickTime() const;
390 
391  virtual bool createProcessStateRepositoryManager();
396 
397  virtual const DtVrfProcessStateRepositoryManager*
398  systemProcessStateRepositoryManager() const;
399  virtual DtVrfProcessStateRepositoryManager* systemProcessStateRepositoryManager();
401 
406  virtual DtVrfWeaponPSR* firstWeaponPSR() const;
407 
412  virtual void processObjectGeometry(const DtList& vertices);
413  virtual void processObjectGeometry(const DtLocalVertexList& vertices);
414 
421  virtual void processObjectGeometry();
422 
423  virtual DtGroundInteractionPt* groundCenter();
424  virtual const DtGroundInteractionPt* groundCenter() const;
425 
440  virtual void place(const DtVector& location, bool* dataAvailable = nullptr,
441  bool requireAllData = false);
442 
457  virtual void place(const DtReal heading, bool* dataAvailable = nullptr,
458  bool requireAllData = false);
459 
472  virtual void place(const DtVector& location, const DtReal heading,
473  bool clampToGroundFlag = true, bool* dataAvailable = nullptr,
474  bool requireAllData = false);
475 
478  virtual void reclampToGround();
479 
480  virtual DtReal mass() const;
481  virtual void setMass(const DtReal mass);
482 
483  virtual DtTime lastTimeFiredUpon() const;
484  virtual void setLastTimeFiredUpon(const DtTime time);
485 
486  virtual bool systemEnabled(const DtString& systemName) const;
487  virtual void setSystemEnabled(const DtString& systemName, bool enabled);
488 
490  virtual const DtRwPriorityTargetListMap& targetPriorityList() const;
491  virtual DtRwPriorityTargetListMap& targetPriorityList();
492  virtual void setTargetPriorityList(const DtRwPriorityTargetListMap& targetPriorityList);
493  virtual void appendToTargetPriorityList(const DtRwPriorityTargetListMap& targetPriorityList);
494 
497  virtual int targetPriorityLevel(const DtUUID& obj) const;
498 
504  DtNoSuppression = 0,
505  DtSuppressed1 = 1,
506  DtSuppressed2 = 2,
507  DtSuppressed3 = 3
508  };
509  virtual suppressionLevels suppressionLevel() const;
510  virtual void setSuppressionLevel(const suppressionLevels l);
511  virtual bool isSuppressed() const;
513 
515  virtual const DtString& nonLethalDamageEffect() const;
516  virtual void setNonLethalDamageEffect(const DtString& nonLethalDamageEffect);
517 
520 
521  virtual const DtUUID & occupyingObjectId() const;
522  virtual void setOccupyingObjectId(const DtUUID & objId);
524 
529  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
530  const DtVariableBindingsList& variableBindings) override;
531 
533  virtual int nextTaskId();
534 
536  virtual int nextSuspendId();
537 
543 
544 
547  virtual int spawningTaskId(int subtaskId) const;
548 
549  virtual void addPendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
550  virtual void addPendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
551  virtual bool findPendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
552  virtual bool isSubtasked(const DtSymbolString& componentName) const;
553  virtual bool findPendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
554  virtual void removePendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
555  virtual void removePendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
556  virtual void removeAllPendingSubtaskIds(const DtSymbolString& componentName);
557  virtual void removeAllPendingSubtaskIds(const DtSymbolString& componentName, int taskId);
558  virtual void removeInactiveSubtaskStatus(const DtSymbolString& componentName);
559  virtual void removeInactiveSubtaskStatus(const DtSymbolString& componentName, int taskId);
560  virtual void printPendingSubtaskIds(const DtSymbolString& componentName) const;
561  virtual std::vector<int> currentPendingSubstaskIds(const DtSymbolString& componentName) const;
562  virtual std::vector<int> currentPendingSubstaskIds(const DtSymbolString& componentName, int taskId) const;
563  virtual DtSubtaskStatusEntry* pendingSubtaskStatus(const DtSymbolString& componentName, int subtaskId);
564  virtual DtSubtaskStatusEntry* pendingSubtaskStatus(const DtSymbolString& componentName, int taskId, int subtaskId);
566 
569  virtual DtTaskMessage* pendingSubtask(int subtaskId, DtString& controller) const;
570 
574  virtual bool taskedBySuperiorUponTaskComplete() const;
575 
576  virtual void setParentWasDestroyedWhenEmbarked(bool);
577  virtual bool parentWasDestroyedWhenEmbarked() const;
578 
579  virtual void detachFromParent() override;
580  virtual bool attachToParent(const DtUUID& parent) override;
581  virtual bool attachToParent(DtSimObjectReference parent) override;
582 
586  DtVector localBoundingVolumeCenterPosition() const;
587 
589 
590  void setCurrentHeading(const DtReal heading);
592 
594 
595  virtual const DtRwNLengthUUIDVector& engagementZones() const;
596  virtual void setEngagementZones(const DtRwNLengthUUIDVector&);
598 
600  virtual void restoreStateProperties();
601 
603  virtual void initStatePropertiesNotToBeRestored();
604 
607  virtual void updateCachedStateProperties();
608 
610 
611  virtual void setTasked(const DtSymbolString& componentName, bool tasked);
612  virtual void setTasked(const DtSymbolString& componentName, int taskID, bool tasked);
613  virtual bool tasked(const DtSymbolString& componentName) const;
615 
616 protected:
617 
620  virtual void initializeNextTaskId();
621 
623  virtual void setOrientationRelativeToParent();
624 
625  virtual void postGetSelf() override;
626 
627 public:
628 
633  virtual double sensorSignature(const DtSymbolString& sensorDomain) const;
634 
637  virtual std::list<DtSymbolString> sensorSignatureDomains() const;
638 
645 
646  virtual DtSensorContactInfoList& objectContactList();
647  virtual const DtSensorContactInfoList& objectContactList() const;
649 
651 
652  virtual DtWeaponInfoList* weaponInfoList();
653  virtual const DtWeaponInfoList* weaponInfoList() const;
655 
659 
660  virtual void setUserTarget(const DtUUID& target);
661  virtual DtUUID userTarget() const;
663 
666  virtual DtString stringFromExtendedData(const DtString&) const;
667 
668  virtual const DtAttachedTerrain* terrainAttachedTo() const;
669 
673  typedef std::map<DtString, void*> InternalUserDataMap;
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();
679  {
680  return myInternalUserDataMap;
681  }
683 
684 protected:
686  virtual bool createObjectResourceManager();
687 
689  virtual void createLegacyRWData() override;
690  virtual void restoreFromLegacyRWData() override;
691  virtual void setToLegacyRWData() override;
692 
694  virtual void embarkedParentDeleted();
695 
697  virtual bool createResourceDatabaseLogger();
698 
699 public:
701 
702  static void taskCompleteCallback(const DtVrfObjectMessage* msg, void* usr);
703  virtual void processTaskComplete(const DtVrfObjectMessage* msg);
705 
706  static DtVrfObjectStateRepository * creator(const DtString& name,
707  DtLocalObject* simObject, DtReaderWriterRegistry * parentRegistry);
708 
709 protected:
715 
718 
720 
723 
727 
731 
732  DtReal myMass;
734 
739 
743 
746 
751 
753 
757 
762 
765 
768 
773 
775 
776 protected:
778 
780 
781 protected:
782  //***** Important API change note
784  //*****
790 
796 
800 
804 
806  std::vector<DtString> myStatePropertiesNotToBeRestored;
807 
810 
813 
814  bool myPaused;
815 
817 
820 
821 public:
824 
827 
828  VRF4API_METHOD virtual void setDestroyed(bool isDestroyed);
829  VRF4API_METHOD virtual void setDamageState(int);
830  VRF4API_METHOD virtual const int damageState() const;
831  VRF4API_METHOD virtual int damageState();
832  VRF4API_METHOD virtual bool isDestroyed() const;
834 
837  VRF4API_METHOD virtual void setConcealed(bool);
838 
842 
843  VRF4API_METHOD virtual const DtAppearance appearance() const;
844  VRF4API_METHOD virtual const unsigned int appearanceBits() const;
845  VRF4API_METHOD virtual unsigned int appearanceBits();
846  VRF4API_METHOD virtual void setAppearance(int);
847  VRF4API_METHOD virtual void setAppearance(const DtAppearance& app);
848 
850 
854 
855  VRF4API_METHOD virtual void setCapabilities(int cap);
856  VRF4API_METHOD virtual int capabilities() const;
858 
859  VRF4API_METHOD virtual void setPowerPlantOn(bool);
860  VRF4API_METHOD bool powerPlantOn() const;
861 
862  VRF4API_METHOD virtual void setFrozen(bool);
863  VRF4API_METHOD bool frozen() const;
864 
867  VRF4API_METHOD virtual void setInvisible(bool);
868  VRF4API_METHOD virtual bool invisible() const;
869 
871  VRF4API_METHOD virtual void setHasPlan(bool);
872  VRF4API_METHOD bool hasPlan() const;
873 
875  VRF4API_METHOD virtual void setExecutingPlan(bool);
876  VRF4API_METHOD bool executingPlan() const;
877 
882 
883  VRF4API_METHOD virtual void setOccupantsHidden(bool v);
884  VRF4API_METHOD virtual bool occupantsHidden() const;
886 
888  VRF4API_METHOD virtual void setInvulnerable(bool);
889  VRF4API_METHOD virtual bool invulnerable() const;
890 
892  VRF4API_METHOD virtual void setUndetectable(bool);
893  VRF4API_METHOD virtual bool undetectable() const;
894 
897  VRF4API_METHOD virtual void setInvisibleSetByUser(bool);
898  VRF4API_METHOD virtual bool invisibleSetByUser() const;
899 
907 
908  VRF4API_METHOD DtReal healthPct() const;
909  VRF4API_METHOD void setHealthPct(DtReal pct);
911 
914 
915  VRF4API_METHOD bool firePowerKilled() const;
916  VRF4API_METHOD void setFirePowerKilled(const bool firePowerKilled);
917 
918  VRF4API_METHOD bool mobilityKilled() const;
919  VRF4API_METHOD void setMobilityKilled(const bool mobilityKilled);
920 
921  VRF4API_METHOD bool flaming() const;
922  VRF4API_METHOD void setFlaming(const bool flaming);
923 
924  VRF4API_METHOD bool smoking() const;
925  VRF4API_METHOD void setSmoking(const bool smoking);
927 
929  VRF4API_METHOD bool sensorsKilled() const;
930  VRF4API_METHOD void setSensorsKilled(bool sensorsKilled);
931 
937  VRF4API_METHOD void addSubordinate(const DtSimObject* subordinateEntity);
938 
940  VRF4API_METHOD void removeSubordinate(const DtSimObject* subordinateEntity);
941 
943  VRF4API_METHOD virtual DtSimObjectReference leadEntity();
944 
946  VRF4API_METHOD virtual DtSimObjectReference firstSubordinate();
947 
949  VRF4API_METHOD virtual DtSimObjectReference lastSubordinate();
950 
952  VRF4API_METHOD virtual DtSimObjectReference firstHealthySubordinate();
953 
956 
957  VRF4API_METHOD virtual void setIndependentlyTasked(bool value);
958  VRF4API_METHOD virtual bool independentlyTasked() const;
960 
963 
964  VRF4API_METHOD virtual void setEchelonId(const DtEchelonId& echelonId);
965  VRF4API_METHOD virtual DtEchelonId echelonId();
966  VRF4API_METHOD virtual const DtEchelonId echelonId() const;
968 
969  VRF4API_METHOD virtual bool underFire() const;
970  VRF4API_METHOD virtual void setUnderFire(bool underFire);
971 
972  VRF4API_METHOD virtual void setIsTasked(bool);
973  VRF4API_METHOD bool isTasked() const;
974 
975  VRF4API_METHOD virtual const DtString engagementRules() const;
976  VRF4API_METHOD virtual void setEngagementRules(const DtString& engagementRules);
977 
979 
980  VRF4API_METHOD virtual void setIsSubordinateOfForceLevel(bool yesNo);
981  VRF4API_METHOD virtual bool isSubordinateOfForceLevel() const;
983 
985  VRF4API_METHOD virtual void setupExtendedDataFromParameterData();
986 
988  VRF4API_METHOD virtual void appendExtendedData(const std::map<DtString, DtString>&);
989 
994  VRF4API_METHOD virtual void setExtendedData(const DtString& key, const DtString& value);
995  VRF4API_METHOD virtual void clearExtendedData();
996  VRF4API_METHOD virtual void removeExtendedData(const DtString& key);
997  VRF4API_METHOD virtual const DtString extendedData(const DtString& key) const;
998  VRF4API_METHOD virtual const DtString extendedData(const DtString& key);
999  VRF4API_METHOD const ExtendedData extendedDataMap() const;
1000  VRF4API_METHOD virtual void setExtendedDataMap(const ExtendedData&);
1001  VRF4API_METHOD virtual void setExtendedDataMap(const std::map<std::string, std::string>&);
1002 
1004 
1008  VRF4API_METHOD virtual void setExtendedLabel(int, const DtString& value);
1009  VRF4API_METHOD virtual void clearExtendedLabels();
1010  VRF4API_METHOD virtual DtString extendedLabel(int index) const;
1011  VRF4API_METHOD virtual ExtendedLabels extendedLabels() const;
1012  VRF4API_METHOD virtual void setExtendedLabels(const ExtendedLabels&);
1014 
1015  VRF4API_METHOD bool fuelLevelsFrozen() const;
1016  VRF4API_METHOD bool munitionLevelsFrozen() const;
1017  VRF4API_METHOD bool firePowerDisabled() const;
1018  VRF4API_METHOD const DtVrfObjectParameters* parameters() const;
1019 
1021 
1022  VRF4API_METHOD virtual const DtRwProperties& stateProperties() const;
1023 
1025  VRF4API_METHOD virtual DtRwProperties& stateProperties();
1026 
1027  VRF4API_METHOD virtual void setStateProperties(const DtRwProperties&);
1029 
1031 
1032 
1033  VRF4API_METHOD const DtRwProperties& parameterProperties() const;
1034 
1037  VRF4API_METHOD virtual bool canHaveSubordinates() const;
1038 
1039  VRF4API_METHOD virtual DtSubordinateManager* vrfSubordinates();
1040  VRF4API_METHOD virtual const DtSubordinateManager* vrfSubordinates() const;
1041 
1042  VRF4API_METHOD const makVrf::DtArticulatedPartManager& articulatedParts() const;
1044  VRF4API_METHOD const DtArticulatedPartCollection& artPartList() const;
1046 
1048  //{@
1049  VRF4API_METHOD virtual void addRangeItem(const DtRangeItem&);
1050  VRF4API_METHOD virtual void removeRangeItem(int index);
1051  VRF4API_METHOD virtual void setRangeItems(const DtRangeItems&);
1052  VRF4API_METHOD const DtRangeItems& rangeItems() const;
1053  VRF4API_METHOD DtRangeItems& rangeItems();
1054  VRF4API_METHOD virtual void clearRangeItems();
1056 
1057  VRF4API_METHOD const DtSimObject* parent() const;
1058 
1061  VRF4API_METHOD virtual void setActivity(const DtString&);
1062  VRF4API_METHOD virtual DtString activity() const;
1063 
1065  VRF4API_METHOD void setBlockParachute(bool);
1066  VRF4API_METHOD bool blockParachute() const;
1067  VRF4API_METHOD bool onTerrainSurface() const;
1068 
1069  VRF4API_METHOD DtDeadReckonTypes deadReckoningAlgorithm() const;
1070  VRF4API_METHOD void setDeadReckoningAlgorithm(
1071  DtDeadReckonTypes deadReckoningAlgorithm);
1072 
1074 
1075  VRF4API_METHOD DtThresholder deadReckoningThresholder() const;
1076  VRF4API_METHOD void setDeadReckoningThresholder(
1077  const DtThresholder& thresholder);
1079 };
1080 
1081 #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:63
DtRwBoolean myParentWasDestroyedWhenEmbarked
Set to true when the entity is embarked on a destroyed parent so they do not become destroyed...
Definition: vrfObjectStateRepository.h:761
double myNextTickTime
Definition: vrfObjectStateRepository.h:794
DtTaskStatusList myTaskStatusList
Contains the myTasked and myCurrentTaskMsg members from the DtTaskControllerComponent class...
Definition: vrfObjectStateRepository.h:750
double myLastTickSimTime
Definition: vrfObjectStateRepository.h:795
const int DtPolygonVisibilityTest
Definition: vrfObjectStateRepository.h:74
The articulated part manager maintains a tree of articulated and attached parts for the state reposit...
Definition: articulatedPartManager.h:34
Definition: attachedTerrain.h:46
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:503
DtReal myMass
Definition: vrfObjectStateRepository.h:732
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 &#39;virtual&#39; constructor. Calls all the create&lt;&gt;() methods.
DtRwStringList mySystemsDisabledList
if this object is a subordinate, this is used to write out the name of the parent ...
Definition: vrfObjectStateRepository.h:771
DtRwInt myNextSuspendId
Definition: vrfObjectStateRepository.h:756
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:136
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:133
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
DtObjectResourceManager * myObjectResourceManager
Definition: vrfObjectStateRepository.h:779
bool myPaused
Definition: vrfObjectStateRepository.h:814
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
class DtSimResourceManager:
Definition: simResourceManager.h:38
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:103
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:738
DtVrfProcessStateRepositoryManager * mySystemProcessSRManager
Definition: vrfObjectStateRepository.h:716
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:49
DtSimulationServices * mySimulationServices
Definition: vrfObjectStateRepository.h:717
This class represents the data gathered by a sensor about a particular single sensor contact...
Definition: rwSensorContactInfo.h:68
File: weaponPSR.h.
Definition: vrfWeaponPSR.h:31
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:92
A reader-writer list of DtRwSensorContactInfo elements. Use the DtRwList::add() and remove() methods ...
Definition: sensorContactInfoList.h:32
const DtSimObjectStateRepository & operator=(const DtSimObjectStateRepository &orig)
double myMinTickPeriodVariance
Definition: vrfObjectStateRepository.h:793
DtSensorContactInfoList myObjectContactList
The situational awareness of this object. List of other objects that this object is currently aware o...
Definition: vrfObjectStateRepository.h:799
uuid class
Definition: rwUUID.h:26
DtRwInt mySuppressionLevel
The current enumerated level of suppression, derived from the value.
Definition: vrfObjectStateRepository.h:726
DtGroundInteractionPt myGroundCenter
Definition: vrfObjectStateRepository.h:719
DtSimSector mySectorOfResponsibility
These really apply to a single weapon, and should be part of a weapon controller/actuator suite of so...
Definition: vrfObjectStateRepository.h:742
static DtReaderWriterFactory * factory()
Definition: rangeItem.h:149
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:102
DtRwUUID myUserTarget
Definition: vrfObjectStateRepository.h:774
#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:752
Definition: taskStatusList.h:21
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:73
DtRwInt myNextTaskId
The next available ID that can be assigned to a task for this entity.
Definition: vrfObjectStateRepository.h:755
Class Description: Readable, writable form of DtAppearance.
Definition: rwAppearance.h:16
DtRwBoolean myRequestTaskNeeded
Moved here from the DtLocalTaskManager class.
Definition: vrfObjectStateRepository.h:745
A list of DtSuspendedTaskStatusEntry instances, each representing a different suspend ID...
Definition: suspendedTaskInfo.h:115
DtTime myLastTimeFiredUpon
Under fire parameters.
Definition: vrfObjectStateRepository.h:722
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
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:809
This is the top-level resource manager for a DtLocalObject. The actual resources are stored in DtSimR...
Definition: objectResourceManager.h:21
DtRwString myNonLethalDamageEffect
The current non lethal damage type (sick, faint, etc.). Default value is empty string.
Definition: vrfObjectStateRepository.h:730
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:812
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file. If write unspecified is true, will write entries that are uns...
Definition: echelonId.h:13
bool(* DtVisibilityTest)(double rangeSquared, const DtEntityIdentifier &eyeKey, const DtVector &localEyePoint, const DtVector &localEndPoint, const DtVrfObjectStateRepository *sr)
Definition: vrfObjectStateRepository.h:77
DtVrfStateRepositoryUserExtension * myStateRepositoryUserExtension
Data that is &quot;private&quot; to this object in that it should be the only one that is referencing this data...
Definition: vrfObjectStateRepository.h:713
virtual void setToLegacyRWData()
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
std::map< int, DtString > ExtendedLabels
Definition: vrfObjectStateRepository.h:99
std::map< DtString, DtString > ExtendedData
Definition: vrfObjectStateRepository.h:100
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:714
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:88
double myMinTickPeriod
For performance and memory usage reasons, the copy of the parameter entry that used to be made when c...
Definition: vrfObjectStateRepository.h:792
DtUUID myOccupyingObjectId
Definition: vrfObjectStateRepository.h:733
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Definition: vrfObjectStateRepository.h:816
DtSimResource is an abstract base class that can be used to create a hierarchical resource list of a ...
Definition: simResource.h:42
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:764
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:806
InternalUserDataMap myInternalUserDataMap
Definition: vrfObjectStateRepository.h:772
class DtLocalVertexList:
Definition: localVertexList.h:20
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:22
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:75
static const DtFilename & appPath()
Gets the current working directory. The first time this accessor is called, it determines the current...
DtWeaponInfoList * myWeaponInfoList
List of WeaponInfo classes that provide data on all weapons that have made their information availabl...
Definition: vrfObjectStateRepository.h:803
DtRwPriorityTargetListMap myTargetPriorityList
Target Priority List.
Definition: vrfObjectStateRepository.h:767
Definition: weaponInfoList.h:13
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
virtual DtString type() const
returns DtSimObjectStateRepositoryType

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)