VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
13 #include <readerWriter/rwList.h>
20 #include "vrfobjcore/vrfObject.h"
27 #include "vrfutil/rwActivities.h"
31 
33 #include <vlpi/appearance.h>
34 #include <vlutil/vlFilename.h>
35 #include <vlutil/vlList.h>
36 #include <vlutil/vlHashlist.h>
37 #include <vlutil/vlConfig.h>
38 #include <vlutil/vlSmartPointers.h>
40 #include <vl/fomMapper.h>
41 
43 #include <vector>
44 #include <list>
45 #include <set>
46 
47 #include <boost/unordered_map.hpp>
48 #include <boost/unordered_set.hpp>
49 #include <tbb/spin_rw_mutex.h>
50 
52 #define DT_SINGLE_STATE_UPDATE_MESSAGE 0
53 
54 class DtExerciseConn;
55 class DtReflectedObject;
56 class DtReflectedAggregate;
63 class DtVrfParameterDb;
64 class DtSimObjectSubComponentTypes;
66 class DtOrbatManager;
67 class DtVertexList;
69 class DtBaseEntityStateRepository;
71 class DtSimManager;
72 class DtVrfObjectManagerTickArguments;
74 class DtSimTickArguments;
75 class DtSimMessage;
77 class DtIfAggregateAs;
82 class DtReflectedObject;
83 class DtEchelonId;
84 class Coordinate_System;
89 class DtReflectedDesignator;
92 class DtReflectedActiveSonar;
93 class DtReflectedActiveSonarList;
94 class DtReflectedPropulsionNoise;
95 class DtReflectedPropulsionNoiseList;
96 class DtReflectedRadioTransmitter;
98 class DtCreateQueueEntry;
99 class DtModifyQueueEntry;
101 class DtlInputStream;
105 class DtReflectedIffList;
106 class DtReflectedIff;
107 
108 #if DtHLA
109 namespace makVrfVrlinkExtToolkit
110 {
111  class DtReflectedExtendedAttributesObjectList;
112 }
113 #endif
114 
115 typedef std::map<DtEntityIdentifier, DtVrfObject*> DtSimObjectMap;
116 
118 typedef bool (*DtSimObjectUserInitFcn)(DtVrfObject* object, void* usr);
119 
121 typedef bool (*DtVrfObjectUserInitFcn)(DtVrfObject* vrfObject, void* usr);
122 
125 typedef void (*DtVrfObjectManagerCallbackFcn)(const DtVrfObjectManager& objectManager,
126  void* usr);
127 
131 const int DtSimMaxForceTypes = 256;
132 
135 {
141 
144  unsigned int importFlags;
148 };
149 
152 {
156 };
157 
160 {
162 
166 };
167 
170 {
172  DtEntityIdentifier* myEntityIdentifier;
173 };
174 
180 
182 typedef enum
183 {
188 
200 
202 {
203 public:
205 
209  typedef enum
210  {
211  DtUseParameterDatabaseAggregateState = 0,
213  DtCreateDisaggregatedEntity
214  } DtAggregateCreationMode;
215 
216 public:
217 
219  DtVrfObjectManager(DtSimManager* simManager, int entityAdvisory = 100);
220 
226  virtual ~DtVrfObjectManager();
229 
231  virtual void clearRemoteComponentAttachmentSystem();
232 
238  virtual bool reuseEntityIdentifiersOnScenarioLoad() const;
239  virtual void setReuseEntityIdentifiersOnScenarioLoad(bool);
240 
243  virtual DtEntityIdentifier nextEntityIdentifier(const DtVrfObject*, const DtEntityIdentifier&);
244  virtual void addVrfObjectAboutToBePublishedCallback(
245  DtVrfObjectAboutToBePublishedCallbackFcn fcn, void* usrData) const;
246  virtual void removeVrfObjectAboutToBePublishedCallback(
247  DtVrfObjectAboutToBePublishedCallbackFcn fcn, void* usrData) const;
248 
251  virtual void createRemoteComponentAttachmentManager();
252 
254  virtual bool isRemoteComponentAttachment(const DtUUID&) const;
255 
257  virtual bool initializeRemoteComponentAttachmentSystem(const DtFilename& fromFile);
258 
260  DtRemoteComponentAttachmentManager* remoteComponentAttachmentManager();
261  const DtRemoteComponentAttachmentManager* remoteComponentAttachmentManager() const;
263 
266  virtual bool create();
267 
270  virtual bool init();
271 
273  virtual bool createDIGuyCharacterManager(const DtFilename & diGuyAnimationsFile);
274 
276  virtual DtVisualMetaDataManager* visualMetaDataManager() const;
277 
280  virtual DtFilename metaDataFilename(const DtObjectType&) const;
281 
286  virtual DtRwStringAttributeList* customizedMarkingsFor(const DtObjectType&) const;
287 
297  virtual bool add(DtVrfObject* simObject);
298 
300  virtual bool completeObjectAddition(DtVrfObject* simObject);
301 
303  virtual void setAppIdRangeMax(int);
304  virtual int appIdRangeMax() const;
305 
307  virtual bool loadingScenarioInformation() const;
308 
311  virtual bool checkAndMoveIfUniqueObject(DtIfCreateVrfObject*);
312 
313 private:
316  using DtRwList::add;
317  using DtRwList::remove;
318 
319 public:
321  virtual void setParameterDatabase(DtVrfParameterDb* parameterDatabase);
322  virtual DtVrfParameterDb* parameterDatabase();
323 
327  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
328  virtual const DtReaderWriter::SearchPaths& searchPaths() const;
330 
332  virtual bool registerExtendedProperties();
333 
335  virtual DtManagedObjectListConstPtr getList(const DtVrfObjectPredicate& predicate,
336  bool reevaluateFlag = false, DtTime evaluationPeriod = 0);
337 
339  virtual void setImportingScenario(bool);
340  virtual bool importingScenario() const;
341 
343  virtual void setImportScenarioData(const DtImportScenarioData&);
344  virtual const DtImportScenarioData& importScenarioData() const;
345 
346  virtual const DtVrfObjectFilterMapIterator& vrfIterator(
347  const DtObjectType& filter = DtObjectType::anyType(),
348  bool invertFilter = false) const;
349 
350  virtual const DtVrfObjectFilterMapIterator& vrfIterator(
351  const DtVrfObjectPredicate& predicate) const;
352 
355  virtual const DtVrfObjectFilterMapIterator& vrfIterator(DtFilterFcn filter,
356  bool invertFilter = false, void* usrData = 0)const;
357 
363  virtual void removeAndDelete(const DtUUID& objectName, bool andRemoveFromOrbat);
364  virtual void removeAndDelete(DtSharedVrfObjectReference simObject, bool andRemoveFromOrbat);
365  virtual void removeAndDelete(const DtEntityIdentifier& key, bool andRemoveFromOrbat);
366  virtual void removeAndDelete(DtVrfObject* object, bool andRemoveFromOrbat);
367 
369  std::set<DtGlobalObjectDesignator> remoteObjectGlobalIds(bool onlyVrfSimulated = true) const;
370 
372  virtual void removeAndDeleteAllLocals(bool andDeleteFromOrbat = false);
373 
376  virtual void removeAndDeleteAll(bool andDeleteFromOrbat = false);
377 
382  virtual void setExerciseConnection(DtExerciseConn* connection);
383  virtual void createRemoteEnvironmentalsList(DtExerciseConn* exConn);
384 
387  virtual void setPublishZeroVelocityWhenPaused(bool);
388  virtual bool publishZeroVelocityWhenPaused() const;
389 
393  virtual void setSetDeadReckoningAlgorithmToStaticOnPause(bool);
394  virtual bool setDeadReckoningAlgorithmToStaticOnPause() const;
395 
397  virtual void overrideDeadReckoningAlgorithm(DtDeadReckonTypes drAlg);
398 
401  virtual bool isDeadReckonAlgorithmOverridden(DtDeadReckonTypes& drAlg) const;
402 
405  virtual void removeDeadReckoningAlgorithmOverride();
406 
408  virtual void setTaskVisualizationPublicationMode(DtTaskVisualizationPublicationMode mode);
409  virtual DtTaskVisualizationPublicationMode taskVisualizationPublicationMode() const;
410 
414  virtual bool hasPermissionToDisplayTaskVisualizations(const DtUUID& uuid);
415 
417  virtual void setMaxObjectsWithTaskVisualizations(unsigned max);
418  virtual unsigned maxObjectsWithTaskVisualizations() const;
419 
422  virtual void setUseDrawControlForTaskVisualizations(bool);
423  virtual bool useDrawControlForTaskVisualizations() const;
424 
426  virtual DtReflectedControlObjectList* reflectedEnvironmentProcessList() const;
427 
430  virtual DtReflectedControlObjectList* createReflectedControlObjectList(DtExerciseConn* exConn);
431 
433  virtual bool objectInRemovalQueue(const DtUUID& uuid);
434 
441  virtual void registerInterfaceCallbacks();
442 
444  virtual const DtSimManager* simManager() const;
446  virtual DtSimManager* simManager();
447 
457  virtual void processCreateVrfObject(DtSimMessage* msg);
458 
460  typedef DtBoost::shared_ptr<DtCreateQueueEntry> DtCreateQueueEntryPtr;
461  typedef std::list<DtCreateQueueEntryPtr> DtVrfObjectCreateQueue;
462  virtual const DtVrfObjectCreateQueue& objectCreateQueue() const;
463 
470  virtual void processCreateVrfObject(DtIfCreateVrfObject ifCreateVrfObject);
471 
479  virtual void processModifyVrfObject(DtSimMessage* msg);
480 
487  virtual void processModifyVrfObject(DtIfModifyVrfObject modObj);
488 
491  virtual void processModifyVrfOverlay(DtSimMessage* msg);
494  virtual void processDeleteVrfObject(DtSimMessage* msg);
497  virtual void processDeleteVrfObjectById(DtSimMessage* msg);
500  virtual void processVrfObjectDeleted(DtSimMessage* msg);
503  virtual void processAutoReorganize(DtSimMessage* msg);
506  virtual void processAggregateAs(DtSimMessage* msg);
509  virtual void processSkipTask(DtSimMessage* msg);
510 
511 
516  virtual void processSetThresholds(DtSimMessage* msg);
517 
519  virtual void processDeleteDynamicTerrainServer(DtSimMessage*);
520 
525  virtual void processEntityAddedCallback(DtReflectedExtEntity* entity);
526  virtual void processAggregateAddedCallback(DtReflectedExtAggregate* aggregate);
527 
530  virtual void processEntityRemovedCallback(DtReflectedExtEntity* entity);
531  virtual void processAggregateRemovedCallback(DtReflectedExtAggregate* aggregate);
532 
533  virtual void processDesignatorAddedCallback(DtReflectedDesignator * des);
534  virtual void processDesignatorRemovedCallback(DtReflectedDesignator * des);
535  virtual void processDesignatorChangedCallback(DtReflectedDesignator * des);
536  DtBoolean processDesignatorDiscoveryCriteria(DtReflectedDesignator * des);
537 
538  virtual void processActiveSonarAddedCallback(DtReflectedActiveSonar* des);
539  virtual void processActiveSonarRemovedCallback(DtReflectedActiveSonar* des);
540  virtual void processActiveSonarChangedCallback(DtReflectedActiveSonar* des);
541  DtBoolean processActiveSonarDiscoveryCriteria(DtReflectedActiveSonar* des);
542 
543  typedef std::list<DtReflectedActiveSonar*> ReflectedActiveSonars;
544  virtual ReflectedActiveSonars findActiveSonarsForHostEntity(
545  const DtVrfObject* host) const;
546 
547  virtual void processPropulsionNoiseAddedCallback(DtReflectedPropulsionNoise* des);
548  virtual void processPropulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* des);
549  virtual void processPropulsionNoiseChangedCallback(DtReflectedPropulsionNoise* des);
550  DtBoolean processPropulsionNoiseDiscoveryCriteria(DtReflectedPropulsionNoise* des);
551 
552  virtual void processRadioTransmitterAddedCallback(DtReflectedRadioTransmitter* tran);
553  virtual void processRadioTransmitterRemovedCallback(DtReflectedRadioTransmitter* tran);
554  virtual void processRadioTransmitterChangedCallback(DtReflectedRadioTransmitter* tran);
555  DtBoolean processRadioTransmitterDiscoveryCriteria(DtReflectedRadioTransmitter* tran);
556 
557  virtual void processIffAddedCallback(DtReflectedIff* des);
558  virtual void processIffRemovedCallback(DtReflectedIff* des);
559  virtual void processIffChangedCallback(DtReflectedIff* des);
560  virtual DtBoolean processIffDiscoveryCriteria(DtReflectedIff*);
561 
562  virtual bool hasEnabledActiveSonar(const DtVrfObject* host) const;
563 
564  virtual DtReflectedPropulsionNoise* propulsionNoiseForHost(const DtVrfObject* host) const;
565  virtual DtReflectedRadioTransmitter* radioTransmitterForHost(const DtVrfObject* host) const;
566 
567  virtual DtReflectedIff* iffForHost(const DtVrfObject* host) const;
568 
569  virtual DtReflectedEmitterSystemManager* reflectedEmitterSystemManager();
570 
572  virtual void processAggregateChanged(DtReflectedExtAggregate* aggregate);
573 
574  virtual void processEnvProcessAddedCallback(
575  DtReflectedEnvironmentProcess* envProcess);
576  virtual void processEnvProcessRemovedCallback(
577  DtReflectedEnvironmentProcess* envProcess);
578  virtual bool processEnvProcessDiscoveryCriteria(
579  DtReflectedEnvironmentProcess* envProcess);
580 
583  virtual void removeObjectSubordinates(DtVrfObject* object, bool andRemoveFromOrbat);
584 
587  virtual void queueObjectForRemoval(const DtEntityIdentifier& key, bool andRemoveFromOrbat = false);
588  virtual void queueObjectForRemoval(const DtUUID& key, bool andRemoveFromOrbat = false);
589 
591  virtual void removeObjectsQueuedForRemoval();
592 
601  virtual void tick();
602 
604  virtual DtVrfObject* createAndInitVrfObject(DtIfCreateVrfObject* creationInfo);
605 
606  virtual DtVrfObject* createAndInitVrfObject(DtIfAggregateAs* aggInfo);
607 
617  virtual DtVrfObject* createAndInitVrfObject(
618  const DtObjectType& objectType,
619  bool publishLocalObject = true,
620  const DtString& objectName = DtString::nullString(),
621  const DtString& objectLabel = DtString::nullString(),
622  DtForceType forceType = DtForceOther,
623  const DtList* vertices = 0,
624  const DtTaitBryan* orientation = 0,
625  bool projection = false,
626  bool closedFigure = false,
627  const DtAppearance& appearance = DtAppearance::nullAppearance(),
628  const DtString& readerWriterName = DtString::nullString(),
629  DtReaderWriterRegistry* parentRegistry = 0,
630  bool createSubObjects = false,
631  DtVrfObjectUserInitFcn userInit = 0,
632  void* userInitData = 0,
633  bool organize = true,
634  const DtString& startingFormation = DtDefaultFormationString,
635  DtVrfObjectManager::DtAggregateCreationMode initialAggregateState =
637  unsigned long requestId = 0,
638  const DtString& overlayParent = "",
639  const DtUUID& uuid = DtUUID::nullUUID(),
640  bool addToOrbat = false);
641 
649  virtual DtVrfObject* createAndInitVrfObject(
650  const DtObjectType& objectType,
651  bool publishLocalObject = true,
652  const DtString& objectName = DtString::nullString(),
653  const DtString& objectLabel = DtString::nullString(),
654  DtForceType forceType = DtForceOther,
655  const DtVector& position = DtVector::zero(),
656  const DtTaitBryan* orientation = 0,
657  bool projection = false,
658  bool closedFigure = false,
659  const DtAppearance& appearance = DtAppearance::nullAppearance(),
660  const DtString& readerWriterName = DtString::nullString(),
661  DtReaderWriterRegistry* parentRegistry = 0,
662  bool createSubObjects = false,
663  DtVrfObjectUserInitFcn userInitFcn = 0,
664  void* userInitData = 0,
665  bool organize = true,
666  const DtString& startingFormation = DtDefaultFormationString,
667  DtVrfObjectManager::DtAggregateCreationMode initialAggregateState =
669  unsigned long requestId = 0, const DtString& overlayParent = "",
670  const DtUUID& startingUUID = DtUUID::nullUUID(),
671  bool addToOrbat = false);
672 
674  virtual bool readOrderOfBattleFile(const DtFilename & filename);
675  virtual bool readOrderOfBattleFile(const std::vector<std::string*>& oob);
676 
678  virtual bool readOrderOfBattleFile(DtlInputStream*);
679  virtual bool readOrderOfBattleFileFromZipFile(const DtFilename& zipFile, const DtString & filename);
680  virtual bool writeOrderOfBattleFile(const DtString & filename);
682  virtual bool writeOrderOfBattleFile(std::string& stream, int& numberOfLuaScripts);
683  virtual bool writeOrderOfBattleFile(std::vector<std::string*>& vecOfStreams, int& numberOfLuaScripts);
684 
687  virtual bool writeSimulationObjectGroupOrderOfBattleFile(const DtString& filename, int flags,
688  boost::unordered_set<DtUUID>& uuidsSaved);
689 
691  virtual void preallocateLuaScriptHandles(int);
692 
696  virtual bool objectShouldBeSavedToOrderOfBattle(
697  const DtVrfObject* vrfObject) const;
698  virtual bool objectShouldBeSavedToSimulationObjectGroup(
699  const DtVrfObject* vrfObject) const;
700 
703  virtual bool hasUUIDOrMarkingText(DtlObjPtr args, DtUUID&) const;
704 
705  virtual DtlObjPtr getData(DtlObjPtr args,
706  const DtReaderWriter::SearchPaths& searchPaths,
707  const DtVariableBindingsList& variableBindings);
708 
711  static void tickCallback(void* args);
712 
716  virtual void addVrfObjectAboutToBeAddedCallback(
717  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
718  const DtObjectType& filter = DtObjectType::anyType(),
719  bool invertFilter = false) const;
720 
724  virtual void addVrfObjectAddedCallback(
725  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
726  const DtObjectType& filter = DtObjectType::anyType(),
727  bool invertFilter = false) const;
728 
732  virtual void addVrfObjectAboutToBeLoadedCallback(
733  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
734  const DtObjectType& filter = DtObjectType::anyType(),
735  bool invertFilter = false) const;
736 
741  virtual void addVrfObjectAboutToBeRemovedCallback(
742  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
743  const DtObjectType& filter = DtObjectType::anyType(),
744  bool invertFilter = false) const;
745 
748  virtual void removeVrfObjectAboutToBeAddedCallback(
749  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
750  const DtObjectType& filter = DtObjectType::anyType(),
751  bool invertFilter = false) const;
752 
755  virtual void removeVrfObjectAboutToBeLoadedCallback(
756  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
757  const DtObjectType& filter = DtObjectType::anyType(),
758  bool invertFilter = false) const;
759 
762  virtual void removeVrfObjectAddedCallback(
763  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
764  const DtObjectType& filter = DtObjectType::anyType(),
765  bool invertFilter = false) const;
766 
769  virtual void removeVrfObjectAboutToBeRemovedCallback(
770  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
771  const DtObjectType& filter = DtObjectType::anyType(),
772  bool invertFilter = false) const;
773 
776  virtual void addObjectManagerAboutToRemoveAllCallback(
777  DtVrfObjectManagerCallbackFcn fcn, void* usrData) const;
778 
781  virtual void removeObjectManagerAboutToRemoveAllCallback(
782  DtVrfObjectManagerCallbackFcn fcn, void* usrData) const;
783 
785  virtual void addOrganizationManagerReadyCallback(
786  DtOrganizationManagerReadyCallbackFcn fcn, void* usrData) const;
787 
789  virtual void removeOrganizationManagerReadyCallback(
790  DtOrganizationManagerReadyCallbackFcn fcn, void* usrData) const;
791 
793  virtual void enableAutoReorganization();
794  virtual void disableAutoReorganization();
796  virtual bool autoReorganizeEnabled() const;
797 
799  virtual DtEntityIdentifier mapUUIDToEntityIdentifier(const DtUUID&) const;
800  virtual DtGlobalObjectDesignator mapUUIDToGlobalId(const DtUUID&) const;
801  virtual DtUUID mapGlobalIdToUUID(const DtGlobalObjectDesignator&) const;
802 
806  virtual bool objectNameExists(const DtString&) const;
807 
809  virtual DtSharedVrfObjectReference lookupTopLevelVrfObject(DtForceType forceType);
810 
812  virtual DtString nextNameWithPrefix(const DtObjectType & objectType,
813  const DtString& potentialPrefix);
814 
817  virtual DtString nextNameWithPrefix(int maxLength,
818  const DtString& potentialPrefix);
819 
821  virtual unsigned int getNextTransmitterId();
822 
824  virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType);
827  virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType,
828  const DtString& name);
830  virtual DtString topLevelName(DtForceType forceType);
831 
839  virtual DtString nextName(const DtObjectType& objectType);
841  virtual DtString nextUnorganizedName();
844  virtual DtString uniquifyName(const DtString& name, const DtObjectType& objectType);
845 
849  virtual unsigned int maxNameLengthForType(const DtObjectType& objectType);
850 
853  virtual DtReflectedObject* lookupReflectedObject(
854  const DtGlobalObjectDesignator& globalId) const;
855 
857  virtual void rediscoverObjects(const std::set<DtGlobalObjectDesignator>& ignore =
858  std::set<DtGlobalObjectDesignator>());
859 
862  virtual void requestUpdatesForRemoteNonVrfObjects() const;
863 
866  virtual void objectNameChanged(DtVrfObject*, const DtString& oldName,
867  const DtString& newName);
868 
871  virtual void objectUUIDChanged(const DtUUID& oldUUID, const DtUUID& newUUID);
872 
874 
875  virtual void addObjectNameChangedCallback(DtVrfObjectNameChangedCallbackFcn fcn, void* usr) const;
876  virtual void removeObjectNameChangedCallback(DtVrfObjectNameChangedCallbackFcn fcn, void* usr) const;
878 
882 
883  virtual void addObjectUUIDChangedCallback(DtVrfObjectUUIDChangedCallbackFcn fcn, void* usr) const;
884  virtual void removeObjectUUIDChangedCallback(DtVrfObjectUUIDChangedCallbackFcn fcn, void* usr) const;
886 
903  virtual DtVrfObject* aggregateAs(
904  const DtObjectType& aggregateType,
905  DtForceType force,
906  const DtVector& dbPosition,
907  DtReal heading,
908  const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
909  const DtString& aggregateName = DtString::nullString(),
910  bool addToOrbat = true);
911 
913  virtual double timeOfDay() const;
914 
916  virtual double dateAndTimeOfDay() const;
917 
922  virtual void setSimulationDateTimeBasedOnLocation(const DtVector& geocentricLocation, int timeOfDay);
923 
924  virtual const DtOrganizationManager* organizationManager() const;
925 
926  virtual const DtOrbatManager* orbatManager() const;
927 
930  virtual DtDiGuyCharacterDataManager * diGuyCharacterManager();
931  virtual const DtDiGuyCharacterDataManager * diGuyCharacterManager() const;
932 
934  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
935 
937  virtual unsigned objectCount() const;
938 
941  virtual DtSharedVrfObjectReference lookupVrfObjectByEntityIdentifier(const DtEntityIdentifier& key) const;
942 
945  virtual DtSharedVrfObjectReference lookupVrfObjectByGlobalId(const DtGlobalObjectDesignator& globalId) const;
946 
961  virtual DtSharedVrfObjectReference lookupVrfObjectByUUID(const DtUUID&) const;
962 
965  virtual bool uuidExists(const DtUUID&) const;
966 
969  virtual bool addNameAlias(const DtString& aliasName, DtVrfObject* object);
970 
971  virtual void removeNameAlias(const DtString& alias);
972 
977  virtual DtSharedVrfObjectReference lookupVrfObjectByMarkingText(const DtString&) const;
978 
980  virtual bool hasObjectType(const DtObjectType&) const;
981 
984  virtual bool markingTextExists(const DtString&) const;
985 
987  virtual const DtSimulationAddress& simulationAddress() const;
988 
994  const DtSimObjectMapIterator& iterator() const;
995 
997  virtual bool createSimObjectList();
998 
1001  virtual const DtSimObjectMap& objectMap() const;
1002 
1006  virtual void createRemoteEntitiesList(DtExerciseConn* exConn);
1007  virtual void createRemoteAggregatesList(DtExerciseConn* exConn);
1008 
1013  static void entityAddedCallback(DtReflectedExtEntity* entity, void* userData);
1014 
1019  static void entityRemovedCallback(DtReflectedExtEntity* entity,
1020  void* userData);
1021 
1026  static void aggregateAddedCallback(DtReflectedExtAggregate* entity,
1027  void* userData);
1028 
1033  static void aggregateRemovedCallback(DtReflectedExtAggregate* entity,
1034  void* userData);
1035 
1040  static void entityChangedCallback(DtReflectedExtEntity* entity,
1041  void* userData);
1042 
1047  static void aggregateChangedCallback(DtReflectedExtAggregate* aggregate,
1048  void* userData);
1049 
1051  virtual void processEntityChanged(DtReflectedExtEntity* entity);
1052 
1058  static bool entityDiscoveryCriteriaCallback(DtReflectedObject* entity,
1059  void* userData);
1060 
1066  static bool aggregateDiscoveryCriteriaCallback(DtReflectedObject* aggregate,
1067  void* userData);
1068 
1074  virtual bool processEntityDiscoveryCriteria(
1075  DtReflectedEntity* entity);
1076 
1082  virtual bool processAggregateDiscoveryCriteria(
1083  DtReflectedAggregate* aggregate);
1084 
1087  virtual DtReflectedDesignator * lookupLasedTargetByGlobalId(const DtGlobalObjectDesignator&
1088  tgtGlobalId);
1089 
1091  virtual bool hostingDynamicTerrainServer() const;
1092 
1096  virtual DtReflectedDesignator* lookupLasedTargetByDesignatorCode(const int code);
1097 
1101  virtual void createRemoteDesignatorsList(DtExerciseConn* exConn);
1102 
1103  virtual void createRemoteActiveSonarList(DtExerciseConn* exConn);
1104  virtual void createRemotePropulsionNoiseList(DtExerciseConn* exConn);
1105  virtual void createRemoteRadioTransmitterList(DtExerciseConn* exConn);
1106  virtual void createRemoteEmitterSystemList(DtExerciseConn* exConn);
1107  virtual void createRemoteIffList(DtExerciseConn* exConn);
1108 
1109 #if DtHLA
1110  virtual void createRemoteExtendedAttributesList(DtExerciseConn* exConn);
1113 #endif
1114 
1115  DtReflectedDesignatorList* reflectedDesignatorList() const;
1116 
1117  DtReflectedActiveSonarList* reflectedActiveSonarList() const;
1118  DtReflectedPropulsionNoiseList* reflectedPropulsionNoiseList() const;
1119  DtReflectedRadioTransmitterList* reflectedRadioTransmitterList() const;
1120  DtReflectedIffList* reflectedIffList() const;
1121 
1123  virtual DtVrfParameterDb* objectParametersDB() const;
1124 
1126  virtual void addSimObjectQueuedForRemovalCallback(
1127  DtVrfObjectQueuedForRemocalCallbackFcn fcn, void* usr) const;
1128  virtual void removeSimObjectQueuedForRemovalCallback(
1129  DtVrfObjectQueuedForRemocalCallbackFcn fcn, void* usr) const;
1130  virtual void invokeSimObjectQueuedForRemovalCallbacks(
1131  const DtVrfObject* object);
1132 
1136  virtual void addSimObjectAboutToBeAddedCallback(
1137  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1138  const DtObjectType& filter = DtObjectType::anyType(),
1139  bool invertFilter = false) const;
1140 
1144  virtual void addSimObjectAddedCallback(
1145  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1146  const DtObjectType& filter = DtObjectType::anyType(),
1147  bool invertFilter = false) const;
1148 
1152  virtual void addSimObjectAboutToBeRemovedCallback(
1153  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1154  const DtObjectType& filter = DtObjectType::anyType(),
1155  bool invertFilter = false) const;
1156 
1160  virtual void addSimObjectAboutToBeLoadedCallback(
1161  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1162  const DtObjectType& filter = DtObjectType::anyType(),
1163  bool invertFilter = false) const;
1164 
1167  virtual void removeSimObjectAboutToBeAddedCallback(
1168  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1169  const DtObjectType& filter = DtObjectType::anyType(),
1170  bool invertFilter = false) const;
1171 
1174  virtual void removeSimObjectAddedCallback(
1175  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1176  const DtObjectType& filter = DtObjectType::anyType(),
1177  bool invertFilter = false) const;
1178 
1181  virtual void removeSimObjectAboutToBeLoadedCallback(
1182  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1183  const DtObjectType& filter = DtObjectType::anyType(),
1184  bool invertFilter = false) const;
1185 
1188  virtual void removeSimObjectAboutToBeRemovedCallback(
1189  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1190  const DtObjectType& filter = DtObjectType::anyType(),
1191  bool invertFilter = false) const;
1192 
1196  virtual void invokeSimObjectAboutToBeAddedCallbacks(
1197  const DtVrfObject* simObject);
1198 
1202  virtual void invokeSimObjectAddedCallbacks(
1203  const DtVrfObject* simObject);
1204 
1208  virtual void invokeSimObjectAboutToBeRemovedCallbacks(
1209  const DtVrfObject* simObject);
1210 
1214  virtual void invokeSimObjectAboutToBeLoadedCallbacks(
1215  const DtVrfObject* simObject);
1216 
1218  virtual DtReflectedExtEntityList* reflectedEntityList() const;
1219 
1221  virtual DtReflectedExtAggregateList* reflectedAggregateList() const;
1222 
1226  virtual void setSimObjectType(const DtString& type);
1227  virtual const DtString& simObjectType() const;
1229 
1231  virtual void setOrbatEnabled(bool);
1232  virtual bool orbatEnabled() const;
1233 
1235  virtual void setOrderOfBattleObjectsAddedToOrbatByDefault(bool b);
1236  virtual bool orderOfBattleObjectsAddedToOrbatByDefault() const;
1237 
1239  virtual void closingScenario();
1240 
1243  virtual bool addUUIDMappingForObject(DtVrfObject* vrfObject);
1244 
1246  virtual void removeUUIDMappingForObject(DtVrfObject* vrfObject);
1247 
1249  virtual DtEntityIdentifier nextId(DtVrfObject* o = NULL);
1250 
1255  virtual DtString generateUniqueName(int maxLength, const DtString&
1256  root = "Object") const;
1257 
1259  virtual void setRollUpRules(const DtAssembliesReaderWriter::RwRootNode&);
1260 
1262  virtual const DtAssembliesReaderWriter::RwRootNode& rollUpRules() const;
1263 
1265  virtual void setActivities(const DtRwActivities&);
1266 
1268  virtual const DtRwActivities& activities() const;
1269 
1272  virtual bool isLocal(const DtBaseEntityStateRepository& stateRep);
1273 
1277  static int aggregateSuperType(DtAggregateStateRepository* aggregate);
1278 
1283  virtual void objectsEmbarkedOn(DtVrfObjectStateRepository* vrfObjSR, std::vector<DtSharedVrfObjectReference>& list,
1284  bool includePseudoAggregates = true) const;
1285 
1290  static void designatorAddedCallback(DtReflectedDesignator * des,
1291  void * userData);
1292 
1297  static void designatorRemovedCallback(DtReflectedDesignator * des,
1298  void * userData);
1299 
1304  static void designatorChangedCallback(DtReflectedDesignator * des,
1305  void * userData);
1306 
1312  static DtBoolean designatorDiscoveryCriteriaCallback(DtReflectedObject * des,
1313  void * userData);
1314 
1315  static void activeSonarAddedCallback(DtReflectedActiveSonar* activeSonar,
1316  void* userData);
1317  static void activeSonarRemovedCallback(DtReflectedActiveSonar* activeSonar,
1318  void* userData);
1319  static void activeSonarChangedCallback(DtReflectedActiveSonar* activeSonar,
1320  void* userData);
1321  static DtBoolean activeSonarDiscoveryCriteriaCallback(
1322  DtReflectedObject* activeSonar, void* userData);
1323 
1324  static void propulsionNoiseAddedCallback(DtReflectedPropulsionNoise* propNoise,
1325  void* userData);
1326  static void propulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* propNoise,
1327  void* userData);
1328  static void propulsionNoiseChangedCallback(DtReflectedPropulsionNoise* propNoise,
1329  void* userData);
1330  static DtBoolean propulsionNoiseDiscoveryCriteriaCallback(
1331  DtReflectedObject* propNoise, void* userData);
1332 
1333  static void radioTransmitterAddedCallback(DtReflectedRadioTransmitter* transmitter,
1334  void* userData);
1335  static void radioTransmitterRemovedCallback(DtReflectedRadioTransmitter* transmitter,
1336  void* userData);
1337  static void radioTransmitterChangedCallback(DtReflectedRadioTransmitter* transmitter,
1338  void* userData);
1339  static DtBoolean radioTransmitterDiscoveryCriteriaCallback(
1340  DtReflectedObject* transmitter, void* userData);
1341 
1342  static void iffAddedCallback(DtReflectedIff* propNoise,
1343  void* userData);
1344  static void iffRemovedCallback(DtReflectedIff* propNoise,
1345  void* userData);
1346  static void iffChangedCallback(DtReflectedIff* propNoise,
1347  void* userData);
1348  static DtBoolean iffDiscoveryCriteriaCallback(
1349  DtReflectedObject* iff, void* userData);
1350 
1353  virtual bool canSimulate() const;
1354 
1357  virtual void setCanSimulate(bool);
1358 
1360  virtual void printReflectedObjectCounts() const;
1361 
1364  virtual void addStealthType(const DtEntityType&);
1365  virtual void removeStealthType(const DtEntityType&);
1366  virtual bool isStealthType(const DtEntityType&) const;
1367  std::vector<DtEntityType>& stealthTypes() { return myStealthTypes; };
1368  const std::vector<DtEntityType>& stealthTypes() const { return myStealthTypes; };
1369 
1371  virtual std::set<const DtVrfObject*> objectsOnOverlayLayer(const DtString&) const;
1372 
1374  static void vrfObjectDataChangedCallback(const DtVrfObjectCallbackData&, void*);
1375  virtual void processVrfObjectDataChanged(const DtVrfObject*, int);
1376 
1378  virtual void clearObjectsAwaitingDiscovery();
1379 
1383  virtual bool addSubordinatesToAggregate(DtVrfObject* object,
1384  const std::vector<DtUUID>& subordinates, DtAggregateState desiredState = DtFullyDisaggregated);
1385 
1389  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(const DtString& filename, int flags, DtForceType force,
1390  DtlObjPtr* retArgs = 0, bool* errorLoading = 0);
1391  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFileFromZipFile(
1392  const DtFilename& scenarioZipFile, const DtString& filename, int flags, DtForceType force,
1393  DtlObjPtr* retArgs = 0, bool* errorLoading = 0);
1394  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(int flags, DtForceType force, DtlObjPtr& args);
1395  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(DtlInputStream* fStream, int flags, DtForceType force,
1396  DtlObjPtr* retArgs = 0, bool* errorLoading = 0);
1397 
1398 protected:
1400  virtual void processOrganizationManagerReady(const DtOrganizationManagerReadyCallbackInfo&);
1401  virtual void invokeOrganizationManagerReadyCallbacks(const DtOrganizationManagerReadyCallbackInfo&);
1402 
1410  virtual void createSubObjectsFromParameters(const DtVrfObject* parent,
1411  bool publishSubobjects, unsigned long requestId, const DtString& overlayParent, bool addToOrbat);
1412 
1419  virtual DtVrfObject* createSubObjectFromParameterEntry(
1420  const DtVrfSubObjectParameterEntry& entry, const DtVector& positionOffsetFromParent,
1421  const DtVrfObject& parent,
1422  const DtString& formationName,
1423  bool publishSubObject, unsigned long requestId = 0, const DtString& overlayParent = "",
1424  const DtString& markingText = "", const DtUUID& uuid = DtUUID::nullUUID(),
1425  bool addToOrbat = true);
1426 
1427  virtual DtVrfObject* createObjectFromMemoryBuffer(const std::string& buffer);
1428 
1434  static void addSubordinatesToAggregateCompleteCallback(void* usr);
1435 
1437  virtual DtObjectType potentialRandomObjectTypeFrom(const DtObjectType& original);
1438 
1441  virtual void rediscoverNonVRFEntities();
1442 
1446  virtual void remove(DtVrfObject* simObject);
1447  virtual void remove(DtSharedVrfObjectReference simObject);
1448  virtual const DtVrfObject* remove(const DtEntityIdentifier& key);
1449 
1452  virtual void invokeObjectManagerAboutToRemoveAllCallbacks();
1453 
1456  virtual void onQueueObjectForRemoval(DtVrfObject* vrfObject, bool andRemoveFromOrbat = false);
1457 
1458  virtual const Coordinate_System* coordinateSystem() const;
1459  virtual Coordinate_System* coordinateSystem();
1460 
1463  virtual void modifyInterfaceContentForNewObject(DtSimInterfaceContent*, DtVrfObject*, bool& isLocal) const;
1464 
1467  virtual std::list<DtVector> calculateFormationOffsetsBasedOnFootprints(const DtList&) const;
1468 
1470  virtual std::vector<Dt3dBoundingVolume> boundingVolumesOfChildren(const DtList& subObjects,
1471  int& totalLeafNodes) const;
1472 
1473 protected:
1475  virtual void checkPendingNameRemoval(const DtString& markingText);
1476 
1479  virtual void removeVrfObject(const DtUUID&, bool queueDeletionOfVrfObject = false);
1480 
1482  virtual DtObjectGeometricModelsManager* createObjectModelsManager();
1483 
1485  virtual DtVrfEntityIdentifierFactory* createVrfEntityIdentifierFactory();
1486 
1488  virtual DtVrfObjectPlanAdministrator* createPlanAdministrator();
1489 
1490  virtual bool finalizeObjectRead(DtVrfObject*);
1491 
1492  virtual DtEntityIdentifier findEntityIdentifier(DtlObjPtr);
1493 
1495  virtual void deleteVrfObjectsToBeDeleted();
1496 
1498  virtual DtEntityType standardAggregateTypeToVrfAggregateType(const DtEntityType& aggType) const;
1499 
1501  virtual DtVrfObject* createAndInitVrfObject(DtReflectedEntity* entity);
1502 
1503  virtual DtVrfObject* createAndInitVrfObject(DtReflectedAggregate* aggregate,
1504  int superType = DtObjectTypePseudoAggregate);
1505 
1506  virtual DtVrfObject* createAndInitVrfObject(DtReflectedEnvironmentProcess* envProcess);
1507 
1508 public:
1509  DtObjectGeometricModelsManager* objectModelsManager() const;
1510  DtVrfEntityIdentifierFactory* vrfEntityIdentifierFactory() const;
1511 
1512 #if DtHLA_1516_EVOLVED
1513  virtual void reserveGlobalObjectIds(unsigned numToReserve);
1515 #endif
1516 
1521  virtual DtGlobalObjectDesignator nextGlobalObjectId();
1522 
1523  virtual DtVrfObjectPlanAdministrator* planAdministrator();
1524  virtual const DtVrfObjectPlanAdministrator* planAdministrator() const;
1525 
1526  virtual DtSimInternalCommunicationManager* simInternalCommunicationManager();
1527 
1528 protected:
1530  virtual DtSimInternalCommunicationManager* createSimInternalCommunicationManager(
1531  DtSimManager* simMgr) const;
1532 
1533 protected:
1534 
1536  typedef std::pair<DtVrfObject*, DtVrfSimulationObjectGroupGeometry*> PendingObjectInformation;
1537  typedef std::vector<PendingObjectInformation> PendingObjectsInformation;
1538  typedef std::vector<PendingObjectsInformation> ObjectsAwaitingDiscovery;
1539 
1542  virtual bool addObjectsReadyForSimulation(PendingObjectsInformation&);
1543 
1547  static void modifyVrfObjectCallback(DtSimMessage* msg, void* usr);
1548  static void modifyVrfOverlayCallback(DtSimMessage* msg, void* usr);
1549  static void autoReorganizeCallback(DtSimMessage* msg, void* usr);
1550  static void skipTaskCallback(DtSimMessage* msg, void* usr);
1551  static void setThresholdsCallback(DtSimMessage* msg, void* usr);
1552  static void deleteDynamicTerrainServerCallback(DtSimMessage*, void*);
1553 
1554 #if DT_SINGLE_STATE_UPDATE_MESSAGE
1555  static void vrfObjectStateUpdateCallback(DtSimMessage* msg, void* usr);
1556 #endif
1557 
1565  static void createVrfObjectCallback(DtSimMessage* msg, void* usr);
1566  static void deleteVrfObjectCallback(DtSimMessage* msg, void* usr);
1567  static void deleteVrfObjectByIdCallback(DtSimMessage* msg, void* usr);
1568  static void vrfObjectDeletedCallback(DtSimMessage* msg, void* usr);
1569  static void orderOfBattleOpCallback(DtSimMessage* msg, void* usr);
1570  static void aggregateAsCallback(DtSimMessage* msg, void* usr);
1571 
1573  static void extendedLabelsOperationCallback(DtSimMessage* msg, void* usr);
1574  virtual void processExtendedLabelsOperation(DtSimMessage*);
1575 
1577  static void requestActivitiesCallback(DtSimMessage* msg, void* usr);
1578  virtual void processRequestActivities(DtSimMessage*);
1579 
1581  static void requestJoystickControlsCallback(DtSimMessage* msg, void* usr);
1582  virtual void processRequestJoystickControls(DtSimMessage*);
1583 
1586  virtual bool acceptRemoteEnvironmental(const DtEntityType& et) const;
1587 
1588  static void envProcessAddedCallback(
1589  DtReflectedEnvironmentProcess* envProcess, void* userData);
1590  static void envProcessRemovedCallback(
1591  DtReflectedEnvironmentProcess* envProcess, void* userData);
1592  static bool envProcessDiscoveryCriteria(
1593  DtReflectedObject* envProcess, void* userData);
1594 
1595  static void organizationManagerReadyCallback(const DtOrganizationManagerReadyCallbackInfo& info, void* usr);
1596 
1597 protected:
1598 
1601 
1604 
1607 
1613  static void postInitFromParamsCallback(const DtVrfObject* vrfObject, void* usr);
1614 
1617  virtual DtCreateQueueEntry* createQueueEntryCreator(DtIfCreateVrfObject msg);
1618 
1621  virtual DtModifyQueueEntry* modifyQueueEntryCreator(DtIfModifyVrfObject msg);
1622 
1624  virtual DtOrganizationManager* createOrganizationManager();
1625 
1627  virtual DtOrbatManager* createOrbatManager();
1628 
1629 protected:
1632 
1635 
1638 
1641 
1644 
1645  DtReflectedActiveSonarList* myRemoteActiveSonarList;
1646  DtReflectedPropulsionNoiseList* myRemotePropulsionNoiseList;
1648 
1650 
1651  DtReflectedIffList* myReflectedIffList;
1652 
1653 #if DtHLA
1654  makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList* myRemoteExtendedAttributesObjectsList;
1656 #endif
1657 
1660 
1665 
1670 
1675 
1680 
1681  //mutable std::set<DtSimObjectListActivityCallbackInfo*> myRemovalCallbacksRemoved;
1682 
1685 
1690 
1691  DtExerciseConn* myExerciseConn;
1692 
1695 
1697 
1702 
1704 
1707  std::map<DtUUID, bool> myObjectsToRemoveQueue;
1708  std::map<DtString, std::map<DtUUID, bool> > myObjectsToRemoveByNameQueue;
1709 
1713 
1716  typedef DtBoost::shared_ptr<DtModifyQueueEntry> DtModifyQueueEntryPtr;
1717  typedef std::list<DtModifyQueueEntryPtr> DtVrfObjectModifyQueue;
1719 
1722 
1724 
1726 
1727  typedef boost::unordered_map<DtString, DtSharedVrfObjectReference> GlobalIdToObjectMap;
1729 
1731 
1733 
1735 
1737 
1739 
1741 
1743 
1745 
1747 
1750 
1753 
1756 
1759 
1761 
1763 
1765 
1768 
1772 
1778 
1779  typedef boost::unordered_map<DtUUID, DtSharedVrfObjectReference> UUIDToObjectMap;
1781 
1782  typedef boost::unordered_map<DtString, DtSharedVrfObjectReference> NameToObjectMap;
1785 
1786  typedef boost::unordered_map<DtVrfObject*, DtSharedVrfObjectReference> ObjectToObjectMap;
1788 
1790 
1791  std::vector<DtVrfObject*> myJustAdded;
1792  unsigned int myNextTransmitterId;
1793  std::map<int, DtlObjPtr> mySortedByEntityId;
1800 
1802 
1803 #if DtHLA_1516
1804  std::set<DtGlobalObjectDesignator> myReservedGlobalIds;
1805 #endif
1806 
1807  std::vector<DtEntityType> myStealthTypes;
1808 
1809  std::vector<DtVrfObject*> myVrfObjectsToDelete;
1812 
1814  mutable tbb::spin_rw_mutex myOverlayMapMutex;
1815  typedef std::map<DtString, std::set<const DtVrfObject*> > OverlayMap;
1816  typedef std::map<const DtVrfObject*, DtString> ObjectOverlayMap;
1817 
1820 
1823 
1826 
1828 };
1829 
1831 {
1833 }
1834 
1836 {
1838 }
DtReaderWriter::SearchPaths mySearchPaths
Definition: vrfObjectManager.h:1801
DtSimObjectMapIterator * myIterator
Definition: vrfObjectManager.h:1689
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Class Description: DtVrfSimulationObjectGroupGeometry is a specialized that class will calculate obje...
Definition: vrfSimulationObjectGroupGeometry.h:48
std::list< DtCreateQueueEntryPtr > DtVrfObjectCreateQueue
Definition: vrfObjectManager.h:461
Contains the DtReflectedExtEntityList class declaration.
DtVrfObjectModifyQueue myObjectsToModifyQueue
Definition: vrfObjectManager.h:1718
This singleton class keeps track of components that should be added to remote, non VR-Forces entities...
Definition: remoteComponentAttachmentManager.h:33
boost::unordered_map< DtString, DtSharedVrfObjectReference > GlobalIdToObjectMap
Definition: vrfObjectManager.h:1727
Definition: vrfObjectManager.h:185
DtVrfEntityIdentifierFactory * myEntityIdentifierFactory
Definition: vrfObjectManager.h:1795
DtRwActivities myActivities
Definition: vrfObjectManager.h:1764
bool myCanSimulate
Definition: vrfObjectManager.h:1798
Definition: reflectedExtEntity.h:31
int myNameCounter
Definition: vrfObjectManager.h:1725
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
bool myWarnedAboutTaskVisLimit
Definition: vrfObjectManager.h:1777
void(* DtVrfObjectManagerCallbackFcn)(const DtVrfObjectManager &objectManager, void *usr)
Callback function definition for object manager &#39;about to remove all&#39; events.
Definition: vrfObjectManager.h:125
DtCallbackList< const DtVrfObjectAboutToBePublishedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectAboutToBePublishedCallbackFcn
Definition: vrfObjectManager.h:178
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:35
boost::unordered_map< DtUUID, DtSharedVrfObjectReference > UUIDToObjectMap
Definition: vrfObjectManager.h:1779
DtString myNewName
Definition: vrfObjectManager.h:154
std::list< DtModifyQueueEntryPtr > DtVrfObjectModifyQueue
Definition: vrfObjectManager.h:1717
std::vector< PendingObjectInformation > PendingObjectsInformation
Definition: vrfObjectManager.h:1537
const Coordinate_System * myCoordinateSystemPtr
Definition: vrfObjectManager.h:1736
DtVrfObject * myDynamicTerrainServer
Definition: vrfObjectManager.h:1740
The DtVisualMetaDataManager will use ead meta data files based on the given entity type...
Definition: visualMetaDataManager.h:26
ObjectToObjectMap myObjectToObjectMap
Definition: vrfObjectManager.h:1787
Definition: reflectedExtAggregate.h:35
A Readable, Writable version of DtList.
Definition: rwList.h:26
const char DtDefaultFormationString[]
Definition: extendedAggregateEnums.h:23
Arguments passed by the DtVrfObjectManager::addUUISChangedCallback callbacks.
Definition: vrfObjectManager.h:169
DtReflectedIffList * myReflectedIffList
Definition: vrfObjectManager.h:1651
DtNameChangedCallbackList myObjectNameChangedCallbackList
Definition: vrfObjectManager.h:1749
DtCallbackList< const DtOrganizationManagerReadyCallbackInfo & >::DtCallbackFunctionType DtOrganizationManagerReadyCallbackFcn
Callback function definition for organization manager readiness state change.
Definition: organizationManager.h:34
std::map< int, DtlObjPtr > mySortedByEntityId
Definition: vrfObjectManager.h:1793
A manager for reflected emitter systems and some related functionality.
Definition: reflectedEmitterSystemManager.h:31
boost::unordered_map< DtVrfObject *, DtSharedVrfObjectReference > ObjectToObjectMap
Definition: vrfObjectManager.h:1786
unsigned myMaxObjectsWithTaskVisualizations
Definition: vrfObjectManager.h:1776
const std::vector< DtEntityType > & stealthTypes() const
Definition: vrfObjectManager.h:1368
DtSimObjectListActivityCallbackList myAboutToBeAddedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1669
Definition: vrfObjectManager.h:184
std::map< DtUUID, bool > myObjectsToRemoveQueue
Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval. ...
Definition: vrfObjectManager.h:1707
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0
This method must be overridden by a subclass.
The manager for SimInternal messages on a single simulation engine.
Definition: simInternalCommunicationManager.h:34
DtImportScenarioData(const DtImportScenarioData &orig)
Definition: vrfObjectManager.h:137
DtUUIDChangedCallbackList myObjectUUIDChangedCallbackList
Definition: vrfObjectManager.h:1755
Definition: reflectedVrfExtEntityList.h:23
DtReflectedRadioTransmitterList * myRemoteTransmitterList
Definition: vrfObjectManager.h:1647
std::vector< DtVrfObject * > myVrfObjectsToDelete
Definition: vrfObjectManager.h:1809
DtCallbackList< const DtVrfObject * > DtObjectQueuedForRemovalCallbackList
Definition: vrfObjectManager.h:1751
DtImportScenarioData()
Definition: vrfObjectManager.h:136
DtConsoleCommandOwner * myConsoleCommands
Definition: vrfObjectManager.h:1762
DtCallbackList< const DtVrfObjectManager & > DtAboutToRemoveAllCallbackList
Definition: vrfObjectManager.h:1810
Definition: vrfEntityIdentifierFactory.h:18
*virtual const DtObjectType & objectType() const
bool mySetDeadReckoningAlgorithmToStaticOnPause
Definition: vrfObjectManager.h:1771
Definition: assembliesReaderWriter.h:31
DtReflectedExtEntityList * myRemoteEntitiesList
VR-Link reflected entity list.
Definition: vrfObjectManager.h:1637
DtString mySimObjectType
Type of DtSimObject to create. Types are defined in simObjectTypes.h.
Definition: vrfObjectManager.h:1684
ACTUAL DEFINITION IN fltrFcnInf.h, provided here for readability typedef bool (DtFilterFcn)(const DtS...
Definition: vrfObjectFilterMapIterator.h:41
Structure that is used during scenario import to determine what to do with the import data...
Definition: vrfObjectManager.h:134
DtVrfSubObjectParameterEntry.
Definition: vrfSubObjectParameterEntry.h:27
DtCallbackList< const DtVrfObjectAboutToBePublishedCallbackInfo & > VrfObjectAboutToBePublishedCallbackList
Definition: vrfObjectManager.h:1757
Definition: readerWriterRegistry.h:39
DtCallbackList< const DtVrfObject * >::DtCallbackFunctionType DtVrfObjectQueuedForRemocalCallbackFcn
Definition: vrfObjectManager.h:179
This class derives from the DtOrganizationManager and will handle all requests as it pertains to the ...
Definition: orbatManager.h:25
DtAboutToRemoveAllCallbackList myAboutToRemoveAllCallbackList
Definition: vrfObjectManager.h:1811
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
std::vector< PendingObjectsInformation > ObjectsAwaitingDiscovery
Definition: vrfObjectManager.h:1538
DtCallbackList< const DtVrfObjectUUIDChangedCallbackInfo & > DtUUIDChangedCallbackList
Definition: vrfObjectManager.h:1754
Callback list for DtVrfObjectManager object list activity, such as adding and removing objects...
Definition: simObjectListActivityCallbackList.h:25
class DtReflectedControlObjectList:
Definition: reflectedControlObjectList.h:23
boost::unordered_map< DtString, DtSharedVrfObjectReference > NameToObjectMap
Definition: vrfObjectManager.h:1782
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:155
DtDeadReckonTypes myDeadReckonOverrideAlgorithm
Definition: vrfObjectManager.h:1822
bool(* DtSimObjectUserInitFcn)(DtVrfObject *object, void *usr)
User action function definition for createAndInitSimObject()
Definition: vrfObjectManager.h:118
std::pair< DtVrfObject *, DtVrfSimulationObjectGroupGeometry * > PendingObjectInformation
Simulation object groups that are awaiting to be &quot;discovered&quot;.
Definition: vrfObjectManager.h:1536
DtVrfObjectUUIDChangedCallbackInfo()
Definition: vrfObjectManager.h:161
unsigned int importFlags
Definition: vrfObjectManager.h:144
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
Arguments passed by the DtVrfObjectManager::addUUISChangedCallback callbacks.
Definition: vrfObjectManager.h:159
tbb::spin_rw_mutex myOverlayMapMutex
Map of which objects are on which overlay layers.
Definition: vrfObjectManager.h:1814
std::vector< DtEntityType > & stealthTypes()
Definition: vrfObjectManager.h:1367
class DtIfModifyVrfObject:
Definition: ifModifyVrfObject.h:50
DtVector geocentricOffsetLocation
Definition: vrfObjectManager.h:146
std::vector< DtEntityType > myStealthTypes
Definition: vrfObjectManager.h:1807
Definition: objectType.h:27
DtOrganizationReadyCallbackList myOrganizationManagerReadyCallbackList
Definition: vrfObjectManager.h:1760
UUIDToObjectMap myUUIDToObjectMap
Definition: vrfObjectManager.h:1780
DtVrfObjectFilterMapIterator * myVrfIterator
Definition: vrfObjectManager.h:1701
Instances of DtVrfObjectPredicate are used to evaluate a condition, given a DtVrfObject as an argumen...
Definition: vrfObjectPredicate.h:21
voidp zipFile
Definition: zip.h:67
Manages loading and destruction of object models.
Definition: objectGeometricModelsManager.h:28
DtExerciseConn * myExerciseConn
Definition: vrfObjectManager.h:1691
static const DtUUID & nullUUID()
void(* DtVrfObjectListActivityCallbackFcn)(const DtVrfObject *vrfObject, void *usr)
Callback function definition (for callbacks registered on DtVrfObject* additions to and removals from...
Definition: simObjectListActivityCallbackList.h:19
Definition: coordSystem.h:54
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:165
DtReflectedActiveSonarList * myRemoteActiveSonarList
Definition: vrfObjectManager.h:1645
DtVrfObjectCreateQueue myObjectsToCreateQueue
Object creation queue; objects are only created once the terrain at the requested location has been p...
Definition: vrfObjectManager.h:1712
GlobalIdToObjectMap myGlobalIdToObjectMap
Definition: vrfObjectManager.h:1728
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtVrfParameterDb * myParameterDatabase
Parameter database used in creation and initialization of DtVrfObjects.
Definition: vrfObjectManager.h:1659
DtString deconflictingName
Definition: vrfObjectManager.h:143
DtReflectedExtAggregateList * myRemoteAggregateEntitiesList
VR-Link reflected aggregate list.
Definition: vrfObjectManager.h:1640
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtEntityIdentifier * myEntityIdentifier
Definition: vrfObjectManager.h:172
bool myPublishZeroVelocityWhenPaused
Definition: vrfObjectManager.h:1770
bool myIsDeadReckonAlgorithmOverridden
Definition: vrfObjectManager.h:1821
DtReflectedDesignatorList * myRemoteDesignatorsList
VR-Link reflected designator list.
Definition: vrfObjectManager.h:1643
std::map< const DtVrfObject *, DtString > ObjectOverlayMap
Definition: vrfObjectManager.h:1816
File: simMsg.h.
Definition: simMessage.h:35
bool creatingSimulationObjectGroup
Definition: vrfObjectManager.h:140
Contains data describing the available attributes and animations of every DI-Guy character type that ...
Definition: diGuyCharacterDataManager.h:34
class DtVertexList:
Definition: vertexList.h:22
DtAggregateCreationMode
Defines how the initial DtAggregateState should be set upon creation of an aggregate entity...
Definition: vrfObjectManager.h:209
DtUUID myNewUUID
Definition: vrfObjectManager.h:164
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
void(* DtSimObjectListActivityCallbackFcn)(const DtVrfObject *simObject, void *usr)
Callback function definition.
Definition: simObjectListActivityCallbackInfo.h:12
bool myLoadingScenarioInformation
Definition: vrfObjectManager.h:1797
Definition: noArgumentCallbackList.h:91
DtSimObjectMap mySimObjectList
Hashlist of all DtVrfObject*s, keyed on DtEntityIdentifier.
Definition: vrfObjectManager.h:1634
int myIndexSize
All hash indices for our objects should be created this size.
Definition: vrfObjectManager.h:1694
virtual DtListItem * add(DtReaderWriter *data)
Add element to the end of the list.
bool myAutoReorganizeFlag
Automatic reorganization flag for pseudo-aggregate entities.
Definition: vrfObjectManager.h:1721
ObjectOverlayMap myObjectOverlayMap
Definition: vrfObjectManager.h:1818
DtBoost::shared_ptr< DtModifyQueueEntry > DtModifyQueueEntryPtr
Object modification queue; objects which are ground clamped are only moved once the terrain at the re...
Definition: vrfObjectManager.h:1716
A utility class for use with DtConsoleCommandManager.
Definition: consoleCommandManager.h:157
int importForce
Definition: vrfObjectManager.h:145
double offsetRotation
Definition: vrfObjectManager.h:147
DtReflectedEmitterSystemManager * myReflectedEmitterSystemManager
Definition: vrfObjectManager.h:1649
bool(* DtFilterFcn)(const DtVrfObject *object, void *usr)
Definition: filterFcnInfo.h:19
Definition: vrfObject.h:93
DtTaskVisualizationPublicationMode myTaskVisualizationPublicationMode
Definition: vrfObjectManager.h:1773
static DtTime theOrgMgrTickPeriod
Definition: vrfObjectManager.h:1825
Description: DtMapIteratorBase is the base class for iterators used to iterate over a std::map...
Definition: mapIteratorBase.h:18
DtManagedObjectListManager * myFilteredObjectListManager
Definition: vrfObjectManager.h:1696
Definition: echelonId.h:13
This class derives from the DtOrganizationView, and adds the capability to manipulate the hierarchy...
Definition: organizationManager.h:46
DtBoost::shared_ptr< DtCreateQueueEntry > DtCreateQueueEntryPtr
Returns the objects to create queue.
Definition: vrfObjectManager.h:460
Definition: vrfObjectPlanAdministrator.h:45
class DtVrfObjectManager:
Definition: vrfObjectManager.h:201
NameToObjectMap myAwaitingToBeCreatedMap
Definition: vrfObjectManager.h:1784
DtOrganizationManager * myOrganizationManager
Definition: vrfObjectManager.h:1732
voidpf stream
Definition: ioapi.h:39
virtual void * remove(DtReaderWriter *data, DtListItem *item)
Remove an element from the list.
unsigned int myNextTransmitterId
Definition: vrfObjectManager.h:1792
DtCallbackList< const DtVrfObjectNameChangedCallbackInfo & > DtNameChangedCallbackList
Definition: vrfObjectManager.h:1748
double myTimeToPublishNextStateUpdate
Definition: vrfObjectManager.h:1738
Definition: objectTypeEnums.h:29
DtAssembliesReaderWriter::RwRootNode myRollUpRules
Definition: vrfObjectManager.h:1769
Definition: createQueueEntry.h:27
std::list< DtReflectedActiveSonar * > ReflectedActiveSonars
Definition: vrfObjectManager.h:543
Definition: modifyQueueEntry.h:27
bool myReuseEntityIdentifiersOnScenarioLoad
Definition: vrfObjectManager.h:1796
DtReflectedPropulsionNoiseList * myRemotePropulsionNoiseList
Definition: vrfObjectManager.h:1646
Definition: reflectedVrfExtControlObjectList.h:23
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfObjectPlanAdministrator * myPlanAdministrator
Definition: vrfObjectManager.h:1746
const char int mode
Definition: ioapi.h:38
NameToObjectMap myNameToObjectMap
Definition: vrfObjectManager.h:1783
DtSimObjectListActivityCallbackList myAboutToBeRemovedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1679
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
std::map< DtString, std::map< DtUUID, bool > > myObjectsToRemoveByNameQueue
Definition: vrfObjectManager.h:1708
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:171
DtOrbatManager * myOrbatManager
Definition: vrfObjectManager.h:1730
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtReflectedControlObjectList * myRemoteEnvironmentalsList
Definition: vrfObjectManager.h:1723
std::map< DtEntityIdentifier, DtVrfObject * > DtSimObjectMap
Definition: vrfObjectManager.h:115
DtTime myNextOrgMgrTickTime
Definition: vrfObjectManager.h:1824
class DtManagedObjectList:
Definition: managedObjectListManager.h:31
class DtReflectedExtAggregateList:
Definition: reflectedExtAggregateList.h:27
DtObjectGeometricModelsManager * myObjectModelsManager
Definition: vrfObjectManager.h:1742
Definition: simInterfaceContent.h:45
DtObjectQueuedForRemovalCallbackList myObjectQueuedForRemovalCallbackList
Definition: vrfObjectManager.h:1752
ObjectsAwaitingDiscovery myObjectsAwaitingDiscovery
Definition: vrfObjectManager.h:1794
This is the FIXED length portion of a DtIfAggregateAs message content when placed on the network...
Definition: ifAggregateAs.h:39
bool myImportingScenario
Definition: vrfObjectManager.h:1766
DtImportScenarioData myImportScenarioData
Definition: vrfObjectManager.h:1789
DtCallbackList< const DtVrfObjectNameChangedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectNameChangedCallbackFcn
Callback signature for DtVrfObjectManager::addNameChangedCallback().
Definition: vrfObjectManager.h:176
Arguments passed by the DtVrfObjectManager::addNameChangedCallback callbacks.
Definition: vrfObjectManager.h:151
DtSimManager * mySimManager
Definition: vrfObjectManager.h:1703
int myAppIdRangeMax
Definition: vrfObjectManager.h:1827
OverlayMap myOverlayMap
Definition: vrfObjectManager.h:1819
VrfObjectAboutToBePublishedCallbackList myVrfObjectAboutToBePublishedCallbackList
Definition: vrfObjectManager.h:1758
DtRemoteComponentAttachmentManager * myRemoteComponentAttachmentManager
List of components to attach to remote, non-vrf entities.
Definition: vrfObjectManager.h:1631
DtCallbackList< const DtOrganizationManagerReadyCallbackInfo & > DtOrganizationReadyCallbackList
Definition: vrfObjectManager.h:204
A DtRwActivities list will contain a list of activities (key/value pair) by entity type that will sup...
Definition: rwActivities.h:20
std::vector< DtVrfObject * > myJustAdded
Definition: vrfObjectManager.h:1791
static const DtObjectType & anyType()
bool myCreatedCharacterManager
Definition: vrfObjectManager.h:1767
std::set< DtUUID > myObjectsWithTaskVisualizations
Definition: vrfObjectManager.h:1775
std::map< DtString, std::set< const DtVrfObject * > > OverlayMap
Definition: vrfObjectManager.h:1815
DtRemoteComponentAttachmentManager * remoteComponentAttachmentManager()
Returns the remote component attachment manager.
Definition: vrfObjectManager.h:1830
DtUUID myOldUUID
Definition: vrfObjectManager.h:161
Container used in callback lists.
Definition: organizationManager.h:27
DtCallbackList< const DtVrfObjectUUIDChangedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectUUIDChangedCallbackFcn
Definition: vrfObjectManager.h:177
Definition: vrfObjectManager.h:186
DtSimObjectListActivityCallbackList myAboutToBeLoadedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1664
DtSimObjectListActivityCallbackList myAddedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1674
bool myOrderOfBattleObjectsAddedToOrbatByDefault
Definition: vrfObjectManager.h:1799
virtual void removeAndDeleteAll()
Removes and deletes all items in the list.
DtString myOldName
Definition: vrfObjectManager.h:153
DtDiGuyCharacterDataManager * myCharacterMgr
Definition: vrfObjectManager.h:1734
bool(* DtVrfObjectUserInitFcn)(DtVrfObject *vrfObject, void *usr)
User action function definition for createAndInitVrfObject()
Definition: vrfObjectManager.h:121
class DtRwStringAttributeList:
Definition: rwStringAttributeList.h:29
bool myUseDrawControlForTaskVisualizations
Definition: vrfObjectManager.h:1774
DtSimInternalCommunicationManager * mySimInternalCommunicationManager
Definition: vrfObjectManager.h:1744
DtTaskVisualizationPublicationMode
Defines how task visualizations will be published.
Definition: vrfObjectManager.h:182
class DtReflectedExtAggregateList:
Definition: reflectedExtEntityList.h:27
class DtIfCreateVrfObject:
Definition: ifCreateVrfObject.h:84
const int DtSimMaxForceTypes
The enumeration in DIS only specifies 4 types, but it goes across the network in an 8-bit field...
Definition: vrfObjectManager.h:131
Definition: reflectedVrfExtAggregateList.h:23
Definition: vrfObjectManager.h:212

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)