VR-Forces 4.10 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"
32 
34 #include <vlpi/appearance.h>
35 #include <vlutil/vlFilename.h>
36 #include <vlutil/vlList.h>
37 #include <vlutil/vlHashlist.h>
38 #include <vlutil/vlConfig.h>
39 #include <vlutil/vlSmartPointers.h>
41 #include <vl/fomMapper.h>
42 
44 #include <vector>
45 #include <list>
46 #include <set>
47 
48 #include <boost/unordered_map.hpp>
49 #include <boost/unordered_set.hpp>
50 #include <tbb/spin_rw_mutex.h>
51 
53 #define DT_SINGLE_STATE_UPDATE_MESSAGE 0
54 
55 class DtExerciseConn;
56 class DtReflectedObject;
57 class DtReflectedAggregate;
64 class DtVrfParameterDb;
65 class DtSimObjectSubComponentTypes;
67 class DtOrbatManager;
68 class DtVertexList;
70 class DtBaseEntityStateRepository;
72 class DtSimManager;
73 class DtVrfObjectManagerTickArguments;
75 class DtSimTickArguments;
76 class DtSimMessage;
78 class DtIfAggregateAs;
83 class DtReflectedObject;
84 class DtEchelonId;
85 class Coordinate_System;
90 class DtReflectedDesignator;
93 class DtReflectedActiveSonar;
94 class DtReflectedActiveSonarList;
95 class DtReflectedPropulsionNoise;
96 class DtReflectedPropulsionNoiseList;
97 class DtReflectedRadioTransmitter;
99 class DtCreateQueueEntry;
100 class DtModifyQueueEntry;
102 class DtlInputStream;
106 class DtReflectedIffList;
107 class DtReflectedIff;
108 
109 #if DtHLA
110 namespace makVrfVrlinkExtToolkit
111 {
112  class DtReflectedExtendedAttributesObjectList;
113 }
114 #endif
115 
116 typedef std::map<DtEntityIdentifier, DtVrfObject*> DtSimObjectMap;
117 
119 typedef bool (*DtSimObjectUserInitFcn)(DtVrfObject* object, void* usr);
120 
122 typedef bool (*DtVrfObjectUserInitFcn)(DtVrfObject* vrfObject, void* usr);
123 
126 typedef void (*DtVrfObjectManagerCallbackFcn)(const DtVrfObjectManager& objectManager,
127  void* usr);
128 
132 const int DtSimMaxForceTypes = 256;
133 
136 {
142 
145  unsigned int importFlags;
149 };
150 
153 {
157 };
158 
161 {
163 
167 };
168 
171 {
173  DtEntityIdentifier* myEntityIdentifier;
174 };
175 
181 
183 typedef enum
184 {
189 
201 
203 {
204 public:
206 
210  typedef enum
211  {
212  DtUseParameterDatabaseAggregateState = 0,
214  DtCreateDisaggregatedEntity
215  } DtAggregateCreationMode;
216 
217 public:
218 
220  DtVrfObjectManager(DtSimManager* simManager, int entityAdvisory = 100);
221 
227  virtual ~DtVrfObjectManager();
230 
232  virtual void clearRemoteComponentAttachmentSystem();
233 
235  void removeAllRemoteComponentAttachments();
236 
242  virtual bool reuseEntityIdentifiersOnScenarioLoad() const;
243  virtual void setReuseEntityIdentifiersOnScenarioLoad(bool);
244 
247  virtual DtEntityIdentifier nextEntityIdentifier(const DtVrfObject*, const DtEntityIdentifier&);
248  virtual void addVrfObjectAboutToBePublishedCallback(
249  DtVrfObjectAboutToBePublishedCallbackFcn fcn, void* usrData) const;
250  virtual void removeVrfObjectAboutToBePublishedCallback(
251  DtVrfObjectAboutToBePublishedCallbackFcn fcn, void* usrData) const;
252 
255  virtual void createRemoteComponentAttachmentManager();
256 
258  virtual bool isRemoteComponentAttachment(const DtUUID&) const;
259 
261  virtual bool initializeRemoteComponentAttachmentSystem(const DtFilename& fromFile);
262 
264  DtRemoteComponentAttachmentManager* remoteComponentAttachmentManager();
265  const DtRemoteComponentAttachmentManager* remoteComponentAttachmentManager() const;
267 
270  virtual bool create();
271 
274  virtual bool init();
275 
277  virtual bool createDIGuyCharacterManager(const DtFilename & diGuyAnimationsFile);
278 
280  virtual DtVisualMetaDataManager* visualMetaDataManager() const;
281 
284  virtual DtFilename metaDataFilename(const DtObjectType&) const;
285 
290  virtual DtRwStringAttributeList* customizedMarkingsFor(const DtObjectType&) const;
291 
301  virtual bool add(DtVrfObject* simObject);
302 
304  virtual bool completeObjectAddition(DtVrfObject* simObject);
305 
307  virtual void setAppIdRangeMax(int);
308  virtual int appIdRangeMax() const;
309 
311  virtual bool loadingScenarioInformation() const;
312 
315  virtual bool checkAndMoveIfUniqueObject(DtIfCreateVrfObject*);
316 
317 private:
320  using DtRwList::add;
321  using DtRwList::remove;
322 
323 public:
325  virtual void setParameterDatabase(DtVrfParameterDb* parameterDatabase);
326  virtual DtVrfParameterDb* parameterDatabase();
327 
331  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
332  virtual const DtReaderWriter::SearchPaths& searchPaths() const;
334 
336  virtual bool registerExtendedProperties();
337 
339  virtual DtManagedObjectListConstPtr getList(const DtVrfObjectPredicate& predicate,
340  bool reevaluateFlag = false, DtTime evaluationPeriod = 0);
341 
343  virtual void setImportingScenario(bool);
344  virtual bool importingScenario() const;
345 
347  virtual void setImportScenarioData(const DtImportScenarioData&);
348  virtual const DtImportScenarioData& importScenarioData() const;
349 
350  virtual void setScenarioFilename(const DtFilename&);
351  virtual DtFilename scenarioFilename() const;
352 
353  virtual const DtVrfObjectFilterMapIterator& vrfIterator(
354  const DtObjectType& filter = DtObjectType::anyType(),
355  bool invertFilter = false) const;
356 
357  virtual const DtVrfObjectFilterMapIterator& vrfIterator(
358  const DtVrfObjectPredicate& predicate) const;
359 
362  virtual const DtVrfObjectFilterMapIterator& vrfIterator(DtFilterFcn filter,
363  bool invertFilter = false, void* usrData = 0)const;
364 
370  virtual void removeAndDelete(const DtUUID& objectName, bool andRemoveFromOrbat);
371  virtual void removeAndDelete(DtSharedVrfObjectReference simObject, bool andRemoveFromOrbat);
372  virtual void removeAndDelete(const DtEntityIdentifier& key, bool andRemoveFromOrbat);
373  virtual void removeAndDelete(DtVrfObject* object, bool andRemoveFromOrbat);
374 
376  std::set<DtGlobalObjectDesignator> remoteObjectGlobalIds(bool onlyVrfSimulated = true) const;
377 
379  virtual void removeAndDeleteAllLocals(bool andDeleteFromOrbat = false);
380 
383  virtual void removeAndDeleteAll(bool andDeleteFromOrbat = false);
384 
389  virtual void setExerciseConnection(DtExerciseConn* connection);
390  virtual void createRemoteEnvironmentalsList(DtExerciseConn* exConn);
391 
394  virtual void setPublishZeroVelocityWhenPaused(bool);
395  virtual bool publishZeroVelocityWhenPaused() const;
396 
400  virtual void setSetDeadReckoningAlgorithmToStaticOnPause(bool);
401  virtual bool setDeadReckoningAlgorithmToStaticOnPause() const;
402 
404  virtual void overrideDeadReckoningAlgorithm(DtDeadReckonTypes drAlg);
405 
408  virtual bool isDeadReckonAlgorithmOverridden(DtDeadReckonTypes& drAlg) const;
409 
412  virtual void removeDeadReckoningAlgorithmOverride();
413 
415  virtual void setTaskVisualizationPublicationMode(DtTaskVisualizationPublicationMode mode);
416  virtual DtTaskVisualizationPublicationMode taskVisualizationPublicationMode() const;
417 
421  virtual bool hasPermissionToDisplayTaskVisualizations(const DtUUID& uuid);
422 
424  virtual void setMaxObjectsWithTaskVisualizations(unsigned max);
425  virtual unsigned maxObjectsWithTaskVisualizations() const;
426 
429  virtual void setUseDrawControlForTaskVisualizations(bool);
430  virtual bool useDrawControlForTaskVisualizations() const;
431 
433  virtual DtReflectedControlObjectList* reflectedEnvironmentProcessList() const;
434 
437  virtual DtReflectedControlObjectList* createReflectedControlObjectList(DtExerciseConn* exConn);
438 
440  virtual bool objectInRemovalQueue(const DtUUID& uuid);
441 
448  virtual void registerInterfaceCallbacks();
449 
451  virtual const DtSimManager* simManager() const;
453  virtual DtSimManager* simManager();
454 
464  virtual void processCreateVrfObject(DtSimMessage* msg);
465 
467  typedef DtBoost::shared_ptr<DtCreateQueueEntry> DtCreateQueueEntryPtr;
468  typedef std::list<DtCreateQueueEntryPtr> DtVrfObjectCreateQueue;
469  virtual const DtVrfObjectCreateQueue& objectCreateQueue() const;
470 
477  virtual void processCreateVrfObject(DtIfCreateVrfObject ifCreateVrfObject);
478 
486  virtual void processModifyVrfObject(DtSimMessage* msg);
487 
494  virtual void processModifyVrfObject(DtIfModifyVrfObject modObj);
495 
498  virtual void processModifyVrfOverlay(DtSimMessage* msg);
501  virtual void processDeleteVrfObject(DtSimMessage* msg);
504  virtual void processDeleteVrfObjectById(DtSimMessage* msg);
507  virtual void processVrfObjectDeleted(DtSimMessage* msg);
510  virtual void processAutoReorganize(DtSimMessage* msg);
513  virtual void processAggregateAs(DtSimMessage* msg);
516  virtual void processSkipTask(DtSimMessage* msg);
517 
518 
523  virtual void processSetThresholds(DtSimMessage* msg);
524 
526  virtual void processDeleteDynamicTerrainServer(DtSimMessage*);
527 
532  virtual void processEntityAddedCallback(DtReflectedExtEntity* entity);
533  virtual void processAggregateAddedCallback(DtReflectedExtAggregate* aggregate);
534 
537  virtual void processEntityRemovedCallback(DtReflectedExtEntity* entity);
538  virtual void processAggregateRemovedCallback(DtReflectedExtAggregate* aggregate);
539 
540  virtual void processDesignatorAddedCallback(DtReflectedDesignator * des);
541  virtual void processDesignatorRemovedCallback(DtReflectedDesignator * des);
542  virtual void processDesignatorChangedCallback(DtReflectedDesignator * des);
543  DtBoolean processDesignatorDiscoveryCriteria(DtReflectedDesignator * des);
544 
545  virtual void processActiveSonarAddedCallback(DtReflectedActiveSonar* des);
546  virtual void processActiveSonarRemovedCallback(DtReflectedActiveSonar* des);
547  virtual void processActiveSonarChangedCallback(DtReflectedActiveSonar* des);
548  DtBoolean processActiveSonarDiscoveryCriteria(DtReflectedActiveSonar* des);
549 
550  typedef std::list<DtReflectedActiveSonar*> ReflectedActiveSonars;
551  virtual ReflectedActiveSonars findActiveSonarsForHostEntity(
552  const DtVrfObject* host) const;
553 
554  virtual void processPropulsionNoiseAddedCallback(DtReflectedPropulsionNoise* des);
555  virtual void processPropulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* des);
556  virtual void processPropulsionNoiseChangedCallback(DtReflectedPropulsionNoise* des);
557  DtBoolean processPropulsionNoiseDiscoveryCriteria(DtReflectedPropulsionNoise* des);
558 
559  virtual void processRadioTransmitterAddedCallback(DtReflectedRadioTransmitter* tran);
560  virtual void processRadioTransmitterRemovedCallback(DtReflectedRadioTransmitter* tran);
561  virtual void processRadioTransmitterChangedCallback(DtReflectedRadioTransmitter* tran);
562  DtBoolean processRadioTransmitterDiscoveryCriteria(DtReflectedRadioTransmitter* tran);
563 
564  virtual void processIffAddedCallback(DtReflectedIff* des);
565  virtual void processIffRemovedCallback(DtReflectedIff* des);
566  virtual void processIffChangedCallback(DtReflectedIff* des);
567  virtual DtBoolean processIffDiscoveryCriteria(DtReflectedIff*);
568 
569  virtual bool hasEnabledActiveSonar(const DtVrfObject* host) const;
570 
571  virtual DtReflectedPropulsionNoise* propulsionNoiseForHost(const DtVrfObject* host) const;
572  virtual DtReflectedRadioTransmitter* radioTransmitterForHost(const DtVrfObject* host) const;
573 
574  virtual DtReflectedIff* iffForHost(const DtVrfObject* host) const;
575 
576  virtual DtReflectedEmitterSystemManager* reflectedEmitterSystemManager();
577 
579  virtual void processAggregateChanged(DtReflectedExtAggregate* aggregate);
580 
581  virtual void processEnvProcessAddedCallback(
582  DtReflectedEnvironmentProcess* envProcess);
583  virtual void processEnvProcessRemovedCallback(
584  DtReflectedEnvironmentProcess* envProcess);
585  virtual bool processEnvProcessDiscoveryCriteria(
586  DtReflectedEnvironmentProcess* envProcess);
587 
590  virtual void removeObjectSubordinates(DtVrfObject* object, bool andRemoveFromOrbat);
591 
594  virtual void queueObjectForRemoval(const DtEntityIdentifier& key, bool andRemoveFromOrbat = false);
595  virtual void queueObjectForRemoval(const DtUUID& key, bool andRemoveFromOrbat = false);
596 
598  virtual void removeObjectsQueuedForRemoval();
599 
608  virtual void tick();
609 
611  virtual DtVrfObject* createAndInitVrfObject(DtIfCreateVrfObject* creationInfo);
612 
613  virtual DtVrfObject* createAndInitVrfObject(DtIfAggregateAs* aggInfo);
614 
624  virtual DtVrfObject* createAndInitVrfObject(
625  const DtObjectType& objectType,
626  bool publishLocalObject = true,
627  const DtString& objectName = DtString::nullString(),
628  const DtString& objectLabel = DtString::nullString(),
629  DtForceType forceType = DtForceOther,
630  const DtList* vertices = 0,
631  const DtTaitBryan* orientation = 0,
632  bool projection = false,
633  bool closedFigure = false,
634  const DtAppearance& appearance = DtAppearance::nullAppearance(),
635  const DtString& readerWriterName = DtString::nullString(),
636  DtReaderWriterRegistry* parentRegistry = 0,
637  bool createSubObjects = false,
638  DtVrfObjectUserInitFcn userInit = 0,
639  void* userInitData = 0,
640  bool organize = true,
641  const DtString& startingFormation = DtDefaultFormationString,
642  DtVrfObjectManager::DtAggregateCreationMode initialAggregateState =
644  unsigned long requestId = 0,
645  const DtString& overlayParent = "",
646  const DtUUID& uuid = DtUUID::nullUUID(),
647  bool addToOrbat = false);
648 
656  virtual DtVrfObject* createAndInitVrfObject(
657  const DtObjectType& objectType,
658  bool publishLocalObject = true,
659  const DtString& objectName = DtString::nullString(),
660  const DtString& objectLabel = DtString::nullString(),
661  DtForceType forceType = DtForceOther,
662  const DtVector& position = DtVector::zero(),
663  const DtTaitBryan* orientation = 0,
664  bool projection = false,
665  bool closedFigure = false,
666  const DtAppearance& appearance = DtAppearance::nullAppearance(),
667  const DtString& readerWriterName = DtString::nullString(),
668  DtReaderWriterRegistry* parentRegistry = 0,
669  bool createSubObjects = false,
670  DtVrfObjectUserInitFcn userInitFcn = 0,
671  void* userInitData = 0,
672  bool organize = true,
673  const DtString& startingFormation = DtDefaultFormationString,
674  DtVrfObjectManager::DtAggregateCreationMode initialAggregateState =
676  unsigned long requestId = 0, const DtString& overlayParent = "",
677  const DtUUID& startingUUID = DtUUID::nullUUID(),
678  bool addToOrbat = false);
679 
681  virtual bool readOrderOfBattleFile(const DtFilename & filename);
682  virtual bool readOrderOfBattleFile(const std::vector<std::string*>& oob);
683 
685  virtual bool readOrderOfBattleFile(DtlInputStream*);
686  virtual bool readOrderOfBattleFileFromZipFile(const DtFilename& zipFile, const DtString & filename);
687  virtual bool writeOrderOfBattleFile(const DtString & filename);
689  virtual bool writeOrderOfBattleFile(std::string& stream, int& numberOfLuaScripts);
690  virtual bool writeOrderOfBattleFile(std::vector<std::string*>& vecOfStreams, int& numberOfLuaScripts);
691 
694  virtual bool writeSimulationObjectGroupOrderOfBattleFile(const DtString& filename, int flags,
695  boost::unordered_set<DtUUID>& uuidsSaved);
696 
698  virtual void preallocateLuaScriptHandles(int);
699 
703  virtual bool objectShouldBeSavedToOrderOfBattle(
704  const DtVrfObject* vrfObject) const;
705  virtual bool objectShouldBeSavedToSimulationObjectGroup(
706  const DtVrfObject* vrfObject) const;
707 
710  virtual bool hasUUIDOrMarkingText(DtlObjPtr args, DtUUID&) const;
711 
712  virtual DtlObjPtr getData(DtlObjPtr args,
713  const DtReaderWriter::SearchPaths& searchPaths,
714  const DtVariableBindingsList& variableBindings);
715 
718  static void tickCallback(void* args);
719 
723  virtual void addVrfObjectAboutToBeAddedCallback(
724  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
725  const DtObjectType& filter = DtObjectType::anyType(),
726  bool invertFilter = false) const;
727 
731  virtual void addVrfObjectAddedCallback(
732  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
733  const DtObjectType& filter = DtObjectType::anyType(),
734  bool invertFilter = false) const;
735 
739  virtual void addVrfObjectAboutToBeLoadedCallback(
740  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
741  const DtObjectType& filter = DtObjectType::anyType(),
742  bool invertFilter = false) const;
743 
748  virtual void addVrfObjectAboutToBeRemovedCallback(
749  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
750  const DtObjectType& filter = DtObjectType::anyType(),
751  bool invertFilter = false) const;
752 
755  virtual void removeVrfObjectAboutToBeAddedCallback(
756  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
757  const DtObjectType& filter = DtObjectType::anyType(),
758  bool invertFilter = false) const;
759 
762  virtual void removeVrfObjectAboutToBeLoadedCallback(
763  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
764  const DtObjectType& filter = DtObjectType::anyType(),
765  bool invertFilter = false) const;
766 
769  virtual void removeVrfObjectAddedCallback(
770  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
771  const DtObjectType& filter = DtObjectType::anyType(),
772  bool invertFilter = false) const;
773 
776  virtual void removeVrfObjectAboutToBeRemovedCallback(
777  DtVrfObjectListActivityCallbackFcn fcn, void* usrData,
778  const DtObjectType& filter = DtObjectType::anyType(),
779  bool invertFilter = false) const;
780 
783  virtual void addObjectManagerAboutToRemoveAllCallback(
784  DtVrfObjectManagerCallbackFcn fcn, void* usrData) const;
785 
788  virtual void removeObjectManagerAboutToRemoveAllCallback(
789  DtVrfObjectManagerCallbackFcn fcn, void* usrData) const;
790 
792  virtual void addOrganizationManagerReadyCallback(
793  DtOrganizationManagerReadyCallbackFcn fcn, void* usrData) const;
794 
796  virtual void removeOrganizationManagerReadyCallback(
797  DtOrganizationManagerReadyCallbackFcn fcn, void* usrData) const;
798 
800  virtual void enableAutoReorganization();
801  virtual void disableAutoReorganization();
803  virtual bool autoReorganizeEnabled() const;
804 
806  virtual DtEntityIdentifier mapUUIDToEntityIdentifier(const DtUUID&) const;
807  virtual DtGlobalObjectDesignator mapUUIDToGlobalId(const DtUUID&) const;
808  virtual DtUUID mapGlobalIdToUUID(const DtGlobalObjectDesignator&) const;
809 
813  virtual bool objectNameExists(const DtString&) const;
814 
816  virtual DtSharedVrfObjectReference lookupTopLevelVrfObject(DtForceType forceType);
817 
819  virtual DtString nextNameWithPrefix(const DtObjectType & objectType,
820  const DtString& potentialPrefix);
821 
824  virtual DtString nextNameWithPrefix(int maxLength,
825  const DtString& potentialPrefix);
826 
828  virtual unsigned int getNextTransmitterId();
829 
831  virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType);
834  virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType,
835  const DtString& name);
837  virtual DtString topLevelName(DtForceType forceType);
838 
846  virtual DtString nextName(const DtObjectType& objectType);
848  virtual DtString nextUnorganizedName();
851  virtual DtString uniquifyName(const DtString& name, const DtObjectType& objectType);
852 
856  virtual unsigned int maxNameLengthForType(const DtObjectType& objectType);
857 
860  virtual DtReflectedObject* lookupReflectedObject(
861  const DtGlobalObjectDesignator& globalId) const;
862 
864  virtual void rediscoverObjects(const std::set<DtGlobalObjectDesignator>& ignore =
865  std::set<DtGlobalObjectDesignator>());
866 
869  virtual void requestUpdatesForRemoteNonVrfObjects() const;
870 
873  virtual void objectNameChanged(DtVrfObject*, const DtString& oldName,
874  const DtString& newName);
875 
878  virtual void objectUUIDChanged(const DtUUID& oldUUID, const DtUUID& newUUID);
879 
881 
882  virtual void addObjectNameChangedCallback(DtVrfObjectNameChangedCallbackFcn fcn, void* usr) const;
883  virtual void removeObjectNameChangedCallback(DtVrfObjectNameChangedCallbackFcn fcn, void* usr) const;
885 
889 
890  virtual void addObjectUUIDChangedCallback(DtVrfObjectUUIDChangedCallbackFcn fcn, void* usr) const;
891  virtual void removeObjectUUIDChangedCallback(DtVrfObjectUUIDChangedCallbackFcn fcn, void* usr) const;
893 
910  virtual DtVrfObject* aggregateAs(
911  const DtObjectType& aggregateType,
912  DtForceType force,
913  const DtVector& dbPosition,
914  DtReal heading,
915  const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
916  const DtString& aggregateName = DtString::nullString(),
917  bool addToOrbat = true);
918 
920  virtual double timeOfDay() const;
921 
923  virtual double dateAndTimeOfDay() const;
924 
929  virtual void setSimulationDateTimeBasedOnLocation(const DtVector& geocentricLocation, int timeOfDay);
930 
931  virtual const DtOrganizationManager* organizationManager() const;
932 
933  virtual const DtOrbatManager* orbatManager() const;
934 
936  virtual DtSubordinateFunctionTable& subordinateFunctionTable();
937  virtual const DtSubordinateFunctionTable& subordinateFunctionTable() const;
938 
941  virtual DtDiGuyCharacterDataManager * diGuyCharacterManager();
942  virtual const DtDiGuyCharacterDataManager * diGuyCharacterManager() const;
943 
945  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
946 
948  virtual unsigned objectCount() const;
949 
952  virtual DtSharedVrfObjectReference lookupVrfObjectByEntityIdentifier(const DtEntityIdentifier& key) const;
953 
956  virtual DtSharedVrfObjectReference lookupVrfObjectByGlobalId(const DtGlobalObjectDesignator& globalId) const;
957 
972  virtual DtSharedVrfObjectReference lookupVrfObjectByUUID(const DtUUID&) const;
973 
976  virtual bool uuidExists(const DtUUID&) const;
977 
980  virtual bool addNameAlias(const DtString& aliasName, DtVrfObject* object);
981 
982  virtual void removeNameAlias(const DtString& alias);
983 
988  virtual DtSharedVrfObjectReference lookupVrfObjectByMarkingText(const DtString&) const;
989 
991  virtual bool hasObjectType(const DtObjectType&) const;
992 
995  virtual bool markingTextExists(const DtString&) const;
996 
998  virtual const DtSimulationAddress& simulationAddress() const;
999 
1005  const DtSimObjectMapIterator& iterator() const;
1006 
1008  virtual bool createSimObjectList();
1009 
1012  virtual const DtSimObjectMap& objectMap() const;
1013 
1017  virtual void createRemoteEntitiesList(DtExerciseConn* exConn);
1018  virtual void createRemoteAggregatesList(DtExerciseConn* exConn);
1019 
1024  static void entityAddedCallback(DtReflectedExtEntity* entity, void* userData);
1025 
1030  static void entityRemovedCallback(DtReflectedExtEntity* entity,
1031  void* userData);
1032 
1037  static void aggregateAddedCallback(DtReflectedExtAggregate* entity,
1038  void* userData);
1039 
1044  static void aggregateRemovedCallback(DtReflectedExtAggregate* entity,
1045  void* userData);
1046 
1051  static void entityChangedCallback(DtReflectedExtEntity* entity,
1052  void* userData);
1053 
1058  static void aggregateChangedCallback(DtReflectedExtAggregate* aggregate,
1059  void* userData);
1060 
1062  virtual void processEntityChanged(DtReflectedExtEntity* entity);
1063 
1069  static bool entityDiscoveryCriteriaCallback(DtReflectedObject* entity,
1070  void* userData);
1071 
1077  static bool aggregateDiscoveryCriteriaCallback(DtReflectedObject* aggregate,
1078  void* userData);
1079 
1085  virtual bool processEntityDiscoveryCriteria(
1086  DtReflectedEntity* entity);
1087 
1093  virtual bool processAggregateDiscoveryCriteria(
1094  DtReflectedAggregate* aggregate);
1095 
1098  virtual DtReflectedDesignator * lookupLasedTargetByGlobalId(const DtGlobalObjectDesignator&
1099  tgtGlobalId);
1100 
1102  virtual bool hostingDynamicTerrainServer() const;
1103 
1107  virtual DtReflectedDesignator* lookupLasedTargetByDesignatorCode(const int code);
1108 
1112  virtual void createRemoteDesignatorsList(DtExerciseConn* exConn);
1113 
1114  virtual void createRemoteActiveSonarList(DtExerciseConn* exConn);
1115  virtual void createRemotePropulsionNoiseList(DtExerciseConn* exConn);
1116  virtual void createRemoteRadioTransmitterList(DtExerciseConn* exConn);
1117  virtual void createRemoteEmitterSystemList(DtExerciseConn* exConn);
1118  virtual void createRemoteIffList(DtExerciseConn* exConn);
1119 
1120 #if DtHLA
1121  virtual void createRemoteExtendedAttributesList(DtExerciseConn* exConn);
1124 #endif
1125 
1126  DtReflectedDesignatorList* reflectedDesignatorList() const;
1127 
1128  DtReflectedActiveSonarList* reflectedActiveSonarList() const;
1129  DtReflectedPropulsionNoiseList* reflectedPropulsionNoiseList() const;
1130  DtReflectedRadioTransmitterList* reflectedRadioTransmitterList() const;
1131  DtReflectedIffList* reflectedIffList() const;
1132 
1134  virtual DtVrfParameterDb* objectParametersDB() const;
1135 
1137  virtual void addSimObjectQueuedForRemovalCallback(
1138  DtVrfObjectQueuedForRemocalCallbackFcn fcn, void* usr) const;
1139  virtual void removeSimObjectQueuedForRemovalCallback(
1140  DtVrfObjectQueuedForRemocalCallbackFcn fcn, void* usr) const;
1141  virtual void invokeSimObjectQueuedForRemovalCallbacks(
1142  const DtVrfObject* object);
1143 
1147  virtual void addSimObjectAboutToBeAddedCallback(
1148  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1149  const DtObjectType& filter = DtObjectType::anyType(),
1150  bool invertFilter = false) const;
1151 
1155  virtual void addSimObjectAddedCallback(
1156  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1157  const DtObjectType& filter = DtObjectType::anyType(),
1158  bool invertFilter = false) const;
1159 
1163  virtual void addSimObjectAboutToBeRemovedCallback(
1164  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1165  const DtObjectType& filter = DtObjectType::anyType(),
1166  bool invertFilter = false) const;
1167 
1171  virtual void addSimObjectAboutToBeLoadedCallback(
1172  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1173  const DtObjectType& filter = DtObjectType::anyType(),
1174  bool invertFilter = false) const;
1175 
1178  virtual void removeSimObjectAboutToBeAddedCallback(
1179  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1180  const DtObjectType& filter = DtObjectType::anyType(),
1181  bool invertFilter = false) const;
1182 
1185  virtual void removeSimObjectAddedCallback(
1186  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1187  const DtObjectType& filter = DtObjectType::anyType(),
1188  bool invertFilter = false) const;
1189 
1192  virtual void removeSimObjectAboutToBeLoadedCallback(
1193  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1194  const DtObjectType& filter = DtObjectType::anyType(),
1195  bool invertFilter = false) const;
1196 
1199  virtual void removeSimObjectAboutToBeRemovedCallback(
1200  DtSimObjectListActivityCallbackFcn fcn, void* usrData,
1201  const DtObjectType& filter = DtObjectType::anyType(),
1202  bool invertFilter = false) const;
1203 
1207  virtual void invokeSimObjectAboutToBeAddedCallbacks(
1208  const DtVrfObject* simObject);
1209 
1213  virtual void invokeSimObjectAddedCallbacks(
1214  const DtVrfObject* simObject);
1215 
1219  virtual void invokeSimObjectAboutToBeRemovedCallbacks(
1220  const DtVrfObject* simObject);
1221 
1225  virtual void invokeSimObjectAboutToBeLoadedCallbacks(
1226  const DtVrfObject* simObject);
1227 
1229  virtual DtReflectedExtEntityList* reflectedEntityList() const;
1230 
1232  virtual DtReflectedExtAggregateList* reflectedAggregateList() const;
1233 
1237  virtual void setSimObjectType(const DtString& type);
1238  virtual const DtString& simObjectType() const;
1240 
1242  virtual void setOrbatEnabled(bool);
1243  virtual bool orbatEnabled() const;
1244 
1246  virtual void setOrderOfBattleObjectsAddedToOrbatByDefault(bool b);
1247  virtual bool orderOfBattleObjectsAddedToOrbatByDefault() const;
1248 
1250  virtual void closingScenario();
1251 
1254  virtual bool addUUIDMappingForObject(DtVrfObject* vrfObject);
1255 
1257  virtual void removeUUIDMappingForObject(DtVrfObject* vrfObject);
1258 
1260  virtual DtEntityIdentifier nextId(DtVrfObject* o = NULL);
1261 
1266  virtual DtString generateUniqueName(int maxLength, const DtString&
1267  root = "Object") const;
1268 
1270  virtual void setRollUpRules(const DtAssembliesReaderWriter::RwRootNode&);
1271 
1273  virtual const DtAssembliesReaderWriter::RwRootNode& rollUpRules() const;
1274 
1276  virtual void setActivities(const DtRwActivities&);
1277 
1279  virtual const DtRwActivities& activities() const;
1280 
1283  virtual bool isLocal(const DtBaseEntityStateRepository& stateRep);
1284 
1288  static int aggregateSuperType(DtAggregateStateRepository* aggregate);
1289 
1294  virtual void objectsEmbarkedOn(DtVrfObjectStateRepository* vrfObjSR, std::vector<DtSharedVrfObjectReference>& list,
1295  bool includePseudoAggregates = true) const;
1296 
1301  static void designatorAddedCallback(DtReflectedDesignator * des,
1302  void * userData);
1303 
1308  static void designatorRemovedCallback(DtReflectedDesignator * des,
1309  void * userData);
1310 
1315  static void designatorChangedCallback(DtReflectedDesignator * des,
1316  void * userData);
1317 
1323  static DtBoolean designatorDiscoveryCriteriaCallback(DtReflectedObject * des,
1324  void * userData);
1325 
1326  static void activeSonarAddedCallback(DtReflectedActiveSonar* activeSonar,
1327  void* userData);
1328  static void activeSonarRemovedCallback(DtReflectedActiveSonar* activeSonar,
1329  void* userData);
1330  static void activeSonarChangedCallback(DtReflectedActiveSonar* activeSonar,
1331  void* userData);
1332  static DtBoolean activeSonarDiscoveryCriteriaCallback(
1333  DtReflectedObject* activeSonar, void* userData);
1334 
1335  static void propulsionNoiseAddedCallback(DtReflectedPropulsionNoise* propNoise,
1336  void* userData);
1337  static void propulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* propNoise,
1338  void* userData);
1339  static void propulsionNoiseChangedCallback(DtReflectedPropulsionNoise* propNoise,
1340  void* userData);
1341  static DtBoolean propulsionNoiseDiscoveryCriteriaCallback(
1342  DtReflectedObject* propNoise, void* userData);
1343 
1344  static void radioTransmitterAddedCallback(DtReflectedRadioTransmitter* transmitter,
1345  void* userData);
1346  static void radioTransmitterRemovedCallback(DtReflectedRadioTransmitter* transmitter,
1347  void* userData);
1348  static void radioTransmitterChangedCallback(DtReflectedRadioTransmitter* transmitter,
1349  void* userData);
1350  static DtBoolean radioTransmitterDiscoveryCriteriaCallback(
1351  DtReflectedObject* transmitter, void* userData);
1352 
1353  static void iffAddedCallback(DtReflectedIff* propNoise,
1354  void* userData);
1355  static void iffRemovedCallback(DtReflectedIff* propNoise,
1356  void* userData);
1357  static void iffChangedCallback(DtReflectedIff* propNoise,
1358  void* userData);
1359  static DtBoolean iffDiscoveryCriteriaCallback(
1360  DtReflectedObject* iff, void* userData);
1361 
1364  virtual bool canSimulate() const;
1365 
1368  virtual void setCanSimulate(bool);
1369 
1371  virtual void printReflectedObjectCounts() const;
1372 
1375  virtual void addStealthType(const DtEntityType&);
1376  virtual void removeStealthType(const DtEntityType&);
1377  virtual bool isStealthType(const DtEntityType&) const;
1378  std::vector<DtEntityType>& stealthTypes() { return myStealthTypes; };
1379  const std::vector<DtEntityType>& stealthTypes() const { return myStealthTypes; };
1380 
1382  virtual std::set<const DtVrfObject*> objectsOnOverlayLayer(const DtString&) const;
1383 
1385  static void vrfObjectDataChangedCallback(const DtVrfObjectCallbackData&, void*);
1386  virtual void processVrfObjectDataChanged(const DtVrfObject*, int);
1387 
1389  virtual void clearObjectsAwaitingDiscovery();
1390 
1394  virtual bool addSubordinatesToAggregate(DtVrfObject* object,
1395  const std::vector<DtUUID>& subordinates, DtAggregateState desiredState = DtFullyDisaggregated);
1396 
1400  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(const DtString& filename, int flags, DtForceType force,
1401  DtlObjPtr* retArgs = 0, bool* errorLoading = 0);
1402  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFileFromZipFile(
1403  const DtFilename& scenarioZipFile, const DtString& filename, int flags, DtForceType force,
1404  DtlObjPtr* retArgs = 0, bool* errorLoading = 0);
1405  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(int flags, DtForceType force, DtlObjPtr& args);
1406  virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(DtlInputStream* fStream, int flags, DtForceType force,
1407  DtlObjPtr* retArgs = 0, bool* errorLoading = 0);
1408 
1409 protected:
1411  virtual void processOrganizationManagerReady(const DtOrganizationManagerReadyCallbackInfo&);
1412  virtual void invokeOrganizationManagerReadyCallbacks(const DtOrganizationManagerReadyCallbackInfo&);
1413 
1421  virtual void createSubObjectsFromParameters(const DtVrfObject* parent,
1422  bool publishSubobjects, unsigned long requestId, const DtString& overlayParent, bool addToOrbat);
1423 
1430  virtual DtVrfObject* createSubObjectFromParameterEntry(
1431  const DtVrfSubObjectParameterEntry& entry, const DtVector& positionOffsetFromParent,
1432  const DtVrfObject& parent,
1433  const DtString& formationName,
1434  bool publishSubObject, unsigned long requestId = 0, const DtString& overlayParent = "",
1435  const DtString& markingText = "", const DtUUID& uuid = DtUUID::nullUUID(),
1436  bool addToOrbat = true);
1437 
1438  virtual DtVrfObject* createObjectFromMemoryBuffer(const std::string& buffer);
1439 
1445  static void addSubordinatesToAggregateCompleteCallback(void* usr);
1446 
1448  virtual DtObjectType potentialRandomObjectTypeFrom(const DtObjectType& original);
1449 
1452  virtual void rediscoverNonVRFEntities();
1453 
1457  virtual void remove(DtVrfObject* simObject);
1458  virtual void remove(DtSharedVrfObjectReference simObject);
1459  virtual const DtVrfObject* remove(const DtEntityIdentifier& key);
1460 
1463  virtual void invokeObjectManagerAboutToRemoveAllCallbacks();
1464 
1467  virtual void onQueueObjectForRemoval(DtVrfObject* vrfObject, bool andRemoveFromOrbat = false);
1468 
1469  virtual const Coordinate_System* coordinateSystem() const;
1470  virtual Coordinate_System* coordinateSystem();
1471 
1474  virtual void modifyInterfaceContentForNewObject(DtSimInterfaceContent*, DtVrfObject*, bool& isLocal) const;
1475 
1478  virtual std::list<DtVector> calculateFormationOffsetsBasedOnFootprints(const DtList&) const;
1479 
1481  virtual std::vector<Dt3dBoundingVolume> boundingVolumesOfChildren(const DtList& subObjects,
1482  int& totalLeafNodes) const;
1483 
1484 protected:
1486  virtual void checkPendingNameRemoval(const DtString& markingText);
1487 
1490  virtual void removeVrfObject(const DtUUID&, bool queueDeletionOfVrfObject = false);
1491 
1493  virtual DtObjectGeometricModelsManager* createObjectModelsManager();
1494 
1496  virtual DtVrfEntityIdentifierFactory* createVrfEntityIdentifierFactory();
1497 
1499  virtual DtVrfObjectPlanAdministrator* createPlanAdministrator();
1500 
1501  virtual bool finalizeObjectRead(DtVrfObject*);
1502 
1503  virtual DtEntityIdentifier findEntityIdentifier(DtlObjPtr);
1504 
1506  virtual void deleteVrfObjectsToBeDeleted();
1507 
1509  virtual DtEntityType standardAggregateTypeToVrfAggregateType(const DtEntityType& aggType) const;
1510 
1512  virtual DtVrfObject* createAndInitVrfObject(DtReflectedEntity* entity);
1513 
1514  virtual DtVrfObject* createAndInitVrfObject(DtReflectedAggregate* aggregate,
1515  int superType = DtObjectTypePseudoAggregate);
1516 
1517  virtual DtVrfObject* createAndInitVrfObject(DtReflectedEnvironmentProcess* envProcess);
1518 
1519 public:
1520  DtObjectGeometricModelsManager* objectModelsManager() const;
1521  DtVrfEntityIdentifierFactory* vrfEntityIdentifierFactory() const;
1522 
1523 #if DtHLA_1516_EVOLVED
1524  virtual void reserveGlobalObjectIds(unsigned numToReserve);
1526 #endif
1527 
1532  virtual DtGlobalObjectDesignator nextGlobalObjectId();
1533 
1534  virtual DtVrfObjectPlanAdministrator* planAdministrator();
1535  virtual const DtVrfObjectPlanAdministrator* planAdministrator() const;
1536 
1537  virtual DtSimInternalCommunicationManager* simInternalCommunicationManager();
1538 
1539 protected:
1541  virtual DtSimInternalCommunicationManager* createSimInternalCommunicationManager(
1542  DtSimManager* simMgr) const;
1543 
1544 protected:
1545 
1547  typedef std::pair<DtVrfObject*, DtVrfSimulationObjectGroupGeometry*> PendingObjectInformation;
1548  typedef std::vector<PendingObjectInformation> PendingObjectsInformation;
1549  typedef std::vector<PendingObjectsInformation> ObjectsAwaitingDiscovery;
1550 
1553  virtual bool addObjectsReadyForSimulation(PendingObjectsInformation&);
1554 
1558  static void modifyVrfObjectCallback(DtSimMessage* msg, void* usr);
1559  static void modifyVrfOverlayCallback(DtSimMessage* msg, void* usr);
1560  static void autoReorganizeCallback(DtSimMessage* msg, void* usr);
1561  static void skipTaskCallback(DtSimMessage* msg, void* usr);
1562  static void setThresholdsCallback(DtSimMessage* msg, void* usr);
1563  static void deleteDynamicTerrainServerCallback(DtSimMessage*, void*);
1564 
1565 #if DT_SINGLE_STATE_UPDATE_MESSAGE
1566  static void vrfObjectStateUpdateCallback(DtSimMessage* msg, void* usr);
1567 #endif
1568 
1576  static void createVrfObjectCallback(DtSimMessage* msg, void* usr);
1577  static void deleteVrfObjectCallback(DtSimMessage* msg, void* usr);
1578  static void deleteVrfObjectByIdCallback(DtSimMessage* msg, void* usr);
1579  static void vrfObjectDeletedCallback(DtSimMessage* msg, void* usr);
1580  static void orderOfBattleOpCallback(DtSimMessage* msg, void* usr);
1581  static void aggregateAsCallback(DtSimMessage* msg, void* usr);
1582 
1584  static void extendedLabelsOperationCallback(DtSimMessage* msg, void* usr);
1585  virtual void processExtendedLabelsOperation(DtSimMessage*);
1586 
1588  static void requestActivitiesCallback(DtSimMessage* msg, void* usr);
1589  virtual void processRequestActivities(DtSimMessage*);
1590 
1592  static void requestJoystickControlsCallback(DtSimMessage* msg, void* usr);
1593  virtual void processRequestJoystickControls(DtSimMessage*);
1594 
1597  virtual bool acceptRemoteEnvironmental(const DtEntityType& et) const;
1598 
1599  static void envProcessAddedCallback(
1600  DtReflectedEnvironmentProcess* envProcess, void* userData);
1601  static void envProcessRemovedCallback(
1602  DtReflectedEnvironmentProcess* envProcess, void* userData);
1603  static bool envProcessDiscoveryCriteria(
1604  DtReflectedObject* envProcess, void* userData);
1605 
1606  static void organizationManagerReadyCallback(const DtOrganizationManagerReadyCallbackInfo& info, void* usr);
1607 
1608 protected:
1609 
1612 
1615 
1618 
1624  static void postInitFromParamsCallback(const DtVrfObject* vrfObject, void* usr);
1625 
1628  virtual DtCreateQueueEntry* createQueueEntryCreator(DtIfCreateVrfObject msg);
1629 
1632  virtual DtModifyQueueEntry* modifyQueueEntryCreator(DtIfModifyVrfObject msg);
1633 
1635  virtual DtOrganizationManager* createOrganizationManager();
1636 
1638  virtual DtOrbatManager* createOrbatManager();
1639 
1640 protected:
1643 
1646 
1649 
1652 
1655 
1656  DtReflectedActiveSonarList* myRemoteActiveSonarList;
1657  DtReflectedPropulsionNoiseList* myRemotePropulsionNoiseList;
1659 
1661 
1662  DtReflectedIffList* myReflectedIffList;
1663 
1664 #if DtHLA
1665  makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList* myRemoteExtendedAttributesObjectsList;
1667 #endif
1668 
1671 
1676 
1681 
1686 
1691 
1692  //mutable std::set<DtSimObjectListActivityCallbackInfo*> myRemovalCallbacksRemoved;
1693 
1696 
1701 
1702  DtExerciseConn* myExerciseConn;
1703 
1706 
1708 
1713 
1715 
1718  std::map<DtUUID, bool> myObjectsToRemoveQueue;
1719  std::map<DtString, std::map<DtUUID, bool> > myObjectsToRemoveByNameQueue;
1720 
1724 
1727  typedef DtBoost::shared_ptr<DtModifyQueueEntry> DtModifyQueueEntryPtr;
1728  typedef std::list<DtModifyQueueEntryPtr> DtVrfObjectModifyQueue;
1730 
1733 
1735 
1737 
1738  typedef boost::unordered_map<DtString, DtSharedVrfObjectReference> GlobalIdToObjectMap;
1740 
1742 
1744 
1746 
1748 
1750 
1752 
1754 
1756 
1758 
1761 
1764 
1767 
1770 
1772 
1774 
1776 
1779 
1783 
1789 
1790  typedef boost::unordered_map<DtUUID, DtSharedVrfObjectReference> UUIDToObjectMap;
1792 
1793  typedef boost::unordered_map<DtString, DtSharedVrfObjectReference> NameToObjectMap;
1796 
1797  typedef boost::unordered_map<DtVrfObject*, DtSharedVrfObjectReference> ObjectToObjectMap;
1799 
1802 
1804 
1805  std::vector<DtVrfObject*> myJustAdded;
1806  unsigned int myNextTransmitterId;
1807  std::map<int, DtlObjPtr> mySortedByEntityId;
1814 
1816 
1817 #if DtHLA_1516
1818  std::set<DtGlobalObjectDesignator> myReservedGlobalIds;
1819 #endif
1820 
1821  std::vector<DtEntityType> myStealthTypes;
1822 
1823  std::vector<DtVrfObject*> myVrfObjectsToDelete;
1826 
1828  mutable tbb::spin_rw_mutex myOverlayMapMutex;
1829  typedef std::map<DtString, std::set<const DtVrfObject*> > OverlayMap;
1830  typedef std::map<const DtVrfObject*, DtString> ObjectOverlayMap;
1831 
1834 
1837 
1840 
1842 };
1843 
1845 {
1847 }
1848 
1850 {
1852 }
DtReaderWriter::SearchPaths mySearchPaths
Definition: vrfObjectManager.h:1815
DtSimObjectMapIterator * myIterator
Definition: vrfObjectManager.h:1700
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:468
Contains the DtReflectedExtEntityList class declaration.
DtVrfObjectModifyQueue myObjectsToModifyQueue
Definition: vrfObjectManager.h:1729
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:1738
Definition: vrfObjectManager.h:186
DtVrfEntityIdentifierFactory * myEntityIdentifierFactory
Definition: vrfObjectManager.h:1809
DtRwActivities myActivities
Definition: vrfObjectManager.h:1775
bool myCanSimulate
Definition: vrfObjectManager.h:1812
Definition: reflectedExtEntity.h:31
int myNameCounter
Definition: vrfObjectManager.h:1736
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:1788
void(* DtVrfObjectManagerCallbackFcn)(const DtVrfObjectManager &objectManager, void *usr)
Callback function definition for object manager &#39;about to remove all&#39; events.
Definition: vrfObjectManager.h:126
DtCallbackList< const DtVrfObjectAboutToBePublishedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectAboutToBePublishedCallbackFcn
Definition: vrfObjectManager.h:179
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:1790
DtString myNewName
Definition: vrfObjectManager.h:155
std::list< DtModifyQueueEntryPtr > DtVrfObjectModifyQueue
Definition: vrfObjectManager.h:1728
std::vector< PendingObjectInformation > PendingObjectsInformation
Definition: vrfObjectManager.h:1548
const Coordinate_System * myCoordinateSystemPtr
Definition: vrfObjectManager.h:1747
DtVrfObject * myDynamicTerrainServer
Definition: vrfObjectManager.h:1751
The DtVisualMetaDataManager will use ead meta data files based on the given entity type...
Definition: visualMetaDataManager.h:26
ObjectToObjectMap myObjectToObjectMap
Definition: vrfObjectManager.h:1798
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::addUUIDChangedCallback callbacks.
Definition: vrfObjectManager.h:170
DtReflectedIffList * myReflectedIffList
Definition: vrfObjectManager.h:1662
DtNameChangedCallbackList myObjectNameChangedCallbackList
Definition: vrfObjectManager.h:1760
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:1807
A manager for reflected emitter systems and some related functionality.
Definition: reflectedEmitterSystemManager.h:31
boost::unordered_map< DtVrfObject *, DtSharedVrfObjectReference > ObjectToObjectMap
Definition: vrfObjectManager.h:1797
unsigned myMaxObjectsWithTaskVisualizations
Definition: vrfObjectManager.h:1787
const std::vector< DtEntityType > & stealthTypes() const
Definition: vrfObjectManager.h:1379
DtSimObjectListActivityCallbackList myAboutToBeAddedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1680
Definition: vrfObjectManager.h:185
std::map< DtUUID, bool > myObjectsToRemoveQueue
Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval. ...
Definition: vrfObjectManager.h:1718
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:138
DtUUIDChangedCallbackList myObjectUUIDChangedCallbackList
Definition: vrfObjectManager.h:1766
Definition: reflectedVrfExtEntityList.h:23
DtReflectedRadioTransmitterList * myRemoteTransmitterList
Definition: vrfObjectManager.h:1658
std::vector< DtVrfObject * > myVrfObjectsToDelete
Definition: vrfObjectManager.h:1823
DtCallbackList< const DtVrfObject * > DtObjectQueuedForRemovalCallbackList
Definition: vrfObjectManager.h:1762
DtImportScenarioData()
Definition: vrfObjectManager.h:137
DtConsoleCommandOwner * myConsoleCommands
Definition: vrfObjectManager.h:1773
DtCallbackList< const DtVrfObjectManager & > DtAboutToRemoveAllCallbackList
Definition: vrfObjectManager.h:1824
Definition: vrfEntityIdentifierFactory.h:18
*virtual const DtObjectType & objectType() const
bool mySetDeadReckoningAlgorithmToStaticOnPause
Definition: vrfObjectManager.h:1782
Definition: assembliesReaderWriter.h:31
DtReflectedExtEntityList * myRemoteEntitiesList
VR-Link reflected entity list.
Definition: vrfObjectManager.h:1648
DtString mySimObjectType
Type of DtSimObject to create. Types are defined in simObjectTypes.h.
Definition: vrfObjectManager.h:1695
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:135
DtVrfSubObjectParameterEntry.
Definition: vrfSubObjectParameterEntry.h:27
DtCallbackList< const DtVrfObjectAboutToBePublishedCallbackInfo & > VrfObjectAboutToBePublishedCallbackList
Definition: vrfObjectManager.h:1768
Definition: readerWriterRegistry.h:39
DtCallbackList< const DtVrfObject * >::DtCallbackFunctionType DtVrfObjectQueuedForRemocalCallbackFcn
Definition: vrfObjectManager.h:180
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:1825
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:1549
DtCallbackList< const DtVrfObjectUUIDChangedCallbackInfo & > DtUUIDChangedCallbackList
Definition: vrfObjectManager.h:1765
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:1793
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:156
DtDeadReckonTypes myDeadReckonOverrideAlgorithm
Definition: vrfObjectManager.h:1836
bool(* DtSimObjectUserInitFcn)(DtVrfObject *object, void *usr)
User action function definition for createAndInitSimObject()
Definition: vrfObjectManager.h:119
std::pair< DtVrfObject *, DtVrfSimulationObjectGroupGeometry * > PendingObjectInformation
Simulation object groups that are awaiting to be &quot;discovered&quot;.
Definition: vrfObjectManager.h:1547
DtVrfObjectUUIDChangedCallbackInfo()
Definition: vrfObjectManager.h:162
unsigned int importFlags
Definition: vrfObjectManager.h:145
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
Arguments passed by the DtVrfObjectManager::addUUIDChangedCallback callbacks.
Definition: vrfObjectManager.h:160
tbb::spin_rw_mutex myOverlayMapMutex
Map of which objects are on which overlay layers.
Definition: vrfObjectManager.h:1828
std::vector< DtEntityType > & stealthTypes()
Definition: vrfObjectManager.h:1378
class DtIfModifyVrfObject:
Definition: ifModifyVrfObject.h:50
DtVector geocentricOffsetLocation
Definition: vrfObjectManager.h:147
std::vector< DtEntityType > myStealthTypes
Definition: vrfObjectManager.h:1821
Definition: objectType.h:27
DtOrganizationReadyCallbackList myOrganizationManagerReadyCallbackList
Definition: vrfObjectManager.h:1771
UUIDToObjectMap myUUIDToObjectMap
Definition: vrfObjectManager.h:1791
DtVrfObjectFilterMapIterator * myVrfIterator
Definition: vrfObjectManager.h:1712
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:1702
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:166
DtReflectedActiveSonarList * myRemoteActiveSonarList
Definition: vrfObjectManager.h:1656
DtVrfObjectCreateQueue myObjectsToCreateQueue
Object creation queue; objects are only created once the terrain at the requested location has been p...
Definition: vrfObjectManager.h:1723
GlobalIdToObjectMap myGlobalIdToObjectMap
Definition: vrfObjectManager.h:1739
#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:1670
DtString deconflictingName
Definition: vrfObjectManager.h:144
DtReflectedExtAggregateList * myRemoteAggregateEntitiesList
VR-Link reflected aggregate list.
Definition: vrfObjectManager.h:1651
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtEntityIdentifier * myEntityIdentifier
Definition: vrfObjectManager.h:173
bool myPublishZeroVelocityWhenPaused
Definition: vrfObjectManager.h:1781
bool myIsDeadReckonAlgorithmOverridden
Definition: vrfObjectManager.h:1835
DtReflectedDesignatorList * myRemoteDesignatorsList
VR-Link reflected designator list.
Definition: vrfObjectManager.h:1654
std::map< const DtVrfObject *, DtString > ObjectOverlayMap
Definition: vrfObjectManager.h:1830
File: simMsg.h.
Definition: simMessage.h:35
bool creatingSimulationObjectGroup
Definition: vrfObjectManager.h:141
Contains data describing the available attributes and animations for each DI-Guy character type...
Definition: diGuyCharacterDataManager.h:33
class DtVertexList:
Definition: vertexList.h:22
DtAggregateCreationMode
Defines how the initial DtAggregateState should be set upon creation of an aggregate entity...
Definition: vrfObjectManager.h:210
DtUUID myNewUUID
Definition: vrfObjectManager.h:165
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:1811
Definition: noArgumentCallbackList.h:91
DtSimObjectMap mySimObjectList
Hashlist of all DtVrfObject*s, keyed on DtEntityIdentifier.
Definition: vrfObjectManager.h:1645
int myIndexSize
All hash indices for our objects should be created this size.
Definition: vrfObjectManager.h:1705
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:1732
ObjectOverlayMap myObjectOverlayMap
Definition: vrfObjectManager.h:1832
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:1727
A utility class for use with DtConsoleCommandManager.
Definition: consoleCommandManager.h:157
int importForce
Definition: vrfObjectManager.h:146
double offsetRotation
Definition: vrfObjectManager.h:148
DtReflectedEmitterSystemManager * myReflectedEmitterSystemManager
Definition: vrfObjectManager.h:1660
bool(* DtFilterFcn)(const DtVrfObject *object, void *usr)
Definition: filterFcnInfo.h:19
Definition: vrfObject.h:93
DtTaskVisualizationPublicationMode myTaskVisualizationPublicationMode
Definition: vrfObjectManager.h:1784
static DtTime theOrgMgrTickPeriod
Definition: vrfObjectManager.h:1839
Description: DtMapIteratorBase is the base class for iterators used to iterate over a std::map...
Definition: mapIteratorBase.h:18
DtManagedObjectListManager * myFilteredObjectListManager
Definition: vrfObjectManager.h:1707
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:467
Definition: vrfObjectPlanAdministrator.h:45
class DtVrfObjectManager:
Definition: vrfObjectManager.h:202
NameToObjectMap myAwaitingToBeCreatedMap
Definition: vrfObjectManager.h:1795
DtOrganizationManager * myOrganizationManager
Definition: vrfObjectManager.h:1743
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:1806
DtCallbackList< const DtVrfObjectNameChangedCallbackInfo & > DtNameChangedCallbackList
Definition: vrfObjectManager.h:1759
double myTimeToPublishNextStateUpdate
Definition: vrfObjectManager.h:1749
Definition: objectTypeEnums.h:29
DtAssembliesReaderWriter::RwRootNode myRollUpRules
Definition: vrfObjectManager.h:1780
Definition: createQueueEntry.h:27
std::list< DtReflectedActiveSonar * > ReflectedActiveSonars
Definition: vrfObjectManager.h:550
DtFilename myScenarioFilename
Definition: vrfObjectManager.h:1801
vrlink
Definition: subordinateFunctionTable.h:20
Definition: modifyQueueEntry.h:27
bool myReuseEntityIdentifiersOnScenarioLoad
Definition: vrfObjectManager.h:1810
DtReflectedPropulsionNoiseList * myRemotePropulsionNoiseList
Definition: vrfObjectManager.h:1657
Definition: reflectedVrfExtControlObjectList.h:23
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfObjectPlanAdministrator * myPlanAdministrator
Definition: vrfObjectManager.h:1757
const char int mode
Definition: ioapi.h:38
NameToObjectMap myNameToObjectMap
Definition: vrfObjectManager.h:1794
DtSimObjectListActivityCallbackList myAboutToBeRemovedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1690
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:1719
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:172
DtOrbatManager * myOrbatManager
Definition: vrfObjectManager.h:1741
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtReflectedControlObjectList * myRemoteEnvironmentalsList
Definition: vrfObjectManager.h:1734
std::map< DtEntityIdentifier, DtVrfObject * > DtSimObjectMap
Definition: vrfObjectManager.h:116
DtTime myNextOrgMgrTickTime
Definition: vrfObjectManager.h:1838
class DtManagedObjectList:
Definition: managedObjectListManager.h:31
class DtReflectedExtAggregateList:
Definition: reflectedExtAggregateList.h:27
DtObjectGeometricModelsManager * myObjectModelsManager
Definition: vrfObjectManager.h:1753
Definition: simInterfaceContent.h:45
DtObjectQueuedForRemovalCallbackList myObjectQueuedForRemovalCallbackList
Definition: vrfObjectManager.h:1763
ObjectsAwaitingDiscovery myObjectsAwaitingDiscovery
Definition: vrfObjectManager.h:1808
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:1777
DtImportScenarioData myImportScenarioData
Definition: vrfObjectManager.h:1800
DtCallbackList< const DtVrfObjectNameChangedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectNameChangedCallbackFcn
Callback signature for DtVrfObjectManager::addNameChangedCallback().
Definition: vrfObjectManager.h:177
Arguments passed by the DtVrfObjectManager::addNameChangedCallback callbacks.
Definition: vrfObjectManager.h:152
DtSimManager * mySimManager
Definition: vrfObjectManager.h:1714
int myAppIdRangeMax
Definition: vrfObjectManager.h:1841
OverlayMap myOverlayMap
Definition: vrfObjectManager.h:1833
VrfObjectAboutToBePublishedCallbackList myVrfObjectAboutToBePublishedCallbackList
Definition: vrfObjectManager.h:1769
DtRemoteComponentAttachmentManager * myRemoteComponentAttachmentManager
List of components to attach to remote, non-vrf entities.
Definition: vrfObjectManager.h:1642
DtCallbackList< const DtOrganizationManagerReadyCallbackInfo & > DtOrganizationReadyCallbackList
Definition: vrfObjectManager.h:205
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:1805
static const DtObjectType & anyType()
bool myCreatedCharacterManager
Definition: vrfObjectManager.h:1778
std::set< DtUUID > myObjectsWithTaskVisualizations
Definition: vrfObjectManager.h:1786
std::map< DtString, std::set< const DtVrfObject * > > OverlayMap
Definition: vrfObjectManager.h:1829
DtRemoteComponentAttachmentManager * remoteComponentAttachmentManager()
Returns the remote component attachment manager.
Definition: vrfObjectManager.h:1844
DtUUID myOldUUID
Definition: vrfObjectManager.h:162
Container used in callback lists.
Definition: organizationManager.h:27
DtCallbackList< const DtVrfObjectUUIDChangedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectUUIDChangedCallbackFcn
Definition: vrfObjectManager.h:178
Definition: vrfObjectManager.h:187
DtSimObjectListActivityCallbackList myAboutToBeLoadedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1675
DtSimObjectListActivityCallbackList myAddedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1685
bool myOrderOfBattleObjectsAddedToOrbatByDefault
Definition: vrfObjectManager.h:1813
virtual void removeAndDeleteAll()
Removes and deletes all items in the list.
DtString myOldName
Definition: vrfObjectManager.h:154
DtDiGuyCharacterDataManager * myCharacterMgr
Definition: vrfObjectManager.h:1745
bool(* DtVrfObjectUserInitFcn)(DtVrfObject *vrfObject, void *usr)
User action function definition for createAndInitVrfObject()
Definition: vrfObjectManager.h:122
class DtRwStringAttributeList:
Definition: rwStringAttributeList.h:29
DtSubordinateFunctionTable mySubordinateFunctionTable
Definition: vrfObjectManager.h:1803
bool myUseDrawControlForTaskVisualizations
Definition: vrfObjectManager.h:1785
DtSimInternalCommunicationManager * mySimInternalCommunicationManager
Definition: vrfObjectManager.h:1755
DtTaskVisualizationPublicationMode
Defines how task visualizations will be published.
Definition: vrfObjectManager.h:183
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:132
Definition: reflectedVrfExtAggregateList.h:23
Definition: vrfObjectManager.h:213

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)