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;
65 
66 namespace makVrf
67 {
68  class DtArticulatedPartStateRepository;
69  class DtArticulatedPartManager;
70 }
71 
72 const int DtEntityVisibilityTest = 1;
75 
76 typedef bool (*DtVisibilityTest)(double rangeSquared, const DtEntityIdentifier& eyeKey,
77  const DtVector& localEyePoint, const DtVector& localEndPoint, const DtVrfObjectStateRepository* sr);
78 
92 {
93 protected:
96 
97 public:
98  typedef std::map<int, DtString> ExtendedLabels;
99  typedef std::map<DtString, DtString> ExtendedData;
100 
102  typedef std::map<DtString, std::map<DtString, DtRwJoystickControl> > JoystickControls;
103 
105  DtVrfObjectStateRepository(DtLocalObject* vrfObject, const DtString& rwName = DtString::nullString(),
106  DtReaderWriterRegistry* parentRegistry = nullptr);
107 
109  virtual ~DtVrfObjectStateRepository();
110 
111 private:
114 
117  const DtVrfObjectStateRepository& orig);
118 
119 public:
120  virtual DtString type() const override;
121 
123  virtual const int objectStateRepositorySubType() const override;
124 
126  virtual const int vrfObjectStateRepositorySubType() const;
127 
128  virtual bool init() override;
129  virtual void initializeFromParameters();
130 
132  boost::signals2::signal<void (DtVrfObjectStateRepository*)> signal_postInitFromParams;
133 
135  boost::signals2::signal<void ()> signal_statePropertiesRestored;
136 
138  virtual void setJoystickMovementControlled(bool);
139  virtual bool joystickMovementControlled() const;
140 
145  virtual DtVrfStateRepositoryUserExtension* userExtension() const;
146 
149  virtual void restoreEntity();
150 
153  virtual void addJoystickControls(const DtRwJoystickControls&);
154  virtual const JoystickControls& joystickControls() const;
156 
167 
168  virtual const DtObjectResourceManager* objectResourceManager() const;
169  virtual DtObjectResourceManager* objectResourceManager();
171 
180  virtual const DtSimResourceManager& oldResourceManager() const;
182  virtual DtSimResourceManager& oldResourceManager();
183 
185  virtual DtSimResource* oldLookupResource(const DtString & resourceName);
186  virtual const DtSimResource* oldLookupResource(const DtString & resourceName) const;
187 
190  virtual void oldAddResource(DtSimResource* resource);
191 
193  virtual void oldRemoveResource(DtSimResource* resource);
195 
198  virtual void setNavigationEnabled(bool);
199  virtual bool navigationEnabled() const;
201 
202  virtual void restoreResourcesFromParameters();
203 
206 
207  virtual void setSOR(DtReal center, DtReal size);
208 
209  virtual DtReal SORSize() const;
210  virtual DtReal SORCenter() const;
211 
212  virtual const DtSimSector& SOR() const;
214 
217  virtual void upgradeFromImport();
218 
221  virtual bool isContactHostile(DtRwSensorContactInfo*) const;
222 
224  virtual bool isContactHostile(const DtSimObject*) const;
225 
228  virtual bool isContactHostile(const DtVector& location, int perceivedForce) const;
229 
232  virtual bool inSOR(const DtSimObject* entity) const;
233 
236  virtual bool canFireAt(const DtVector& location) const;
237 
239 
240  virtual void setRequestTaskNeeded(bool value);
241  virtual bool requestTaskNeeded() const;
243 
246  virtual bool hasTasks() const;
247 
249  virtual void clearCurrentTaskMsg(const DtSymbolString& componentName);
250 
252  virtual void clearCurrentTaskMsg(const DtSymbolString& componentName, int taskId);
253 
255 
256  virtual void setCurrentTaskMsg(const DtSymbolString& componentName,
257  const DtTaskMessage & taskMsg);
258 
259  virtual void setCurrentTaskMsg(const DtSymbolString& componentName,
260  const DtTaskMessage & taskMsg, int taskId);
262 
264  virtual const DtTaskStatusList* taskStatusList() const;
265  virtual DtTaskStatusList* taskStatusList();
266  virtual DtSuspendedTaskStatusList* suspendedTaskStatusList();
267 
269  virtual DtTaskMessage* taskByType(const DtSimTaskMessageType& task) const;
270 
273  virtual DtTaskMessage* currentTaskMsg(const DtSymbolString& componentName) const;
274 
276  virtual DtTaskMessage* currentTaskMsg(const DtSymbolString& componentName, int taskId) const;
277 
279  virtual std::list<DtTaskMessage*> allCurrentTaskMsg(const DtSymbolString& componentName) const;
280 
281  virtual void putSelf(std::string& fp,
282  int indentLevel = 0,
283  bool writeUnspecified = false,
284  const DtFilename& path = DtReaderWriter::appPath()) override;
285 
298  virtual bool placePoints(const DtAttachedTerrain& attachedTerrain,
299  std::vector<DtGroundInteractionPt*> groundInteractionPts,
300  bool* terrainDataAvailable = nullptr) const;
301 
305  virtual void updateSupportPoints(const DtVector& newPosition,
306  const DtReal newHeading);
307 
310 
311  virtual void processSimObjectDeleted( const DtSimObject* pRemovedObject ) override;
313 
315  static DtVrfObjectStateRepository* createRepository(const DtString & name,
316  const DtString & type, DtLocalObject* simObject,
317  DtReaderWriterRegistry* parentRegistry = nullptr);
318 
319  static void addSimObjectStateRepositoryCreatorFcn(const DtString & type,
321 
326 
328  static void setFactory(DtSimObjectStateRepositoryFactory* factory);
330 
333 
334  virtual DtSimulationServices* simulationServices();
335  virtual const DtSimulationServices* simulationServices() const;
337 
340 
341  virtual DtPhysicalWorld* physicalWorld();
342  virtual const DtPhysicalWorld* physicalWorld() const;
344 
347  virtual void tick();
348 
353  virtual void timedTick();
354 
357  virtual void setMinTickPeriod(double minTickPeriod);
358 
360  virtual double minTickPeriod() const;
361 
363  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
364 
366  virtual double minTickPeriodVariance() const;
367 
371  virtual void setNextTickTime(double nextTickTime);
372 
374  virtual double nextTickTime() const;
375 
381  virtual double calculateNextTickTime() const;
382 
383  virtual bool createProcessStateRepositoryManager();
388 
389  virtual const DtVrfProcessStateRepositoryManager*
390  systemProcessStateRepositoryManager() const;
391  virtual DtVrfProcessStateRepositoryManager* systemProcessStateRepositoryManager();
393 
398  virtual DtVrfWeaponPSR* firstWeaponPSR() const;
399 
404  virtual void processObjectGeometry(const DtList& vertices);
405  virtual void processObjectGeometry(const DtLocalVertexList& vertices);
406 
413  virtual void processObjectGeometry();
414 
415  virtual DtGroundInteractionPt* groundCenter();
416  virtual const DtGroundInteractionPt* groundCenter() const;
417 
432  virtual void place(const DtVector& location, bool* dataAvailable = nullptr,
433  bool requireAllData = false);
434 
449  virtual void place(const DtReal heading, bool* dataAvailable = nullptr,
450  bool requireAllData = false);
451 
464  virtual void place(const DtVector& location, const DtReal heading,
465  bool clampToGroundFlag = true, bool* dataAvailable = nullptr,
466  bool requireAllData = false);
467 
470  virtual void reclampToGround();
471 
472  virtual DtReal mass() const;
473  virtual void setMass(const DtReal mass);
474 
475  virtual DtTime lastTimeFiredUpon() const;
476  virtual void setLastTimeFiredUpon(const DtTime time);
477 
478  virtual bool systemEnabled(const DtString& systemName) const;
479  virtual void setSystemEnabled(const DtString& systemName, bool enabled);
480 
482  virtual const DtRwPriorityTargetListMap& targetPriorityList() const;
483  virtual DtRwPriorityTargetListMap& targetPriorityList();
484  virtual void setTargetPriorityList(const DtRwPriorityTargetListMap& targetPriorityList);
485  virtual void appendToTargetPriorityList(const DtRwPriorityTargetListMap& targetPriorityList);
486 
489  virtual int targetPriorityLevel(const DtUUID& obj) const;
490 
496  DtNoSuppression = 0,
497  DtSuppressed1 = 1,
498  DtSuppressed2 = 2,
499  DtSuppressed3 = 3
500  };
501  virtual suppressionLevels suppressionLevel() const;
502  virtual void setSuppressionLevel(const suppressionLevels l);
503  virtual bool isSuppressed() const;
505 
507  virtual const DtString& nonLethalDamageEffect() const;
508  virtual void setNonLethalDamageEffect(const DtString& nonLethalDamageEffect);
509 
512 
513  virtual const DtUUID & occupyingObjectId() const;
514  virtual void setOccupyingObjectId(const DtUUID & objId);
516 
521  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
522  const DtVariableBindingsList& variableBindings) override;
523 
525  virtual int nextTaskId();
526 
528  virtual int nextSuspendId();
529 
535 
536 
539  virtual int spawningTaskId(int subtaskId) const;
540 
541  virtual void addPendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
542  virtual void addPendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
543  virtual bool findPendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
544  virtual bool isSubtasked(const DtSymbolString& componentName) const;
545  virtual bool findPendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
546  virtual void removePendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
547  virtual void removePendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
548  virtual void removeAllPendingSubtaskIds(const DtSymbolString& componentName);
549  virtual void removeAllPendingSubtaskIds(const DtSymbolString& componentName, int taskId);
550  virtual void removeInactiveSubtaskStatus(const DtSymbolString& componentName);
551  virtual void removeInactiveSubtaskStatus(const DtSymbolString& componentName, int taskId);
552  virtual void printPendingSubtaskIds(const DtSymbolString& componentName) const;
553  virtual std::vector<int> currentPendingSubstaskIds(const DtSymbolString& componentName) const;
554  virtual std::vector<int> currentPendingSubstaskIds(const DtSymbolString& componentName, int taskId) const;
555  virtual DtSubtaskStatusEntry* pendingSubtaskStatus(const DtSymbolString& componentName, int subtaskId);
556  virtual DtSubtaskStatusEntry* pendingSubtaskStatus(const DtSymbolString& componentName, int taskId, int subtaskId);
558 
561  virtual DtTaskMessage* pendingSubtask(int subtaskId, DtString& controller) const;
562 
566  virtual bool taskedBySuperiorUponTaskComplete() const;
567 
568  virtual void setParentWasDestroyedWhenEmbarked(bool);
569  virtual bool parentWasDestroyedWhenEmbarked() const;
570 
571  virtual void detachFromParent() override;
572  virtual bool attachToParent(const DtUUID& parent) override;
573  virtual bool attachToParent(DtSimObjectReference parent) override;
574 
578  DtVector localBoundingVolumeCenterPosition() const;
579 
581 
582  void setCurrentHeading(const DtReal heading);
584 
586 
587  virtual const DtRwNLengthUUIDVector& engagementZones() const;
588  virtual void setEngagementZones(const DtRwNLengthUUIDVector&);
590 
592  virtual void restoreStateProperties();
593 
595  virtual void initStatePropertiesNotToBeRestored();
596 
599  virtual void updateCachedStateProperties();
600 
602 
603  virtual void setTasked(const DtSymbolString& componentName, bool tasked);
604  virtual void setTasked(const DtSymbolString& componentName, int taskID, bool tasked);
605  virtual bool tasked(const DtSymbolString& componentName) const;
607 
608 protected:
609 
612  virtual void initializeNextTaskId();
613 
615  virtual void setOrientationRelativeToParent();
616 
617  virtual void postGetSelf() override;
618 
619 public:
620 
625  virtual double sensorSignature(const DtSymbolString& sensorDomain) const;
626 
629  virtual std::list<DtSymbolString> sensorSignatureDomains() const;
630 
637 
638  virtual DtSensorContactInfoList& objectContactList();
639  virtual const DtSensorContactInfoList& objectContactList() const;
641 
643 
644  virtual DtWeaponInfoList* weaponInfoList();
645  virtual const DtWeaponInfoList* weaponInfoList() const;
647 
651 
652  virtual void setUserTarget(const DtUUID& target);
653  virtual DtUUID userTarget() const;
655 
658  virtual DtString stringFromExtendedData(const DtString&) const;
659 
660  virtual const DtAttachedTerrain* terrainAttachedTo() const;
661 
665  typedef std::map<DtString, void*> InternalUserDataMap;
666  virtual void setInternalUserData(const DtString& s, void*);
667  virtual void* getInternalUserData(const DtString&) const;
668  virtual void removeInternalUserData(const DtString&);
669  virtual void clearInternalUserData();
671  {
672  return myInternalUserDataMap;
673  }
675 
676 protected:
678  virtual bool createObjectResourceManager();
679 
681  virtual void createLegacyRWData() override;
682  virtual void restoreFromLegacyRWData() override;
683  virtual void setToLegacyRWData() override;
684 
686  virtual void embarkedParentDeleted();
687 
688 public:
690 
691  static void taskCompleteCallback(const DtVrfObjectMessage* msg, void* usr);
692  virtual void processTaskComplete(const DtVrfObjectMessage* msg);
694 
695  static DtVrfObjectStateRepository * creator(const DtString& name,
696  DtLocalObject* simObject, DtReaderWriterRegistry * parentRegistry);
697 
698 protected:
704 
707 
709 
712 
716 
720 
721  DtReal myMass;
723 
728 
732 
735 
740 
742 
746 
751 
754 
757 
762 
764 
765 protected:
767 
769 
770 protected:
771  //***** Important API change note
773  //*****
779 
785 
789 
793 
795  std::vector<DtString> myStatePropertiesNotToBeRestored;
796 
799 
802 
803  bool myPaused;
804 
806 
807 public:
810 
813 
814  VRF4API_METHOD virtual void setDestroyed(bool isDestroyed);
815  VRF4API_METHOD virtual void setDamageState(int);
816  VRF4API_METHOD virtual const int damageState() const;
817  VRF4API_METHOD virtual int damageState();
818  VRF4API_METHOD virtual bool isDestroyed() const;
820 
823  VRF4API_METHOD virtual void setConcealed(bool);
824 
828 
829  VRF4API_METHOD virtual const DtAppearance appearance() const;
830  VRF4API_METHOD virtual const unsigned int appearanceBits() const;
831  VRF4API_METHOD virtual unsigned int appearanceBits();
832  VRF4API_METHOD virtual void setAppearance(int);
833  VRF4API_METHOD virtual void setAppearance(const DtAppearance& app);
834 
836 
840 
841  VRF4API_METHOD virtual void setCapabilities(int cap);
842  VRF4API_METHOD virtual int capabilities() const;
844 
845  VRF4API_METHOD virtual void setPowerPlantOn(bool);
846  VRF4API_METHOD bool powerPlantOn() const;
847 
848  VRF4API_METHOD virtual void setFrozen(bool);
849  VRF4API_METHOD bool frozen() const;
850 
853  VRF4API_METHOD virtual void setInvisible(bool);
854  VRF4API_METHOD virtual bool invisible() const;
855 
857  VRF4API_METHOD virtual void setHasPlan(bool);
858  VRF4API_METHOD bool hasPlan() const;
859 
861  VRF4API_METHOD virtual void setExecutingPlan(bool);
862  VRF4API_METHOD bool executingPlan() const;
863 
868 
869  VRF4API_METHOD virtual void setOccupantsHidden(bool v);
870  VRF4API_METHOD virtual bool occupantsHidden() const;
872 
874  VRF4API_METHOD virtual void setInvulnerable(bool);
875  VRF4API_METHOD virtual bool invulnerable() const;
876 
878  VRF4API_METHOD virtual void setUndetectable(bool);
879  VRF4API_METHOD virtual bool undetectable() const;
880 
883  VRF4API_METHOD virtual void setInvisibleSetByUser(bool);
884  VRF4API_METHOD virtual bool invisibleSetByUser() const;
885 
893 
894  VRF4API_METHOD DtReal healthPct() const;
895  VRF4API_METHOD void setHealthPct(DtReal pct);
897 
900 
901  VRF4API_METHOD bool firePowerKilled() const;
902  VRF4API_METHOD void setFirePowerKilled(const bool firePowerKilled);
903 
904  VRF4API_METHOD bool mobilityKilled() const;
905  VRF4API_METHOD void setMobilityKilled(const bool mobilityKilled);
906 
907  VRF4API_METHOD bool flaming() const;
908  VRF4API_METHOD void setFlaming(const bool flaming);
909 
910  VRF4API_METHOD bool smoking() const;
911  VRF4API_METHOD void setSmoking(const bool smoking);
913 
915  VRF4API_METHOD bool sensorsKilled() const;
916  VRF4API_METHOD void setSensorsKilled(bool sensorsKilled);
917 
923  VRF4API_METHOD void addSubordinate(const DtSimObject* subordinateEntity);
924 
926  VRF4API_METHOD void removeSubordinate(const DtSimObject* subordinateEntity);
927 
929  VRF4API_METHOD virtual DtSimObjectReference leadEntity();
930 
932  VRF4API_METHOD virtual DtSimObjectReference firstSubordinate();
933 
935  VRF4API_METHOD virtual DtSimObjectReference lastSubordinate();
936 
938  VRF4API_METHOD virtual DtSimObjectReference firstHealthySubordinate();
939 
942 
943  VRF4API_METHOD virtual void setIndependentlyTasked(bool value);
944  VRF4API_METHOD virtual bool independentlyTasked() const;
946 
949 
950  VRF4API_METHOD virtual void setEchelonId(const DtEchelonId& echelonId);
951  VRF4API_METHOD virtual DtEchelonId echelonId();
952  VRF4API_METHOD virtual const DtEchelonId echelonId() const;
954 
955  VRF4API_METHOD virtual bool underFire() const;
956  VRF4API_METHOD virtual void setUnderFire(bool underFire);
957 
958  VRF4API_METHOD virtual void setIsTasked(bool);
959  VRF4API_METHOD bool isTasked() const;
960 
961  VRF4API_METHOD virtual const DtString engagementRules() const;
962  VRF4API_METHOD virtual void setEngagementRules(const DtString& engagementRules);
963 
965 
966  VRF4API_METHOD virtual void setIsSubordinateOfForceLevel(bool yesNo);
967  VRF4API_METHOD virtual bool isSubordinateOfForceLevel() const;
969 
971  VRF4API_METHOD virtual void setupExtendedDataFromParameterData();
972 
974  VRF4API_METHOD virtual void appendExtendedData(const std::map<DtString, DtString>&);
975 
980  VRF4API_METHOD virtual void setExtendedData(const DtString& key, const DtString& value);
981  VRF4API_METHOD virtual void clearExtendedData();
982  VRF4API_METHOD virtual void removeExtendedData(const DtString& key);
983  VRF4API_METHOD virtual const DtString extendedData(const DtString& key) const;
984  VRF4API_METHOD virtual const DtString extendedData(const DtString& key);
985  VRF4API_METHOD const ExtendedData extendedDataMap() const;
986  VRF4API_METHOD virtual void setExtendedDataMap(const ExtendedData&);
987  VRF4API_METHOD virtual void setExtendedDataMap(const std::map<std::string, std::string>&);
988 
990 
994  VRF4API_METHOD virtual void setExtendedLabel(int, const DtString& value);
995  VRF4API_METHOD virtual void clearExtendedLabels();
996  VRF4API_METHOD virtual DtString extendedLabel(int index) const;
997  VRF4API_METHOD virtual ExtendedLabels extendedLabels() const;
998  VRF4API_METHOD virtual void setExtendedLabels(const ExtendedLabels&);
1000 
1001  VRF4API_METHOD bool fuelLevelsFrozen() const;
1002  VRF4API_METHOD bool munitionLevelsFrozen() const;
1003  VRF4API_METHOD bool firePowerDisabled() const;
1004  VRF4API_METHOD const DtVrfObjectParameters* parameters() const;
1005 
1007 
1008  VRF4API_METHOD virtual const DtRwProperties& stateProperties() const;
1009 
1011  VRF4API_METHOD virtual DtRwProperties& stateProperties();
1012 
1013  VRF4API_METHOD virtual void setStateProperties(const DtRwProperties&);
1015 
1017 
1018 
1019  VRF4API_METHOD const DtRwProperties& parameterProperties() const;
1020 
1023  VRF4API_METHOD virtual bool canHaveSubordinates() const;
1024 
1025  VRF4API_METHOD virtual DtSubordinateManager* vrfSubordinates();
1026  VRF4API_METHOD virtual const DtSubordinateManager* vrfSubordinates() const;
1027 
1028  VRF4API_METHOD const makVrf::DtArticulatedPartManager& articulatedParts() const;
1030  VRF4API_METHOD const DtArticulatedPartCollection& artPartList() const;
1032 
1034  //{@
1035  VRF4API_METHOD virtual void addRangeItem(const DtRangeItem&);
1036  VRF4API_METHOD virtual void removeRangeItem(int index);
1037  VRF4API_METHOD virtual void setRangeItems(const DtRangeItems&);
1038  VRF4API_METHOD const DtRangeItems& rangeItems() const;
1039  VRF4API_METHOD DtRangeItems& rangeItems();
1040  VRF4API_METHOD virtual void clearRangeItems();
1042 
1043  VRF4API_METHOD const DtSimObject* parent() const;
1044 
1047  VRF4API_METHOD virtual void setActivity(const DtString&);
1048  VRF4API_METHOD virtual DtString activity() const;
1049 
1051  VRF4API_METHOD void setBlockParachute(bool);
1052  VRF4API_METHOD bool blockParachute() const;
1053  VRF4API_METHOD bool onTerrainSurface() const;
1054 
1055  VRF4API_METHOD DtDeadReckonTypes deadReckoningAlgorithm() const;
1056  VRF4API_METHOD void setDeadReckoningAlgorithm(
1057  DtDeadReckonTypes deadReckoningAlgorithm);
1058 
1060 
1061  VRF4API_METHOD DtThresholder deadReckoningThresholder() const;
1062  VRF4API_METHOD void setDeadReckoningThresholder(
1063  const DtThresholder& thresholder);
1065 };
1066 
1067 #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:750
double myNextTickTime
Definition: vrfObjectStateRepository.h:783
DtTaskStatusList myTaskStatusList
Contains the myTasked and myCurrentTaskMsg members from the DtTaskControllerComponent class...
Definition: vrfObjectStateRepository.h:739
double myLastTickSimTime
Definition: vrfObjectStateRepository.h:784
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: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:670
suppressionLevels
The current suppression level. An enumeration with 4 values. Determined from suppression value in the...
Definition: vrfObjectStateRepository.h:495
DtReal myMass
Definition: vrfObjectStateRepository.h:721
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:760
DtRwInt myNextSuspendId
Definition: vrfObjectStateRepository.h:745
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
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:768
bool myPaused
Definition: vrfObjectStateRepository.h:803
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: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:727
DtVrfProcessStateRepositoryManager * mySystemProcessSRManager
Definition: vrfObjectStateRepository.h:705
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:49
DtSimulationServices * mySimulationServices
Definition: vrfObjectStateRepository.h:706
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
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
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:782
DtSensorContactInfoList myObjectContactList
The situational awareness of this object. List of other objects that this object is currently aware o...
Definition: vrfObjectStateRepository.h:788
uuid class
Definition: rwUUID.h:26
DtRwInt mySuppressionLevel
The current enumerated level of suppression, derived from the value.
Definition: vrfObjectStateRepository.h:715
DtGroundInteractionPt myGroundCenter
Definition: vrfObjectStateRepository.h:708
DtSimSector mySectorOfResponsibility
These really apply to a single weapon, and should be part of a weapon controller/actuator suite of so...
Definition: vrfObjectStateRepository.h:731
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:763
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSuspendedTaskStatusList mySuspendedTaskStatusList
Definition: vrfObjectStateRepository.h:741
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:72
DtRwInt myNextTaskId
The next available ID that can be assigned to a task for this entity.
Definition: vrfObjectStateRepository.h:744
Class Description: Readable, writable form of DtAppearance.
Definition: rwAppearance.h:16
DtRwBoolean myRequestTaskNeeded
Moved here from the DtLocalTaskManager class.
Definition: vrfObjectStateRepository.h:734
A list of DtSuspendedTaskStatusEntry instances, each representing a different suspend ID...
Definition: suspendedTaskInfo.h:115
DtTime myLastTimeFiredUpon
Under fire parameters.
Definition: vrfObjectStateRepository.h:711
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:798
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:719
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:801
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:76
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:702
virtual void setToLegacyRWData()
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
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:703
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:781
DtUUID myOccupyingObjectId
Definition: vrfObjectStateRepository.h:722
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Definition: vrfObjectStateRepository.h:805
DtSimResource is an abstract base class that can be used to create a hierarchical resource list of a ...
Definition: simResource.h:41
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:766
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:665
DtRwBoolean myNavigationEnabled
Whether or not this object can navigate in navigation areas. Default is true.
Definition: vrfObjectStateRepository.h:753
Definition: rwStringList.h:20
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
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:795
InternalUserDataMap myInternalUserDataMap
Definition: vrfObjectStateRepository.h:761
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:74
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:792
DtRwPriorityTargetListMap myTargetPriorityList
Target Priority List.
Definition: vrfObjectStateRepository.h:756
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 Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)