30 #include <vlpi/entityType.h>
31 #include <matrix/vlVector.h>
38 #include <boost/function.hpp>
58 class DtGuiThreadNetworkCallbackManager;
122 virtual void newScenario(
const DtScenario*, time_t startTimeOfDay = 12 * 3600);
124 virtual void newScenario(
const DtFilename& terrainDatabase, time_t startTimeOfDay = 12 * 3600);
130 virtual void importScenarioDescriptionFile(
const std::string& file, DtSimulationAddress,
const std::string& description ,
131 const std::map<std::string, std::string>& importData);
135 virtual void exportScenarioDescriptionFile(
const std::string& file, DtSimulationAddress,
const std::string& description,
136 const std::map<std::string, std::string>& importData);
155 virtual bool loadScenario(
const DtFilename&);
173 virtual void closeScenario(
const DtFilename& databaseToOpen =
"");
181 virtual void setScenarioRunDuration(
double time,
bool duration =
false);
187 virtual void runScenario(
bool useStartStopInteraction =
false, DtSimulationAddress addr = DtSimSendToAll);
189 virtual void pauseScenario(
bool useStartStopInteraction =
false, DtSimulationAddress addr = DtSimSendToAll);
191 virtual void rewindScenario(DtSimulationAddress addr = DtSimSendToAll);
193 virtual void exitServer(DtSimulationAddress addr = DtSimSendToAll);
195 virtual void stepScenario(DtSimulationAddress addr = DtSimSendToAll);
201 virtual void deleteObject(std::string name, DtSimulationAddress addr = DtSimSendToAll);
209 virtual void removeObjectCreatedCallback(
unsigned int);
215 virtual void createWaypoint(
216 const DtSimulationAddress& addr,
218 const std::string& uniqueName =
"",
219 const std::string& label =
"",
220 unsigned int requestId = 0);
225 virtual unsigned int createWaypoint(
227 const DtSimulationAddress& addr,
229 const std::string& uniqueName =
"",
230 const std::string& label =
"");
233 virtual void modifyWaypoint(
234 const std::string& uniqueId,
235 std::string* uniqueName = 0,
236 std::string* label = 0,
238 const DtSimulationAddress& addr = DtSimSendToAll);
244 virtual void createRoute(
245 const DtSimulationAddress& addr,
246 const std::vector<DtVector>& vertices,
247 const std::string& uniqueName =
"",
248 const std::string& label =
"",
249 unsigned int rId = 0);
254 virtual unsigned int createRoute(
256 const DtSimulationAddress& addr,
257 const std::vector<DtVector>& vertices,
258 const std::string& uniqueName =
"",
259 const std::string& label =
"");
262 virtual void modifyRoute(
263 const std::string& uniqueId,
264 std::string* uniqueName = 0,
265 std::string* label = 0,
266 std::vector<DtVector>* vertices = 0,
267 const DtSimulationAddress& addr = DtSimSendToAll);
273 virtual void createPhaseLine(
274 const DtSimulationAddress& addr,
277 const std::string& uniqueName =
"",
278 const std::string& label =
"",
279 unsigned int rId = 0);
284 virtual unsigned int createPhaseLine(
286 const DtSimulationAddress& addr,
289 const std::string& uniqueName =
"",
290 const std::string& label =
"");
293 virtual void modifyPhaseLine(
294 const std::string& uniqueId,
295 std::string* uniqueName = 0,
296 std::string* label = 0,
299 const DtSimulationAddress& addr = DtSimSendToAll);
306 virtual void createControlArea(
307 const DtSimulationAddress& addr,
308 const std::vector<DtVector>& vertices,
309 const std::string& uniqueName =
"",
310 const std::string& label =
"",
311 unsigned int rId = 0);
316 virtual unsigned int createControlArea(
318 const DtSimulationAddress& addr,
319 const std::vector<DtVector>& vertices,
320 const std::string& uniqueName =
"",
321 const std::string& label =
"");
324 virtual void modifyControlArea(
325 const std::string& uniqueId,
326 std::string* uniqueName = 0,
327 std::string* label = 0,
328 std::vector<DtVector>* newVertices = 0,
329 const DtSimulationAddress& addr = DtSimSendToAll);
336 virtual void createObstacle(
337 const DtSimulationAddress& addr,
338 const std::vector<DtVector>& vertices,
339 const std::string& uniqueName =
"",
340 const std::string& label =
"",
341 unsigned int rId = 0);
346 virtual unsigned int createObstacle(
348 const DtSimulationAddress& addr,
349 const std::vector<DtVector>& vertices,
350 const std::string& uniqueName =
"",
351 const std::string& label =
"") ;
354 virtual void modifyObstacle(
355 const std::string& uniqueId,
356 std::string* uniqueName = 0,
357 std::string* label = 0,
358 std::vector<DtVector>* newVertices = 0,
359 const DtSimulationAddress& addr = DtSimSendToAll);
367 virtual void createDisaggregationArea(
368 const DtSimulationAddress& addr,
369 const std::vector<DtVector>& vertices,
370 const std::string& uniqueName =
"",
371 const std::string& label =
"",
372 unsigned int rId = 0);
378 virtual unsigned int createDisaggregationArea(
380 const DtSimulationAddress& addr,
381 const std::vector<DtVector>& vertices,
382 const std::string& uniqueName =
"",
383 const std::string& label =
"") ;
386 virtual void modifyDisaggregationArea(
387 const std::string& uniqueId,
388 std::string* uniqueName = 0,
389 std::string* label = 0,
390 std::vector<DtVector>* newVertices = 0,
391 const DtSimulationAddress& addr = DtSimSendToAll);
403 virtual unsigned int createOverlayObject(
404 const DtSimulationAddress& addr,
405 const DtEntityType& type,
406 const std::vector<DtVector>& vertices,
407 const DtForceType& force,
408 const std::string& name,
409 const std::string& label,
411 const std::string& parentName,
414 const DtAppearance& appearance = DtAppearance::nullAppearance(),
415 const std::string& attachTo =
"",
418 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
419 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
424 virtual void createIndirectArtillery(
426 const std::string& overlayParent,
427 const DtSimulationAddress& addr);
433 virtual void createComputedRoute(
434 const DtSimulationAddress& addr,
437 const std::list<std::string>& obstacleTypes,
438 const std::list<std::string>& pathTypes,
439 const std::string& uniqueName =
"",
440 const std::string& label =
"",
441 const std::string& overlay =
"",
442 const int forceId = DtForceOther,
443 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
444 unsigned int requestId = 0);
447 virtual void cancelCreateComputedRoute(
448 const DtSimulationAddress& addr,
449 unsigned int requestId);
454 virtual void createComputedRoute(
456 const DtSimulationAddress& addr,
459 const std::list<std::string>& obstacleTypes,
460 const std::list<std::string>& pathTypes,
461 const std::string& uniqueName =
"",
462 const std::string& label =
"",
463 const std::string& overlay =
"",
464 const int forceId = DtForceOther,
465 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
474 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
475 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
478 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
479 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
482 virtual void createEntity(
483 const DtSimulationAddress& addr,
484 const DtEntityType& type,
488 const std::string& uniqueName =
"",
489 const std::string& label =
"",
490 bool groundClamp =
true,
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
491 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
492 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
493 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
498 virtual unsigned int createEntity(
500 const DtSimulationAddress& addr,
501 const DtEntityType& type,
505 const std::string& uniqueName =
"",
506 const std::string& label =
"",
507 bool groundClamp =
true,
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
508 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
509 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
510 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
513 virtual unsigned int createAggregate(
515 const DtSimulationAddress& addr,
516 const DtEntityType& type,
520 const std::string& uniqueName,
521 const std::string& label =
"",
522 DtAggregateState initialAggregateState = DtDisaggregated,
523 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
524 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
525 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
526 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
529 virtual void aggregateAs(
const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names,
const DtEntityType& type,
530 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr,
unsigned int requestId = 0);
536 const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names,
const DtEntityType& type,
537 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr);
541 virtual void addToOrganization(
const std::string& childId,
const std::string& superiorId,
542 DtSimulationAddress addr = DtSimSendToAll);
547 virtual void addToForceLevelOrganization(
const std::string& entityId, DtSimulationAddress addr = DtSimSendToAll);
551 virtual void removeFromOrganization(
552 const std::string& objectId,
553 const DtSimulationAddress& addr = DtSimSendToAll);
563 virtual void createEnvironmentalObject(DtSimulationAddress addr, DtEntityType,
int force,
const std::vector<DtVector>&,
565 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
566 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
577 virtual void sendVrfObjectModifyMsg(
578 const DtSimulationAddress& addr,
579 const std::string& entityId,
580 const std::string* name = 0,
581 const std::vector<DtVector>& = std::vector<DtVector>(),
584 const std::string* label = 0,
585 DtAppearance* appearance = 0,
586 const std::string* overlayParent = 0,
587 const std::string* userData = 0,
588 const std::map<std::string, std::string>* extendedData = 0,
589 const std::map<int, DtString>* extendedLabels = 0);
594 virtual void sendVrfObjectCreateMsg(
595 const DtSimulationAddress& addr,
596 unsigned int requestId,
597 const std::string& name,
598 const DtObjectType& type,
599 const std::vector<DtVector>& vertices,
600 const std::string& label,
601 const DtAppearance& appearance,
606 bool createSubObjects,
607 const std::string& overlayParent =
"",
608 bool clampToGroundFlag =
true,
609 const std::string& initialFormation =
"",
610 DtAggregateState initialAggregateState = DtDisaggregated,
611 const std::string& userData =
"",
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
612 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
613 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
614 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
625 virtual void removeCreateComputedRouteCallbackFunction(
int rId);
633 virtual void sendVrfOverlayObjectModifyMsg(
634 const DtSimulationAddress& addr,
635 const std::string&
id,
637 const std::string* parentName = 0,
638 const std::string* attachTo = 0,
639 const std::string* userData = 0,
640 const std::map<std::string, std::string>* extendedData = 0);
643 virtual void sendVrfIndirectArtilleryObjectModifyMsg(
644 const DtSimulationAddress& addr,
645 const DtEntityIdentifier&
id,
656 virtual void setLabel(
657 const std::string&
id,
const std::string& label,
658 const DtSimulationAddress& addr = DtSimSendToAll);
661 virtual void setExtendedLabels(
662 const std::string&
id,
const std::map<int, DtString>& extendedLabels,
663 const DtSimulationAddress& addr = DtSimSendToAll);
666 virtual void setOverlayParent(
667 const std::string&
id,
const std::string& label,
668 const DtSimulationAddress& addr = DtSimSendToAll);
671 virtual void setAltitude(
672 const std::string& name,
double altitude,
bool aboveGroundLevel =
false,
673 const DtSimulationAddress& addr = DtSimSendToAll);
676 virtual void setLocation(
677 const std::string& name,
DtVector coord,
678 const DtSimulationAddress& addr = DtSimSendToAll);
683 virtual void setAppearance(
684 const std::string& name,
int appearance,
685 const DtSimulationAddress& addr = DtSimSendToAll);
690 virtual void setCapabilities(
691 const std::string& name,
int capabilities,
692 const DtSimulationAddress& addr = DtSimSendToAll);
695 virtual void setHeading(
696 const std::string& name,
double degrees,
697 const DtSimulationAddress& addr = DtSimSendToAll);
700 virtual void setForce(
701 const std::string& name, DtForceType force,
702 const DtSimulationAddress& addr = DtSimSendToAll);
705 virtual void setResource(
const std::string& name,
706 const char* resourceType,
double value,
707 const DtSimulationAddress& addr = DtSimSendToAll);
712 virtual void setRulesOfEngagement(
713 const std::string& name,
const char* rulesType,
714 const DtSimulationAddress& addr = DtSimSendToAll);
717 virtual void setSectorOfResponsibility(
718 const std::string& name,
double center,
double size,
719 const DtSimulationAddress& addr = DtSimSendToAll);
724 virtual void setSpeed(
725 const std::string& name,
double speed,
726 const DtSimulationAddress& addr = DtSimSendToAll);
730 virtual void setCurrentSpeed(
731 const std::string& name,
double speed,
732 const DtSimulationAddress& addr = DtSimSendToAll);
735 virtual void setTarget(
736 const std::string& name,
const std::string& target,
737 const DtSimulationAddress& addr = DtSimSendToAll);
741 virtual void setSuperior(
742 const std::string& name,
const std::string& superior,
743 const DtSimulationAddress& addr = DtSimSendToAll);
748 virtual void setTaskedBySuperior(
const std::string& name,
749 const DtSimulationAddress& addr = DtSimSendToAll);
752 virtual void setConcealed(
const std::string& name,
753 bool yes,
const DtSimulationAddress& addr = DtSimSendToAll);
756 virtual void setEmitter(
const std::string& name,
757 int emitterId,
bool on,
758 const DtSimulationAddress& addr = DtSimSendToAll);
761 virtual void setIff(
const std::string& name,
762 bool mode1on,
int mode1code,
763 bool mode2on,
int mode2code,
764 bool mode3on,
int mode3code,
765 bool mode4on,
int mode4code,
766 DtIffAtcNavaidsAltParm4 altParm4,
767 bool modeCon,
bool useAltModeC,
768 bool modeSon,
bool emergency,
769 bool flash,
bool sti,
bool modeSTcasI,
770 int pin,
bool mode5LevelSelection,
771 unsigned int messageFormatsPresent,
unsigned int nationalOrigin,
772 unsigned int navigationSource,
unsigned int figureOfMerit,
773 const DtSimulationAddress& addr = DtSimSendToAll);
778 virtual void restore(
const std::string& name,
779 const DtSimulationAddress& addr = DtSimSendToAll);
783 virtual void setDestroyed(
const std::string& name,
784 const DtSimulationAddress& addr = DtSimSendToAll);
787 virtual void setLifeformWeaponState(
788 const std::string& name, DtWeaponState weapon,
789 const DtSimulationAddress& addr = DtSimSendToAll);
792 virtual void setLifeformPosture(
793 const std::string& name, DtLifeformState posture,
794 const DtSimulationAddress& addr = DtSimSendToAll);
797 virtual void setAggregateFormation(
798 const std::string& leader,
const std::string& formationName,
799 const DtSimulationAddress& addr = DtSimSendToAll);
804 virtual void reorganizeAggregate(
const std::string& leader,
805 const DtSimulationAddress& addr = DtSimSendToAll);
810 virtual void disaggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
815 virtual void aggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
818 virtual void setJoystickEnabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
821 virtual void setJoystickDisabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
825 virtual void sendSetDataMsg(
827 const DtSimulationAddress& addr = DtSimSendToAll,
828 bool updateScenario =
true);
832 virtual void sendSetRequest(
const DtSetDataRequest& s,
const std::string& name,
833 const DtSimulationAddress& addr = DtSimSendToAll,
bool updateScenario =
true);
836 virtual void sendSetRequest(
const DtSetDataRequest& s,
const std::vector<std::string>& names,
837 const DtSimulationAddress& addr = DtSimSendToAll,
bool updateScenario =
true);
844 virtual void requestIndirectArtilleryInformation(
const DtString&);
853 virtual void moveAlongRoute(
854 const std::string& entityName,
const std::string& routeName,
855 const DtSimulationAddress& addr = DtSimSendToAll);
859 virtual void moveToWaypoint(
860 const std::string& entityName,
const std::string& waypoint,
861 const DtSimulationAddress& addr = DtSimSendToAll);
866 virtual void moveToLocation(
867 const std::string& entityName,
const DtVector& destinationLocation,
868 const DtSimulationAddress& addr = DtSimSendToAll);
872 virtual void patrolBetweenWaypoints(
873 const std::string& name,
874 const std::string& waypoint1,
const std::string& waypoint2,
875 const DtSimulationAddress& addr = DtSimSendToAll);
879 virtual void patrolAlongRoute(
880 const std::string& name,
const std::string& route,
881 const DtSimulationAddress& addr = DtSimSendToAll);
888 virtual void followEntity(
889 const std::string& name,
890 const std::string& leader,
const DtVector& offset,
891 const DtSimulationAddress& addr = DtSimSendToAll);
896 const std::string& name,
897 const DtSimulationAddress& addr = DtSimSendToAll);
901 virtual void waitDuration(
902 const std::string& name,
DtTime duration,
903 const DtSimulationAddress& addr = DtSimSendToAll);
908 virtual void waitElapsed(
909 const std::string& name,
DtTime elapsed,
910 const DtSimulationAddress& addr = DtSimSendToAll);
916 virtual void requestCurrentTasks(
const std::string& entityName);
921 virtual void subscribeForTaskInformation(
const std::string& entityName);
925 virtual void unsubscribeForTaskInformation(
const std::string& entityName);
930 virtual void sendTaskMsg(
932 const DtSimulationAddress& addr = DtSimSendToAll);
935 virtual void sendTaskRequest(
const DtSimTask& s,
const std::vector<std::string>& names,
const DtSimulationAddress& addr = DtSimSendToAll);
937 virtual void sendTaskRequest(
const DtSimTask& s,
const std::string& name,
const DtSimulationAddress& addr = DtSimSendToAll);
943 virtual void requestTasksAndSetsFor(std::vector<DtString> name);
955 virtual void abandonPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
959 virtual void skipTask(std::string name, DtSimulationAddress addr = DtSimSendToAll);
962 virtual void cancelReactiveTask(std::string name, std::string scriptId, DtSimulationAddress addr = DtSimSendToAll);
966 virtual void restartPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
969 virtual void assignPlanByName(std::string name,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
972 virtual void assignMultiplePlanByName(std::vector<std::string> names,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
979 virtual void requestPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
986 virtual void subscribePlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
994 virtual void requestMultiplePlans(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
1000 virtual void requestGlobalPlans(DtSimulationAddress addr = DtSimSendToAll);
1006 virtual void requestGlobalPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
1010 virtual void assignGlobalPlanByName(std::string name,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
1013 virtual void deleteGlobalPlan(std::string, DtSimulationAddress addr = DtSimSendToAll);
1017 virtual void setTimeoutInterval(
int);
1024 virtual void requestDIGuyAppearancesAndAnimations(std::vector<DtString> name);
1032 virtual void requestResourcesFor(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
1035 virtual void sendMessageToObject(
const DtVrfObjectMessage&, DtSimulationAddress addr = DtSimSendToAll);
1038 virtual void sendObjectMessageAndDeleteContent(
DtVrfObjectMessage* message, DtSimulationAddress addr = DtSimSendToAll);
1041 virtual void requestForces(DtSimulationAddress addr);
1045 virtual void requestDoctrines();
1049 virtual void requestAssignedDoctrines();
1052 virtual unsigned long generateRequestId();
1063 virtual void addInterfaceContentCreatorFcn(
int t, DtInterfaceContentCreatorFcn);
1082 virtual void sendMessage(
const DtSimInterfaceContent& message, DtSimulationAddress addr = DtSimSendToAll);
1083 virtual void sendMessageAndDeleteContent(
DtSimInterfaceContent* message, DtSimulationAddress addr = DtSimSendToAll);
1091 virtual void embarkOn(
const std::vector<std::string>& children,
const std::string& parentName,
1092 bool useSlot =
true,
const DtVector& overridePosition = DtVector::zero(), DtSimulationAddress addr = DtSimSendToAll);
1095 virtual void disembark(
const std::vector<std::string>& children, DtSimulationAddress addr = DtSimSendToAll);
1098 virtual void disembarkAll(
const std::vector<std::string>& parents, DtSimulationAddress addr = DtSimSendToAll);
1101 virtual void attachTo(
const std::vector<std::string>& ids,
const std::string& parentName);
1104 virtual void detachAll(
const std::vector<std::string>& ids);
1108 virtual void logObjectConsoleToFile(
const std::string& name,
const std::string& filename);
1112 virtual void stopLoggingObjectConsoleToFile(
const std::string& objectName);
1115 virtual void setObjectNotifyLevel(
const std::string& name,
int);
1118 virtual void setTimeOfDay(time_t seconds);
1119 virtual void setTimeOfDay(
int hours,
int minutes,
int seconds);
1122 virtual void setDateAndTimeOfDay(time_t seconds);
1123 virtual void setDateAndTimeOfDay(
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
1126 virtual void setUseDayNightIlluminationModel(
bool);
1129 virtual void setAggregateOnCreate(
bool);
1130 bool aggregateOnCreate()
const;
1134 virtual void requestScenarioDescription(DtSimulationAddress);
1137 virtual void setScenarioDescription(
const DtString&, DtSimulationAddress addr = DtSimSendToAll);
1141 virtual void sendLoggerSetFilename(std::string filename);
1143 virtual void sendLoggerRecordMessage();
1145 virtual void sendLoggerStopMessage();
1152 virtual void processComputedRouteCreated(
DtSimMessage*);
1155 virtual void setActivated(
bool);
1164 virtual bool addStatementsAndSendPlan(
const DtPlan& plan,
DtIfPlan& planMsg,
1165 const DtSimulationAddress& addr = DtSimSendToAll,
1166 int *retiStatus = 0,
DtString* retsStmt = 0);