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>
48 #include <boost/unordered_map.hpp>
49 #include <boost/unordered_set.hpp>
50 #include <tbb/spin_rw_mutex.h>
53 #define DT_SINGLE_STATE_UPDATE_MESSAGE 0
57 class DtReflectedAggregate;
65 class DtSimObjectSubComponentTypes;
70 class DtBaseEntityStateRepository;
73 class DtVrfObjectManagerTickArguments;
75 class DtSimTickArguments;
90 class DtReflectedDesignator;
93 class DtReflectedActiveSonar;
94 class DtReflectedActiveSonarList;
95 class DtReflectedPropulsionNoise;
96 class DtReflectedPropulsionNoiseList;
97 class DtReflectedRadioTransmitter;
102 class DtlInputStream;
106 class DtReflectedIffList;
107 class DtReflectedIff;
110 namespace makVrfVrlinkExtToolkit
112 class DtReflectedExtendedAttributesObjectList;
212 DtUseParameterDatabaseAggregateState = 0,
214 DtCreateDisaggregatedEntity
215 } DtAggregateCreationMode;
232 virtual void clearRemoteComponentAttachmentSystem();
235 void removeAllRemoteComponentAttachments();
242 virtual bool reuseEntityIdentifiersOnScenarioLoad()
const;
243 virtual void setReuseEntityIdentifiersOnScenarioLoad(
bool);
247 virtual DtEntityIdentifier nextEntityIdentifier(
const DtVrfObject*,
const DtEntityIdentifier&);
248 virtual void addVrfObjectAboutToBePublishedCallback(
250 virtual void removeVrfObjectAboutToBePublishedCallback(
255 virtual void createRemoteComponentAttachmentManager();
258 virtual bool isRemoteComponentAttachment(
const DtUUID&)
const;
261 virtual bool initializeRemoteComponentAttachmentSystem(
const DtFilename& fromFile);
270 virtual bool create();
277 virtual bool createDIGuyCharacterManager(
const DtFilename & diGuyAnimationsFile);
284 virtual DtFilename metaDataFilename(
const DtObjectType&)
const;
304 virtual bool completeObjectAddition(
DtVrfObject* simObject);
307 virtual void setAppIdRangeMax(
int);
308 virtual int appIdRangeMax()
const;
311 virtual bool loadingScenarioInformation()
const;
336 virtual bool registerExtendedProperties();
340 bool reevaluateFlag =
false,
DtTime evaluationPeriod = 0);
343 virtual void setImportingScenario(
bool);
344 virtual bool importingScenario()
const;
350 virtual void setScenarioFilename(
const DtFilename&);
351 virtual DtFilename scenarioFilename()
const;
355 bool invertFilter =
false)
const;
363 bool invertFilter =
false,
void* usrData = 0)
const;
370 virtual void removeAndDelete(
const DtUUID& objectName,
bool andRemoveFromOrbat);
372 virtual void removeAndDelete(
const DtEntityIdentifier& key,
bool andRemoveFromOrbat);
373 virtual void removeAndDelete(
DtVrfObject*
object,
bool andRemoveFromOrbat);
376 std::set<DtGlobalObjectDesignator> remoteObjectGlobalIds(
bool onlyVrfSimulated =
true)
const;
379 virtual void removeAndDeleteAllLocals(
bool andDeleteFromOrbat =
false);
389 virtual void setExerciseConnection(DtExerciseConn* connection);
390 virtual void createRemoteEnvironmentalsList(DtExerciseConn* exConn);
394 virtual void setPublishZeroVelocityWhenPaused(
bool);
395 virtual bool publishZeroVelocityWhenPaused()
const;
400 virtual void setSetDeadReckoningAlgorithmToStaticOnPause(
bool);
401 virtual bool setDeadReckoningAlgorithmToStaticOnPause()
const;
404 virtual void overrideDeadReckoningAlgorithm(DtDeadReckonTypes drAlg);
408 virtual bool isDeadReckonAlgorithmOverridden(DtDeadReckonTypes& drAlg)
const;
412 virtual void removeDeadReckoningAlgorithmOverride();
421 virtual bool hasPermissionToDisplayTaskVisualizations(
const DtUUID& uuid);
424 virtual void setMaxObjectsWithTaskVisualizations(
unsigned max);
425 virtual unsigned maxObjectsWithTaskVisualizations()
const;
429 virtual void setUseDrawControlForTaskVisualizations(
bool);
430 virtual bool useDrawControlForTaskVisualizations()
const;
440 virtual bool objectInRemovalQueue(
const DtUUID& uuid);
448 virtual void registerInterfaceCallbacks();
498 virtual void processModifyVrfOverlay(
DtSimMessage* msg);
504 virtual void processDeleteVrfObjectById(
DtSimMessage* msg);
507 virtual void processVrfObjectDeleted(
DtSimMessage* msg);
526 virtual void processDeleteDynamicTerrainServer(
DtSimMessage*);
540 virtual void processDesignatorAddedCallback(DtReflectedDesignator * des);
541 virtual void processDesignatorRemovedCallback(DtReflectedDesignator * des);
542 virtual void processDesignatorChangedCallback(DtReflectedDesignator * des);
543 DtBoolean processDesignatorDiscoveryCriteria(DtReflectedDesignator * des);
545 virtual void processActiveSonarAddedCallback(DtReflectedActiveSonar* des);
546 virtual void processActiveSonarRemovedCallback(DtReflectedActiveSonar* des);
547 virtual void processActiveSonarChangedCallback(DtReflectedActiveSonar* des);
548 DtBoolean processActiveSonarDiscoveryCriteria(DtReflectedActiveSonar* des);
554 virtual void processPropulsionNoiseAddedCallback(DtReflectedPropulsionNoise* des);
555 virtual void processPropulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* des);
556 virtual void processPropulsionNoiseChangedCallback(DtReflectedPropulsionNoise* des);
557 DtBoolean processPropulsionNoiseDiscoveryCriteria(DtReflectedPropulsionNoise* des);
559 virtual void processRadioTransmitterAddedCallback(DtReflectedRadioTransmitter* tran);
560 virtual void processRadioTransmitterRemovedCallback(DtReflectedRadioTransmitter* tran);
561 virtual void processRadioTransmitterChangedCallback(DtReflectedRadioTransmitter* tran);
562 DtBoolean processRadioTransmitterDiscoveryCriteria(DtReflectedRadioTransmitter* tran);
564 virtual void processIffAddedCallback(DtReflectedIff* des);
565 virtual void processIffRemovedCallback(DtReflectedIff* des);
566 virtual void processIffChangedCallback(DtReflectedIff* des);
567 virtual DtBoolean processIffDiscoveryCriteria(DtReflectedIff*);
569 virtual bool hasEnabledActiveSonar(
const DtVrfObject* host)
const;
571 virtual DtReflectedPropulsionNoise* propulsionNoiseForHost(
const DtVrfObject* host)
const;
572 virtual DtReflectedRadioTransmitter* radioTransmitterForHost(
const DtVrfObject* host)
const;
574 virtual DtReflectedIff* iffForHost(
const DtVrfObject* host)
const;
581 virtual void processEnvProcessAddedCallback(
583 virtual void processEnvProcessRemovedCallback(
585 virtual bool processEnvProcessDiscoveryCriteria(
590 virtual void removeObjectSubordinates(
DtVrfObject*
object,
bool andRemoveFromOrbat);
594 virtual void queueObjectForRemoval(
const DtEntityIdentifier& key,
bool andRemoveFromOrbat =
false);
595 virtual void queueObjectForRemoval(
const DtUUID& key,
bool andRemoveFromOrbat =
false);
598 virtual void removeObjectsQueuedForRemoval();
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(),
637 bool createSubObjects =
false,
639 void* userInitData = 0,
640 bool organize =
true,
644 unsigned long requestId = 0,
647 bool addToOrbat =
false);
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(),
669 bool createSubObjects =
false,
671 void* userInitData = 0,
672 bool organize =
true,
676 unsigned long requestId = 0,
const DtString& overlayParent =
"",
678 bool addToOrbat =
false);
681 virtual bool readOrderOfBattleFile(
const DtFilename &
filename);
682 virtual bool readOrderOfBattleFile(
const std::vector<std::string*>& oob);
685 virtual bool readOrderOfBattleFile(DtlInputStream*);
689 virtual bool writeOrderOfBattleFile(std::string&
stream,
int& numberOfLuaScripts);
690 virtual bool writeOrderOfBattleFile(std::vector<std::string*>& vecOfStreams,
int& numberOfLuaScripts);
694 virtual bool writeSimulationObjectGroupOrderOfBattleFile(
const DtString&
filename,
int flags,
695 boost::unordered_set<DtUUID>& uuidsSaved);
698 virtual void preallocateLuaScriptHandles(
int);
703 virtual bool objectShouldBeSavedToOrderOfBattle(
705 virtual bool objectShouldBeSavedToSimulationObjectGroup(
710 virtual bool hasUUIDOrMarkingText(DtlObjPtr args,
DtUUID&)
const;
712 virtual DtlObjPtr
getData(DtlObjPtr args,
718 static void tickCallback(
void* args);
723 virtual void addVrfObjectAboutToBeAddedCallback(
726 bool invertFilter =
false)
const;
731 virtual void addVrfObjectAddedCallback(
734 bool invertFilter =
false)
const;
739 virtual void addVrfObjectAboutToBeLoadedCallback(
742 bool invertFilter =
false)
const;
748 virtual void addVrfObjectAboutToBeRemovedCallback(
751 bool invertFilter =
false)
const;
755 virtual void removeVrfObjectAboutToBeAddedCallback(
758 bool invertFilter =
false)
const;
762 virtual void removeVrfObjectAboutToBeLoadedCallback(
765 bool invertFilter =
false)
const;
769 virtual void removeVrfObjectAddedCallback(
772 bool invertFilter =
false)
const;
776 virtual void removeVrfObjectAboutToBeRemovedCallback(
779 bool invertFilter =
false)
const;
783 virtual void addObjectManagerAboutToRemoveAllCallback(
788 virtual void removeObjectManagerAboutToRemoveAllCallback(
792 virtual void addOrganizationManagerReadyCallback(
796 virtual void removeOrganizationManagerReadyCallback(
800 virtual void enableAutoReorganization();
801 virtual void disableAutoReorganization();
803 virtual bool autoReorganizeEnabled()
const;
806 virtual DtEntityIdentifier mapUUIDToEntityIdentifier(
const DtUUID&)
const;
813 virtual bool objectNameExists(
const DtString&)
const;
824 virtual DtString nextNameWithPrefix(
int maxLength,
828 virtual unsigned int getNextTransmitterId();
831 virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType);
834 virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType,
837 virtual DtString topLevelName(DtForceType forceType);
848 virtual DtString nextUnorganizedName();
856 virtual unsigned int maxNameLengthForType(
const DtObjectType& objectType);
864 virtual void rediscoverObjects(
const std::set<DtGlobalObjectDesignator>& ignore =
865 std::set<DtGlobalObjectDesignator>());
869 virtual void requestUpdatesForRemoteNonVrfObjects()
const;
878 virtual void objectUUIDChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
915 const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
916 const DtString& aggregateName = DtString::nullString(),
917 bool addToOrbat =
true);
920 virtual double timeOfDay()
const;
923 virtual double dateAndTimeOfDay()
const;
929 virtual void setSimulationDateTimeBasedOnLocation(
const DtVector& geocentricLocation,
int timeOfDay);
948 virtual unsigned objectCount()
const;
976 virtual bool uuidExists(
const DtUUID&)
const;
982 virtual void removeNameAlias(
const DtString& alias);
995 virtual bool markingTextExists(
const DtString&)
const;
998 virtual const DtSimulationAddress& simulationAddress()
const;
1008 virtual bool createSimObjectList();
1017 virtual void createRemoteEntitiesList(DtExerciseConn* exConn);
1018 virtual void createRemoteAggregatesList(DtExerciseConn* exConn);
1085 virtual bool processEntityDiscoveryCriteria(
1093 virtual bool processAggregateDiscoveryCriteria(
1094 DtReflectedAggregate* aggregate);
1102 virtual bool hostingDynamicTerrainServer()
const;
1107 virtual DtReflectedDesignator* lookupLasedTargetByDesignatorCode(
const int code);
1112 virtual void createRemoteDesignatorsList(DtExerciseConn* exConn);
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);
1121 virtual void createRemoteExtendedAttributesList(DtExerciseConn* exConn);
1128 DtReflectedActiveSonarList* reflectedActiveSonarList()
const;
1129 DtReflectedPropulsionNoiseList* reflectedPropulsionNoiseList()
const;
1131 DtReflectedIffList* reflectedIffList()
const;
1137 virtual void addSimObjectQueuedForRemovalCallback(
1139 virtual void removeSimObjectQueuedForRemovalCallback(
1141 virtual void invokeSimObjectQueuedForRemovalCallbacks(
1147 virtual void addSimObjectAboutToBeAddedCallback(
1150 bool invertFilter =
false)
const;
1155 virtual void addSimObjectAddedCallback(
1158 bool invertFilter =
false)
const;
1163 virtual void addSimObjectAboutToBeRemovedCallback(
1166 bool invertFilter =
false)
const;
1171 virtual void addSimObjectAboutToBeLoadedCallback(
1174 bool invertFilter =
false)
const;
1178 virtual void removeSimObjectAboutToBeAddedCallback(
1181 bool invertFilter =
false)
const;
1185 virtual void removeSimObjectAddedCallback(
1188 bool invertFilter =
false)
const;
1192 virtual void removeSimObjectAboutToBeLoadedCallback(
1195 bool invertFilter =
false)
const;
1199 virtual void removeSimObjectAboutToBeRemovedCallback(
1202 bool invertFilter =
false)
const;
1207 virtual void invokeSimObjectAboutToBeAddedCallbacks(
1213 virtual void invokeSimObjectAddedCallbacks(
1219 virtual void invokeSimObjectAboutToBeRemovedCallbacks(
1225 virtual void invokeSimObjectAboutToBeLoadedCallbacks(
1237 virtual void setSimObjectType(
const DtString& type);
1238 virtual const DtString& simObjectType()
const;
1242 virtual void setOrbatEnabled(
bool);
1243 virtual bool orbatEnabled()
const;
1246 virtual void setOrderOfBattleObjectsAddedToOrbatByDefault(
bool b);
1247 virtual bool orderOfBattleObjectsAddedToOrbatByDefault()
const;
1250 virtual void closingScenario();
1254 virtual bool addUUIDMappingForObject(
DtVrfObject* vrfObject);
1257 virtual void removeUUIDMappingForObject(
DtVrfObject* vrfObject);
1260 virtual DtEntityIdentifier nextId(
DtVrfObject* o = NULL);
1267 root =
"Object")
const;
1283 virtual bool isLocal(
const DtBaseEntityStateRepository& stateRep);
1295 bool includePseudoAggregates =
true)
const;
1301 static void designatorAddedCallback(DtReflectedDesignator * des,
1308 static void designatorRemovedCallback(DtReflectedDesignator * des,
1315 static void designatorChangedCallback(DtReflectedDesignator * des,
1326 static void activeSonarAddedCallback(DtReflectedActiveSonar* activeSonar,
1328 static void activeSonarRemovedCallback(DtReflectedActiveSonar* activeSonar,
1330 static void activeSonarChangedCallback(DtReflectedActiveSonar* activeSonar,
1332 static DtBoolean activeSonarDiscoveryCriteriaCallback(
1335 static void propulsionNoiseAddedCallback(DtReflectedPropulsionNoise* propNoise,
1337 static void propulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* propNoise,
1339 static void propulsionNoiseChangedCallback(DtReflectedPropulsionNoise* propNoise,
1341 static DtBoolean propulsionNoiseDiscoveryCriteriaCallback(
1344 static void radioTransmitterAddedCallback(DtReflectedRadioTransmitter* transmitter,
1346 static void radioTransmitterRemovedCallback(DtReflectedRadioTransmitter* transmitter,
1348 static void radioTransmitterChangedCallback(DtReflectedRadioTransmitter* transmitter,
1350 static DtBoolean radioTransmitterDiscoveryCriteriaCallback(
1353 static void iffAddedCallback(DtReflectedIff* propNoise,
1355 static void iffRemovedCallback(DtReflectedIff* propNoise,
1357 static void iffChangedCallback(DtReflectedIff* propNoise,
1359 static DtBoolean iffDiscoveryCriteriaCallback(
1364 virtual bool canSimulate()
const;
1368 virtual void setCanSimulate(
bool);
1371 virtual void printReflectedObjectCounts()
const;
1375 virtual void addStealthType(
const DtEntityType&);
1376 virtual void removeStealthType(
const DtEntityType&);
1377 virtual bool isStealthType(
const DtEntityType&)
const;
1379 const std::vector<DtEntityType>&
stealthTypes()
const {
return myStealthTypes; };
1382 virtual std::set<const DtVrfObject*> objectsOnOverlayLayer(
const DtString&)
const;
1386 virtual void processVrfObjectDataChanged(
const DtVrfObject*,
int);
1389 virtual void clearObjectsAwaitingDiscovery();
1394 virtual bool addSubordinatesToAggregate(
DtVrfObject*
object,
1395 const std::vector<DtUUID>& subordinates, DtAggregateState desiredState = DtFullyDisaggregated);
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);
1421 virtual void createSubObjectsFromParameters(
const DtVrfObject* parent,
1422 bool publishSubobjects,
unsigned long requestId,
const DtString& overlayParent,
bool addToOrbat);
1430 virtual DtVrfObject* createSubObjectFromParameterEntry(
1434 bool publishSubObject,
unsigned long requestId = 0,
const DtString& overlayParent =
"",
1436 bool addToOrbat =
true);
1438 virtual DtVrfObject* createObjectFromMemoryBuffer(
const std::string& buffer);
1445 static void addSubordinatesToAggregateCompleteCallback(
void* usr);
1452 virtual void rediscoverNonVRFEntities();
1459 virtual const DtVrfObject*
remove(
const DtEntityIdentifier& key);
1463 virtual void invokeObjectManagerAboutToRemoveAllCallbacks();
1467 virtual void onQueueObjectForRemoval(
DtVrfObject* vrfObject,
bool andRemoveFromOrbat =
false);
1478 virtual std::list<DtVector> calculateFormationOffsetsBasedOnFootprints(
const DtList&)
const;
1481 virtual std::vector<Dt3dBoundingVolume> boundingVolumesOfChildren(
const DtList& subObjects,
1482 int& totalLeafNodes)
const;
1486 virtual void checkPendingNameRemoval(
const DtString& markingText);
1490 virtual void removeVrfObject(
const DtUUID&,
bool queueDeletionOfVrfObject =
false);
1503 virtual DtEntityIdentifier findEntityIdentifier(DtlObjPtr);
1506 virtual void deleteVrfObjectsToBeDeleted();
1509 virtual DtEntityType standardAggregateTypeToVrfAggregateType(
const DtEntityType& aggType)
const;
1514 virtual DtVrfObject* createAndInitVrfObject(DtReflectedAggregate* aggregate,
1523 #if DtHLA_1516_EVOLVED
1524 virtual void reserveGlobalObjectIds(
unsigned numToReserve);
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*);
1565 #if DT_SINGLE_STATE_UPDATE_MESSAGE
1566 static void vrfObjectStateUpdateCallback(
DtSimMessage* msg,
void* usr);
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);
1584 static void extendedLabelsOperationCallback(
DtSimMessage* msg,
void* usr);
1585 virtual void processExtendedLabelsOperation(
DtSimMessage*);
1588 static void requestActivitiesCallback(
DtSimMessage* msg,
void* usr);
1592 static void requestJoystickControlsCallback(
DtSimMessage* msg,
void* usr);
1593 virtual void processRequestJoystickControls(
DtSimMessage*);
1597 virtual bool acceptRemoteEnvironmental(
const DtEntityType& et)
const;
1599 static void envProcessAddedCallback(
1601 static void envProcessRemovedCallback(
1603 static bool envProcessDiscoveryCriteria(
1624 static void postInitFromParamsCallback(
const DtVrfObject* vrfObject,
void* usr);
1818 std::set<DtGlobalObjectDesignator> myReservedGlobalIds;
1829 typedef std::map<DtString, std::set<const DtVrfObject*> >
OverlayMap;
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 'about to remove all' 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
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: vrfObjectManager.h:212
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 "discovered".
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