VR-Forces 4.10 Class Documentation
 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 
14 #include "vrfobjparam/simSector.h"
17 #include "vrfutil/echelonId.h"
18 #include <readerWriter/rwInt.h>
25 #include "vrfobjcore/vrfObject.h"
30 #include "tbb/concurrent_hash_map.h"
31 #include "tbb/mutex.h"
32 #include <vrfutil/rwUUID.h>
34 
36 #include <vlpi/appearance.h>
37 #include <vlpi/artPartSpec.h>
38 #include <vlutil/vlString.h>
39 #include <vlpi/thresholder.h>
40 
42 #include <vlutil/vlConfig.h>
43 #include <map>
44 #include <list>
45 
46 #include "boost/logic/tribool.hpp"
47 
49 class DtVrfObject;
52 class DtSimManager;
54 class DtVrfWeaponPSR;
55 class DtRwAppearance;
56 class DtVrfObject;
57 class DtSimManager;
58 class DtTaskMessage;
67 class DtVrfObjectMessage;
69 
70 const int DtEntityVisibilityTest = 1;
73 
74 typedef bool (*DtVisibilityTest)(double rangeSquared, const DtEntityIdentifier& eyeKey,
75  const DtVector& localEyePoint, const DtVector& localEndPoint, const DtVrfObjectStateRepository* sr);
76 
80  void* usr);
81 
88 {
89 protected:
92 
93 public:
94  typedef std::map<DtString, DtString> ExtendedData;
95  typedef std::map<int, DtString> ExtendedLabels;
96 
98  typedef std::map<DtString, std::map<DtString, DtRwJoystickControl> > JoystickControls;
99 
102  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
103  const DtString& rwName = DtString::nullString(),
104  DtReaderWriterRegistry* parentRegistry = 0);
105 
108  const DtString& rwName = DtString::nullString(),
109  DtReaderWriterRegistry* parentRegistry = 0);
110 
113  const DtVrfObjectStateRepository& orig);
114 
116  virtual ~DtVrfObjectStateRepository();
117 
120  const DtString& rwName = DtString::nullString(),
121  DtReaderWriterRegistry* parentRegistry = 0) const;
122 
123  virtual DtString type() const;
124 
126  virtual const int objectStateRepositorySubType() const;
127 
129  virtual const int vrfObjectStateRepositorySubType() const;
130 
131  virtual bool init();
132 
133  virtual bool createParameters();
134  virtual void initializeFromParameters();
135  virtual const DtVrfObjectParameters* vrfParameters() const;
136 
139  virtual void setConcealed(bool);
140 
142  virtual void setJoystickMovementControlled(bool);
143  virtual bool joystickMovementControlled() const;
144 
149  virtual DtVrfStateRepositoryUserExtension* userExtension() const;
150 
153  virtual void restoreEntity();
154 
156 
157  virtual void addRestoredCallback(
159  virtual void removeRestoredCallback(
161  virtual void invokeRestoredCallbacks();
163 
166  virtual void updateCachedStateProperties();
167 
172  virtual void setExtendedData(const DtString& key, const DtString& value);
173  virtual void clearExtendedData();
174  virtual void removeExtendedData(const DtString& key);
175  virtual DtString extendedData(const DtString& key) const;
177  {
178  return myExtendedData;
179  }
180  virtual void setExtendedDataMap(const ExtendedData&);
181  virtual void setExtendedDataMap(const std::map<std::string, std::string>&);
182 
184  virtual void setupExtendedDataFromParameterData();
186 
190  virtual void setExtendedLabel(int, const DtString& value);
191  virtual void clearExtendedLabels();
192  virtual DtString extendedLabel(int index) const;
193  virtual ExtendedLabels extendedLabels() const;
194  virtual void setExtendedLabels(const ExtendedLabels&);
196 
199  virtual void addJoystickControls(const DtRwJoystickControls&);
200  virtual const JoystickControls& joystickControls() const;
202 
205  virtual void setActivity(const DtString&);
206  virtual DtString activity() const;
207 
218 
219  virtual const DtObjectResourceManager* objectResourceManager() const;
220  virtual DtObjectResourceManager* objectResourceManager();
222 
231  virtual const DtSimResourceManager& oldResourceManager() const;
233  virtual DtSimResourceManager& oldResourceManager();
234 
236  virtual DtSimResource* oldLookupResource(const DtString & resourceName);
237  virtual const DtSimResource* oldLookupResource(const DtString & resourceName) const;
238 
241  virtual void oldAddResource(DtSimResource* resource);
242 
244  virtual void oldRemoveResource(DtSimResource* resource);
246 
249  virtual void setNavigationEnabled(bool);
250  virtual bool navigationEnabled() const;
252 
254  virtual bool wouldBeRecursiveAttach(DtSimObjectStateRepository* parent) const;
255 
256  virtual void restoreResourcesFromParameters();
257 
260 
261  virtual void setSOR(DtReal center, DtReal size);
262 
263  virtual DtReal SORSize() const;
264  virtual DtReal SORCenter() const;
265 
266  virtual const DtSimSector& SOR() const;
268 
271  virtual bool isContactHostile(DtRwSensorContactInfo*) const;
272 
274  virtual bool isContactHostile(const DtVrfObject*) const;
275 
278  virtual bool isContactHostile(const DtVector& location, int perceivedForce) const;
279 
282  virtual bool inSOR(const DtVrfObject* entity) const;
283 
286  virtual bool canFireAt(const DtVector& location) const;
287 
288  virtual const DtString& engagementRules() const;
289  virtual void setEngagementRules(const DtString& engagementRules);
290 
292 
293  virtual void setRequestTaskNeeded(bool value);
294  virtual bool requestTaskNeeded() const;
296 
298 
299  virtual void setTasked(const DtSymbolString& componentName, bool tasked);
300  virtual void setTasked(const DtSymbolString& componentName, int taskID, bool tasked);
301  virtual bool tasked(const DtSymbolString& componentName) const;
303 
306  virtual bool isTasked() const;
307 
309  virtual void clearCurrentTaskMsg(const DtSymbolString& componentName);
310 
312  virtual void clearCurrentTaskMsg(const DtSymbolString& componentName, int taskId);
313 
315 
316  virtual void setCurrentTaskMsg(const DtSymbolString& componentName,
317  const DtTaskMessage & taskMsg);
318 
319  virtual void setCurrentTaskMsg(const DtSymbolString& componentName,
320  const DtTaskMessage & taskMsg, int taskId);
322 
324  virtual const DtTaskStatusList* taskStatusList() const;
325  virtual DtTaskStatusList* taskStatusList();
326  virtual DtSuspendedTaskStatusList* suspendedTaskStatusList();
327 
329  virtual DtTaskMessage* taskByType(const DtSimTaskMessageType& task) const;
330 
333  virtual DtTaskMessage* currentTaskMsg(const DtSymbolString& componentName) const;
334 
336  virtual DtTaskMessage* currentTaskMsg(const DtSymbolString& componentName, int taskId) const;
337 
339  virtual std::list<DtTaskMessage*> allCurrentTaskMsg(const DtSymbolString& componentName) const;
340 
342  static bool shouldArchiveExtendedAttribute(const DtString&);
343  static void doNotArchiveAttribute(const DtString&, bool);
344 
345  virtual void putSelf(std::string& fp,
346  int indentLevel = 0,
347  bool writeUnspecified = false,
348  const DtFilename& path = DtReaderWriter::appPath());
349 
362  virtual bool placePoints(const DtAttachedTerrain& attachedTerrain,
363  std::vector<DtGroundInteractionPt*> groundInteractionPts,
364  bool* terrainDataAvailable = 0) const;
365 
369  virtual void updateSupportPoints(const DtVector& newPosition,
370  const DtReal newHeading);
371 
374 
375  virtual void setIndependentlyTasked(bool value);
376  virtual bool independentlyTasked() const;
378 
381 
382  virtual bool processCompleteAttachment(const DtVrfObject*);
383  static void objectAboutToBeRemovedCallback(const DtVrfObject * vrfObject, void * usr);
384  virtual void processObjectAboutToBeRemovedCallback(const DtVrfObject * vrfObject);
386 
388  static DtVrfObjectStateRepository* createRepository(const DtString & name,
389  const DtString & type, DtVrfObject* simObject,
390  const DtObjectType & objectType, DtVrfObjectParameters* parameters,
391  DtReaderWriterRegistry* parentRegistry = 0);
392 
393  static void addSimObjectStateRepositoryCreatorFcn(const DtString & type,
395 
400 
402  static void setFactory(DtSimObjectStateRepositoryFactory* factory);
404 
407 
408  virtual const DtVrfObjectParameters* parameterEntry() const;
409  virtual void setParameterEntry(DtVrfObjectParameters* parameterEntry);
411 
413  virtual const DtVrfObjectParameters* parameters() const;
414 
416  virtual DtVrfObjectParameters* modifiableParameters();
419  virtual void setupParameterInheritance();
420 
423 
424  virtual DtForceType forceType() const;
425  virtual void setForceType(DtForceType force);
427 
429  virtual bool createAttachments();
430 
432  DtArticulatedPartStateRepository* addPart(DtArtPartType partType);
433  void removePart(DtArtPartType partType);
434  DtArticulatedPartStateRepository* part(DtArtPartType partType);
435 
436  DtArticulatedPartStateRepository* findDescendantByType(
437  DtArtPartType childType);
438 
442 
443  virtual bool createAppearance();
444  virtual const DtAppearance* appearance() const;
445  virtual DtAppearance* appearance();
447 
451 
452  virtual void setCapabilities(int cap);
453  virtual int capabilities() const;
455 
458 
459  virtual void setDestroyed(bool isDestroyed);
460  virtual bool isDestroyed() const;
462 
465  virtual void setInvisible(bool);
466  virtual bool invisible() const;
467 
472 
473  virtual void setOccupantsHidden(bool v);
474  virtual bool occupantsHidden() const;
476 
478  virtual void setInvulnerable(bool);
479  virtual bool invulnerable() const;
480 
482  virtual void setUndetectable(bool);
483  virtual bool undetectable() const;
484 
486  virtual void setBlockParachute(bool);
487  virtual bool blockParachute() const;
488 
491  virtual void setInvisibleSetByUser(bool);
492  virtual bool invisibleSetByUser() const;
493 
501 
502  DtReal healthPct() const;
503  void setHealthPct(DtReal pct);
505 
508 
509  bool firePowerKilled() const;
510  void setFirePowerKilled(const bool firePowerKilled);
511 
512  bool mobilityKilled() const;
513  void setMobilityKilled(const bool mobilityKilled);
514 
515  bool flaming() const;
516  void setFlaming(const bool flaming);
517 
518  bool smoking() const;
519  void setSmoking(const bool smoking);
521 
523  bool sensorsKilled() const;
524  void setSensorsKilled(bool sensorsKilled);
525 
529  bool isEntity() const;
530 
535  bool isLocal() const;
536 
541  bool isAggregate() const;
542 
545 
546  virtual DtVrfSubordinateManager* subordinates();
547  virtual const DtVrfSubordinateManager* subordinates() const;
549 
555  void addSubordinate(const DtVrfObject* subordinateEntity);
556 
558  void removeSubordinate(const DtVrfObject* subordinateEntity);
559 
561  virtual DtSharedVrfObjectReference leadEntity() const;
562 
564  virtual DtSharedVrfObjectReference firstSubordinate() const;
565 
567  virtual DtSharedVrfObjectReference lastSubordinate() const;
568 
570  virtual DtSharedVrfObjectReference firstHealthySubordinate() const;
571 
574 
575  virtual DtSimManager* simManager();
576  virtual const DtSimManager* simManager() const;
578 
581 
582  virtual DtPhysicalWorld* physicalWorld();
583  virtual const DtPhysicalWorld* physicalWorld() const;
585 
588  virtual void tick();
589 
594  virtual void timedTick();
595 
598  virtual void setMinTickPeriod(double minTickPeriod);
599 
601  virtual double minTickPeriod() const;
602 
604  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
605 
607  virtual double minTickPeriodVariance() const;
608 
612  virtual void setNextTickTime(double nextTickTime);
613 
615  virtual double nextTickTime() const;
616 
622  virtual double calculateNextTickTime() const;
623 
624  virtual bool createSubordinates();
625  virtual DtVrfSubordinateManager* vrfSubordinates();
626  virtual const DtVrfSubordinateManager* vrfSubordinates() const;
627 
628  virtual bool createProcessStateRepositoryManager();
633 
634  virtual const DtVrfProcessStateRepositoryManager*
635  systemProcessStateRepositoryManager() const;
636  virtual DtVrfProcessStateRepositoryManager* systemProcessStateRepositoryManager();
638 
641  virtual const DtTaitBryan& localOrientationWrtDatabase() const;
642  virtual void setLocalOrientationWrtDatabase(
643  const DtTaitBryan& localOrientation);
644 
649  virtual DtVrfWeaponPSR* firstWeaponPSR() const;
650 
655  virtual void processObjectGeometry(const DtList& vertices);
656  virtual void processObjectGeometry(const DtLocalVertexList& vertices);
657 
664  virtual void processObjectGeometry();
665 
666  virtual const DtVrfObjectParameters* vrfBaseParameters() const;
667 
668  virtual DtGroundInteractionPt* groundCenter();
669  virtual const DtGroundInteractionPt* groundCenter() const;
670 
685  virtual void place(const DtVector& location, bool* dataAvailable = 0,
686  bool requireAllData = false);
687 
702  virtual void place(const DtReal heading, bool* dataAvailable = 0,
703  bool requireAllData = false);
704 
717  virtual void place(const DtVector& location, const DtReal heading,
718  bool clampToGroundFlag = true, bool* dataAvailable = 0,
719  bool requireAllData = false);
720 
723  virtual void reclampToGround();
724 
727  virtual void updatePositionFromModelVertices();
728 
729  virtual DtReal mass() const;
730  virtual void setMass(const DtReal mass);
731 
733  virtual const DtArticulatedPartCollection* artPartList() const;
734 
738  virtual void createParts();
739 
740  virtual DtTime lastTimeFiredUpon() const;
741  virtual void setLastTimeFiredUpon(const DtTime time);
742 
743  virtual bool underFire() const;
744  virtual void setUnderFire(bool underFire);
745 
746  virtual bool systemEnabled(const DtString& systemName) const;
747  virtual void setSystemEnabled(const DtString& systemName, bool enabled);
748 
750  virtual const DtRwPriorityTargetListMap& targetPriorityList() const;
751  virtual DtRwPriorityTargetListMap& targetPriorityList();
752  virtual void setTargetPriorityList(const DtRwPriorityTargetListMap& targetPriorityList);
753  virtual void appendToTargetPriorityList(const DtRwPriorityTargetListMap& targetPriorityList);
754 
757  virtual int targetPriorityLevel(const DtUUID& obj) const;
758 
764  DtNoSuppression = 0,
765  DtSuppressed1 = 1,
766  DtSuppressed2 = 2,
767  DtSuppressed3 = 3
768  };
769  virtual suppressionLevels suppressionLevel() const;
770  virtual void setSuppressionLevel(const suppressionLevels l);
771  virtual bool isSuppressed() const;
773 
775  virtual const DtString& nonLethalDamageEffect() const;
776  virtual void setNonLethalDamageEffect(const DtString& nonLethalDamageEffect);
777 
778  virtual DtDeadReckonTypes deadReckoningAlgorithm() const;
779  virtual void setDeadReckoningAlgorithm(
780  DtDeadReckonTypes deadReckoningAlgorithm);
781 
783 
784  virtual const DtThresholder& deadReckoningThresholder() const;
785  virtual void setDeadReckoningThresholder(
786  const DtThresholder& thresholder);
788 
791 
792  virtual const DtEntityIdentifier & occupyingObjectId() const;
793  virtual void setOccupyingObjectId(const DtEntityIdentifier & objId);
795 
798 
799  virtual void setEchelonId(const DtEchelonId& echelonId);
800  virtual DtEchelonId& echelonId();
801  virtual const DtEchelonId& echelonId() const;
803 
805 
806  virtual void setIsSubordinateOfForceLevel(bool yesNo);
807  virtual bool isSubordinateOfForceLevel() const;
809 
812  virtual void putData(std::string& fp, int indentLevel = 0);
813 
818  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
819  const DtVariableBindingsList& variableBindings);
820 
822  virtual int nextTaskId();
823 
825  virtual int nextSuspendId();
826 
832 
833 
836  virtual int spawningTaskId(int subtaskId) const;
837 
838  virtual void addPendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
839  virtual void addPendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
840  virtual bool findPendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
841  virtual bool isSubtasked(const DtSymbolString& componentName) const;
842  virtual bool findPendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
843  virtual void removePendingSubtaskId(const DtSymbolString& componentName, int subtaskId);
844  virtual void removePendingSubtaskId(const DtSymbolString& componentName, int taskId, int subtaskId);
845  virtual void removeAllPendingSubtaskIds(const DtSymbolString& componentName);
846  virtual void removeAllPendingSubtaskIds(const DtSymbolString& componentName, int taskId);
847  virtual void removeInactiveSubtaskStatus(const DtSymbolString& componentName);
848  virtual void removeInactiveSubtaskStatus(const DtSymbolString& componentName, int taskId);
849  virtual void printPendingSubtaskIds(const DtSymbolString& componentName) const;
850  virtual std::vector<int> currentPendingSubstaskIds(const DtSymbolString& componentName) const;
851  virtual std::vector<int> currentPendingSubstaskIds(const DtSymbolString& componentName, int taskId) const;
852  virtual DtSubtaskStatusEntry* pendingSubtaskStatus(const DtSymbolString& componentName, int subtaskId);
853  virtual DtSubtaskStatusEntry* pendingSubtaskStatus(const DtSymbolString& componentName, int taskId, int subtaskId);
855 
858  virtual DtTaskMessage* pendingSubtask(int subtaskId, DtString& controller) const;
859 
863  virtual bool taskedBySuperiorUponTaskComplete() const;
864 
865  virtual void setParentWasDestroyedWhenEmbarked(bool);
866  virtual bool parentWasDestroyedWhenEmbarked() const;
867 
868  virtual void detachFromParent();
869  virtual void attachToParent(DtSimObjectStateRepository* parent);
870  virtual void attachToParent(const DtUUID& parent);
871 
879  virtual void addAttachedTerrain(const DtUUID& parent);
880 
883  virtual void removeAttachedTerrain(const DtUUID& parent);
884 
887  Dt3dBoundingVolume* boundingVolume() const;
888 
892  DtVector localBoundingVolumeCenterPosition() const;
893 
898 
899  DtReal currentSpeed() const;
901 
906  DtReal forwardSpeed() const;
907 
909  virtual double totalMass() const;
910 
912 
913  DtReal currentHeading() const;
914  void setCurrentHeading(const DtReal heading);
916 
918 
919  virtual const DtRwNLengthUUIDVector& engagementZones() const;
920  virtual void setEngagementZones(const DtRwNLengthUUIDVector&);
922 
925 
926  virtual void addPostInitFromParamsCallback(DtPostInitializeFromParametersCallbackFcn fcn,
927  void* usr);
928  virtual void removePostInitFromParamsCallback(DtPostInitializeFromParametersCallbackFcn fcn,
929  void* usr);
931 
933  virtual void restoreStateProperties();
934 
936  virtual void initStatePropertiesNotToBeRestored();
937 
939 
940  virtual DtRwProperties& stateProperties();
941  virtual const DtRwProperties& stateProperties() const;
943 
945 
946  virtual DtRwProperties& parameterProperties();
947  virtual const DtRwProperties& parameterProperties() const;
949 
951  virtual bool fuelLevelsFrozen();
952  virtual bool munitionLevelsFrozen();
953 
954 protected:
955 
958  virtual void initializeNextTaskId();
959 
961  virtual void setOrientationRelativeToParent();
962 
963  virtual DtAttachedTerrain* createAttachedTerrain();
964 
966  virtual void createPartsFromDescriptors(const std::list<DtSimArtPartDescriptor*>& partDescriptors,
967  const std::list<DtSimArtPartDescriptor*>& partDefaultsFromActuators);
968 
969  virtual void postGetSelf();
970 
971 public:
972 
974  //{@
975  virtual void addRangeItem(const DtRangeItem&);
976  virtual void removeRangeItem(int index);
977  virtual void setRangeItems(const DtRangeItems&);
978  const DtRangeItems& rangeItems() const;
979  DtRangeItems& rangeItems();
980  virtual void clearRangeItems();
982 
983  DtAttachedTerrain* terrainAttachedTo() const;
984 
985  virtual boost::tribool onTerrainSurface() const;
986 
991  virtual double sensorSignature(const DtSymbolString& sensorDomain) const;
992 
995  virtual std::list<DtSymbolString> sensorSignatureDomains() const;
996 
1003 
1004  virtual DtSensorContactInfoList& objectContactList();
1005  virtual const DtSensorContactInfoList& objectContactList() const;
1007 
1010  virtual DtString stringFromExtendedData(const DtString&) const;
1011 
1013  virtual std::map<DtString, DtString> unarchivedData() const;
1014 
1016  virtual void appendExtendedData(const std::map<DtString, DtString>&);
1017 
1020  virtual void setFiredLaserMissileAtTarget(const DtUUID&);
1021  virtual const DtUUID& firedLaserMissileAtTarget() const;
1022 
1023 protected:
1026  virtual double baseSensorSignature(const DtSymbolString& sensorDomain) const;
1027 
1031  virtual double modifySensorSignature(const DtSymbolString& sensorDomain,
1032  double baseSignature) const;
1033 
1036  virtual bool initSignatureEvaluators();
1037 
1040  void clearSignatureEvaluators();
1041 
1043  virtual bool createObjectResourceManager();
1044 
1046  virtual void invokePostInitFromParamsCallbacks();
1047 
1049  virtual void embarkedParentDeleted();
1050 
1051 public:
1053 
1054  static void taskCompleteCallback(const DtVrfObjectMessage* msg, void* usr);
1055  virtual void processTaskComplete(const DtVrfObjectMessage* msg);
1057 
1058  static DtVrfObjectStateRepository * creator(const DtString& name,
1059  DtVrfObject* simObject, const DtObjectType& objectType,
1060  DtVrfObjectParameters * parameters,
1061  DtReaderWriterRegistry * parentRegistry);
1062 
1063  static DtVrfObjectStateRepository* isVrfObjectStateRepository(
1064  DtSimObjectStateRepository* repository);
1065 
1066  static const DtVrfObjectStateRepository* isVrfObjectStateRepository(
1067  const DtSimObjectStateRepository* repository);
1068 
1071 
1072 protected:
1073 
1075  static bool visibilityFilter(const DtVrfObject * object, void * usr);
1076 
1077 protected:
1078 
1080 
1083 
1085 
1087 
1089 
1092 
1096 
1100 
1102 
1104 
1108 
1111 
1115 
1119 
1120  DtReal myMass;
1121  DtDeadReckonTypes myDeadReckoningAlgorithm;
1123 
1124  DtEntityIdentifier myOccupyingObjectId;
1125 
1128  DtArticulatedPartCollection myArtPartList;
1129 
1132 
1138 
1141 
1146 
1148 
1150 
1155 
1157 
1159 
1163 
1166 
1171 
1173 
1177 
1182 
1185 
1188 
1189 protected:
1190  //***** Important API change note
1192  //*****
1220 
1225 
1229 
1235 
1237 
1238  typedef std::list<DtSignatureModifierEvaluator*> DtSignatureModifierEvalList;
1239  typedef std::map<DtSymbolString, DtSignatureModifierEvalList*> DtSignatureModifierEvalMap;
1243 
1244  typedef tbb::concurrent_hash_map<unsigned int, double> DtSensorSignatureCacheMap;
1249 
1253 
1254  typedef std::pair<DtPostInitializeFromParametersCallbackFcn, void*> DtPostInitializeFromParametersInfo;
1255  typedef std::list<DtPostInitializeFromParametersInfo> DtPostInitializeFromParametersCallbackList;
1256 
1258 
1262 
1269 
1272 
1274  std::vector<DtString> myStatePropertiesNotToBeRestored;
1275 
1277 
1280 
1283 
1284  static std::set<DtString> theDoNotArchiveAttributes;
1285 
1288 
1290 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:59
DtRwBoolean myParentWasDestroyedWhenEmbarked
Set to true when the entity is embarked on a destroyed parent so they do not become destroyed...
Definition: vrfObjectStateRepository.h:1181
double myNextTickTime
Definition: vrfObjectStateRepository.h:1233
DtTaskStatusList myTaskStatusList
Contains the myTasked and myCurrentTaskMsg members from the DtTaskControllerComponent class...
Definition: vrfObjectStateRepository.h:1170
double myLastTickSimTime
Definition: vrfObjectStateRepository.h:1234
const int DtPolygonVisibilityTest
Definition: vrfObjectStateRepository.h:71
ExtendedData myExtendedData
Definition: vrfObjectStateRepository.h:1267
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Sets myAttachedToRepository after myAttachedToRepositoryName is read in.
Definition: attachedTerrain.h:42
DtRwForceType myForceType
Definition: vrfObjectStateRepository.h:1086
suppressionLevels
The current suppression level.
Definition: vrfObjectStateRepository.h:763
virtual void postGetSelf()
Hook function called immediately following getSelf().
Definition: simObjectStateRepository.h:140
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtReal myMass
Definition: vrfObjectStateRepository.h:1120
The abstract base class for all evaluators of signature modifiers.
Definition: signatureModifierEvaluator.h:24
This is a DtReaderWriter subclass which holds the status of a subtask that was issues by another task...
Definition: taskStatusEntry.h:27
DtEntityIdentifier myOccupyingObjectId
Definition: vrfObjectStateRepository.h:1124
Definition: symbolString.h:20
DtVrfObjectParameters * myParameters
this is the parameter entry that this repository created.
Definition: vrfObjectStateRepository.h:1228
virtual const int objectStateRepositorySubType() const
DtRwProperties myParameterProperties
Definition: vrfObjectStateRepository.h:1266
A readable, writable type that holds an articulated part type, attached-to part type, attachment point, and a list of art-part params (DtSimArtPartParamList).
Definition: simArtPartDescriptor.h:28
DtRwString myEngagementRules
Definition: vrfObjectStateRepository.h:1158
virtual bool init()
Our &#39;virtual&#39; constructor. Calls all the create&lt;&gt;() methods.
bool myUnderFire
Under fire parameters.
Definition: vrfObjectStateRepository.h:1106
void(* DtPostInitializeFromParametersCallbackFcn)(DtVrfObjectStateRepository &stateRepository, void *usr)
Function definition for callbacks to be invoked immediately following execution of DtVrfObjectStateRe...
Definition: vrfObjectStateRepository.h:79
DtArticulatedPartCollection myArtPartList
This is created in createParts, and kept around to make setup of the network repository easier...
Definition: vrfObjectStateRepository.h:1128
DtRwInt myCapabilities
Definition: vrfObjectStateRepository.h:1082
DtRwStringList mySystemsDisabledList
Systems which have had their default enable state changed to disabled.
Definition: vrfObjectStateRepository.h:1110
DtRwInt myNextSuspendId
Definition: vrfObjectStateRepository.h:1176
Description: DtSimSector is a readable/writable description of a sector of responsibility (center and...
Definition: simSector.h:20
virtual void detachFromParent()
virtual void attachToParent(const DtUUID &parent)
Looks up the parent state repository using the given echelon ID and puts it in a call to attachToPare...
DtVrfSubordinateManager * mySubordinates
each of these has_a DtSubObjectManager
Definition: vrfObjectStateRepository.h:1091
voidpf void uLong size
Definition: ioapi.h:39
DtObjectResourceManager * myObjectResourceManager
Definition: vrfObjectStateRepository.h:1156
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 const DtObjectType & objectType() const
The DtSimObjectStateRepository is an abstract base class (ABC) for all state repositories.
Definition: simObjectStateRepository.h:46
DtRwUUID myParent
if this object is a subordinate, this is used to write out the name of the parent ...
Definition: vrfObjectStateRepository.h:1095
std::map< DtString, std::map< DtString, DtRwJoystickControl > > JoystickControls
Controls by function group.
Definition: vrfObjectStateRepository.h:98
File: rwTaitBryan.h.
Definition: rwTaitBryan.h:24
Definition: readerWriterRegistry.h:39
DtSimResourceManager myResourceManager
This resource manager is used for all the top-level resource only.
Definition: vrfObjectStateRepository.h:1154
DtVrfProcessStateRepositoryManager * mySystemProcessSRManager
Definition: vrfObjectStateRepository.h:1097
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:47
This class represents the data gathered by a sensor about a particular single sensor contact...
Definition: rwSensorContactInfo.h:67
DtRwVector myLocalPosition
For backward compatibility with pre-2.0 VR-Forces oob files Registered as read-only, so they do not get written out to new oob files.
Definition: vrfObjectStateRepository.h:1135
File: weaponPSR.h.
Definition: vrfWeaponPSR.h:31
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
A reader-writer list of DtRwSensorContactInfo elements.
Definition: sensorContactInfoList.h:30
const DtSimObjectStateRepository & operator=(const DtSimObjectStateRepository &orig)
double myMinTickPeriodVariance
Definition: vrfObjectStateRepository.h:1232
std::list< DtPostInitializeFromParametersInfo > DtPostInitializeFromParametersCallbackList
Definition: vrfObjectStateRepository.h:1255
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
DtSensorContactInfoList myObjectContactList
The situational awareness of this object.
Definition: vrfObjectStateRepository.h:1252
DtSignatureModifierEvalMap mySignatureModifierEvalMap
Map which holds a set of lists of signature modifier evaluators indexed by sensor domain...
Definition: vrfObjectStateRepository.h:1242
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
DtRwInt mySuppressionLevel
The current enumerated level of suppression, derived from the value.
Definition: vrfObjectStateRepository.h:1114
Definition: objectType.h:27
DtGroundInteractionPt myGroundCenter
Definition: vrfObjectStateRepository.h:1103
DtSimSector mySectorOfResponsibility
These really apply to a single weapon, and should be part of a weapon controller/actuator suite of so...
Definition: vrfObjectStateRepository.h:1162
Definition: vrfSubordinateManager.h:19
Definition: rwVector.h:23
static DtReaderWriterFactory * factory()
const DtVrfObjectParameters * myParameterEntry
For performance and memory usage reasons, the copy of the parameter entry that used to be made when c...
Definition: vrfObjectStateRepository.h:1224
std::map< DtSymbolString, DtSignatureModifierEvalList * > DtSignatureModifierEvalMap
Definition: vrfObjectStateRepository.h:1239
virtual bool processCompleteAttachment(const DtVrfObject *)
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:88
DtManagedObjectListConstPtr myVisibilityFilterList
Shared list of visibility blocking objects.
Definition: vrfObjectStateRepository.h:1131
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual DtSimObjectStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const
DtSuspendedTaskStatusList mySuspendedTaskStatusList
Definition: vrfObjectStateRepository.h:1172
Definition: taskStatusList.h:21
DtVrfObjectCallbackList myRestoredCallbacks
List of callbacks for when this entity is restores.
Definition: vrfObjectStateRepository.h:1287
Version of the DtVrfProcessStateRepositoryManager that is used specifically to read in scenario files...
Definition: legacyProcessStateRepositoryManager.h:27
static void objectAboutToBeRemovedCallback(const DtVrfObject *simObject, void *usr)
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
const int DtEntityVisibilityTest
Definition: vrfObjectStateRepository.h:70
DtRwInt myNextTaskId
The next available ID that can be assigned to a task for this entity.
Definition: vrfObjectStateRepository.h:1175
Class Description: Readable, writable form of DtAppearance.
Definition: rwAppearance.h:16
DtRwBoolean myRequestTaskNeeded
Moved here from the DtLocalTaskManager class.
Definition: vrfObjectStateRepository.h:1165
A list of DtSuspendedTaskStatusEntry instances, each representing a different suspend ID...
Definition: suspendedTaskInfo.h:107
DtTime myLastTimeFiredUpon
Definition: vrfObjectStateRepository.h:1107
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwBoolean mySensorsKilled
Definition: vrfObjectStateRepository.h:1084
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwAppearance * myAppearance
Definition: vrfObjectStateRepository.h:1081
DtLegacyProcessStateRepositoryManager * myLegacyPSRManager
Used only to read in scenarios from pre VRF 3.11.
Definition: vrfObjectStateRepository.h:1099
DtRwStringAttributeList myRwExtendedData
Definition: vrfObjectStateRepository.h:1268
Instances of DtVrfStateRepositoryUserExtension can be used by customers to extend the base DtVrfObjec...
Definition: vrfStateRepositoryUserExtension.h:29
virtual void setOrientationRelativeToParent()
If attached to a parent, and a terrain database is present, set orientation relative to parent...
DtEchelonId myEchelonId
Definition: vrfObjectStateRepository.h:1139
DtRwUUID myFiredLaserMissileAtTarget
Definition: vrfObjectStateRepository.h:1289
DtAttachedTerrain * myTerrainAttachedTo
Definition: vrfObjectStateRepository.h:1236
The DtArticulatedPartStateRepository class is used to represent articulated parts for an entity...
Definition: articulatedPartStateRepository.h:29
std::list< DtSignatureModifierEvaluator * > DtSignatureModifierEvalList
Definition: vrfObjectStateRepository.h:1238
class DtSimObjectStateRepositoryFactory:
Definition: simObjectStateRepositoryFactory.h:32
tbb::concurrent_hash_map< unsigned int, double > DtSensorSignatureCacheMap
Definition: vrfObjectStateRepository.h:1244
Definition: rangeItem.h:206
Class Description: DtVrfObjectGeometry adds a vertex list maintained in the local database coordinate...
Definition: vrfObjectGeometry.h:26
*array controller(no time code)*/template< class Instance
//!//!//!//!//!//!//!//!//!//!//!//
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
JoystickControls myJoystickControls
Map of available joystick controls for this particular entity.
Definition: vrfObjectStateRepository.h:1279
This is the top-level resource manager for a DtVrfObject.
Definition: objectResourceManager.h:21
DtVrfObjectStateRepository *(* DtSimObjectStateRepositoryCreatorFcn)(const DtString &name, DtVrfObject *simObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, DtReaderWriterRegistry *parentRegistry)
Definition: simObjectStateRepositoryFactory.h:21
DtRwString myNonLethalDamageEffect
The current non lethal damage type (sick, faint, etc.).
Definition: vrfObjectStateRepository.h:1118
DtRwProperties myTempStateProperties
Definition: vrfObjectStateRepository.h:1271
DtSensorSignatureCacheMap myMutableSensorSignatureCacheMap
Maintains the current sensor signature (indexed by sensor domain) for this entity.
Definition: vrfObjectStateRepository.h:1248
DtRwBoolean myIsSubordinateOfForceLevel
Definition: vrfObjectStateRepository.h:1140
bool myJoystickMovementControlled
If true movement is controlled by joystick so will not be able to be taskable as a subordinate...
Definition: vrfObjectStateRepository.h:1282
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.
Definition: echelonId.h:13
Description: A readable, writable DtForceType.
Definition: rwForceType.h:26
DtRwProperties myStateProperties
Additional properties that are part of this state repository.
Definition: vrfObjectStateRepository.h:1265
const ExtendedData & extendedDataMap() const
Definition: vrfObjectStateRepository.h:176
DtRangeItems myRangeItems
Range item information.
Definition: vrfObjectStateRepository.h:1261
bool(* DtVisibilityTest)(double rangeSquared, const DtEntityIdentifier &eyeKey, const DtVector &localEyePoint, const DtVector &localEndPoint, const DtVrfObjectStateRepository *sr)
Definition: vrfObjectStateRepository.h:74
DtVrfStateRepositoryUserExtension * myStateRepositoryUserExtension
Definition: vrfObjectStateRepository.h:1079
std::map< int, DtString > ExtendedLabels
Definition: vrfObjectStateRepository.h:95
std::map< DtString, DtString > ExtendedData
Definition: vrfObjectStateRepository.h:94
std::pair< DtPostInitializeFromParametersCallbackFcn, void * > DtPostInitializeFromParametersInfo
Definition: vrfObjectStateRepository.h:1254
DtRwNLengthUUIDVector is a named, readable/writable vector of DtUUIDs.
Definition: rwNLengthUUIDVector.h:30
DtRwNLengthUUIDVector myEngagementZones
Definition: vrfObjectStateRepository.h:1088
DtRwBoolean myIndependentlyTasked
Definition: vrfObjectStateRepository.h:1147
double myMinTickPeriod
For variable tick rate support.
Definition: vrfObjectStateRepository.h:1231
virtual void putData(std::string &fp, int indentLevel=0)
Deriving class overrides these to get/put class specific data.
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtThresholder myDeadReckoningThresholder
Definition: vrfObjectStateRepository.h:1122
The articulated part manager maintains a tree of articulated and attached parts for the state reposit...
Definition: articulatedPartManager.h:29
DtSimResource is an abstract base class that can be used to create a hierarchical resource list of a ...
Definition: simResource.h:41
DtSimManager * mySimManager
Definition: vrfObjectStateRepository.h:1101
virtual class DtVrfObjectStateRepository * toVrfObjectStateRepository()
Class Invariant: The DtGroundInteractionPt class must always have a valid DtAttachedTerrain or DtSimM...
Definition: groundInteractionPt.h:28
static DtSimObjectStateRepositoryFactory * theFactory
Definition: vrfObjectStateRepository.h:1149
virtual bool createAttachments()
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
DtRwTaitBryan myLocalOrientation
Definition: vrfObjectStateRepository.h:1136
DtRwInt myDesignator
myDesignator is used for reading and writing only and is not valid at runtime.
Definition: vrfObjectStateRepository.h:1145
DtRwBoolean myNavigationEnabled
Whether or not this object can navigate in navigation areas. Default is true.
Definition: vrfObjectStateRepository.h:1184
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtDeadReckonTypes myDeadReckoningAlgorithm
Definition: vrfObjectStateRepository.h:1121
Definition: rwStringList.h:20
A list of properties.
Definition: rwProperties.h:126
void(* DtCallbackFunctionType)(const DtVrfObject *, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:95
DtPostInitializeFromParametersCallbackList myPostInitFromParamsCallbackList
Definition: vrfObjectStateRepository.h:1257
virtual void processObjectAboutToBeRemovedCallback(const DtVrfObject *simObject)
virtual void updatePositionFromModelVertices()
bool myUsingTempStateProperties
Definition: vrfObjectStateRepository.h:1270
std::vector< DtString > myStatePropertiesNotToBeRestored
The list of state properties that should not be updated by restoreStateProperties.
Definition: vrfObjectStateRepository.h:1274
static std::set< DtString > theDoNotArchiveAttributes
Definition: vrfObjectStateRepository.h:1284
DtRwBoolean myIsDestroyedFlag
Definition: vrfObjectStateRepository.h:1137
class DtLocalVertexList:
Definition: localVertexList.h:20
A DtTaskMsg is a DtRadioMsg with a pointer to a task.
Definition: taskMessage.h:19
tbb::mutex myEvaluateSensorSignatureMutex
Definition: vrfObjectStateRepository.h:1276
const int DtFeatureVisibilityTest
Definition: vrfObjectStateRepository.h:72
class DtRwStringAttributeList:
Definition: rwStringAttributeList.h:29
static const DtFilename & appPath()
Gets the current working directory.
DtRwPriorityTargetListMap myTargetPriorityList
Target Priority List.
Definition: vrfObjectStateRepository.h:1187
virtual DtString type() const
returns DtSimObjectStateRepositoryType

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)