33 #include <vlpi/appearance.h>
34 #include <vlutil/vlFilename.h>
35 #include <vlutil/vlList.h>
36 #include <vlutil/vlHashlist.h>
37 #include <vlutil/vlConfig.h>
38 #include <vlutil/vlSmartPointers.h>
40 #include <vl/fomMapper.h>
47 #include <boost/unordered_map.hpp>
48 #include <boost/unordered_set.hpp>
49 #include <tbb/spin_rw_mutex.h>
52 #define DT_SINGLE_STATE_UPDATE_MESSAGE 0
56 class DtReflectedAggregate;
64 class DtSimObjectSubComponentTypes;
69 class DtBaseEntityStateRepository;
72 class DtVrfObjectManagerTickArguments;
74 class DtSimTickArguments;
89 class DtReflectedDesignator;
92 class DtReflectedActiveSonar;
93 class DtReflectedActiveSonarList;
94 class DtReflectedPropulsionNoise;
95 class DtReflectedPropulsionNoiseList;
96 class DtReflectedRadioTransmitter;
101 class DtlInputStream;
105 class DtReflectedIffList;
106 class DtReflectedIff;
109 namespace makVrfVrlinkExtToolkit
111 class DtReflectedExtendedAttributesObjectList;
211 DtUseParameterDatabaseAggregateState = 0,
213 DtCreateDisaggregatedEntity
214 } DtAggregateCreationMode;
231 virtual void clearRemoteComponentAttachmentSystem();
238 virtual bool reuseEntityIdentifiersOnScenarioLoad()
const;
239 virtual void setReuseEntityIdentifiersOnScenarioLoad(
bool);
243 virtual DtEntityIdentifier nextEntityIdentifier(
const DtVrfObject*,
const DtEntityIdentifier&);
244 virtual void addVrfObjectAboutToBePublishedCallback(
246 virtual void removeVrfObjectAboutToBePublishedCallback(
251 virtual void createRemoteComponentAttachmentManager();
254 virtual bool isRemoteComponentAttachment(
const DtUUID&)
const;
257 virtual bool initializeRemoteComponentAttachmentSystem(
const DtFilename& fromFile);
266 virtual bool create();
273 virtual bool createDIGuyCharacterManager(
const DtFilename & diGuyAnimationsFile);
280 virtual DtFilename metaDataFilename(
const DtObjectType&)
const;
300 virtual bool completeObjectAddition(
DtVrfObject* simObject);
303 virtual void setAppIdRangeMax(
int);
304 virtual int appIdRangeMax()
const;
307 virtual bool loadingScenarioInformation()
const;
332 virtual bool registerExtendedProperties();
336 bool reevaluateFlag =
false,
DtTime evaluationPeriod = 0);
339 virtual void setImportingScenario(
bool);
340 virtual bool importingScenario()
const;
348 bool invertFilter =
false)
const;
356 bool invertFilter =
false,
void* usrData = 0)
const;
363 virtual void removeAndDelete(
const DtUUID& objectName,
bool andRemoveFromOrbat);
365 virtual void removeAndDelete(
const DtEntityIdentifier& key,
bool andRemoveFromOrbat);
366 virtual void removeAndDelete(
DtVrfObject*
object,
bool andRemoveFromOrbat);
369 std::set<DtGlobalObjectDesignator> remoteObjectGlobalIds(
bool onlyVrfSimulated =
true)
const;
372 virtual void removeAndDeleteAllLocals(
bool andDeleteFromOrbat =
false);
382 virtual void setExerciseConnection(DtExerciseConn* connection);
383 virtual void createRemoteEnvironmentalsList(DtExerciseConn* exConn);
387 virtual void setPublishZeroVelocityWhenPaused(
bool);
388 virtual bool publishZeroVelocityWhenPaused()
const;
393 virtual void setSetDeadReckoningAlgorithmToStaticOnPause(
bool);
394 virtual bool setDeadReckoningAlgorithmToStaticOnPause()
const;
397 virtual void overrideDeadReckoningAlgorithm(DtDeadReckonTypes drAlg);
401 virtual bool isDeadReckonAlgorithmOverridden(DtDeadReckonTypes& drAlg)
const;
405 virtual void removeDeadReckoningAlgorithmOverride();
414 virtual bool hasPermissionToDisplayTaskVisualizations(
const DtUUID& uuid);
417 virtual void setMaxObjectsWithTaskVisualizations(
unsigned max);
418 virtual unsigned maxObjectsWithTaskVisualizations()
const;
422 virtual void setUseDrawControlForTaskVisualizations(
bool);
423 virtual bool useDrawControlForTaskVisualizations()
const;
433 virtual bool objectInRemovalQueue(
const DtUUID& uuid);
441 virtual void registerInterfaceCallbacks();
491 virtual void processModifyVrfOverlay(
DtSimMessage* msg);
497 virtual void processDeleteVrfObjectById(
DtSimMessage* msg);
500 virtual void processVrfObjectDeleted(
DtSimMessage* msg);
519 virtual void processDeleteDynamicTerrainServer(
DtSimMessage*);
533 virtual void processDesignatorAddedCallback(DtReflectedDesignator * des);
534 virtual void processDesignatorRemovedCallback(DtReflectedDesignator * des);
535 virtual void processDesignatorChangedCallback(DtReflectedDesignator * des);
536 DtBoolean processDesignatorDiscoveryCriteria(DtReflectedDesignator * des);
538 virtual void processActiveSonarAddedCallback(DtReflectedActiveSonar* des);
539 virtual void processActiveSonarRemovedCallback(DtReflectedActiveSonar* des);
540 virtual void processActiveSonarChangedCallback(DtReflectedActiveSonar* des);
541 DtBoolean processActiveSonarDiscoveryCriteria(DtReflectedActiveSonar* des);
547 virtual void processPropulsionNoiseAddedCallback(DtReflectedPropulsionNoise* des);
548 virtual void processPropulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* des);
549 virtual void processPropulsionNoiseChangedCallback(DtReflectedPropulsionNoise* des);
550 DtBoolean processPropulsionNoiseDiscoveryCriteria(DtReflectedPropulsionNoise* des);
552 virtual void processRadioTransmitterAddedCallback(DtReflectedRadioTransmitter* tran);
553 virtual void processRadioTransmitterRemovedCallback(DtReflectedRadioTransmitter* tran);
554 virtual void processRadioTransmitterChangedCallback(DtReflectedRadioTransmitter* tran);
555 DtBoolean processRadioTransmitterDiscoveryCriteria(DtReflectedRadioTransmitter* tran);
557 virtual void processIffAddedCallback(DtReflectedIff* des);
558 virtual void processIffRemovedCallback(DtReflectedIff* des);
559 virtual void processIffChangedCallback(DtReflectedIff* des);
560 virtual DtBoolean processIffDiscoveryCriteria(DtReflectedIff*);
562 virtual bool hasEnabledActiveSonar(
const DtVrfObject* host)
const;
564 virtual DtReflectedPropulsionNoise* propulsionNoiseForHost(
const DtVrfObject* host)
const;
565 virtual DtReflectedRadioTransmitter* radioTransmitterForHost(
const DtVrfObject* host)
const;
567 virtual DtReflectedIff* iffForHost(
const DtVrfObject* host)
const;
574 virtual void processEnvProcessAddedCallback(
576 virtual void processEnvProcessRemovedCallback(
578 virtual bool processEnvProcessDiscoveryCriteria(
583 virtual void removeObjectSubordinates(
DtVrfObject*
object,
bool andRemoveFromOrbat);
587 virtual void queueObjectForRemoval(
const DtEntityIdentifier& key,
bool andRemoveFromOrbat =
false);
588 virtual void queueObjectForRemoval(
const DtUUID& key,
bool andRemoveFromOrbat =
false);
591 virtual void removeObjectsQueuedForRemoval();
619 bool publishLocalObject =
true,
620 const DtString& objectName = DtString::nullString(),
621 const DtString& objectLabel = DtString::nullString(),
622 DtForceType forceType = DtForceOther,
623 const DtList* vertices = 0,
624 const DtTaitBryan* orientation = 0,
625 bool projection =
false,
626 bool closedFigure =
false,
627 const DtAppearance& appearance = DtAppearance::nullAppearance(),
628 const DtString& readerWriterName = DtString::nullString(),
630 bool createSubObjects =
false,
632 void* userInitData = 0,
633 bool organize =
true,
637 unsigned long requestId = 0,
640 bool addToOrbat =
false);
651 bool publishLocalObject =
true,
652 const DtString& objectName = DtString::nullString(),
653 const DtString& objectLabel = DtString::nullString(),
654 DtForceType forceType = DtForceOther,
655 const DtVector& position = DtVector::zero(),
656 const DtTaitBryan* orientation = 0,
657 bool projection =
false,
658 bool closedFigure =
false,
659 const DtAppearance& appearance = DtAppearance::nullAppearance(),
660 const DtString& readerWriterName = DtString::nullString(),
662 bool createSubObjects =
false,
664 void* userInitData = 0,
665 bool organize =
true,
669 unsigned long requestId = 0,
const DtString& overlayParent =
"",
671 bool addToOrbat =
false);
674 virtual bool readOrderOfBattleFile(
const DtFilename &
filename);
675 virtual bool readOrderOfBattleFile(
const std::vector<std::string*>& oob);
678 virtual bool readOrderOfBattleFile(DtlInputStream*);
682 virtual bool writeOrderOfBattleFile(std::string&
stream,
int& numberOfLuaScripts);
683 virtual bool writeOrderOfBattleFile(std::vector<std::string*>& vecOfStreams,
int& numberOfLuaScripts);
687 virtual bool writeSimulationObjectGroupOrderOfBattleFile(
const DtString&
filename,
int flags,
688 boost::unordered_set<DtUUID>& uuidsSaved);
691 virtual void preallocateLuaScriptHandles(
int);
696 virtual bool objectShouldBeSavedToOrderOfBattle(
698 virtual bool objectShouldBeSavedToSimulationObjectGroup(
703 virtual bool hasUUIDOrMarkingText(DtlObjPtr args,
DtUUID&)
const;
705 virtual DtlObjPtr
getData(DtlObjPtr args,
711 static void tickCallback(
void* args);
716 virtual void addVrfObjectAboutToBeAddedCallback(
719 bool invertFilter =
false)
const;
724 virtual void addVrfObjectAddedCallback(
727 bool invertFilter =
false)
const;
732 virtual void addVrfObjectAboutToBeLoadedCallback(
735 bool invertFilter =
false)
const;
741 virtual void addVrfObjectAboutToBeRemovedCallback(
744 bool invertFilter =
false)
const;
748 virtual void removeVrfObjectAboutToBeAddedCallback(
751 bool invertFilter =
false)
const;
755 virtual void removeVrfObjectAboutToBeLoadedCallback(
758 bool invertFilter =
false)
const;
762 virtual void removeVrfObjectAddedCallback(
765 bool invertFilter =
false)
const;
769 virtual void removeVrfObjectAboutToBeRemovedCallback(
772 bool invertFilter =
false)
const;
776 virtual void addObjectManagerAboutToRemoveAllCallback(
781 virtual void removeObjectManagerAboutToRemoveAllCallback(
785 virtual void addOrganizationManagerReadyCallback(
789 virtual void removeOrganizationManagerReadyCallback(
793 virtual void enableAutoReorganization();
794 virtual void disableAutoReorganization();
796 virtual bool autoReorganizeEnabled()
const;
799 virtual DtEntityIdentifier mapUUIDToEntityIdentifier(
const DtUUID&)
const;
806 virtual bool objectNameExists(
const DtString&)
const;
817 virtual DtString nextNameWithPrefix(
int maxLength,
821 virtual unsigned int getNextTransmitterId();
824 virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType);
827 virtual DtVrfObject* createAndInitTopLevelVrfObject(DtForceType forceType,
830 virtual DtString topLevelName(DtForceType forceType);
841 virtual DtString nextUnorganizedName();
849 virtual unsigned int maxNameLengthForType(
const DtObjectType& objectType);
857 virtual void rediscoverObjects(
const std::set<DtGlobalObjectDesignator>& ignore =
858 std::set<DtGlobalObjectDesignator>());
862 virtual void requestUpdatesForRemoteNonVrfObjects()
const;
871 virtual void objectUUIDChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
908 const std::vector<DtUUID>& subordinates = std::vector<DtUUID>(),
909 const DtString& aggregateName = DtString::nullString(),
910 bool addToOrbat =
true);
913 virtual double timeOfDay()
const;
916 virtual double dateAndTimeOfDay()
const;
922 virtual void setSimulationDateTimeBasedOnLocation(
const DtVector& geocentricLocation,
int timeOfDay);
937 virtual unsigned objectCount()
const;
965 virtual bool uuidExists(
const DtUUID&)
const;
971 virtual void removeNameAlias(
const DtString& alias);
984 virtual bool markingTextExists(
const DtString&)
const;
987 virtual const DtSimulationAddress& simulationAddress()
const;
997 virtual bool createSimObjectList();
1006 virtual void createRemoteEntitiesList(DtExerciseConn* exConn);
1007 virtual void createRemoteAggregatesList(DtExerciseConn* exConn);
1074 virtual bool processEntityDiscoveryCriteria(
1082 virtual bool processAggregateDiscoveryCriteria(
1083 DtReflectedAggregate* aggregate);
1091 virtual bool hostingDynamicTerrainServer()
const;
1096 virtual DtReflectedDesignator* lookupLasedTargetByDesignatorCode(
const int code);
1101 virtual void createRemoteDesignatorsList(DtExerciseConn* exConn);
1103 virtual void createRemoteActiveSonarList(DtExerciseConn* exConn);
1104 virtual void createRemotePropulsionNoiseList(DtExerciseConn* exConn);
1105 virtual void createRemoteRadioTransmitterList(DtExerciseConn* exConn);
1106 virtual void createRemoteEmitterSystemList(DtExerciseConn* exConn);
1107 virtual void createRemoteIffList(DtExerciseConn* exConn);
1110 virtual void createRemoteExtendedAttributesList(DtExerciseConn* exConn);
1117 DtReflectedActiveSonarList* reflectedActiveSonarList()
const;
1118 DtReflectedPropulsionNoiseList* reflectedPropulsionNoiseList()
const;
1120 DtReflectedIffList* reflectedIffList()
const;
1126 virtual void addSimObjectQueuedForRemovalCallback(
1128 virtual void removeSimObjectQueuedForRemovalCallback(
1130 virtual void invokeSimObjectQueuedForRemovalCallbacks(
1136 virtual void addSimObjectAboutToBeAddedCallback(
1139 bool invertFilter =
false)
const;
1144 virtual void addSimObjectAddedCallback(
1147 bool invertFilter =
false)
const;
1152 virtual void addSimObjectAboutToBeRemovedCallback(
1155 bool invertFilter =
false)
const;
1160 virtual void addSimObjectAboutToBeLoadedCallback(
1163 bool invertFilter =
false)
const;
1167 virtual void removeSimObjectAboutToBeAddedCallback(
1170 bool invertFilter =
false)
const;
1174 virtual void removeSimObjectAddedCallback(
1177 bool invertFilter =
false)
const;
1181 virtual void removeSimObjectAboutToBeLoadedCallback(
1184 bool invertFilter =
false)
const;
1188 virtual void removeSimObjectAboutToBeRemovedCallback(
1191 bool invertFilter =
false)
const;
1196 virtual void invokeSimObjectAboutToBeAddedCallbacks(
1202 virtual void invokeSimObjectAddedCallbacks(
1208 virtual void invokeSimObjectAboutToBeRemovedCallbacks(
1214 virtual void invokeSimObjectAboutToBeLoadedCallbacks(
1226 virtual void setSimObjectType(
const DtString& type);
1227 virtual const DtString& simObjectType()
const;
1231 virtual void setOrbatEnabled(
bool);
1232 virtual bool orbatEnabled()
const;
1235 virtual void setOrderOfBattleObjectsAddedToOrbatByDefault(
bool b);
1236 virtual bool orderOfBattleObjectsAddedToOrbatByDefault()
const;
1239 virtual void closingScenario();
1243 virtual bool addUUIDMappingForObject(
DtVrfObject* vrfObject);
1246 virtual void removeUUIDMappingForObject(
DtVrfObject* vrfObject);
1249 virtual DtEntityIdentifier nextId(
DtVrfObject* o = NULL);
1256 root =
"Object")
const;
1272 virtual bool isLocal(
const DtBaseEntityStateRepository& stateRep);
1284 bool includePseudoAggregates =
true)
const;
1290 static void designatorAddedCallback(DtReflectedDesignator * des,
1297 static void designatorRemovedCallback(DtReflectedDesignator * des,
1304 static void designatorChangedCallback(DtReflectedDesignator * des,
1315 static void activeSonarAddedCallback(DtReflectedActiveSonar* activeSonar,
1317 static void activeSonarRemovedCallback(DtReflectedActiveSonar* activeSonar,
1319 static void activeSonarChangedCallback(DtReflectedActiveSonar* activeSonar,
1321 static DtBoolean activeSonarDiscoveryCriteriaCallback(
1324 static void propulsionNoiseAddedCallback(DtReflectedPropulsionNoise* propNoise,
1326 static void propulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* propNoise,
1328 static void propulsionNoiseChangedCallback(DtReflectedPropulsionNoise* propNoise,
1330 static DtBoolean propulsionNoiseDiscoveryCriteriaCallback(
1333 static void radioTransmitterAddedCallback(DtReflectedRadioTransmitter* transmitter,
1335 static void radioTransmitterRemovedCallback(DtReflectedRadioTransmitter* transmitter,
1337 static void radioTransmitterChangedCallback(DtReflectedRadioTransmitter* transmitter,
1339 static DtBoolean radioTransmitterDiscoveryCriteriaCallback(
1342 static void iffAddedCallback(DtReflectedIff* propNoise,
1344 static void iffRemovedCallback(DtReflectedIff* propNoise,
1346 static void iffChangedCallback(DtReflectedIff* propNoise,
1348 static DtBoolean iffDiscoveryCriteriaCallback(
1353 virtual bool canSimulate()
const;
1357 virtual void setCanSimulate(
bool);
1360 virtual void printReflectedObjectCounts()
const;
1364 virtual void addStealthType(
const DtEntityType&);
1365 virtual void removeStealthType(
const DtEntityType&);
1366 virtual bool isStealthType(
const DtEntityType&)
const;
1368 const std::vector<DtEntityType>&
stealthTypes()
const {
return myStealthTypes; };
1371 virtual std::set<const DtVrfObject*> objectsOnOverlayLayer(
const DtString&)
const;
1375 virtual void processVrfObjectDataChanged(
const DtVrfObject*,
int);
1378 virtual void clearObjectsAwaitingDiscovery();
1383 virtual bool addSubordinatesToAggregate(
DtVrfObject*
object,
1384 const std::vector<DtUUID>& subordinates, DtAggregateState desiredState = DtFullyDisaggregated);
1389 virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(
const DtString&
filename,
int flags, DtForceType force,
1390 DtlObjPtr* retArgs = 0,
bool* errorLoading = 0);
1391 virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFileFromZipFile(
1392 const DtFilename& scenarioZipFile,
const DtString&
filename,
int flags, DtForceType force,
1393 DtlObjPtr* retArgs = 0,
bool* errorLoading = 0);
1394 virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(
int flags, DtForceType force, DtlObjPtr& args);
1395 virtual std::vector<DtVrfObject*> readSimulationObjectGroupOrderOfBattleFile(DtlInputStream* fStream,
int flags, DtForceType force,
1396 DtlObjPtr* retArgs = 0,
bool* errorLoading = 0);
1410 virtual void createSubObjectsFromParameters(
const DtVrfObject* parent,
1411 bool publishSubobjects,
unsigned long requestId,
const DtString& overlayParent,
bool addToOrbat);
1419 virtual DtVrfObject* createSubObjectFromParameterEntry(
1423 bool publishSubObject,
unsigned long requestId = 0,
const DtString& overlayParent =
"",
1425 bool addToOrbat =
true);
1427 virtual DtVrfObject* createObjectFromMemoryBuffer(
const std::string& buffer);
1434 static void addSubordinatesToAggregateCompleteCallback(
void* usr);
1441 virtual void rediscoverNonVRFEntities();
1448 virtual const DtVrfObject*
remove(
const DtEntityIdentifier& key);
1452 virtual void invokeObjectManagerAboutToRemoveAllCallbacks();
1456 virtual void onQueueObjectForRemoval(
DtVrfObject* vrfObject,
bool andRemoveFromOrbat =
false);
1467 virtual std::list<DtVector> calculateFormationOffsetsBasedOnFootprints(
const DtList&)
const;
1470 virtual std::vector<Dt3dBoundingVolume> boundingVolumesOfChildren(
const DtList& subObjects,
1471 int& totalLeafNodes)
const;
1475 virtual void checkPendingNameRemoval(
const DtString& markingText);
1479 virtual void removeVrfObject(
const DtUUID&,
bool queueDeletionOfVrfObject =
false);
1492 virtual DtEntityIdentifier findEntityIdentifier(DtlObjPtr);
1495 virtual void deleteVrfObjectsToBeDeleted();
1498 virtual DtEntityType standardAggregateTypeToVrfAggregateType(
const DtEntityType& aggType)
const;
1503 virtual DtVrfObject* createAndInitVrfObject(DtReflectedAggregate* aggregate,
1512 #if DtHLA_1516_EVOLVED
1513 virtual void reserveGlobalObjectIds(
unsigned numToReserve);
1547 static void modifyVrfObjectCallback(
DtSimMessage* msg,
void* usr);
1548 static void modifyVrfOverlayCallback(
DtSimMessage* msg,
void* usr);
1549 static void autoReorganizeCallback(
DtSimMessage* msg,
void* usr);
1550 static void skipTaskCallback(
DtSimMessage* msg,
void* usr);
1551 static void setThresholdsCallback(
DtSimMessage* msg,
void* usr);
1552 static void deleteDynamicTerrainServerCallback(
DtSimMessage*,
void*);
1554 #if DT_SINGLE_STATE_UPDATE_MESSAGE
1555 static void vrfObjectStateUpdateCallback(
DtSimMessage* msg,
void* usr);
1565 static void createVrfObjectCallback(
DtSimMessage* msg,
void* usr);
1566 static void deleteVrfObjectCallback(
DtSimMessage* msg,
void* usr);
1567 static void deleteVrfObjectByIdCallback(
DtSimMessage* msg,
void* usr);
1568 static void vrfObjectDeletedCallback(
DtSimMessage* msg,
void* usr);
1569 static void orderOfBattleOpCallback(
DtSimMessage* msg,
void* usr);
1570 static void aggregateAsCallback(
DtSimMessage* msg,
void* usr);
1573 static void extendedLabelsOperationCallback(
DtSimMessage* msg,
void* usr);
1574 virtual void processExtendedLabelsOperation(
DtSimMessage*);
1577 static void requestActivitiesCallback(
DtSimMessage* msg,
void* usr);
1581 static void requestJoystickControlsCallback(
DtSimMessage* msg,
void* usr);
1582 virtual void processRequestJoystickControls(
DtSimMessage*);
1586 virtual bool acceptRemoteEnvironmental(
const DtEntityType& et)
const;
1588 static void envProcessAddedCallback(
1590 static void envProcessRemovedCallback(
1592 static bool envProcessDiscoveryCriteria(
1613 static void postInitFromParamsCallback(
const DtVrfObject* vrfObject,
void* usr);
1804 std::set<DtGlobalObjectDesignator> myReservedGlobalIds;
1815 typedef std::map<DtString, std::set<const DtVrfObject*> >
OverlayMap;
DtReaderWriter::SearchPaths mySearchPaths
Definition: vrfObjectManager.h:1801
DtSimObjectMapIterator * myIterator
Definition: vrfObjectManager.h:1689
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Class Description: DtVrfSimulationObjectGroupGeometry is a specialized that class will calculate obje...
Definition: vrfSimulationObjectGroupGeometry.h:48
std::list< DtCreateQueueEntryPtr > DtVrfObjectCreateQueue
Definition: vrfObjectManager.h:461
Contains the DtReflectedExtEntityList class declaration.
DtVrfObjectModifyQueue myObjectsToModifyQueue
Definition: vrfObjectManager.h:1718
This singleton class keeps track of components that should be added to remote, non VR-Forces entities...
Definition: remoteComponentAttachmentManager.h:33
boost::unordered_map< DtString, DtSharedVrfObjectReference > GlobalIdToObjectMap
Definition: vrfObjectManager.h:1727
Definition: vrfObjectManager.h:185
DtVrfEntityIdentifierFactory * myEntityIdentifierFactory
Definition: vrfObjectManager.h:1795
DtRwActivities myActivities
Definition: vrfObjectManager.h:1764
bool myCanSimulate
Definition: vrfObjectManager.h:1798
Definition: reflectedExtEntity.h:31
int myNameCounter
Definition: vrfObjectManager.h:1725
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
bool myWarnedAboutTaskVisLimit
Definition: vrfObjectManager.h:1777
void(* DtVrfObjectManagerCallbackFcn)(const DtVrfObjectManager &objectManager, void *usr)
Callback function definition for object manager 'about to remove all' events.
Definition: vrfObjectManager.h:125
DtCallbackList< const DtVrfObjectAboutToBePublishedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectAboutToBePublishedCallbackFcn
Definition: vrfObjectManager.h:178
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:35
boost::unordered_map< DtUUID, DtSharedVrfObjectReference > UUIDToObjectMap
Definition: vrfObjectManager.h:1779
DtString myNewName
Definition: vrfObjectManager.h:154
std::list< DtModifyQueueEntryPtr > DtVrfObjectModifyQueue
Definition: vrfObjectManager.h:1717
std::vector< PendingObjectInformation > PendingObjectsInformation
Definition: vrfObjectManager.h:1537
const Coordinate_System * myCoordinateSystemPtr
Definition: vrfObjectManager.h:1736
DtVrfObject * myDynamicTerrainServer
Definition: vrfObjectManager.h:1740
ObjectToObjectMap myObjectToObjectMap
Definition: vrfObjectManager.h:1787
Definition: reflectedExtAggregate.h:35
A Readable, Writable version of DtList.
Definition: rwList.h:26
const char DtDefaultFormationString[]
Definition: extendedAggregateEnums.h:23
Arguments passed by the DtVrfObjectManager::addUUISChangedCallback callbacks.
Definition: vrfObjectManager.h:169
DtReflectedIffList * myReflectedIffList
Definition: vrfObjectManager.h:1651
DtNameChangedCallbackList myObjectNameChangedCallbackList
Definition: vrfObjectManager.h:1749
DtCallbackList< const DtOrganizationManagerReadyCallbackInfo & >::DtCallbackFunctionType DtOrganizationManagerReadyCallbackFcn
Callback function definition for organization manager readiness state change.
Definition: organizationManager.h:34
std::map< int, DtlObjPtr > mySortedByEntityId
Definition: vrfObjectManager.h:1793
A manager for reflected emitter systems and some related functionality.
Definition: reflectedEmitterSystemManager.h:31
boost::unordered_map< DtVrfObject *, DtSharedVrfObjectReference > ObjectToObjectMap
Definition: vrfObjectManager.h:1786
unsigned myMaxObjectsWithTaskVisualizations
Definition: vrfObjectManager.h:1776
const std::vector< DtEntityType > & stealthTypes() const
Definition: vrfObjectManager.h:1368
DtSimObjectListActivityCallbackList myAboutToBeAddedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1669
Definition: vrfObjectManager.h:184
std::map< DtUUID, bool > myObjectsToRemoveQueue
Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval. ...
Definition: vrfObjectManager.h:1707
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0
This method must be overridden by a subclass.
The manager for SimInternal messages on a single simulation engine.
Definition: simInternalCommunicationManager.h:34
DtImportScenarioData(const DtImportScenarioData &orig)
Definition: vrfObjectManager.h:137
DtUUIDChangedCallbackList myObjectUUIDChangedCallbackList
Definition: vrfObjectManager.h:1755
Definition: reflectedVrfExtEntityList.h:23
DtReflectedRadioTransmitterList * myRemoteTransmitterList
Definition: vrfObjectManager.h:1647
std::vector< DtVrfObject * > myVrfObjectsToDelete
Definition: vrfObjectManager.h:1809
DtCallbackList< const DtVrfObject * > DtObjectQueuedForRemovalCallbackList
Definition: vrfObjectManager.h:1751
DtImportScenarioData()
Definition: vrfObjectManager.h:136
DtConsoleCommandOwner * myConsoleCommands
Definition: vrfObjectManager.h:1762
DtCallbackList< const DtVrfObjectManager & > DtAboutToRemoveAllCallbackList
Definition: vrfObjectManager.h:1810
Definition: vrfEntityIdentifierFactory.h:18
*virtual const DtObjectType & objectType() const
bool mySetDeadReckoningAlgorithmToStaticOnPause
Definition: vrfObjectManager.h:1771
Definition: assembliesReaderWriter.h:31
DtReflectedExtEntityList * myRemoteEntitiesList
VR-Link reflected entity list.
Definition: vrfObjectManager.h:1637
DtString mySimObjectType
Type of DtSimObject to create. Types are defined in simObjectTypes.h.
Definition: vrfObjectManager.h:1684
ACTUAL DEFINITION IN fltrFcnInf.h, provided here for readability typedef bool (DtFilterFcn)(const DtS...
Definition: vrfObjectFilterMapIterator.h:41
Structure that is used during scenario import to determine what to do with the import data...
Definition: vrfObjectManager.h:134
DtVrfSubObjectParameterEntry.
Definition: vrfSubObjectParameterEntry.h:27
DtCallbackList< const DtVrfObjectAboutToBePublishedCallbackInfo & > VrfObjectAboutToBePublishedCallbackList
Definition: vrfObjectManager.h:1757
Definition: vrfObjectManager.h:211
Definition: readerWriterRegistry.h:39
DtCallbackList< const DtVrfObject * >::DtCallbackFunctionType DtVrfObjectQueuedForRemocalCallbackFcn
Definition: vrfObjectManager.h:179
This class derives from the DtOrganizationManager and will handle all requests as it pertains to the ...
Definition: orbatManager.h:25
DtAboutToRemoveAllCallbackList myAboutToRemoveAllCallbackList
Definition: vrfObjectManager.h:1811
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
std::vector< PendingObjectsInformation > ObjectsAwaitingDiscovery
Definition: vrfObjectManager.h:1538
DtCallbackList< const DtVrfObjectUUIDChangedCallbackInfo & > DtUUIDChangedCallbackList
Definition: vrfObjectManager.h:1754
Callback list for DtVrfObjectManager object list activity, such as adding and removing objects...
Definition: simObjectListActivityCallbackList.h:25
class DtReflectedControlObjectList:
Definition: reflectedControlObjectList.h:23
boost::unordered_map< DtString, DtSharedVrfObjectReference > NameToObjectMap
Definition: vrfObjectManager.h:1782
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:155
DtDeadReckonTypes myDeadReckonOverrideAlgorithm
Definition: vrfObjectManager.h:1822
bool(* DtSimObjectUserInitFcn)(DtVrfObject *object, void *usr)
User action function definition for createAndInitSimObject()
Definition: vrfObjectManager.h:118
std::pair< DtVrfObject *, DtVrfSimulationObjectGroupGeometry * > PendingObjectInformation
Simulation object groups that are awaiting to be "discovered".
Definition: vrfObjectManager.h:1536
DtVrfObjectUUIDChangedCallbackInfo()
Definition: vrfObjectManager.h:161
unsigned int importFlags
Definition: vrfObjectManager.h:144
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
Arguments passed by the DtVrfObjectManager::addUUISChangedCallback callbacks.
Definition: vrfObjectManager.h:159
tbb::spin_rw_mutex myOverlayMapMutex
Map of which objects are on which overlay layers.
Definition: vrfObjectManager.h:1814
std::vector< DtEntityType > & stealthTypes()
Definition: vrfObjectManager.h:1367
class DtIfModifyVrfObject:
Definition: ifModifyVrfObject.h:50
DtVector geocentricOffsetLocation
Definition: vrfObjectManager.h:146
std::vector< DtEntityType > myStealthTypes
Definition: vrfObjectManager.h:1807
Definition: objectType.h:27
DtOrganizationReadyCallbackList myOrganizationManagerReadyCallbackList
Definition: vrfObjectManager.h:1760
UUIDToObjectMap myUUIDToObjectMap
Definition: vrfObjectManager.h:1780
DtVrfObjectFilterMapIterator * myVrfIterator
Definition: vrfObjectManager.h:1701
Instances of DtVrfObjectPredicate are used to evaluate a condition, given a DtVrfObject as an argumen...
Definition: vrfObjectPredicate.h:21
voidp zipFile
Definition: zip.h:67
Manages loading and destruction of object models.
Definition: objectGeometricModelsManager.h:28
DtExerciseConn * myExerciseConn
Definition: vrfObjectManager.h:1691
static const DtUUID & nullUUID()
void(* DtVrfObjectListActivityCallbackFcn)(const DtVrfObject *vrfObject, void *usr)
Callback function definition (for callbacks registered on DtVrfObject* additions to and removals from...
Definition: simObjectListActivityCallbackList.h:19
Definition: coordSystem.h:54
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:165
DtReflectedActiveSonarList * myRemoteActiveSonarList
Definition: vrfObjectManager.h:1645
DtVrfObjectCreateQueue myObjectsToCreateQueue
Object creation queue; objects are only created once the terrain at the requested location has been p...
Definition: vrfObjectManager.h:1712
GlobalIdToObjectMap myGlobalIdToObjectMap
Definition: vrfObjectManager.h:1728
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtVrfParameterDb * myParameterDatabase
Parameter database used in creation and initialization of DtVrfObjects.
Definition: vrfObjectManager.h:1659
DtString deconflictingName
Definition: vrfObjectManager.h:143
DtReflectedExtAggregateList * myRemoteAggregateEntitiesList
VR-Link reflected aggregate list.
Definition: vrfObjectManager.h:1640
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtEntityIdentifier * myEntityIdentifier
Definition: vrfObjectManager.h:172
bool myPublishZeroVelocityWhenPaused
Definition: vrfObjectManager.h:1770
bool myIsDeadReckonAlgorithmOverridden
Definition: vrfObjectManager.h:1821
DtReflectedDesignatorList * myRemoteDesignatorsList
VR-Link reflected designator list.
Definition: vrfObjectManager.h:1643
std::map< const DtVrfObject *, DtString > ObjectOverlayMap
Definition: vrfObjectManager.h:1816
File: simMsg.h.
Definition: simMessage.h:35
bool creatingSimulationObjectGroup
Definition: vrfObjectManager.h:140
Contains data describing the available attributes and animations of every DI-Guy character type that ...
Definition: diGuyCharacterDataManager.h:34
class DtVertexList:
Definition: vertexList.h:22
DtAggregateCreationMode
Defines how the initial DtAggregateState should be set upon creation of an aggregate entity...
Definition: vrfObjectManager.h:209
DtUUID myNewUUID
Definition: vrfObjectManager.h:164
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
void(* DtSimObjectListActivityCallbackFcn)(const DtVrfObject *simObject, void *usr)
Callback function definition.
Definition: simObjectListActivityCallbackInfo.h:12
bool myLoadingScenarioInformation
Definition: vrfObjectManager.h:1797
Definition: noArgumentCallbackList.h:91
DtSimObjectMap mySimObjectList
Hashlist of all DtVrfObject*s, keyed on DtEntityIdentifier.
Definition: vrfObjectManager.h:1634
int myIndexSize
All hash indices for our objects should be created this size.
Definition: vrfObjectManager.h:1694
virtual DtListItem * add(DtReaderWriter *data)
Add element to the end of the list.
bool myAutoReorganizeFlag
Automatic reorganization flag for pseudo-aggregate entities.
Definition: vrfObjectManager.h:1721
ObjectOverlayMap myObjectOverlayMap
Definition: vrfObjectManager.h:1818
DtBoost::shared_ptr< DtModifyQueueEntry > DtModifyQueueEntryPtr
Object modification queue; objects which are ground clamped are only moved once the terrain at the re...
Definition: vrfObjectManager.h:1716
A utility class for use with DtConsoleCommandManager.
Definition: consoleCommandManager.h:157
int importForce
Definition: vrfObjectManager.h:145
double offsetRotation
Definition: vrfObjectManager.h:147
DtReflectedEmitterSystemManager * myReflectedEmitterSystemManager
Definition: vrfObjectManager.h:1649
bool(* DtFilterFcn)(const DtVrfObject *object, void *usr)
Definition: filterFcnInfo.h:19
Definition: vrfObject.h:93
DtTaskVisualizationPublicationMode myTaskVisualizationPublicationMode
Definition: vrfObjectManager.h:1773
static DtTime theOrgMgrTickPeriod
Definition: vrfObjectManager.h:1825
Description: DtMapIteratorBase is the base class for iterators used to iterate over a std::map...
Definition: mapIteratorBase.h:18
DtManagedObjectListManager * myFilteredObjectListManager
Definition: vrfObjectManager.h:1696
Definition: echelonId.h:13
This class derives from the DtOrganizationView, and adds the capability to manipulate the hierarchy...
Definition: organizationManager.h:46
DtBoost::shared_ptr< DtCreateQueueEntry > DtCreateQueueEntryPtr
Returns the objects to create queue.
Definition: vrfObjectManager.h:460
Definition: vrfObjectPlanAdministrator.h:45
class DtVrfObjectManager:
Definition: vrfObjectManager.h:201
NameToObjectMap myAwaitingToBeCreatedMap
Definition: vrfObjectManager.h:1784
DtOrganizationManager * myOrganizationManager
Definition: vrfObjectManager.h:1732
voidpf stream
Definition: ioapi.h:39
virtual void * remove(DtReaderWriter *data, DtListItem *item)
Remove an element from the list.
unsigned int myNextTransmitterId
Definition: vrfObjectManager.h:1792
DtCallbackList< const DtVrfObjectNameChangedCallbackInfo & > DtNameChangedCallbackList
Definition: vrfObjectManager.h:1748
double myTimeToPublishNextStateUpdate
Definition: vrfObjectManager.h:1738
Definition: objectTypeEnums.h:29
DtAssembliesReaderWriter::RwRootNode myRollUpRules
Definition: vrfObjectManager.h:1769
Definition: createQueueEntry.h:27
std::list< DtReflectedActiveSonar * > ReflectedActiveSonars
Definition: vrfObjectManager.h:543
Definition: modifyQueueEntry.h:27
bool myReuseEntityIdentifiersOnScenarioLoad
Definition: vrfObjectManager.h:1796
DtReflectedPropulsionNoiseList * myRemotePropulsionNoiseList
Definition: vrfObjectManager.h:1646
Definition: reflectedVrfExtControlObjectList.h:23
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfObjectPlanAdministrator * myPlanAdministrator
Definition: vrfObjectManager.h:1746
const char int mode
Definition: ioapi.h:38
NameToObjectMap myNameToObjectMap
Definition: vrfObjectManager.h:1783
DtSimObjectListActivityCallbackList myAboutToBeRemovedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1679
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
std::map< DtString, std::map< DtUUID, bool > > myObjectsToRemoveByNameQueue
Definition: vrfObjectManager.h:1708
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
const DtVrfObject * myVrfObject
Definition: vrfObjectManager.h:171
DtOrbatManager * myOrbatManager
Definition: vrfObjectManager.h:1730
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtReflectedControlObjectList * myRemoteEnvironmentalsList
Definition: vrfObjectManager.h:1723
std::map< DtEntityIdentifier, DtVrfObject * > DtSimObjectMap
Definition: vrfObjectManager.h:115
DtTime myNextOrgMgrTickTime
Definition: vrfObjectManager.h:1824
class DtManagedObjectList:
Definition: managedObjectListManager.h:31
class DtReflectedExtAggregateList:
Definition: reflectedExtAggregateList.h:27
DtObjectGeometricModelsManager * myObjectModelsManager
Definition: vrfObjectManager.h:1742
Definition: simInterfaceContent.h:45
DtObjectQueuedForRemovalCallbackList myObjectQueuedForRemovalCallbackList
Definition: vrfObjectManager.h:1752
ObjectsAwaitingDiscovery myObjectsAwaitingDiscovery
Definition: vrfObjectManager.h:1794
This is the FIXED length portion of a DtIfAggregateAs message content when placed on the network...
Definition: ifAggregateAs.h:39
bool myImportingScenario
Definition: vrfObjectManager.h:1766
DtImportScenarioData myImportScenarioData
Definition: vrfObjectManager.h:1789
DtCallbackList< const DtVrfObjectNameChangedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectNameChangedCallbackFcn
Callback signature for DtVrfObjectManager::addNameChangedCallback().
Definition: vrfObjectManager.h:176
Arguments passed by the DtVrfObjectManager::addNameChangedCallback callbacks.
Definition: vrfObjectManager.h:151
DtSimManager * mySimManager
Definition: vrfObjectManager.h:1703
int myAppIdRangeMax
Definition: vrfObjectManager.h:1827
OverlayMap myOverlayMap
Definition: vrfObjectManager.h:1819
VrfObjectAboutToBePublishedCallbackList myVrfObjectAboutToBePublishedCallbackList
Definition: vrfObjectManager.h:1758
DtRemoteComponentAttachmentManager * myRemoteComponentAttachmentManager
List of components to attach to remote, non-vrf entities.
Definition: vrfObjectManager.h:1631
DtCallbackList< const DtOrganizationManagerReadyCallbackInfo & > DtOrganizationReadyCallbackList
Definition: vrfObjectManager.h:204
A DtRwActivities list will contain a list of activities (key/value pair) by entity type that will sup...
Definition: rwActivities.h:20
std::vector< DtVrfObject * > myJustAdded
Definition: vrfObjectManager.h:1791
static const DtObjectType & anyType()
bool myCreatedCharacterManager
Definition: vrfObjectManager.h:1767
std::set< DtUUID > myObjectsWithTaskVisualizations
Definition: vrfObjectManager.h:1775
std::map< DtString, std::set< const DtVrfObject * > > OverlayMap
Definition: vrfObjectManager.h:1815
DtRemoteComponentAttachmentManager * remoteComponentAttachmentManager()
Returns the remote component attachment manager.
Definition: vrfObjectManager.h:1830
DtUUID myOldUUID
Definition: vrfObjectManager.h:161
Container used in callback lists.
Definition: organizationManager.h:27
DtCallbackList< const DtVrfObjectUUIDChangedCallbackInfo & >::DtCallbackFunctionType DtVrfObjectUUIDChangedCallbackFcn
Definition: vrfObjectManager.h:177
Definition: vrfObjectManager.h:186
DtSimObjectListActivityCallbackList myAboutToBeLoadedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1664
DtSimObjectListActivityCallbackList myAddedSimObjectCallbackList
List of DtSimObjectListActivityCallbackFcn*s.
Definition: vrfObjectManager.h:1674
bool myOrderOfBattleObjectsAddedToOrbatByDefault
Definition: vrfObjectManager.h:1799
virtual void removeAndDeleteAll()
Removes and deletes all items in the list.
DtString myOldName
Definition: vrfObjectManager.h:153
DtDiGuyCharacterDataManager * myCharacterMgr
Definition: vrfObjectManager.h:1734
bool(* DtVrfObjectUserInitFcn)(DtVrfObject *vrfObject, void *usr)
User action function definition for createAndInitVrfObject()
Definition: vrfObjectManager.h:121
class DtRwStringAttributeList:
Definition: rwStringAttributeList.h:29
bool myUseDrawControlForTaskVisualizations
Definition: vrfObjectManager.h:1774
DtSimInternalCommunicationManager * mySimInternalCommunicationManager
Definition: vrfObjectManager.h:1744
DtTaskVisualizationPublicationMode
Defines how task visualizations will be published.
Definition: vrfObjectManager.h:182
class DtReflectedExtAggregateList:
Definition: reflectedExtEntityList.h:27
class DtIfCreateVrfObject:
Definition: ifCreateVrfObject.h:84
const int DtSimMaxForceTypes
The enumeration in DIS only specifies 4 types, but it goes across the network in an 8-bit field...
Definition: vrfObjectManager.h:131
Definition: reflectedVrfExtAggregateList.h:23
Definition: vrfObjectManager.h:212