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&);
172 virtual void closeScenario();
180 virtual void setScenarioRunDuration(
double time,
bool duration =
false);
186 virtual void runScenario(
bool useStartStopInteraction =
false, DtSimulationAddress addr = DtSimSendToAll);
188 virtual void pauseScenario(
bool useStartStopInteraction =
false, DtSimulationAddress addr = DtSimSendToAll);
190 virtual void rewindScenario(DtSimulationAddress addr = DtSimSendToAll);
192 virtual void exitServer(DtSimulationAddress addr = DtSimSendToAll);
194 virtual void stepScenario(DtSimulationAddress addr = DtSimSendToAll);
200 virtual void deleteObject(std::string name, DtSimulationAddress addr = DtSimSendToAll);
208 virtual void removeObjectCreatedCallback(
unsigned int);
214 virtual void createWaypoint(
215 const DtSimulationAddress& addr,
217 const std::string& uniqueName =
"",
218 const std::string& label =
"",
219 unsigned int requestId = 0);
224 virtual unsigned int createWaypoint(
226 const DtSimulationAddress& addr,
228 const std::string& uniqueName =
"",
229 const std::string& label =
"");
232 virtual void modifyWaypoint(
233 const std::string& uniqueId,
234 std::string* uniqueName = 0,
235 std::string* label = 0,
237 const DtSimulationAddress& addr = DtSimSendToAll);
243 virtual void createRoute(
244 const DtSimulationAddress& addr,
245 const std::vector<DtVector>& vertices,
246 const std::string& uniqueName =
"",
247 const std::string& label =
"",
248 unsigned int rId = 0);
253 virtual unsigned int createRoute(
255 const DtSimulationAddress& addr,
256 const std::vector<DtVector>& vertices,
257 const std::string& uniqueName =
"",
258 const std::string& label =
"");
261 virtual void modifyRoute(
262 const std::string& uniqueId,
263 std::string* uniqueName = 0,
264 std::string* label = 0,
265 std::vector<DtVector>* vertices = 0,
266 const DtSimulationAddress& addr = DtSimSendToAll);
272 virtual void createPhaseLine(
273 const DtSimulationAddress& addr,
276 const std::string& uniqueName =
"",
277 const std::string& label =
"",
278 unsigned int rId = 0);
283 virtual unsigned int createPhaseLine(
285 const DtSimulationAddress& addr,
288 const std::string& uniqueName =
"",
289 const std::string& label =
"");
292 virtual void modifyPhaseLine(
293 const std::string& uniqueId,
294 std::string* uniqueName = 0,
295 std::string* label = 0,
298 const DtSimulationAddress& addr = DtSimSendToAll);
305 virtual void createControlArea(
306 const DtSimulationAddress& addr,
307 const std::vector<DtVector>& vertices,
308 const std::string& uniqueName =
"",
309 const std::string& label =
"",
310 unsigned int rId = 0);
315 virtual unsigned int createControlArea(
317 const DtSimulationAddress& addr,
318 const std::vector<DtVector>& vertices,
319 const std::string& uniqueName =
"",
320 const std::string& label =
"");
323 virtual void modifyControlArea(
324 const std::string& uniqueId,
325 std::string* uniqueName = 0,
326 std::string* label = 0,
327 std::vector<DtVector>* newVertices = 0,
328 const DtSimulationAddress& addr = DtSimSendToAll);
335 virtual void createObstacle(
336 const DtSimulationAddress& addr,
337 const std::vector<DtVector>& vertices,
338 const std::string& uniqueName =
"",
339 const std::string& label =
"",
340 unsigned int rId = 0);
345 virtual unsigned int createObstacle(
347 const DtSimulationAddress& addr,
348 const std::vector<DtVector>& vertices,
349 const std::string& uniqueName =
"",
350 const std::string& label =
"") ;
353 virtual void modifyObstacle(
354 const std::string& uniqueId,
355 std::string* uniqueName = 0,
356 std::string* label = 0,
357 std::vector<DtVector>* newVertices = 0,
358 const DtSimulationAddress& addr = DtSimSendToAll);
366 virtual void createDisaggregationArea(
367 const DtSimulationAddress& addr,
368 const std::vector<DtVector>& vertices,
369 const std::string& uniqueName =
"",
370 const std::string& label =
"",
371 unsigned int rId = 0);
377 virtual unsigned int createDisaggregationArea(
379 const DtSimulationAddress& addr,
380 const std::vector<DtVector>& vertices,
381 const std::string& uniqueName =
"",
382 const std::string& label =
"") ;
385 virtual void modifyDisaggregationArea(
386 const std::string& uniqueId,
387 std::string* uniqueName = 0,
388 std::string* label = 0,
389 std::vector<DtVector>* newVertices = 0,
390 const DtSimulationAddress& addr = DtSimSendToAll);
402 virtual unsigned int createOverlayObject(
403 const DtSimulationAddress& addr,
404 const DtEntityType& type,
405 const std::vector<DtVector>& vertices,
406 const DtForceType& force,
407 const std::string& name,
408 const std::string& label,
410 const std::string& parentName,
413 const DtAppearance& appearance = DtAppearance::nullAppearance(),
414 const std::string& attachTo =
"",
417 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
418 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
423 virtual void createIndirectArtillery(
425 const std::string& overlayParent,
426 const DtSimulationAddress& addr);
432 virtual void createComputedRoute(
433 const DtSimulationAddress& addr,
436 const std::list<std::string>& obstacleTypes,
437 const std::list<std::string>& pathTypes,
438 const std::string& uniqueName =
"",
439 const std::string& label =
"",
440 const std::string& overlay =
"",
441 const int forceId = DtForceOther,
442 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
443 unsigned int requestId = 0);
446 virtual void cancelCreateComputedRoute(
447 const DtSimulationAddress& addr,
448 unsigned int requestId);
453 virtual void createComputedRoute(
455 const DtSimulationAddress& addr,
458 const std::list<std::string>& obstacleTypes,
459 const std::list<std::string>& pathTypes,
460 const std::string& uniqueName =
"",
461 const std::string& label =
"",
462 const std::string& overlay =
"",
463 const int forceId = DtForceOther,
464 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
473 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
474 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
477 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
478 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
481 virtual void createEntity(
482 const DtSimulationAddress& addr,
483 const DtEntityType& type,
487 const std::string& uniqueName =
"",
488 const std::string& label =
"",
489 bool groundClamp =
true,
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
490 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
491 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
492 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
497 virtual unsigned int createEntity(
499 const DtSimulationAddress& addr,
500 const DtEntityType& type,
504 const std::string& uniqueName =
"",
505 const std::string& label =
"",
506 bool groundClamp =
true,
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
507 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
508 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
509 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
512 virtual unsigned int createAggregate(
514 const DtSimulationAddress& addr,
515 const DtEntityType& type,
519 const std::string& uniqueName,
520 const std::string& label =
"",
521 DtAggregateState initialAggregateState = DtDisaggregated,
522 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
523 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
524 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
525 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
528 virtual void aggregateAs(
const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names,
const DtEntityType& type,
529 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr,
unsigned int requestId = 0);
535 const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names,
const DtEntityType& type,
536 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr);
540 virtual void addToOrganization(
const std::string& childId,
const std::string& superiorId,
541 DtSimulationAddress addr = DtSimSendToAll);
546 virtual void addToForceLevelOrganization(
const std::string& entityId, DtSimulationAddress addr = DtSimSendToAll);
550 virtual void removeFromOrganization(
551 const std::string& objectId,
552 const DtSimulationAddress& addr = DtSimSendToAll);
562 virtual void createEnvironmentalObject(DtSimulationAddress addr, DtEntityType,
int force,
const std::vector<DtVector>&,
564 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
565 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
576 virtual void sendVrfObjectModifyMsg(
577 const DtSimulationAddress& addr,
578 const std::string& entityId,
579 const std::string* name = 0,
580 const std::vector<DtVector>& = std::vector<DtVector>(),
583 const std::string* label = 0,
584 DtAppearance* appearance = 0,
585 const std::string* overlayParent = 0,
586 const std::string* userData = 0,
587 const std::map<std::string, std::string>* extendedData = 0,
588 const std::map<int, DtString>* extendedLabels = 0);
593 virtual void sendVrfObjectCreateMsg(
594 const DtSimulationAddress& addr,
595 unsigned int requestId,
596 const std::string& name,
597 const DtObjectType& type,
598 const std::vector<DtVector>& vertices,
599 const std::string& label,
600 const DtAppearance& appearance,
605 bool createSubObjects,
606 const std::string& overlayParent =
"",
607 bool clampToGroundFlag =
true,
608 const std::string& initialFormation =
"",
609 DtAggregateState initialAggregateState = DtDisaggregated,
610 const std::string& userData =
"",
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
611 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>(),
612 const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
613 const std::map<int, DtString>& extendedLabels = std::map<int, DtString>());
624 virtual void removeCreateComputedRouteCallbackFunction(
int rId);
632 virtual void sendVrfOverlayObjectModifyMsg(
633 const DtSimulationAddress& addr,
634 const std::string&
id,
636 const std::string* parentName = 0,
637 const std::string* attachTo = 0,
638 const std::string* userData = 0,
639 const std::map<std::string, std::string>* extendedData = 0);
642 virtual void sendVrfIndirectArtilleryObjectModifyMsg(
643 const DtSimulationAddress& addr,
644 const DtEntityIdentifier&
id,
655 virtual void setLabel(
656 const std::string&
id,
const std::string& label,
657 const DtSimulationAddress& addr = DtSimSendToAll);
660 virtual void setExtendedLabels(
661 const std::string&
id,
const std::map<int, DtString>& extendedLabels,
662 const DtSimulationAddress& addr = DtSimSendToAll);
665 virtual void setOverlayParent(
666 const std::string&
id,
const std::string& label,
667 const DtSimulationAddress& addr = DtSimSendToAll);
670 virtual void setAltitude(
671 const std::string& name,
double altitude,
bool aboveGroundLevel =
false,
672 const DtSimulationAddress& addr = DtSimSendToAll);
675 virtual void setLocation(
676 const std::string& name,
DtVector coord,
677 const DtSimulationAddress& addr = DtSimSendToAll);
682 virtual void setAppearance(
683 const std::string& name,
int appearance,
684 const DtSimulationAddress& addr = DtSimSendToAll);
689 virtual void setCapabilities(
690 const std::string& name,
int capabilities,
691 const DtSimulationAddress& addr = DtSimSendToAll);
694 virtual void setHeading(
695 const std::string& name,
double degrees,
696 const DtSimulationAddress& addr = DtSimSendToAll);
699 virtual void setForce(
700 const std::string& name, DtForceType force,
701 const DtSimulationAddress& addr = DtSimSendToAll);
704 virtual void setResource(
const std::string& name,
705 const char* resourceType,
double value,
706 const DtSimulationAddress& addr = DtSimSendToAll);
711 virtual void setRulesOfEngagement(
712 const std::string& name,
const char* rulesType,
713 const DtSimulationAddress& addr = DtSimSendToAll);
716 virtual void setSectorOfResponsibility(
717 const std::string& name,
double center,
double size,
718 const DtSimulationAddress& addr = DtSimSendToAll);
723 virtual void setSpeed(
724 const std::string& name,
double speed,
725 const DtSimulationAddress& addr = DtSimSendToAll);
728 virtual void setTarget(
729 const std::string& name,
const std::string& target,
730 const DtSimulationAddress& addr = DtSimSendToAll);
734 virtual void setSuperior(
735 const std::string& name,
const std::string& superior,
736 const DtSimulationAddress& addr = DtSimSendToAll);
741 virtual void setTaskedBySuperior(
const std::string& name,
742 const DtSimulationAddress& addr = DtSimSendToAll);
745 virtual void setConcealed(
const std::string& name,
746 bool yes,
const DtSimulationAddress& addr = DtSimSendToAll);
749 virtual void setEmitter(
const std::string& name,
750 int emitterId,
bool on,
751 const DtSimulationAddress& addr = DtSimSendToAll);
754 virtual void setIff(
const std::string& name,
755 bool mode1on,
int mode1code,
756 bool mode2on,
int mode2code,
757 bool mode3on,
int mode3code,
758 bool mode4on,
int mode4code,
759 DtIffAtcNavaidsAltParm4 altParm4,
760 bool modeCon,
bool useAltModeC,
761 bool modeSon,
bool emergency,
762 bool flash,
bool sti,
bool modeSTcasI,
763 int pin,
bool mode5LevelSelection,
764 unsigned int messageFormatsPresent,
unsigned int nationalOrigin,
765 unsigned int navigationSource,
unsigned int figureOfMerit,
766 const DtSimulationAddress& addr = DtSimSendToAll);
771 virtual void restore(
const std::string& name,
772 const DtSimulationAddress& addr = DtSimSendToAll);
776 virtual void setDestroyed(
const std::string& name,
777 const DtSimulationAddress& addr = DtSimSendToAll);
780 virtual void setLifeformWeaponState(
781 const std::string& name, DtWeaponState weapon,
782 const DtSimulationAddress& addr = DtSimSendToAll);
785 virtual void setLifeformPosture(
786 const std::string& name, DtLifeformState posture,
787 const DtSimulationAddress& addr = DtSimSendToAll);
790 virtual void setAggregateFormation(
791 const std::string& leader,
const std::string& formationName,
792 const DtSimulationAddress& addr = DtSimSendToAll);
797 virtual void reorganizeAggregate(
const std::string& leader,
798 const DtSimulationAddress& addr = DtSimSendToAll);
803 virtual void disaggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
808 virtual void aggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
811 virtual void setJoystickEnabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
814 virtual void setJoystickDisabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
818 virtual void sendSetDataMsg(
820 const DtSimulationAddress& addr = DtSimSendToAll,
821 bool updateScenario =
true);
825 virtual void sendSetRequest(
const DtSetDataRequest& s,
const std::string& name,
826 const DtSimulationAddress& addr = DtSimSendToAll,
bool updateScenario =
true);
829 virtual void sendSetRequest(
const DtSetDataRequest& s,
const std::vector<std::string>& names,
830 const DtSimulationAddress& addr = DtSimSendToAll,
bool updateScenario =
true);
837 virtual void requestIndirectArtilleryInformation(
const DtString&);
846 virtual void moveAlongRoute(
847 const std::string& entityName,
const std::string& routeName,
848 const DtSimulationAddress& addr = DtSimSendToAll);
852 virtual void moveToWaypoint(
853 const std::string& entityName,
const std::string& waypoint,
854 const DtSimulationAddress& addr = DtSimSendToAll);
859 virtual void moveToLocation(
860 const std::string& entityName,
const DtVector& destinationLocation,
861 const DtSimulationAddress& addr = DtSimSendToAll);
865 virtual void patrolBetweenWaypoints(
866 const std::string& name,
867 const std::string& waypoint1,
const std::string& waypoint2,
868 const DtSimulationAddress& addr = DtSimSendToAll);
872 virtual void patrolAlongRoute(
873 const std::string& name,
const std::string& route,
874 const DtSimulationAddress& addr = DtSimSendToAll);
881 virtual void followEntity(
882 const std::string& name,
883 const std::string& leader,
const DtVector& offset,
884 const DtSimulationAddress& addr = DtSimSendToAll);
889 const std::string& name,
890 const DtSimulationAddress& addr = DtSimSendToAll);
894 virtual void waitDuration(
895 const std::string& name,
DtTime duration,
896 const DtSimulationAddress& addr = DtSimSendToAll);
901 virtual void waitElapsed(
902 const std::string& name,
DtTime elapsed,
903 const DtSimulationAddress& addr = DtSimSendToAll);
909 virtual void requestCurrentTasks(
const std::string& entityName);
914 virtual void subscribeForTaskInformation(
const std::string& entityName);
918 virtual void unsubscribeForTaskInformation(
const std::string& entityName);
923 virtual void sendTaskMsg(
925 const DtSimulationAddress& addr = DtSimSendToAll);
928 virtual void sendTaskRequest(
const DtSimTask& s,
const std::vector<std::string>& names,
const DtSimulationAddress& addr = DtSimSendToAll);
930 virtual void sendTaskRequest(
const DtSimTask& s,
const std::string& name,
const DtSimulationAddress& addr = DtSimSendToAll);
936 virtual void requestTasksAndSetsFor(std::vector<DtString> name);
948 virtual void abandonPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
952 virtual void skipTask(std::string name, DtSimulationAddress addr = DtSimSendToAll);
955 virtual void cancelReactiveTask(std::string name, std::string scriptId, DtSimulationAddress addr = DtSimSendToAll);
959 virtual void restartPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
962 virtual void assignPlanByName(std::string name,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
965 virtual void assignMultiplePlanByName(std::vector<std::string> names,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
972 virtual void requestPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
979 virtual void subscribePlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
987 virtual void requestMultiplePlans(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
993 virtual void requestGlobalPlans(DtSimulationAddress addr = DtSimSendToAll);
999 virtual void requestGlobalPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
1003 virtual void assignGlobalPlanByName(std::string name,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
1006 virtual void deleteGlobalPlan(std::string, DtSimulationAddress addr = DtSimSendToAll);
1010 virtual void setTimeoutInterval(
int);
1017 virtual void requestDIGuyAppearancesAndAnimations(std::vector<DtString> name);
1025 virtual void requestResourcesFor(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
1028 virtual void sendMessageToObject(
const DtVrfObjectMessage&, DtSimulationAddress addr = DtSimSendToAll);
1031 virtual void sendObjectMessageAndDeleteContent(
DtVrfObjectMessage* message, DtSimulationAddress addr = DtSimSendToAll);
1034 virtual void requestForces(DtSimulationAddress addr);
1038 virtual void requestDoctrines();
1042 virtual void requestAssignedDoctrines();
1045 virtual unsigned long generateRequestId();
1056 virtual void addInterfaceContentCreatorFcn(
int t, DtInterfaceContentCreatorFcn);
1075 virtual void sendMessage(
const DtSimInterfaceContent& message, DtSimulationAddress addr = DtSimSendToAll);
1076 virtual void sendMessageAndDeleteContent(
DtSimInterfaceContent* message, DtSimulationAddress addr = DtSimSendToAll);
1084 virtual void embarkOn(
const std::vector<std::string>& children,
const std::string& parentName,
1085 bool useSlot =
true,
const DtVector& overridePosition = DtVector::zero(), DtSimulationAddress addr = DtSimSendToAll);
1088 virtual void disembark(
const std::vector<std::string>& children, DtSimulationAddress addr = DtSimSendToAll);
1091 virtual void disembarkAll(
const std::vector<std::string>& parents, DtSimulationAddress addr = DtSimSendToAll);
1094 virtual void attachTo(
const std::vector<std::string>& ids,
const std::string& parentName);
1097 virtual void detachAll(
const std::vector<std::string>& ids);
1101 virtual void logObjectConsoleToFile(
const std::string& name,
const std::string& filename);
1105 virtual void stopLoggingObjectConsoleToFile(
const std::string& objectName);
1108 virtual void setObjectNotifyLevel(
const std::string& name,
int);
1111 virtual void setTimeOfDay(time_t seconds);
1112 virtual void setTimeOfDay(
int hours,
int minutes,
int seconds);
1115 virtual void setDateAndTimeOfDay(time_t seconds);
1116 virtual void setDateAndTimeOfDay(
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
1119 virtual void setUseDayNightIlluminationModel(
bool);
1122 virtual void setAggregateOnCreate(
bool);
1123 bool aggregateOnCreate()
const;
1127 virtual void requestScenarioDescription(DtSimulationAddress);
1130 virtual void setScenarioDescription(
const DtString&, DtSimulationAddress addr = DtSimSendToAll);
1134 virtual void sendLoggerSetFilename(std::string filename);
1136 virtual void sendLoggerRecordMessage();
1138 virtual void sendLoggerStopMessage();
1145 virtual void processComputedRouteCreated(
DtSimMessage*);
1148 virtual void setActivated(
bool);
1157 virtual bool addStatementsAndSendPlan(
const DtPlan& plan,
DtIfPlan& planMsg,
1158 const DtSimulationAddress& addr = DtSimSendToAll,
1159 int *retiStatus = 0,
DtString* retsStmt = 0);