41 #include <vl/commentInteraction.h>
42 #include <vl/exerciseConn.h>
43 #include <vl/hostStructs.h>
44 #include <vlpi/disEnums.h>
45 #include <vlpi/appearance.h>
46 #include <vlutil/vlHashlist.h>
72 namespace makVrfVrlinkExtToolkit
74 class DtReflectedExtendedAttributesObjectList;
90 (
const DtSimulationAddress& addr,
DtSaveResult result,
void * usr);
99 (
const DtString& name,
const DtEntityIdentifier& id,
const DtUUID& uuid,
void* usr);
105 (
const DtString& name,
const DtEntityIdentifier& id,
106 const DtUUID& uuid,
void* usr);
109 (
const DtEntityIdentifier& id,
int notifyLevel,
const DtString& message,
113 (
const DtSimulationAddress& id,
int notifyLevel,
const DtString& message,
241 virtual void setHostInetAddr(DtInetAddr);
242 virtual DtInetAddr hostInetAddr()
const;
245 virtual const DtSimulationAddress& simulationAddress()
const;
248 virtual int sessionId()
const;
253 virtual unsigned int generateRequestId()
const;
282 virtual void init(DtExerciseConn* exConn,
286 const DtString& uuidMarkingForNonVrForces =
"entity-identifier"
295 const DtString& uuidMarkingForNonVrForces =
"entity-identifier"
305 virtual void reinitialize(
327 virtual const DtList& backends()
const;
331 virtual const DtList& pendingBackends()
const;
337 virtual void addBackendDiscoveryCallback(
339 virtual void removeBackendDiscoveryCallback(
343 virtual void addBackendRemovalCallback(
345 virtual void removeBackendRemovalCallback(
351 virtual int backendsControlState()
const;
354 virtual int numberBackendsLoaded()
const;
358 virtual bool allBackendsReady()
const;
361 virtual bool backendLoaded(
const DtSimulationAddress& addr)
const;
366 const DtSimulationAddress& addr = DtSimSendToAll);
378 virtual void requestBackEndSetting(std::string name,
380 const DtSimulationAddress& addr = DtSimSendToAll);
384 virtual double simTime(
const DtSimulationAddress* a = NULL)
const;
395 virtual void setSpotReportsGloballyEnabled(
bool enabled);
399 virtual void setTDLMessagesGloballyEnabled(
bool enabled);
403 virtual void setEngagementReportsGloballyEnabled(
bool enabled);
407 virtual void setPeriodicSnapshotSettings(
bool enabled,
double period,
int numberOfSnapshotsToKeep);
411 virtual void setDRThresholds(
double translation,
double rotation);
414 virtual void setCommModelSettings(
bool useExternalComms);
417 virtual void setRoadDrivingSettings(
bool driveOnLeft);
420 virtual void setRadarCoverageAltitudeMSL(
bool);
427 virtual void setAutomaticAggregationDisaggregationEnabled(
bool enabled);
433 virtual void setPublishAggregateFormationRoutes(
bool yesNo);
436 virtual void setRotationThreshold(DtReal thresh);
439 virtual void setTranslationThreshold(DtReal thresh);
445 virtual void setAggDimensionThreshold(DtReal thresh);
449 virtual void querySpatialSubdivisionConfiguration(
450 const DtSimulationAddress& backendAddress,
455 virtual void setSpatialSubdivsionConfiguration(
456 const DtSimulationAddress& backendAddress,
458 const int spatialSubdivisionXResolution,
459 const int spatialSubdivisionYResolution,
460 const int spatialSubdivisionZResolution);
467 virtual void processSpatialSubdivisionConfigurationCb(
487 virtual bool newScenario(
488 const DtFilename& dbname,
489 const DtFilename& guidbname,
490 const DtFilename& opdname = DtFilename::nullFilename(),
491 const DtFilename& physicalWorldName = DtFilename::nullFilename(),
493 time_t startTimeOfDay = 12 * 3600,
498 virtual bool newScenario(
499 const DtFilename& dbname,
500 const DtFilename& guidbname,
501 const std::vector<DtString>& simulationModelSetFiles,
503 time_t startTimeOfDay = 12 * 3600,
512 virtual bool newScenario(
513 const DtFilename& dbname,
514 const DtFilename& guidbname,
515 const DtFilename& opdname,
516 const DtFilename& physicalWorldName,
517 const std::vector<DtString>& simulationModelSetFiles,
519 time_t startTimeOfDay = 12 * 3600,
528 virtual void createSimulationObjectGroup(
const DtSimulationAddress&,
const DtString& simulationObjectGroup,
529 const DtVector& createPosition,
double offsetRotation,
int createFlags, DtForceType force,
530 bool storedInZipFile =
false);
564 virtual bool loadScenario(
const DtFilename&
filename,
567 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
571 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
582 virtual bool loadScenario(
const DtScenario& scenario,
585 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
605 virtual bool sendLoadScenarioMessage(
607 const DtSimulationAddress& addr = DtSimSendToAll,
609 bool isOrbatEnabled =
false,
610 bool createGlobalEnv =
false,
611 bool createGlobalDynamicTerrain =
false)
const;
632 virtual bool rollbackToSnapshot(
double simTime);
636 virtual bool importScenario(
const DtScenario&,
const DtSimulationAddress& addr,
DtString* errorString = 0);
637 virtual bool importScenario(
const DtFilename&,
const DtSimulationAddress& addr,
DtString* errorString = 0);
643 virtual bool importScenarioDescriptionFile(
const DtFilename& file, DtSimulationAddress,
const DtString& format,
644 const std::map<std::string, std::string>& importData);
649 virtual void setMaxWaitLoadTime(
DtTime t);
650 virtual DtTime maxWaitLoadTime()
const;
661 virtual bool exportScenarioDescriptionFile(
const DtFilename& file, DtSimulationAddress,
const DtString& format,
662 const std::map<std::string, std::string>& importData);
667 virtual DtString guiTerrainDatabaseFilename()
const;
668 virtual void setGuiTerrainDatabaseFilename(
DtString db);
675 virtual bool isSavingScenario()
const;
693 virtual bool saveScenario(
const DtFilename& saveName,
695 bool deleteExistingZip =
true,
double simTime = -1);
703 virtual bool save(
DtString& sError);
709 virtual bool saveScenarioCheckpoint(
const DtFilename& filename,
double simTime,
bool saveToZip =
false,
DtString* saveError = 0);
713 virtual void takeSnapshot(DtSimulationAddress addr = DtSimSendToAll);
717 virtual void takeBaseSnapshot();
720 virtual void createGlobalDynamicTerrain(
bool);
723 virtual void createGlobalEnvironment(
bool);
728 virtual void sendSaveScenarioMessage(
const DtSimulationAddress& addr = DtSimSendToAll,
double simTime = -1,
729 const DtFilename& saveScenarioFilename =
"")
const;
739 virtual void addScenarioSavedCallback(
741 virtual void removeScenarioSavedCallback(
745 virtual void addScenarioAboutToBeSavedCallback(
747 virtual void removeScenarioAboutToBeSavedCallback(
751 virtual void addScenarioExportedCallback(
753 virtual void removeScenarioExportedCallback(
757 virtual void addCheckpointSavedCallback(
759 virtual void removeCheckpointSavedCallback(
765 virtual void addScenarioSavedCallback(
767 virtual void removeScenarioSavedCallback(
777 virtual void setOpdSaveName(
const DtFilename& f);
778 virtual const DtFilename& opdSaveName()
const;
783 virtual void setMaxWaitSaveTime(
DtTime t);
784 virtual DtTime maxWaitSaveTime()
const;
789 virtual void setOverlayFilename(
const DtFilename& overlay);
790 virtual const DtFilename& overlayFilename()
const;
795 virtual void setHostilityFilename(
const DtFilename& hostilty);
796 virtual const DtFilename& hostilityFilename()
const;
798 virtual void setScenarioExtrasFilename(
const DtFilename& extras);
799 virtual const DtFilename& scenarioExtrasFilename()
const;
804 virtual void setSelectionGroupsFilename(
const DtFilename& sel);
805 virtual const DtFilename& selectionGroupsFilename()
const;
810 virtual void setSymbolMapFilename(
const DtFilename& overlay);
811 virtual const DtFilename& symbolMapFilename()
const;
816 virtual void setCreateMenuFilename(
const DtFilename& overlay);
817 virtual const DtFilename& createMenuFilename()
const;
820 virtual void saveParameterDb(
const DtFilename& filename);
829 virtual bool saveSimulationObjectGroup(
const DtFilename& smsDirectory,
const DtString& groupName,
830 const DtString& groupDescription,
int creationFlags,
const DtSimulationAddress& addr,
831 const std::map<DtString, DtString>& additionalInformation = std::map<DtString, DtString>(),
832 DtString* saveError = 0,
bool saveAsZip =
false);
846 virtual void closeScenario(
const DtSimulationAddress& addr = DtSimSendToAll,
847 const DtFilename& databaseToOpen =
"",
bool forceCloseAll =
false);
850 virtual void reinitializeScenario();
862 virtual DtTime scenarioSimTimeForSave();
867 virtual void setTerrainDatabaseFilename(
DtScenario* scen);
872 virtual void setParameterDatabaseFilename(
DtScenario* scen);
877 virtual void setPhysicalWorldFilename(
DtScenario* scen);
882 virtual void setTimeMultiplier(
DtScenario* scen);
887 virtual void setAutoReorganize(
DtScenario* scen);
892 virtual void setRandomNumberSeed(
DtScenario* scen);
897 virtual void setFrameRateMode(
DtScenario* scen);
902 virtual void setFrameDeltaTime(
DtScenario* scen);
907 virtual void setExerciseStartTime(
DtScenario* scen);
912 virtual void setExerciseStartDateAndTime(
DtScenario* scen);
923 virtual void run(
bool useStartStopInteraction =
false,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
924 virtual void pause(
bool useStartStopInteraction =
false,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
927 virtual void rewind();
929 virtual void exit(
const DtSimulationAddress& addr = DtSimSendToAll)
const;
930 virtual void step()
const;
931 virtual void setTimeMultiplier(
double multiplier)
const;
948 virtual void loadedScenario(
949 const DtSimulationAddress& addr,
unsigned int requestId,
const DtU32& capabilities);
957 virtual void initializeGlobalEnvironment(
958 const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
965 virtual void initializeGlobalDynamicTerrain(
966 const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
977 virtual void processSaveMessages();
985 virtual void completeExport();
990 virtual void savedScenario(
const DtSimulationAddress& addr,
991 DtSaveResult result,
unsigned int requestId,
bool isCheckpointSave =
false,
double checkpointSimTime = -1);
995 virtual void doPendingSaveWork();
999 virtual void doPendingExportWork();
1003 virtual void doPendingLoadWork();
1030 virtual void createWaypoint(
1031 const DtVector& geocentricPosition,
1032 const DtString& uniqueName = DtString::nullString(),
1033 const DtString& label = DtString::nullString(),
1034 const DtSimulationAddress& addr = DtSimSendToAll,
1040 virtual void createWaypoint(
1042 const DtVector& geocentricPosition,
1043 const DtString& uniqueName = DtString::nullString(),
1044 const DtString& label = DtString::nullString(),
1045 const DtSimulationAddress& addr = DtSimSendToAll,
1049 virtual void modifyWaypoint(
1054 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1062 virtual void createRoute(
1063 const DtList& vertices,
1064 const DtString& uniqueName = DtString::nullString(),
1065 const DtString& label = DtString::nullString(),
1066 const DtSimulationAddress& addr = DtSimSendToAll,
1072 virtual void createRoute(
1074 const DtList& vertices,
1075 const DtString& uniqueName = DtString::nullString(),
1076 const DtString& label = DtString::nullString(),
1077 const DtSimulationAddress& addr = DtSimSendToAll,
1081 virtual void modifyRoute(
1085 DtList* vertices = 0,
1086 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1094 virtual void createPhaseLine(
1097 const DtString& uniqueName = DtString::nullString(),
1098 const DtString& label = DtString::nullString(),
1099 const DtSimulationAddress& addr = DtSimSendToAll,
1105 virtual void createPhaseLine(
1109 const DtString& uniqueName = DtString::nullString(),
1110 const DtString& label = DtString::nullString(),
1111 const DtSimulationAddress& addr = DtSimSendToAll,
1115 virtual void modifyPhaseLine(
1121 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1130 virtual void createControlArea(
1131 const DtList& vertices,
1132 const DtString& uniqueName = DtString::nullString(),
1133 const DtString& label = DtString::nullString(),
1134 const DtSimulationAddress& addr = DtSimSendToAll,
1140 virtual void createControlArea(
1142 const DtList& vertices,
1143 const DtString& uniqueName = DtString::nullString(),
1144 const DtString& label = DtString::nullString(),
1145 const DtSimulationAddress& addr = DtSimSendToAll,
1149 virtual void modifyControlArea(
1153 DtList* newVertices = 0,
1154 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1163 virtual void createObstacle(
1164 const DtList& vertices,
1165 const DtString& uniqueName = DtString::nullString(),
1166 const DtString& label = DtString::nullString(),
1167 const DtSimulationAddress& addr = DtSimSendToAll,
1173 virtual void createObstacle(
1175 const DtList& vertices,
1176 const DtString& uniqueName = DtString::nullString(),
1177 const DtString& label = DtString::nullString(),
1178 const DtSimulationAddress& addr = DtSimSendToAll,
1182 virtual void modifyObstacle(
1186 DtList* newVertices = 0,
1187 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1197 virtual void createDisaggregationArea(
1198 const DtList& vertices,
1199 const DtString& uniqueName = DtString::nullString(),
1200 const DtString& label = DtString::nullString(),
1201 const DtSimulationAddress& addr = DtSimSendToAll,
1208 virtual void createDisaggregationArea(
1210 const DtList& vertices,
1211 const DtString& uniqueName = DtString::nullString(),
1212 const DtString& label = DtString::nullString(),
1213 const DtSimulationAddress& addr = DtSimSendToAll,
1217 virtual void modifyDisaggregationArea(
1221 DtList* newVertices = 0,
1222 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1238 virtual void createOverlayObject(
1239 const DtEntityType& type,
1240 const DtList& vertices,
1241 const DtForceType& force,
1248 const DtAppearance& appearance = DtAppearance::nullAppearance(),
1252 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1253 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1255 const DtSimulationAddress& addr = DtSimSendToAll,
1256 unsigned int rId = 0,
1257 std::list<DtAdminContent*>* initialAdminContent = 0,
1258 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1264 virtual void processOverlayObjectCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
1268 virtual void setPhysicalLineWidth(
const DtSimulationAddress& addr,
1269 const DtUUID& entityId,
double w);
1272 virtual void setPhysicalLineHeight(
const DtSimulationAddress& addr,
1273 const DtUUID& entityId,
double h);
1276 virtual void setCeiling(
const DtSimulationAddress& addr,
1277 const DtUUID& entityId,
double c);
1282 virtual void sendVrfOverlayObjectModifyMsg(
1283 const DtSimulationAddress& addr,
1288 bool keepExistingAttachment =
true,
1295 virtual void createIndirectArtillery(
1297 const DtSimulationAddress& addr);
1302 virtual void processIndirectArtilleryObjectCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
1305 virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1306 const DtSimulationAddress& addr,
1320 virtual void createObject(
1321 const DtEntityType& type,
1325 const DtSimulationAddress& addr,
1331 virtual void objectCreated(
unsigned int requestId,
1332 const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid);
1335 virtual void deleteObject(
const DtUUID& uuid,
1336 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1339 virtual void createEntity(
1340 const DtEntityType& type,
1341 const DtVector& geocentricPosition,
1344 const DtString& uniqueName = DtString::nullString(),
1345 const DtString& label = DtString::nullString(),
1346 const DtSimulationAddress& addr = DtSimSendToAll,
1347 bool groundClamp =
true,
1353 virtual void createEntity(
1355 const DtEntityType& type,
1356 const DtVector& geocentricPosition,
1359 const DtString& uniqueName = DtString::nullString(),
1360 const DtString& label = DtString::nullString(),
1361 const DtSimulationAddress& addr = DtSimSendToAll,
1362 bool groundClamp =
true,
1365 virtual void createAggregate(
1367 const DtEntityType& type,
1368 const DtVector& geocentricPosition,
1372 const DtString& label = DtString::nullString(),
1373 const DtSimulationAddress& addr = DtSimSendToAll,
1374 DtAggregateState initialAggregateState = DtDisaggregated,
1376 bool createSubordinates =
false);
1379 virtual void createAggregate(
1380 const DtEntityType& type,
1381 const DtVector& geocentricPosition,
1384 DtList* entityNames = 0,
1385 const DtSimulationAddress& addr = DtSimSendToAll,
1386 DtAggregateState initialAggregateState = DtDisaggregated,
1387 unsigned int requestId = 0,
1393 virtual void createAggregate(
1395 const DtEntityType& type,
1396 const DtVector& geocentricPosition,
1399 DtList* entityNames = 0,
1400 const DtSimulationAddress& addr = DtSimSendToAll,
1401 DtAggregateState initialAggregateState = DtDisaggregated,
1406 virtual void addToOrganization(
1408 const DtUUID& newSuperiorId,
1409 const DtSimulationAddress& addr = DtSimSendToAll);
1414 virtual void addToForceLevelOrganization(
1416 const DtSimulationAddress& addr = DtSimSendToAll);
1420 virtual void removeFromOrganization(
1422 const DtSimulationAddress& addr = DtSimSendToAll);
1427 virtual void setLabel(
1429 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1435 virtual void setOverlayParent(
1437 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1442 virtual void setAltitude(
1443 const DtUUID& uuid,
double altitude,
bool aboveGroundLevel =
false,
1444 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1449 virtual void setLocation(
1451 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1454 virtual void setAppearance(
1455 const DtUUID& uuid,
int appearance,
1456 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1459 virtual void setCapabilities(
1460 const DtUUID& uuid,
int capabilities,
1461 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1466 virtual void setHeading(
1467 const DtUUID& uuid,
double degrees,
1468 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1473 virtual void setForce(
1474 const DtUUID& uuid, DtForceType force,
1475 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1482 virtual void requestSpotReports(
const DtUUID& uuid,
int onOff,
1483 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1488 virtual void requestSendTDLMessages(
const DtUUID& uuid,
int onOff,
1489 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1496 virtual void requestEngagementReports(
const DtUUID& uuid,
bool onOff,
1497 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1502 virtual void setResource(
const DtUUID& uuid,
1503 const char* resourceType,
double value,
1504 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1511 virtual void setRulesOfEngagement(
1512 const DtUUID& uuid,
const char* rulesType,
1513 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1519 virtual void setSectorOfResponsibility(
1520 const DtUUID& uuid,
double center,
double size,
1521 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1526 virtual void setSpeed(
1527 const DtUUID& uuid,
double speed,
1528 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1533 virtual void setCurrentSpeed(
1534 const DtUUID& uuid,
double speed,
1535 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1540 virtual void setTarget(
1542 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1547 virtual void setSuperior(
1549 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1552 virtual void setTaskedBySuperior(
const DtUUID& uuid,
1553 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1558 virtual void setConcealed(
const DtUUID& uuid,
1559 bool yes,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
1562 virtual void setEmitter(
const DtUUID& uuid,
1563 int emitterId,
bool on,
1564 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1567 virtual void setIff(
const DtUUID& uuid,
1568 bool mode1on,
int mode1code,
1569 bool mode2on,
int mode2code,
1570 bool mode3on,
int mode3code,
1571 bool mode4on,
int mode4code,
1572 DtIffAtcNavaidsAltParm4 altParm4,
1573 bool modeCon,
bool useAltModeC,
1574 bool modeSon,
bool emergency,
1575 bool flash,
bool sti,
bool modeSTcasI,
1576 int pin,
bool mode5LevelSelection,
1577 unsigned int messageFormatsPresent,
unsigned int nationalOrigin,
1578 unsigned int navigationSource,
unsigned int figureOfMerit,
1579 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1582 virtual void restore(
const DtUUID& uuid,
1583 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1588 virtual void setDestroyed(
const DtUUID& uuid,
1589 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1594 virtual void setLifeformWeaponState(
1595 const DtUUID& uuid, DtWeaponState weapon,
1596 const DtSimulationAddress& addr)
const;
1601 virtual void setLifeformPosture(
1602 const DtUUID& uuid, DtLifeformState posture,
1603 const DtSimulationAddress& addr)
const;
1607 virtual void setAggregateFormation(
1609 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1614 virtual void reorganizeAggregate(
const DtUUID& leader,
1615 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1620 virtual void disaggregateEntity(
const DtUUID& entity,
1621 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1626 virtual void aggregateEntity(
const DtUUID& entity,
1627 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1631 virtual void sendSetDataMsg(
1633 const DtSimulationAddress& addr)
const;
1647 virtual void sendVrfObjectCreateMsg(
1648 const DtSimulationAddress& addr,
1649 unsigned int requestId,
1652 const DtList& vertices,
1654 const DtAppearance& appearance,
1659 bool createSubObjects,
1660 bool clampToGroundFlag =
true,
1661 const DtString& initialFormation = DtString::nullString(),
1662 DtAggregateState initialAggregateState = DtDisaggregated,
1663 const DtString& userData = DtString::nullString(),
1664 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1665 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1666 std::list<DtAdminContent*>* initialAdminContent = 0,
1667 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1668 const DtString& overlayParent =
"",
1677 virtual void sendVrfObjectModifyMsg(
1678 const DtSimulationAddress& addr,
1681 DtList* vertices = 0,
1682 DtForceType* force = 0,
1683 DtReal* heading = 0,
1685 DtAppearance* appearance = 0,
1701 virtual void sendTaskMsg(
1703 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1707 virtual void moveAlongRoute(
1709 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1713 virtual void moveToWaypoint(
1715 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1720 virtual void moveToLocation(
1722 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1726 virtual void patrolBetweenWaypoints(
1729 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1733 virtual void patrolAlongRoute(
1735 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1742 virtual void followEntity(
1745 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1751 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1755 virtual void waitDuration(
1757 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1761 virtual void waitElapsed(
1763 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1766 virtual void skipTask(
const DtUUID& uuid,
1767 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1779 virtual void restartPlan(
const DtUUID& uuid,
1780 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1789 virtual void assignPlanByName(
1791 const DtSimulationAddress& addr = DtSimSendToAll,
1792 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1795 virtual void assignMultiplePlanByName(
1796 const std::vector<DtUUID>& entities,
const DtPlan& plan,
1797 const DtSimulationAddress& addr = DtSimSendToAll,
1798 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1804 virtual void requestPlan(
1806 bool addStmtCallback =
true,
1807 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1813 virtual void subscribePlan(
const DtUUID& uuid,
1815 const DtSimulationAddress& addr = DtSimSendToAll);
1820 virtual void receivedPlan(
const DtUUID& uuid,
bool isGlobal,
1821 const std::vector<DtSimStatement*>& statements);
1828 virtual void requestMultiplePlan(
const std::vector<DtUUID>& entities,
1830 const DtSimulationAddress& addr = DtSimSendToAll);
1832 virtual void requestMultiplePlan(
const std::vector<DtUUID>& entities,
1833 const DtSimulationAddress& addr = DtSimSendToAll);
1842 virtual void unsubscribePlan(
const DtUUID& uuid,
1847 virtual void unsubscribeAllPlans();
1853 virtual void addPlanStatementCallback(
const DtUUID& uuid,
1858 virtual void removePlanStatementCallback(
const DtUUID& uuid,
1863 virtual void removeAllPlanStatementCallbacks();
1870 virtual void receivedPlanStmt(
const DtUUID& uuid,
bool isGlobal,
1877 virtual void addPlanCompleteCallback(
const DtUUID& uuid,
1882 virtual void removePlanCompleteCallback(
const DtUUID& uuid,
1887 virtual void removeAllPlanCompleteCallbacks();
1891 virtual void abandonPlan(
const DtUUID& uuid,
1892 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1901 virtual void requestGlobalPlansList(
const DtSimulationAddress& addr);
1910 virtual void assignGlobalPlan(
1912 const DtSimulationAddress& addr = DtSimSendToAll,
1913 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1916 virtual void deleteGlobalPlan(
const DtUUID& name,
1917 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1920 virtual void launchGlobalPlan(
const DtUUID&,
const DtSimulationAddress& addr)
const;
1941 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1965 virtual void embarkObject(
const DtSimulationAddress& addr,
const DtUUID& entity,
const DtUUID& ontoEntity,
1966 bool loadOverride =
false,
const DtVector& loadOverridePosition = DtVector::zero());
1968 virtual void disembarkObject(
const DtSimulationAddress& addr,
const DtUUID& entity);
1969 virtual void disembarkAllObjects(
const DtSimulationAddress& addr,
const DtUUID& entity);
1973 virtual void requestTasksAndSetsFor(
const DtSimulationAddress& addr,
1974 const DtUUID& entityName);
1977 virtual void requestTasksAndSetsFor(
const std::vector<DtUUID>& names);
1981 virtual void requestDIGuyAppearancesAndAnimations(
const DtSimulationAddress& addr,
1982 const DtUUID& entityName);
1985 virtual void requestDIGuyAppearancesAndAnimations(
const std::vector<DtUUID>& names);
1988 virtual void requestIndirectArtilleryInformation(
const DtUUID&);
1994 virtual void requestResourceNames(
const std::vector<DtUUID>& list,
2005 const std::list<DtString>* list = 0,
2024 virtual void addObjectConsoleMessageCallback(
2026 virtual void removeObjectConsoleMessageCallback(
2031 virtual void setObjectNotifyLevel(
const DtUUID& objectName,
2032 DtNotifyLevelType notifyLevel,
const DtSimulationAddress& addr = DtSimSendToAll);
2037 virtual void logObjectConsoleToFile(
const DtUUID& objectName,
2038 const DtFilename filename);
2042 virtual void stopLoggingObjectConsoleToFile(
const DtUUID& objectName);
2046 virtual void addBackendConsoleMessageCallback(
2048 virtual void removeBackendConsoleMessageCallback(
2053 virtual void processCommentInteraction(DtCommentInteraction* inter);
2065 const DtSimulationAddress& addr = DtSimSendToAll);
2069 virtual void takeControlOf(
const DtUUID&,
const std::set<DtString>& functionGroups,
2070 const DtSimulationAddress& addr = DtSimSendToAll);
2074 virtual void releaseControlOf(
const DtUUID&,
const std::set<DtString>& functionGroups =
2075 std::set<DtString>(),
const DtSimulationAddress& addr = DtSimSendToAll);
2079 virtual void sendJoystickControl(
const DtUUID&,
const DtString& functionGroup,
2080 const DtString&
function,
double value,
bool repeat =
false,
const DtSimulationAddress& addr = DtSimSendToAll);
2107 static void doPendingSaveWorkCb(
void* usr);
2111 static void doPendingExportWorkCb(
void* usr);
2115 static void doPendingLoadWorkCb(
void* usr);
2119 static void savedScenarioCb(
DtSimMessage* msg,
void* usr);
2123 static void exportScenarioCb(
DtSimMessage* msg,
void* usr);
2127 static void loadedScenarioCb(
DtSimMessage* msg,
void* usr);
2131 static void receiveFileCb(
const DtFilename& filename,
void* usr);
2134 static void receivedMultiPlanCb(
DtSimMessage* msg,
void* usr);
2137 static void objectCreatedCb(
DtSimMessage* msg,
void* usr);
2140 static void receivedPlanCb(
DtSimMessage* msg,
void* usr);
2143 static void receivedPlanStmtCb(
DtSimMessage* msg,
void* usr);
2147 static void overlayObjectCreatedCallback(
const DtString& name,
const DtEntityIdentifier&
id,
2148 const DtUUID& uuid,
void* usr);
2152 static void indirectArtilleryObjectCreatedCallback(
const DtString& name,
const DtEntityIdentifier&
id,
2153 const DtUUID& uuid,
void* usr);
2156 static void resourcesProcessedCb(
DtSimMessage* msg,
void* usr);
2160 static void spatialSubdivisionConfigurationCb(
DtSimMessage* msg,
void* usr);
2164 static void commentInteractionCallback(DtCommentInteraction *inter,
void* usr);
2172 static void joystickControlResponse(
DtSimMessage* msg,
void* usr);
2173 virtual void processJoystickControlResponse(
DtSimMessage* msg);
2178 virtual void onInit();
2179 virtual void resetStateData();
2180 virtual void emptyLists();
2183 virtual void sendAggregateAsMsg(
2184 const DtSimulationAddress& addr,
2185 unsigned int requestId,
2190 DtList* entityNames,
2191 DtAggregateState initialAggregateState,
2202 virtual void sendQuerySpatialSubdivisionConfigurationRequest(
2203 const DtSimulationAddress& backendAddress,
2213 virtual bool arbitrarySimAddress(DtSimulationAddress& address)
const;
2222 virtual bool addStatementsAndSendPlan(
const DtPlan& plan,
DtIfPlan& planMsg,
2223 const DtSimulationAddress& addr = DtSimSendToAll,
2224 int *retiStatus = 0,
DtString* retsStmt = 0)
const;
2228 static void deliverRadioMessageCallback(
DtSimMessage* msg,
void* usr);
2236 static void globalEnvironmentCreatedCb(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
void* usr);
2237 virtual void processGlobalEnvironmentCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid);
2240 static void backendStatusUpdate(
const DtSimulationAddress&,
void*);
2241 virtual void processBackendStatusUpdate(
const DtSimulationAddress&);
2277 typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
2281 typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
2417 virtual int color()
const;
2418 virtual const DtUUID& attachTo()
const;
2419 virtual void userData(
char** data,
int* userDataSize);