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>
71 namespace makVrfVrlinkExtToolkit
73 class DtReflectedExtendedAttributesObjectList;
89 (
const DtSimulationAddress& addr,
DtSaveResult result,
void * usr);
98 (
const DtString& name,
const DtEntityIdentifier& id,
const DtUUID& uuid,
void* usr);
104 (
const DtString& name,
const DtEntityIdentifier& id,
105 const DtUUID& uuid,
void* usr);
108 (
const DtEntityIdentifier& id,
int notifyLevel,
const DtString& message,
112 (
const DtSimulationAddress& id,
int notifyLevel,
const DtString& message,
240 virtual void setHostInetAddr(DtInetAddr);
241 virtual DtInetAddr hostInetAddr()
const;
244 virtual const DtSimulationAddress& simulationAddress()
const;
247 virtual int sessionId()
const;
252 virtual unsigned int generateRequestId()
const;
281 virtual void init(DtExerciseConn* exConn,
285 const DtString& uuidMarkingForNonVrForces =
"entity-identifier"
294 const DtString& uuidMarkingForNonVrForces =
"entity-identifier"
304 virtual void reinitialize(
326 virtual const DtList& backends()
const;
330 virtual const DtList& pendingBackends()
const;
336 virtual void addBackendDiscoveryCallback(
338 virtual void removeBackendDiscoveryCallback(
342 virtual void addBackendRemovalCallback(
344 virtual void removeBackendRemovalCallback(
350 virtual int backendsControlState()
const;
353 virtual int numberBackendsLoaded()
const;
357 virtual bool allBackendsReady()
const;
360 virtual bool backendLoaded(
const DtSimulationAddress& addr)
const;
365 const DtSimulationAddress& addr = DtSimSendToAll);
377 virtual void requestBackEndSetting(std::string name,
379 const DtSimulationAddress& addr = DtSimSendToAll);
383 virtual double simTime(
const DtSimulationAddress* a = NULL)
const;
394 virtual void setSpotReportsGloballyEnabled(
bool enabled);
398 virtual void setTDLMessagesGloballyEnabled(
bool enabled);
402 virtual void setEngagementReportsGloballyEnabled(
bool enabled);
406 virtual void setPeriodicSnapshotSettings(
bool enabled,
double period,
int numberOfSnapshotsToKeep);
410 virtual void setDRThresholds(
double translation,
double rotation);
413 virtual void setCommModelSettings(
bool useExternalComms);
416 virtual void setRoadDrivingSettings(
bool driveOnLeft);
420 virtual void setAutomaticAggregationDisaggregationEnabled(
bool enabled);
426 virtual void setPublishAggregateFormationRoutes(
bool yesNo);
429 virtual void setRotationThreshold(DtReal thresh);
432 virtual void setTranslationThreshold(DtReal thresh);
438 virtual void setAggDimensionThreshold(DtReal thresh);
442 virtual void querySpatialSubdivisionConfiguration(
443 const DtSimulationAddress& backendAddress,
448 virtual void setSpatialSubdivsionConfiguration(
449 const DtSimulationAddress& backendAddress,
451 const int spatialSubdivisionXResolution,
452 const int spatialSubdivisionYResolution,
453 const int spatialSubdivisionZResolution);
460 virtual void processSpatialSubdivisionConfigurationCb(
480 virtual bool newScenario(
481 const DtFilename& dbname,
482 const DtFilename& guidbname,
483 const DtFilename& opdname = DtFilename::nullFilename(),
484 const DtFilename& physicalWorldName = DtFilename::nullFilename(),
486 time_t startTimeOfDay = 12 * 3600,
491 virtual bool newScenario(
492 const DtFilename& dbname,
493 const DtFilename& guidbname,
494 const std::vector<DtString>& simulationModelSetFiles,
496 time_t startTimeOfDay = 12 * 3600,
505 virtual bool newScenario(
506 const DtFilename& dbname,
507 const DtFilename& guidbname,
508 const DtFilename& opdname,
509 const DtFilename& physicalWorldName,
510 const std::vector<DtString>& simulationModelSetFiles,
512 time_t startTimeOfDay = 12 * 3600,
521 virtual void createSimulationObjectGroup(
const DtSimulationAddress&,
const DtString& simulationObjectGroup,
522 const DtVector& createPosition,
double offsetRotation,
int createFlags, DtForceType force,
523 bool storedInZipFile =
false);
557 virtual bool loadScenario(
const DtFilename&
filename,
560 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
564 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
575 virtual bool loadScenario(
const DtScenario& scenario,
578 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
598 virtual bool sendLoadScenarioMessage(
600 const DtSimulationAddress& addr = DtSimSendToAll,
602 bool isOrbatEnabled =
false,
603 bool createGlobalEnv =
false,
604 bool createGlobalDynamicTerrain =
false)
const;
625 virtual bool rollbackToSnapshot(
double simTime);
629 virtual bool importScenario(
const DtScenario&,
const DtSimulationAddress& addr,
DtString* errorString = 0);
630 virtual bool importScenario(
const DtFilename&,
const DtSimulationAddress& addr,
DtString* errorString = 0);
636 virtual bool importScenarioDescriptionFile(
const DtFilename& file, DtSimulationAddress,
const DtString& format,
637 const std::map<std::string, std::string>& importData);
642 virtual void setMaxWaitLoadTime(
DtTime t);
643 virtual DtTime maxWaitLoadTime()
const;
654 virtual bool exportScenarioDescriptionFile(
const DtFilename& file, DtSimulationAddress,
const DtString& format,
655 const std::map<std::string, std::string>& importData);
660 virtual DtString guiTerrainDatabaseFilename()
const;
661 virtual void setGuiTerrainDatabaseFilename(
DtString db);
668 virtual bool isSavingScenario()
const;
686 virtual bool saveScenario(
const DtFilename& saveName,
688 bool deleteExistingZip =
true,
double simTime = -1);
696 virtual bool save(
DtString& sError);
702 virtual bool saveScenarioCheckpoint(
const DtFilename& filename,
double simTime,
bool saveToZip =
false,
DtString* saveError = 0);
706 virtual void takeSnapshot(DtSimulationAddress addr = DtSimSendToAll);
710 virtual void takeBaseSnapshot();
713 virtual void createGlobalDynamicTerrain(
bool);
716 virtual void createGlobalEnvironment(
bool);
721 virtual void sendSaveScenarioMessage(
const DtSimulationAddress& addr = DtSimSendToAll,
double simTime = -1,
722 const DtFilename& saveScenarioFilename =
"")
const;
732 virtual void addScenarioSavedCallback(
734 virtual void removeScenarioSavedCallback(
738 virtual void addScenarioAboutToBeSavedCallback(
740 virtual void removeScenarioAboutToBeSavedCallback(
744 virtual void addScenarioExportedCallback(
746 virtual void removeScenarioExportedCallback(
750 virtual void addCheckpointSavedCallback(
752 virtual void removeCheckpointSavedCallback(
758 virtual void addScenarioSavedCallback(
760 virtual void removeScenarioSavedCallback(
770 virtual void setOpdSaveName(
const DtFilename& f);
771 virtual const DtFilename& opdSaveName()
const;
776 virtual void setMaxWaitSaveTime(
DtTime t);
777 virtual DtTime maxWaitSaveTime()
const;
782 virtual void setOverlayFilename(
const DtFilename& overlay);
783 virtual const DtFilename& overlayFilename()
const;
788 virtual void setHostilityFilename(
const DtFilename& hostilty);
789 virtual const DtFilename& hostilityFilename()
const;
791 virtual void setScenarioExtrasFilename(
const DtFilename& extras);
792 virtual const DtFilename& scenarioExtrasFilename()
const;
797 virtual void setSelectionGroupsFilename(
const DtFilename& sel);
798 virtual const DtFilename& selectionGroupsFilename()
const;
803 virtual void setSymbolMapFilename(
const DtFilename& overlay);
804 virtual const DtFilename& symbolMapFilename()
const;
809 virtual void setCreateMenuFilename(
const DtFilename& overlay);
810 virtual const DtFilename& createMenuFilename()
const;
813 virtual void saveParameterDb(
const DtFilename& filename);
822 virtual bool saveSimulationObjectGroup(
const DtFilename& smsDirectory,
const DtString& groupName,
823 const DtString& groupDescription,
int creationFlags,
const DtSimulationAddress& addr,
824 const std::map<DtString, DtString>& additionalInformation = std::map<DtString, DtString>(),
825 DtString* saveError = 0,
bool saveAsZip =
false);
839 virtual void closeScenario(
const DtSimulationAddress& addr = DtSimSendToAll,
840 const DtFilename& databaseToOpen =
"",
bool forceCloseAll =
false);
852 virtual DtTime scenarioSimTimeForSave();
857 virtual void setTerrainDatabaseFilename(
DtScenario* scen);
862 virtual void setParameterDatabaseFilename(
DtScenario* scen);
867 virtual void setPhysicalWorldFilename(
DtScenario* scen);
872 virtual void setTimeMultiplier(
DtScenario* scen);
877 virtual void setAutoReorganize(
DtScenario* scen);
882 virtual void setRandomNumberSeed(
DtScenario* scen);
887 virtual void setFrameRateMode(
DtScenario* scen);
892 virtual void setFrameDeltaTime(
DtScenario* scen);
897 virtual void setExerciseStartTime(
DtScenario* scen);
902 virtual void setExerciseStartDateAndTime(
DtScenario* scen);
913 virtual void run(
bool useStartStopInteraction =
false,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
914 virtual void pause(
bool useStartStopInteraction =
false,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
917 virtual void rewind();
919 virtual void exit()
const;
920 virtual void step()
const;
921 virtual void setTimeMultiplier(
double multiplier)
const;
938 virtual void loadedScenario(
939 const DtSimulationAddress& addr,
unsigned int requestId,
const DtU32& capabilities);
947 virtual void initializeGlobalEnvironment(
948 const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
955 virtual void initializeGlobalDynamicTerrain(
956 const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
967 virtual void processSaveMessages();
975 virtual void completeExport();
980 virtual void savedScenario(
const DtSimulationAddress& addr,
981 DtSaveResult result,
unsigned int requestId,
bool isCheckpointSave =
false,
double checkpointSimTime = -1);
985 virtual void doPendingSaveWork();
989 virtual void doPendingExportWork();
993 virtual void doPendingLoadWork();
1020 virtual void createWaypoint(
1021 const DtVector& geocentricPosition,
1022 const DtString& uniqueName = DtString::nullString(),
1023 const DtString& label = DtString::nullString(),
1024 const DtSimulationAddress& addr = DtSimSendToAll,
1030 virtual void createWaypoint(
1032 const DtVector& geocentricPosition,
1033 const DtString& uniqueName = DtString::nullString(),
1034 const DtString& label = DtString::nullString(),
1035 const DtSimulationAddress& addr = DtSimSendToAll,
1039 virtual void modifyWaypoint(
1044 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1052 virtual void createRoute(
1053 const DtList& vertices,
1054 const DtString& uniqueName = DtString::nullString(),
1055 const DtString& label = DtString::nullString(),
1056 const DtSimulationAddress& addr = DtSimSendToAll,
1062 virtual void createRoute(
1064 const DtList& vertices,
1065 const DtString& uniqueName = DtString::nullString(),
1066 const DtString& label = DtString::nullString(),
1067 const DtSimulationAddress& addr = DtSimSendToAll,
1071 virtual void modifyRoute(
1075 DtList* vertices = 0,
1076 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1084 virtual void createPhaseLine(
1087 const DtString& uniqueName = DtString::nullString(),
1088 const DtString& label = DtString::nullString(),
1089 const DtSimulationAddress& addr = DtSimSendToAll,
1095 virtual void createPhaseLine(
1099 const DtString& uniqueName = DtString::nullString(),
1100 const DtString& label = DtString::nullString(),
1101 const DtSimulationAddress& addr = DtSimSendToAll,
1105 virtual void modifyPhaseLine(
1111 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1120 virtual void createControlArea(
1121 const DtList& vertices,
1122 const DtString& uniqueName = DtString::nullString(),
1123 const DtString& label = DtString::nullString(),
1124 const DtSimulationAddress& addr = DtSimSendToAll,
1130 virtual void createControlArea(
1132 const DtList& vertices,
1133 const DtString& uniqueName = DtString::nullString(),
1134 const DtString& label = DtString::nullString(),
1135 const DtSimulationAddress& addr = DtSimSendToAll,
1139 virtual void modifyControlArea(
1143 DtList* newVertices = 0,
1144 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1153 virtual void createObstacle(
1154 const DtList& vertices,
1155 const DtString& uniqueName = DtString::nullString(),
1156 const DtString& label = DtString::nullString(),
1157 const DtSimulationAddress& addr = DtSimSendToAll,
1163 virtual void createObstacle(
1165 const DtList& vertices,
1166 const DtString& uniqueName = DtString::nullString(),
1167 const DtString& label = DtString::nullString(),
1168 const DtSimulationAddress& addr = DtSimSendToAll,
1172 virtual void modifyObstacle(
1176 DtList* newVertices = 0,
1177 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1187 virtual void createDisaggregationArea(
1188 const DtList& vertices,
1189 const DtString& uniqueName = DtString::nullString(),
1190 const DtString& label = DtString::nullString(),
1191 const DtSimulationAddress& addr = DtSimSendToAll,
1198 virtual void createDisaggregationArea(
1200 const DtList& vertices,
1201 const DtString& uniqueName = DtString::nullString(),
1202 const DtString& label = DtString::nullString(),
1203 const DtSimulationAddress& addr = DtSimSendToAll,
1207 virtual void modifyDisaggregationArea(
1211 DtList* newVertices = 0,
1212 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1228 virtual void createOverlayObject(
1229 const DtEntityType& type,
1230 const DtList& vertices,
1231 const DtForceType& force,
1238 const DtAppearance& appearance = DtAppearance::nullAppearance(),
1242 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1243 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1245 const DtSimulationAddress& addr = DtSimSendToAll,
1246 unsigned int rId = 0,
1247 std::list<DtAdminContent*>* initialAdminContent = 0,
1248 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1254 virtual void processOverlayObjectCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
1258 virtual void setPhysicalLineWidth(
const DtSimulationAddress& addr,
1259 const DtUUID& entityId,
double w);
1262 virtual void setPhysicalLineHeight(
const DtSimulationAddress& addr,
1263 const DtUUID& entityId,
double h);
1266 virtual void setCeiling(
const DtSimulationAddress& addr,
1267 const DtUUID& entityId,
double c);
1272 virtual void sendVrfOverlayObjectModifyMsg(
1273 const DtSimulationAddress& addr,
1278 bool keepExistingAttachment =
true,
1285 virtual void createIndirectArtillery(
1287 const DtSimulationAddress& addr);
1292 virtual void processIndirectArtilleryObjectCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
1295 virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1296 const DtSimulationAddress& addr,
1310 virtual void createObject(
1311 const DtEntityType& type,
1315 const DtSimulationAddress& addr,
1321 virtual void objectCreated(
unsigned int requestId,
1322 const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid);
1325 virtual void deleteObject(
const DtUUID& uuid,
1326 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1329 virtual void createEntity(
1330 const DtEntityType& type,
1331 const DtVector& geocentricPosition,
1334 const DtString& uniqueName = DtString::nullString(),
1335 const DtString& label = DtString::nullString(),
1336 const DtSimulationAddress& addr = DtSimSendToAll,
1337 bool groundClamp =
true,
1343 virtual void createEntity(
1345 const DtEntityType& type,
1346 const DtVector& geocentricPosition,
1349 const DtString& uniqueName = DtString::nullString(),
1350 const DtString& label = DtString::nullString(),
1351 const DtSimulationAddress& addr = DtSimSendToAll,
1352 bool groundClamp =
true,
1355 virtual void createAggregate(
1357 const DtEntityType& type,
1358 const DtVector& geocentricPosition,
1362 const DtString& label = DtString::nullString(),
1363 const DtSimulationAddress& addr = DtSimSendToAll,
1364 DtAggregateState initialAggregateState = DtDisaggregated,
1368 virtual void createAggregate(
1369 const DtEntityType& type,
1370 const DtVector& geocentricPosition,
1373 DtList* entityNames = 0,
1374 const DtSimulationAddress& addr = DtSimSendToAll,
1375 DtAggregateState initialAggregateState = DtDisaggregated,
1376 unsigned int requestId = 0,
1382 virtual void createAggregate(
1384 const DtEntityType& type,
1385 const DtVector& geocentricPosition,
1388 DtList* entityNames = 0,
1389 const DtSimulationAddress& addr = DtSimSendToAll,
1390 DtAggregateState initialAggregateState = DtDisaggregated,
1395 virtual void addToOrganization(
1397 const DtUUID& newSuperiorId,
1398 const DtSimulationAddress& addr = DtSimSendToAll);
1403 virtual void addToForceLevelOrganization(
1405 const DtSimulationAddress& addr = DtSimSendToAll);
1409 virtual void removeFromOrganization(
1411 const DtSimulationAddress& addr = DtSimSendToAll);
1416 virtual void setLabel(
1418 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1424 virtual void setOverlayParent(
1426 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1431 virtual void setAltitude(
1432 const DtUUID& uuid,
double altitude,
bool aboveGroundLevel =
false,
1433 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1438 virtual void setLocation(
1440 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1443 virtual void setAppearance(
1444 const DtUUID& uuid,
int appearance,
1445 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1448 virtual void setCapabilities(
1449 const DtUUID& uuid,
int capabilities,
1450 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1455 virtual void setHeading(
1456 const DtUUID& uuid,
double degrees,
1457 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1462 virtual void setForce(
1463 const DtUUID& uuid, DtForceType force,
1464 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1471 virtual void requestSpotReports(
const DtUUID& uuid,
int onOff,
1472 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1477 virtual void requestSendTDLMessages(
const DtUUID& uuid,
int onOff,
1478 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1485 virtual void requestEngagementReports(
const DtUUID& uuid,
bool onOff,
1486 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1491 virtual void setResource(
const DtUUID& uuid,
1492 const char* resourceType,
double value,
1493 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1500 virtual void setRulesOfEngagement(
1501 const DtUUID& uuid,
const char* rulesType,
1502 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1508 virtual void setSectorOfResponsibility(
1509 const DtUUID& uuid,
double center,
double size,
1510 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1515 virtual void setSpeed(
1516 const DtUUID& uuid,
double speed,
1517 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1522 virtual void setCurrentSpeed(
1523 const DtUUID& uuid,
double speed,
1524 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1529 virtual void setTarget(
1531 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1536 virtual void setSuperior(
1538 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1541 virtual void setTaskedBySuperior(
const DtUUID& uuid,
1542 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1547 virtual void setConcealed(
const DtUUID& uuid,
1548 bool yes,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
1551 virtual void setEmitter(
const DtUUID& uuid,
1552 int emitterId,
bool on,
1553 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1556 virtual void setIff(
const DtUUID& uuid,
1557 bool mode1on,
int mode1code,
1558 bool mode2on,
int mode2code,
1559 bool mode3on,
int mode3code,
1560 bool mode4on,
int mode4code,
1561 DtIffAtcNavaidsAltParm4 altParm4,
1562 bool modeCon,
bool useAltModeC,
1563 bool modeSon,
bool emergency,
1564 bool flash,
bool sti,
bool modeSTcasI,
1565 int pin,
bool mode5LevelSelection,
1566 unsigned int messageFormatsPresent,
unsigned int nationalOrigin,
1567 unsigned int navigationSource,
unsigned int figureOfMerit,
1568 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1571 virtual void restore(
const DtUUID& uuid,
1572 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1577 virtual void setDestroyed(
const DtUUID& uuid,
1578 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1583 virtual void setLifeformWeaponState(
1584 const DtUUID& uuid, DtWeaponState weapon,
1585 const DtSimulationAddress& addr)
const;
1590 virtual void setLifeformPosture(
1591 const DtUUID& uuid, DtLifeformState posture,
1592 const DtSimulationAddress& addr)
const;
1596 virtual void setAggregateFormation(
1598 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1603 virtual void reorganizeAggregate(
const DtUUID& leader,
1604 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1609 virtual void disaggregateEntity(
const DtUUID& entity,
1610 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1615 virtual void aggregateEntity(
const DtUUID& entity,
1616 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1620 virtual void sendSetDataMsg(
1622 const DtSimulationAddress& addr)
const;
1636 virtual void sendVrfObjectCreateMsg(
1637 const DtSimulationAddress& addr,
1638 unsigned int requestId,
1641 const DtList& vertices,
1643 const DtAppearance& appearance,
1648 bool createSubObjects,
1649 bool clampToGroundFlag =
true,
1650 const DtString& initialFormation = DtString::nullString(),
1651 DtAggregateState initialAggregateState = DtDisaggregated,
1652 const DtString& userData = DtString::nullString(),
1653 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1654 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1655 std::list<DtAdminContent*>* initialAdminContent = 0,
1656 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1657 const DtString& overlayParent =
"",
1666 virtual void sendVrfObjectModifyMsg(
1667 const DtSimulationAddress& addr,
1670 DtList* vertices = 0,
1671 DtForceType* force = 0,
1672 DtReal* heading = 0,
1674 DtAppearance* appearance = 0,
1690 virtual void sendTaskMsg(
1692 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1696 virtual void moveAlongRoute(
1698 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1702 virtual void moveToWaypoint(
1704 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1709 virtual void moveToLocation(
1711 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1715 virtual void patrolBetweenWaypoints(
1718 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1722 virtual void patrolAlongRoute(
1724 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1731 virtual void followEntity(
1734 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1740 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1744 virtual void waitDuration(
1746 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1750 virtual void waitElapsed(
1752 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1755 virtual void skipTask(
const DtUUID& uuid,
1756 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1768 virtual void restartPlan(
const DtUUID& uuid,
1769 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1778 virtual void assignPlanByName(
1780 const DtSimulationAddress& addr = DtSimSendToAll,
1781 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1784 virtual void assignMultiplePlanByName(
1785 const std::vector<DtUUID>& entities,
const DtPlan& plan,
1786 const DtSimulationAddress& addr = DtSimSendToAll,
1787 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1793 virtual void requestPlan(
1795 bool addStmtCallback =
true,
1796 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1802 virtual void subscribePlan(
const DtUUID& uuid,
1804 const DtSimulationAddress& addr = DtSimSendToAll);
1809 virtual void receivedPlan(
const DtUUID& uuid,
bool isGlobal,
1810 const std::vector<DtSimStatement*>& statements);
1817 virtual void requestMultiplePlan(
const std::vector<DtUUID>& entities,
1819 const DtSimulationAddress& addr = DtSimSendToAll);
1821 virtual void requestMultiplePlan(
const std::vector<DtUUID>& entities,
1822 const DtSimulationAddress& addr = DtSimSendToAll);
1831 virtual void unsubscribePlan(
const DtUUID& uuid,
1836 virtual void unsubscribeAllPlans();
1842 virtual void addPlanStatementCallback(
const DtUUID& uuid,
1847 virtual void removePlanStatementCallback(
const DtUUID& uuid,
1852 virtual void removeAllPlanStatementCallbacks();
1859 virtual void receivedPlanStmt(
const DtUUID& uuid,
bool isGlobal,
1866 virtual void addPlanCompleteCallback(
const DtUUID& uuid,
1871 virtual void removePlanCompleteCallback(
const DtUUID& uuid,
1876 virtual void removeAllPlanCompleteCallbacks();
1880 virtual void abandonPlan(
const DtUUID& uuid,
1881 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1890 virtual void requestGlobalPlansList(
const DtSimulationAddress& addr);
1899 virtual void assignGlobalPlan(
1901 const DtSimulationAddress& addr = DtSimSendToAll,
1902 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1905 virtual void deleteGlobalPlan(
const DtUUID& name,
1906 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1909 virtual void launchGlobalPlan(
const DtUUID&,
const DtSimulationAddress& addr)
const;
1930 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1954 virtual void embarkObject(
const DtSimulationAddress& addr,
const DtUUID& entity,
const DtUUID& ontoEntity,
1955 bool loadOverride =
false,
const DtVector& loadOverridePosition = DtVector::zero());
1957 virtual void disembarkObject(
const DtSimulationAddress& addr,
const DtUUID& entity);
1958 virtual void disembarkAllObjects(
const DtSimulationAddress& addr,
const DtUUID& entity);
1962 virtual void requestTasksAndSetsFor(
const DtSimulationAddress& addr,
1963 const DtUUID& entityName);
1966 virtual void requestTasksAndSetsFor(
const std::vector<DtUUID>& names);
1970 virtual void requestDIGuyAppearancesAndAnimations(
const DtSimulationAddress& addr,
1971 const DtUUID& entityName);
1974 virtual void requestDIGuyAppearancesAndAnimations(
const std::vector<DtUUID>& names);
1977 virtual void requestIndirectArtilleryInformation(
const DtUUID&);
1983 virtual void requestResourceNames(
const std::vector<DtUUID>& list,
1994 const std::list<DtString>* list = 0,
2013 virtual void addObjectConsoleMessageCallback(
2015 virtual void removeObjectConsoleMessageCallback(
2020 virtual void setObjectNotifyLevel(
const DtUUID& objectName,
2021 DtNotifyLevelType notifyLevel,
const DtSimulationAddress& addr = DtSimSendToAll);
2026 virtual void logObjectConsoleToFile(
const DtUUID& objectName,
2027 const DtFilename filename);
2031 virtual void stopLoggingObjectConsoleToFile(
const DtUUID& objectName);
2035 virtual void addBackendConsoleMessageCallback(
2037 virtual void removeBackendConsoleMessageCallback(
2042 virtual void processCommentInteraction(DtCommentInteraction* inter);
2054 const DtSimulationAddress& addr = DtSimSendToAll);
2058 virtual void takeControlOf(
const DtUUID&,
const std::set<DtString>& functionGroups,
2059 const DtSimulationAddress& addr = DtSimSendToAll);
2063 virtual void releaseControlOf(
const DtUUID&,
const std::set<DtString>& functionGroups =
2064 std::set<DtString>(),
const DtSimulationAddress& addr = DtSimSendToAll);
2068 virtual void sendJoystickControl(
const DtUUID&,
const DtString& functionGroup,
2069 const DtString&
function,
double value,
bool repeat =
false,
const DtSimulationAddress& addr = DtSimSendToAll);
2096 static void doPendingSaveWorkCb(
void* usr);
2100 static void doPendingExportWorkCb(
void* usr);
2104 static void doPendingLoadWorkCb(
void* usr);
2108 static void savedScenarioCb(
DtSimMessage* msg,
void* usr);
2112 static void exportScenarioCb(
DtSimMessage* msg,
void* usr);
2116 static void loadedScenarioCb(
DtSimMessage* msg,
void* usr);
2120 static void receiveFileCb(
const DtFilename& filename,
void* usr);
2123 static void receivedMultiPlanCb(
DtSimMessage* msg,
void* usr);
2126 static void objectCreatedCb(
DtSimMessage* msg,
void* usr);
2129 static void receivedPlanCb(
DtSimMessage* msg,
void* usr);
2132 static void receivedPlanStmtCb(
DtSimMessage* msg,
void* usr);
2136 static void overlayObjectCreatedCallback(
const DtString& name,
const DtEntityIdentifier&
id,
2137 const DtUUID& uuid,
void* usr);
2141 static void indirectArtilleryObjectCreatedCallback(
const DtString& name,
const DtEntityIdentifier&
id,
2142 const DtUUID& uuid,
void* usr);
2145 static void resourcesProcessedCb(
DtSimMessage* msg,
void* usr);
2149 static void spatialSubdivisionConfigurationCb(
DtSimMessage* msg,
void* usr);
2153 static void commentInteractionCallback(DtCommentInteraction *inter,
void* usr);
2161 static void joystickControlResponse(
DtSimMessage* msg,
void* usr);
2162 virtual void processJoystickControlResponse(
DtSimMessage* msg);
2167 virtual void onInit();
2168 virtual void resetStateData();
2169 virtual void emptyLists();
2172 virtual void sendAggregateAsMsg(
2173 const DtSimulationAddress& addr,
2174 unsigned int requestId,
2179 DtList* entityNames,
2180 DtAggregateState initialAggregateState,
2191 virtual void sendQuerySpatialSubdivisionConfigurationRequest(
2192 const DtSimulationAddress& backendAddress,
2202 virtual bool arbitrarySimAddress(DtSimulationAddress& address)
const;
2211 virtual bool addStatementsAndSendPlan(
const DtPlan& plan,
DtIfPlan& planMsg,
2212 const DtSimulationAddress& addr = DtSimSendToAll,
2213 int *retiStatus = 0,
DtString* retsStmt = 0)
const;
2217 static void deliverRadioMessageCallback(
DtSimMessage* msg,
void* usr);
2225 static void globalEnvironmentCreatedCb(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
void* usr);
2226 virtual void processGlobalEnvironmentCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid);
2229 static void backendStatusUpdate(
const DtSimulationAddress&,
void*);
2230 virtual void processBackendStatusUpdate(
const DtSimulationAddress&);
2266 typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
2270 typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
2406 virtual int color()
const;
2407 virtual const DtUUID& attachTo()
const;
2408 virtual void userData(
char** data,
int* userDataSize);