40 #include <vl/commentInteraction.h>
41 #include <vl/exerciseConn.h>
42 #include <vl/hostStructs.h>
43 #include <vlpi/disEnums.h>
44 #include <vlpi/appearance.h>
45 #include <vlutil/vlHashlist.h>
81 (
const DtSimulationAddress& addr,
DtSaveResult result,
void * usr);
90 (
const DtString& name,
const DtEntityIdentifier& id,
const DtUUID& uuid,
void* usr);
96 (
const DtString& name,
const DtEntityIdentifier& id,
97 const DtUUID& uuid,
void* usr);
100 (
const DtEntityIdentifier& id,
int notifyLevel,
const DtString& message,
104 (
const DtSimulationAddress& id,
int notifyLevel,
const DtString& message,
219 virtual void init(DtExerciseConn* exConn,
223 const DtString& uuidMarkingForNonVrForces =
"entity-identifier");
229 const DtString& uuidMarkingForNonVrForces =
"entity-identifier");
235 virtual void reinitialize(
251 virtual const DtSimulationAddress& simulationAddress()
const;
252 virtual int sessionId()
const;
256 virtual double simTime(
const DtSimulationAddress* a = NULL)
const;
259 virtual const DtList& backends()
const;
263 virtual const DtList& pendingBackends()
const;
269 virtual void addBackendDiscoveryCallback(
271 virtual void removeBackendDiscoveryCallback(
275 virtual void addBackendRemovalCallback(
277 virtual void removeBackendRemovalCallback(
283 virtual int backendsControlState()
const;
286 virtual int numberBackendsLoaded()
const;
290 virtual bool allBackendsReady()
const;
293 virtual bool backendLoaded(
const DtSimulationAddress& addr)
const;
298 const DtSimulationAddress& addr = DtSimSendToAll);
310 virtual void requestBackEndSetting(std::string name,
312 const DtSimulationAddress& addr = DtSimSendToAll);
316 virtual void setSpotReportsGloballyEnabled(
bool enabled);
320 virtual void setEngagementReportsGloballyEnabled(
bool enabled);
324 virtual void setPeriodicSnapshotSettings(
bool enabled,
double period,
int numberOfSnapshotsToKeep);
328 virtual void setDRThresholds(
double translation,
double rotation);
331 virtual void setCommModelSettings(
bool useExternalComms);
334 virtual void setRoadDrivingSettings(
bool driveOnLeft);
338 virtual void setAutomaticAggregationDisaggregationEnabled(
bool enabled);
344 virtual void setPublishAggregateFormationRoutes(
bool yesNo);
372 virtual bool loadScenario(
const DtFilename& filename,
375 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
387 virtual bool loadScenario(
const DtScenario& scenario,
390 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
395 virtual bool importScenario(
const DtScenario&,
const DtSimulationAddress& addr,
DtString* errorString = 0);
396 virtual bool importScenario(
const DtFilename&,
const DtSimulationAddress& addr,
DtString* errorString = 0);
402 virtual bool saveSimulationObjectGroup(
const DtFilename& smsDirectory,
const DtString& groupName,
403 const DtString& groupDescription,
int creationFlags,
const DtSimulationAddress& addr,
404 const std::map<DtString, DtString>& additionalInformation = std::map<DtString, DtString>(),
408 virtual void rollbackToSnapshot(
double simTime);
414 virtual bool importScenarioDescriptionFile(
const DtFilename& file, DtSimulationAddress,
const DtString& format,
415 const std::map<std::string, std::string>& importData);
419 virtual bool exportScenarioDescriptionFile(
const DtFilename& file, DtSimulationAddress,
const DtString& format,
420 const std::map<std::string, std::string>& importData);
425 virtual DtString guiTerrainDatabaseFilename()
const;
426 virtual void setGuiTerrainDatabaseFilename(
DtString db);
436 virtual bool newScenario(
437 const DtFilename& dbname,
438 const DtFilename& guidbname,
439 const DtFilename& opdname = DtFilename::nullFilename(),
440 const DtFilename& physicalWorldName = DtFilename::nullFilename(),
442 time_t startTimeOfDay = 12 * 3600,
446 virtual bool newScenario(
447 const DtFilename& dbname,
448 const DtFilename& guidbname,
449 const std::vector<DtString>& simulationModelSetFiles,
451 time_t startTimeOfDay = 12 * 3600,
459 virtual bool sendLoadScenarioMessage(
461 const DtSimulationAddress& addr = DtSimSendToAll,
462 bool import =
false)
const;
479 virtual bool isSavingScenario()
const;
496 virtual bool saveScenario(
const DtFilename& saveName,
498 double simTime = -1);
505 virtual bool saveScenarioCheckpoint(
const DtFilename& filename,
double simTime);
509 virtual void takeSnapshot(DtSimulationAddress addr = DtSimSendToAll);
513 virtual void takeBaseSnapshot();
518 virtual void sendSaveScenarioMessage(
const DtSimulationAddress& addr = DtSimSendToAll,
double simTime = -1,
519 const DtFilename& saveScenarioFilename =
"")
const;
530 virtual void addScenarioSavedCallback(
532 virtual void removeScenarioSavedCallback(
537 virtual void addScenarioExportedCallback(
539 virtual void removeScenarioExportedCallback(
544 virtual void addCheckpointSavedCallback(
546 virtual void removeCheckpointSavedCallback(
552 virtual void addScenarioSavedCallback(
554 virtual void removeScenarioSavedCallback(
562 virtual void closeScenario(
const DtSimulationAddress& addr = DtSimSendToAll,
563 const DtFilename& databaseToOpen =
"",
bool forceCloseAll =
false);
569 virtual void run(
bool useStartStopInteraction =
false,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
570 virtual void pause(
bool useStartStopInteraction =
false,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
572 virtual void rewind()
const;
573 virtual void exit()
const;
574 virtual void step()
const;
575 virtual void setTimeMultiplier(
double multiplier)
const;
586 virtual void setOpdSaveName(
const DtFilename& f);
587 virtual const DtFilename& opdSaveName()
const;
594 virtual void setMaxWaitSaveTime(
DtTime t);
595 virtual DtTime maxWaitSaveTime()
const;
602 virtual void setMaxWaitLoadTime(
DtTime t);
603 virtual DtTime maxWaitLoadTime()
const;
610 virtual void setOverlayFilename(
const DtFilename& overlay);
611 virtual const DtFilename& overlayFilename()
const;
618 virtual void setHostilityFilename(
const DtFilename& hostilty);
619 virtual const DtFilename& hostilityFilename()
const;
622 virtual void setScenarioExtrasFilename(
const DtFilename& extras);
623 virtual const DtFilename& scenarioExtrasFilename()
const;
629 virtual void setSelectionGroupsFilename(
const DtFilename& sel);
630 virtual const DtFilename& selectionGroupsFilename()
const;
637 virtual void setSymbolMapFilename(
const DtFilename& overlay);
638 virtual const DtFilename& symbolMapFilename()
const;
645 virtual void setCreateMenuFilename(
const DtFilename& overlay);
646 virtual const DtFilename& createMenuFilename()
const;
650 virtual void saveParameterDb(
const DtFilename& filename);
657 virtual void deleteObject(
const DtUUID& uuid,
658 const DtSimulationAddress& addr = DtSimSendToAll)
const;
670 virtual void createWaypoint(
672 const DtString& uniqueName = DtString::nullString(),
673 const DtString& label = DtString::nullString(),
674 const DtSimulationAddress& addr = DtSimSendToAll)
const;
679 virtual void createWaypoint(
682 const DtString& uniqueName = DtString::nullString(),
683 const DtString& label = DtString::nullString(),
684 const DtSimulationAddress& addr = DtSimSendToAll);
687 virtual void modifyWaypoint(
692 const DtSimulationAddress& addr = DtSimSendToAll)
const;
700 virtual void createRoute(
701 const DtList& vertices,
702 const DtString& uniqueName = DtString::nullString(),
703 const DtString& label = DtString::nullString(),
704 const DtSimulationAddress& addr = DtSimSendToAll)
const;
709 virtual void createRoute(
711 const DtList& vertices,
712 const DtString& uniqueName = DtString::nullString(),
713 const DtString& label = DtString::nullString(),
714 const DtSimulationAddress& addr = DtSimSendToAll) ;
717 virtual void modifyRoute(
721 DtList* vertices = 0,
722 const DtSimulationAddress& addr = DtSimSendToAll)
const;
730 virtual void createPhaseLine(
733 const DtString& uniqueName = DtString::nullString(),
734 const DtString& label = DtString::nullString(),
735 const DtSimulationAddress& addr = DtSimSendToAll)
const;
740 virtual void createPhaseLine(
744 const DtString& uniqueName = DtString::nullString(),
745 const DtString& label = DtString::nullString(),
746 const DtSimulationAddress& addr = DtSimSendToAll) ;
749 virtual void modifyPhaseLine(
755 const DtSimulationAddress& addr = DtSimSendToAll)
const;
764 virtual void createControlArea(
765 const DtList& vertices,
766 const DtString& uniqueName = DtString::nullString(),
767 const DtString& label = DtString::nullString(),
768 const DtSimulationAddress& addr = DtSimSendToAll)
const;
773 virtual void createControlArea(
775 const DtList& vertices,
776 const DtString& uniqueName = DtString::nullString(),
777 const DtString& label = DtString::nullString(),
778 const DtSimulationAddress& addr = DtSimSendToAll) ;
781 virtual void modifyControlArea(
785 DtList* newVertices = 0,
786 const DtSimulationAddress& addr = DtSimSendToAll)
const;
795 virtual void createObstacle(
796 const DtList& vertices,
797 const DtString& uniqueName = DtString::nullString(),
798 const DtString& label = DtString::nullString(),
799 const DtSimulationAddress& addr = DtSimSendToAll)
const;
804 virtual void createObstacle(
806 const DtList& vertices,
807 const DtString& uniqueName = DtString::nullString(),
808 const DtString& label = DtString::nullString(),
809 const DtSimulationAddress& addr = DtSimSendToAll) ;
812 virtual void modifyObstacle(
816 DtList* newVertices = 0,
817 const DtSimulationAddress& addr = DtSimSendToAll)
const;
827 virtual void createDisaggregationArea(
828 const DtList& vertices,
829 const DtString& uniqueName = DtString::nullString(),
830 const DtString& label = DtString::nullString(),
831 const DtSimulationAddress& addr = DtSimSendToAll)
const;
837 virtual void createDisaggregationArea(
839 const DtList& vertices,
840 const DtString& uniqueName = DtString::nullString(),
841 const DtString& label = DtString::nullString(),
842 const DtSimulationAddress& addr = DtSimSendToAll) ;
845 virtual void modifyDisaggregationArea(
849 DtList* newVertices = 0,
850 const DtSimulationAddress& addr = DtSimSendToAll)
const;
865 virtual void createOverlayObject(
866 const DtEntityType& type,
867 const DtList& vertices,
868 const DtForceType& force,
875 const DtAppearance& appearance = DtAppearance::nullAppearance(),
879 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
880 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
882 const DtSimulationAddress& addr = DtSimSendToAll,
883 unsigned int rId = 0,
884 std::list<DtAdminContent*>* initialAdminContent = 0,
885 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0);
887 virtual void createIndirectArtillery(
889 const DtSimulationAddress& addr);
895 virtual void createObject(
896 const DtEntityType& type,
900 const DtSimulationAddress& addr);
903 virtual void createEntity(
904 const DtEntityType& type,
908 const DtString& uniqueName = DtString::nullString(),
909 const DtString& label = DtString::nullString(),
910 const DtSimulationAddress& addr = DtSimSendToAll,
911 bool groundClamp =
true)
const;
916 virtual void createEntity(
918 const DtEntityType& type,
922 const DtString& uniqueName = DtString::nullString(),
923 const DtString& label = DtString::nullString(),
924 const DtSimulationAddress& addr = DtSimSendToAll,
925 bool groundClamp =
true);
927 virtual void createAggregate(
929 const DtEntityType& type,
934 const DtString& label = DtString::nullString(),
935 const DtSimulationAddress& addr = DtSimSendToAll,
936 DtAggregateState initialAggregateState = DtDisaggregated);
939 virtual void createAggregate(
940 const DtEntityType& type,
944 DtList* entityNames = 0,
945 const DtSimulationAddress& addr = DtSimSendToAll,
946 DtAggregateState initialAggregateState = DtDisaggregated,
947 unsigned int requestId = 0)
const;
952 virtual void createAggregate(
954 const DtEntityType& type,
958 DtList* entityNames = 0,
959 const DtSimulationAddress& addr = DtSimSendToAll,
960 DtAggregateState initialAggregateState = DtDisaggregated) ;
964 virtual void addToOrganization(
966 const DtUUID& newSuperiorId,
967 const DtSimulationAddress& addr = DtSimSendToAll);
972 virtual void addToForceLevelOrganization(
974 const DtSimulationAddress& addr = DtSimSendToAll);
978 virtual void removeFromOrganization(
980 const DtSimulationAddress& addr = DtSimSendToAll);
989 virtual void setLabel(
991 const DtSimulationAddress& addr = DtSimSendToAll)
const;
994 virtual void setOverlayParent(
996 const DtSimulationAddress& addr = DtSimSendToAll)
const;
999 virtual void setAltitude(
1000 const DtUUID& uuid,
double altitude,
bool aboveGroundLevel =
false,
1001 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1004 virtual void setLocation(
1006 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1009 virtual void setAppearance(
1010 const DtUUID& uuid,
int appearance,
1011 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1014 virtual void setCapabilities(
1015 const DtUUID& uuid,
int capabilities,
1016 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1019 virtual void setHeading(
1020 const DtUUID& uuid,
double degrees,
1021 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1024 virtual void setForce(
1025 const DtUUID& uuid, DtForceType force,
1026 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1031 virtual void requestSpotReports(
const DtUUID& uuid,
bool onOff,
1032 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1037 virtual void requestEngagementReports(
const DtUUID& uuid,
bool onOff,
1038 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1041 virtual void setResource(
const DtUUID& uuid,
1042 const char* resourceType,
double value,
1043 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1048 virtual void setRulesOfEngagement(
1049 const DtUUID& uuid,
const char* rulesType,
1050 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1053 virtual void setSectorOfResponsibility(
1054 const DtUUID& uuid,
double center,
double size,
1055 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1058 virtual void setSpeed(
1059 const DtUUID& uuid,
double speed,
1060 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1063 virtual void setCurrentSpeed(
1064 const DtUUID& uuid,
double speed,
1065 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1068 virtual void setTarget(
1070 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1074 virtual void setSuperior(
1076 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1079 virtual void setTaskedBySuperior(
const DtUUID& uuid,
1080 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1083 virtual void setConcealed(
const DtUUID& uuid,
1084 bool yes,
const DtSimulationAddress& addr = DtSimSendToAll)
const;
1087 virtual void setEmitter(
const DtUUID& uuid,
1088 int emitterId,
bool on,
1089 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1092 virtual void setIff(
const DtUUID& uuid,
1093 bool mode1on,
int mode1code,
1094 bool mode2on,
int mode2code,
1095 bool mode3on,
int mode3code,
1096 bool mode4on,
int mode4code,
1097 DtIffAtcNavaidsAltParm4 altParm4,
1098 bool modeCon,
bool useAltModeC,
1099 bool modeSon,
bool emergency,
1100 bool flash,
bool sti,
bool modeSTcasI,
1101 int pin,
bool mode5LevelSelection,
1102 unsigned int messageFormatsPresent,
unsigned int nationalOrigin,
1103 unsigned int navigationSource,
unsigned int figureOfMerit,
1104 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1107 virtual void restore(
const DtUUID& uuid,
1108 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1112 virtual void setDestroyed(
const DtUUID& uuid,
1113 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1118 virtual void setLifeformWeaponState(
1119 const DtUUID& uuid, DtWeaponState weapon,
1120 const DtSimulationAddress& addr)
const;
1125 virtual void setLifeformPosture(
1126 const DtUUID& uuid, DtLifeformState posture,
1127 const DtSimulationAddress& addr)
const;
1131 virtual void setAggregateFormation(
1133 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1138 virtual void reorganizeAggregate(
const DtUUID& leader,
1139 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1144 virtual void disaggregateEntity(
const DtUUID& entity,
1145 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1150 virtual void aggregateEntity(
const DtUUID& entity,
1151 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1155 virtual void sendSetDataMsg(
1157 const DtSimulationAddress& addr)
const;
1169 virtual void sendVrfObjectCreateMsg(
1170 const DtSimulationAddress& addr,
1171 unsigned int requestId,
1174 const DtList& vertices,
1176 const DtAppearance& appearance,
1181 bool createSubObjects,
1182 bool clampToGroundFlag =
true,
1183 const DtString& initialFormation = DtString::nullString(),
1184 DtAggregateState initialAggregateState = DtDisaggregated,
1185 const DtString& userData = DtString::nullString(),
1186 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1187 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1188 std::list<DtAdminContent*>* initialAdminContent = 0,
1189 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1190 const DtString& overlayParent =
"")
const;
1198 virtual void sendVrfObjectModifyMsg(
1199 const DtSimulationAddress& addr,
1202 DtList* vertices = 0,
1203 DtForceType* force = 0,
1204 DtReal* heading = 0,
1206 DtAppearance* appearance = 0,
1211 virtual void setPhysicalLineWidth(
const DtSimulationAddress& addr,
1212 const DtUUID& entityId,
double w);
1215 virtual void setPhysicalLineHeight(
const DtSimulationAddress& addr,
1216 const DtUUID& entityId,
double h);
1219 virtual void setCeiling(
const DtSimulationAddress& addr,
1220 const DtUUID& entityId,
double c);
1225 virtual void sendVrfOverlayObjectModifyMsg(
1226 const DtSimulationAddress& addr,
1231 bool keepExistingAttachment =
true,
1235 virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1236 const DtSimulationAddress& addr,
1246 virtual void moveAlongRoute(
1248 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1252 virtual void moveToWaypoint(
1254 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1259 virtual void moveToLocation(
1261 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1265 virtual void patrolBetweenWaypoints(
1268 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1272 virtual void patrolAlongRoute(
1274 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1281 virtual void followEntity(
1284 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1290 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1294 virtual void waitDuration(
1296 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1300 virtual void waitElapsed(
1302 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1307 virtual void sendTaskMsg(
1309 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1313 virtual void abandonPlan(
const DtUUID& uuid,
1314 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1317 virtual void skipTask(
const DtUUID& uuid,
1318 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1322 virtual void restartPlan(
const DtUUID& uuid,
1323 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1332 virtual void assignPlanByName(
1334 const DtSimulationAddress& addr = DtSimSendToAll,
1335 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1338 virtual void assignMultiplePlanByName(
1339 const std::vector<DtUUID>& entities,
const DtPlan& plan,
1340 const DtSimulationAddress& addr = DtSimSendToAll,
1341 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1347 virtual void requestPlan(
1349 bool addStmtCallback =
true,
1350 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1356 virtual void subscribePlan(
const DtUUID& uuid,
1358 const DtSimulationAddress& addr = DtSimSendToAll);
1365 virtual void requestMultiplePlan(
const std::vector<DtUUID>& entities,
1367 const DtSimulationAddress& addr = DtSimSendToAll);
1369 virtual void requestMultiplePlan(
const std::vector<DtUUID>& entities,
1370 const DtSimulationAddress& addr = DtSimSendToAll);
1374 virtual void unsubscribePlan(
const DtUUID& uuid,
1379 virtual void unsubscribeAllPlans();
1385 virtual void addPlanStatementCallback(
const DtUUID& uuid,
1390 virtual void removePlanStatementCallback(
const DtUUID& uuid,
1395 virtual void removeAllPlanStatementCallbacks();
1401 virtual void addPlanCompleteCallback(
const DtUUID& uuid,
1406 virtual void removePlanCompleteCallback(
const DtUUID& uuid,
1411 virtual void removeAllPlanCompleteCallbacks();
1416 virtual void requestGlobalPlansList(
const DtSimulationAddress& addr);
1425 virtual void assignGlobalPlan(
1427 const DtSimulationAddress& addr = DtSimSendToAll,
1428 int *retiStatus = NULL,
DtString* retsStmt = NULL)
const;
1431 virtual void deleteGlobalPlan(
const DtUUID& name,
1432 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1435 virtual void launchGlobalPlan(
const DtUUID&,
const DtSimulationAddress& addr)
const;
1450 const DtSimulationAddress& addr = DtSimSendToAll)
const;
1457 virtual void loadedScenario(
1458 const DtSimulationAddress& addr,
unsigned int requestId);
1463 virtual void processSaveMessages();
1468 virtual DtTime scenarioSimTimeForSave();
1473 virtual void setTerrainDatabaseFilename(
DtScenario* scen);
1478 virtual void setParameterDatabaseFilename(
DtScenario* scen);
1483 virtual void setPhysicalWorldFilename(
DtScenario* scen);
1488 virtual void setTimeMultiplier(
DtScenario* scen);
1493 virtual void setAutoReorganize(
DtScenario* scen);
1498 virtual void setRandomNumberSeed(
DtScenario* scen);
1503 virtual void setFrameRateMode(
DtScenario* scen);
1508 virtual void setFrameDeltaTime(
DtScenario* scen);
1513 virtual void setExerciseStartTime(
DtScenario* scen);
1518 virtual void setExerciseStartDateAndTime(
DtScenario* scen);
1526 virtual bool save(
DtString& sError);
1531 virtual void createSimulationObjectGroup(
const DtSimulationAddress&,
const DtString& simulationObjectGroup,
1532 const DtVector& createPosition,
double offsetRotation,
int createFlags, DtForceType force);
1546 virtual void completeExport();
1551 virtual void savedScenario(
const DtSimulationAddress& addr,
1552 DtSaveResult result,
unsigned int requestId,
bool isCheckpointSave =
false,
double checkpointSimTime = -1);
1556 virtual void doPendingSaveWork();
1560 virtual void doPendingExportWork();
1564 virtual void doPendingLoadWork();
1568 virtual void objectCreated(
unsigned int requestId,
1569 const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid);
1572 virtual unsigned int generateRequestId()
const;
1576 virtual void receivedPlan(
const DtUUID& uuid,
bool isGlobal,
1577 const std::vector<DtSimStatement*>& statements);
1584 virtual void receivedPlanStmt(
const DtUUID& uuid,
bool isGlobal,
1593 virtual void embarkObject(
const DtSimulationAddress& addr,
const DtUUID& entity,
const DtUUID& ontoEntity,
1594 bool loadOverride =
false,
const DtVector& loadOverridePosition = DtVector::zero());
1596 virtual void disembarkObject(
const DtSimulationAddress& addr,
const DtUUID& entity);
1597 virtual void disembarkAllObjects(
const DtSimulationAddress& addr,
const DtUUID& entity);
1601 virtual void requestTasksAndSetsFor(
const DtSimulationAddress& addr,
1602 const DtUUID& entityName);
1605 virtual void requestTasksAndSetsFor(
const std::vector<DtUUID>& names);
1609 virtual void requestDIGuyAppearancesAndAnimations(
const DtSimulationAddress& addr,
1610 const DtUUID& entityName);
1613 virtual void requestDIGuyAppearancesAndAnimations(
const std::vector<DtUUID>& names);
1636 virtual void setRotationThreshold(DtReal thresh);
1639 virtual void setTranslationThreshold(DtReal thresh);
1645 virtual void setAggDimensionThreshold(DtReal thresh);
1648 virtual void setHostInetAddr(DtInetAddr);
1649 virtual DtInetAddr hostInetAddr()
const;
1653 virtual void querySpatialSubdivisionConfiguration(
1654 const DtSimulationAddress& backendAddress,
1659 virtual void setSpatialSubdivsionConfiguration(
1660 const DtSimulationAddress& backendAddress,
1662 const int spatialSubdivisionXResolution,
1663 const int spatialSubdivisionYResolution,
1664 const int spatialSubdivisionZResolution);
1667 virtual void requestIndirectArtilleryInformation(
const DtUUID&);
1676 virtual void requestResources(
const DtUUID& uuid = DtString::nullString(),
1677 const std::list<DtString>* list = 0,
1686 virtual void addObjectConsoleMessageCallback(
1689 virtual void removeObjectConsoleMessageCallback(
1695 virtual void setObjectNotifyLevel(
const DtUUID& objectName,
1696 DtNotifyLevelType notifyLevel,
const DtSimulationAddress& addr = DtSimSendToAll);
1701 virtual void logObjectConsoleToFile(
const DtUUID& objectName,
1702 const DtFilename filename);
1706 virtual void stopLoggingObjectConsoleToFile(
const DtUUID& objectName);
1714 virtual void addBackendConsoleMessageCallback(
1717 virtual void removeBackendConsoleMessageCallback(
1725 virtual void requestResourceNames(
const std::vector<DtUUID>& list,
1747 virtual void initializeGlobalEnvironment(
1748 const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
1761 const DtSimulationAddress& addr = DtSimSendToAll);
1765 virtual void takeControlOf(
const DtUUID&,
const std::set<DtString>& functionGroups,
1766 const DtSimulationAddress& addr = DtSimSendToAll);
1770 virtual void releaseControlOf(
const DtUUID&,
const std::set<DtString>& functionGroups =
1771 std::set<DtString>(),
const DtSimulationAddress& addr = DtSimSendToAll);
1775 virtual void sendJoystickControl(
const DtUUID&,
const DtString& functionGroup,
1776 const DtString&
function,
double value,
bool repeat =
false,
const DtSimulationAddress& addr = DtSimSendToAll);
1782 static void doPendingSaveWorkCb(
void* usr);
1786 static void doPendingExportWorkCb(
void* usr);
1790 static void doPendingLoadWorkCb(
void* usr);
1794 static void savedScenarioCb(
DtSimMessage* msg,
void* usr);
1798 static void exportScenarioCb(
DtSimMessage* msg,
void* usr);
1802 static void loadedScenarioCb(
DtSimMessage* msg,
void* usr);
1806 static void receiveFileCb(
const DtFilename& filename,
void* usr);
1809 static void receivedMultiPlanCb(
DtSimMessage* msg,
void* usr);
1815 static void objectCreatedCb(
DtSimMessage* msg,
void* usr);
1818 static void receivedPlanCb(
DtSimMessage* msg,
void* usr);
1821 static void receivedPlanStmtCb(
DtSimMessage* msg,
void* usr);
1825 static void overlayObjectCreatedCallback(
const DtString& name,
const DtEntityIdentifier&
id,
1826 const DtUUID& uuid,
void* usr);
1827 virtual void processOverlayObjectCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
1832 static void indirectArtilleryObjectCreatedCallback(
const DtString& name,
const DtEntityIdentifier&
id,
1833 const DtUUID& uuid,
void* usr);
1834 virtual void processIndirectArtilleryObjectCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
1838 static void resourcesProcessedCb(
DtSimMessage* msg,
void* usr);
1845 static void spatialSubdivisionConfigurationCb(
DtSimMessage* msg,
void* usr);
1849 virtual void processSpatialSubdivisionConfigurationCb(
1854 static void commentInteractionCallback(DtCommentInteraction *inter,
void* usr);
1858 virtual void processCommentInteraction(DtCommentInteraction* inter);
1866 static void joystickControlResponse(
DtSimMessage* msg,
void* usr);
1867 virtual void processJoystickControlResponse(
DtSimMessage* msg);
1872 virtual void onInit();
1873 virtual void resetStateData();
1874 virtual void emptyLists();
1877 virtual void sendAggregateAsMsg(
1878 const DtSimulationAddress& addr,
1879 unsigned int requestId,
1884 DtList* entityNames,
1885 DtAggregateState initialAggregateState)
const;
1895 virtual void sendQuerySpatialSubdivisionConfigurationRequest(
1896 const DtSimulationAddress& backendAddress,
1906 virtual bool arbitrarySimAddress(DtSimulationAddress& address)
const;
1915 virtual bool addStatementsAndSendPlan(
const DtPlan& plan,
DtIfPlan& planMsg,
1916 const DtSimulationAddress& addr = DtSimSendToAll,
1917 int *retiStatus = 0,
DtString* retsStmt = 0)
const;
1921 static void deliverRadioMessageCallback(
DtSimMessage* msg,
void* usr);
1929 static void globalEnvironmentCreatedCb(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid,
void* usr);
1930 virtual void processGlobalEnvironmentCreated(
const DtString& name,
const DtEntityIdentifier&
id,
const DtUUID& uuid);
1938 virtual bool newScenario(
1939 const DtFilename& dbname,
1940 const DtFilename& guidbname,
1941 const DtFilename& opdname,
1942 const DtFilename& physicalWorldName,
1943 const std::vector<DtString>& simulationModelSetFiles,
1945 time_t startTimeOfDay = 12 * 3600,
1980 typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
1984 typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
2100 virtual int color()
const;
2101 virtual const DtUUID& attachTo()
const;
2102 virtual void userData(
char** data,
int* userDataSize);