30 #include <vlpi/entityType.h>
31 #include <matrix/vlVector.h>
38 #include <boost/function.hpp>
57 class DtGuiThreadNetworkCallbackManager;
111 virtual void newScenario(
const DtScenario*,
int startTimeOfDay = 12 * 3600);
113 virtual void newScenario(
const DtFilename& terrainDatabase,
int startTimeOfDay = 12 * 3600);
119 virtual void importScenarioDescriptionFile(
const std::string& file, DtSimulationAddress,
const std::string& description ,
120 const std::map<std::string, std::string>& importData);
124 virtual void exportScenarioDescriptionFile(
const std::string& file, DtSimulationAddress,
const std::string& description,
125 const std::map<std::string, std::string>& importData);
144 virtual bool loadScenario(
const DtFilename&);
161 virtual void closeScenario();
168 virtual void runScenario(DtSimulationAddress addr = DtSimSendToAll);
170 virtual void pauseScenario(DtSimulationAddress addr = DtSimSendToAll);
172 virtual void rewindScenario(DtSimulationAddress addr = DtSimSendToAll);
174 virtual void exitServer(DtSimulationAddress addr = DtSimSendToAll);
176 virtual void stepScenario(DtSimulationAddress addr = DtSimSendToAll);
182 virtual void deleteObject(std::string name, DtSimulationAddress addr = DtSimSendToAll);
191 virtual void createWaypoint(
193 const std::string& uniqueName =
"",
194 const std::string& label =
"",
195 const DtSimulationAddress& addr = DtSimSendToAll,
196 unsigned int requestId = 0);
201 virtual void createWaypoint(
204 const std::string& uniqueName =
"",
205 const std::string& label =
"",
206 const DtSimulationAddress& addr = DtSimSendToAll);
209 virtual void modifyWaypoint(
210 const std::string& uniqueId,
211 std::string* uniqueName = 0,
212 std::string* label = 0,
214 const DtSimulationAddress& addr = DtSimSendToAll);
220 virtual void createRoute(
221 const std::vector<DtVector>& vertices,
222 const std::string& uniqueName =
"",
223 const std::string& label =
"",
224 const DtSimulationAddress& addr = DtSimSendToAll,
225 unsigned int rId = 0);
230 virtual void createRoute(
232 const std::vector<DtVector>& vertices,
233 const std::string& uniqueName =
"",
234 const std::string& label =
"",
235 const DtSimulationAddress& addr = DtSimSendToAll) ;
238 virtual void modifyRoute(
239 const std::string& uniqueId,
240 std::string* uniqueName = 0,
241 std::string* label = 0,
242 std::vector<DtVector>* vertices = 0,
243 const DtSimulationAddress& addr = DtSimSendToAll);
249 virtual void createPhaseLine(
252 const std::string& uniqueName =
"",
253 const std::string& label =
"",
254 const DtSimulationAddress& addr = DtSimSendToAll,
255 unsigned int rId = 0);
260 virtual void createPhaseLine(
264 const std::string& uniqueName =
"",
265 const std::string& label =
"",
266 const DtSimulationAddress& addr = DtSimSendToAll);
269 virtual void modifyPhaseLine(
270 const std::string& uniqueId,
271 std::string* uniqueName = 0,
272 std::string* label = 0,
275 const DtSimulationAddress& addr = DtSimSendToAll);
282 virtual void createControlArea(
283 const std::vector<DtVector>& vertices,
284 const std::string& uniqueName =
"",
285 const std::string& label =
"",
286 const DtSimulationAddress& addr = DtSimSendToAll,
287 unsigned int rId = 0);
292 virtual void createControlArea(
294 const std::vector<DtVector>& vertices,
295 const std::string& uniqueName =
"",
296 const std::string& label =
"",
297 const DtSimulationAddress& addr = DtSimSendToAll) ;
300 virtual void modifyControlArea(
301 const std::string& uniqueId,
302 std::string* uniqueName = 0,
303 std::string* label = 0,
304 std::vector<DtVector>* newVertices = 0,
305 const DtSimulationAddress& addr = DtSimSendToAll);
312 virtual void createObstacle(
313 const std::vector<DtVector>& vertices,
314 const std::string& uniqueName =
"",
315 const std::string& label =
"",
316 const DtSimulationAddress& addr = DtSimSendToAll,
317 unsigned int rId = 0);
322 virtual void createObstacle(
324 const std::vector<DtVector>& vertices,
325 const std::string& uniqueName =
"",
326 const std::string& label =
"",
327 const DtSimulationAddress& addr = DtSimSendToAll) ;
330 virtual void modifyObstacle(
331 const std::string& uniqueId,
332 std::string* uniqueName = 0,
333 std::string* label = 0,
334 std::vector<DtVector>* newVertices = 0,
335 const DtSimulationAddress& addr = DtSimSendToAll);
343 virtual void createDisaggregationArea(
344 const std::vector<DtVector>& vertices,
345 const std::string& uniqueName =
"",
346 const std::string& label =
"",
347 const DtSimulationAddress& addr = DtSimSendToAll,
348 unsigned int rId = 0);
354 virtual void createDisaggregationArea(
356 const std::vector<DtVector>& vertices,
357 const std::string& uniqueName =
"",
358 const std::string& label =
"",
359 const DtSimulationAddress& addr = DtSimSendToAll) ;
362 virtual void modifyDisaggregationArea(
363 const std::string& uniqueId,
364 std::string* uniqueName = 0,
365 std::string* label = 0,
366 std::vector<DtVector>* newVertices = 0,
367 const DtSimulationAddress& addr = DtSimSendToAll);
379 virtual void createOverlayObject(
380 const DtEntityType& type,
381 const std::vector<DtVector>& vertices,
382 const DtForceType& force,
383 const std::string& name,
384 const std::string& label,
386 const std::string& parentName,
389 const DtAppearance& appearance = DtAppearance::nullAppearance(),
390 const std::string& attachTo =
"",
394 const DtSimulationAddress& addr = DtSimSendToAll);
398 virtual void createIndirectArtillery(
400 const DtSimulationAddress& addr);
409 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
410 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
413 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
414 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
417 virtual void createEntity(
418 const DtEntityType& type,
422 const std::string& uniqueName =
"",
423 const std::string& label =
"",
424 const DtSimulationAddress& addr = DtSimSendToAll,
425 bool groundClamp =
true,
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
426 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
431 virtual void createEntity(
433 const DtEntityType& type,
437 const std::string& uniqueName =
"",
438 const std::string& label =
"",
439 const DtSimulationAddress& addr = DtSimSendToAll,
440 bool groundClamp =
true,
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
441 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
444 virtual void createAggregate(
446 const DtEntityType& type,
450 const std::string& uniqueName,
451 const std::string& label =
"",
452 const DtSimulationAddress& addr = DtSimSendToAll,
453 DtAggregateState initialAggregateState = DtDisaggregated,
454 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
455 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
458 virtual void aggregateAs(
const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names,
const DtEntityType& type,
459 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr,
unsigned int requestId = 0);
465 const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names,
const DtEntityType& type,
466 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr);
470 virtual void addToOrganization(
const std::string& childId,
const std::string& superiorId,
471 DtSimulationAddress addr = DtSimSendToAll);
476 virtual void addToForceLevelOrganization(
const std::string& entityId, DtSimulationAddress addr = DtSimSendToAll);
480 virtual void removeFromOrganization(
481 const std::string& objectId,
482 const DtSimulationAddress& addr = DtSimSendToAll);
492 virtual void createEnvironmentalObject(DtSimulationAddress addr, DtEntityType,
int force,
const std::vector<DtVector>&,
501 virtual void sendVrfObjectModifyMsg(
502 const DtSimulationAddress& addr,
503 const std::string& entityId,
504 const std::string* name = 0,
505 const std::vector<DtVector>& = std::vector<DtVector>(),
508 const std::string* label = 0,
509 DtAppearance* appearance = 0,
510 const std::string* overlayParent = 0,
511 const std::string* userData = 0);
516 virtual void sendVrfObjectCreateMsg(
517 const DtSimulationAddress& addr,
518 unsigned int requestId,
519 const std::string& name,
521 const std::vector<DtVector>& vertices,
522 const std::string& label,
523 const DtAppearance& appearance,
528 bool createSubObjects,
529 bool clampToGroundFlag =
true,
530 const std::string& initialFormation =
"",
531 DtAggregateState initialAggregateState = DtDisaggregated,
532 const std::string& userData =
"",
const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(),
533 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>());
542 virtual void sendVrfOverlayObjectModifyMsg(
543 const DtSimulationAddress& addr,
544 const std::string&
id,
546 const std::string* parentName = 0,
547 const std::string* attachTo = 0,
548 const std::string* userData = 0);
551 virtual void sendVrfIndirectArtilleryObjectModifyMsg(
552 const DtSimulationAddress& addr,
553 const DtEntityIdentifier&
id,
564 virtual void setLabel(
565 const std::string&
id,
const std::string& label,
566 const DtSimulationAddress& addr = DtSimSendToAll);
569 virtual void setOverlayParent(
570 const std::string&
id,
const std::string& label,
571 const DtSimulationAddress& addr = DtSimSendToAll);
574 virtual void setAltitude(
575 const std::string& name,
double altitude,
576 const DtSimulationAddress& addr = DtSimSendToAll);
579 virtual void setLocation(
580 const std::string& name,
DtVector coord,
581 const DtSimulationAddress& addr = DtSimSendToAll);
586 virtual void setAppearance(
587 const std::string& name,
int appearance,
588 const DtSimulationAddress& addr = DtSimSendToAll);
593 virtual void setCapabilities(
594 const std::string& name,
int capabilities,
595 const DtSimulationAddress& addr = DtSimSendToAll);
598 virtual void setHeading(
599 const std::string& name,
double degrees,
600 const DtSimulationAddress& addr = DtSimSendToAll);
603 virtual void setForce(
604 const std::string& name, DtForceType force,
605 const DtSimulationAddress& addr = DtSimSendToAll);
610 virtual void setResource(
const std::string& name,
611 const char* resourceType,
double value,
612 const DtSimulationAddress& addr = DtSimSendToAll);
617 virtual void setRulesOfEngagement(
618 const std::string& name,
const char* rulesType,
619 const DtSimulationAddress& addr = DtSimSendToAll);
622 virtual void setSectorOfResponsibility(
623 const std::string& name,
double center,
double size,
624 const DtSimulationAddress& addr = DtSimSendToAll);
629 virtual void setSpeed(
630 const std::string& name,
double speed,
631 const DtSimulationAddress& addr = DtSimSendToAll);
634 virtual void setTarget(
635 const std::string& name,
const std::string& target,
636 const DtSimulationAddress& addr = DtSimSendToAll);
641 virtual void setTaskedBySuperior(
const std::string& name,
642 const DtSimulationAddress& addr = DtSimSendToAll);
645 virtual void setConcealed(
const std::string& name,
646 bool yes,
const DtSimulationAddress& addr = DtSimSendToAll);
649 virtual void setEmitter(
const std::string& name,
650 int emitterId,
bool on,
651 const DtSimulationAddress& addr = DtSimSendToAll);
654 virtual void setIff(
const std::string& name,
655 bool mode1on,
int mode1code,
656 bool mode2on,
int mode2code,
657 bool mode3on,
int mode3code,
658 bool mode4on,
int mode4code,
659 DtIffAtcNavaidsAltParm4 altParm4,
660 bool mode5on,
bool useAltMode5,
661 bool modeSon,
bool emergency,
662 bool flash,
bool sti,
bool modeSTcasI,
663 const DtSimulationAddress& addr = DtSimSendToAll);
668 virtual void restore(
const std::string& name,
669 const DtSimulationAddress& addr = DtSimSendToAll);
673 virtual void setDestroyed(
const std::string& name,
674 const DtSimulationAddress& addr = DtSimSendToAll);
677 virtual void setLifeformWeaponState(
678 const std::string& name, DtWeaponState weapon,
679 const DtSimulationAddress& addr = DtSimSendToAll);
682 virtual void setLifeformPosture(
683 const std::string& name, DtLifeformState posture,
684 const DtSimulationAddress& addr = DtSimSendToAll);
687 virtual void setAggregateFormation(
688 const std::string& leader,
const std::string& formationName,
689 const DtSimulationAddress& addr = DtSimSendToAll);
694 virtual void reorganizeAggregate(
const std::string& leader,
695 const DtSimulationAddress& addr = DtSimSendToAll);
700 virtual void disaggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
705 virtual void aggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
708 virtual void setJoystickEnabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
711 virtual void setJoystickDisabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
715 virtual void sendSetDataMsg(
717 const DtSimulationAddress& addr = DtSimSendToAll,
718 bool updateScenario =
true);
722 virtual void sendSetRequest(
const DtSetDataRequest& s,
const std::string& name,
723 const DtSimulationAddress& addr = DtSimSendToAll,
bool updateScenario =
true);
726 virtual void sendSetRequest(
const DtSetDataRequest& s,
const std::vector<std::string>& names,
727 const DtSimulationAddress& addr = DtSimSendToAll,
bool updateScenario =
true);
734 virtual void requestIndirectArtilleryInformation(
const DtString&);
743 virtual void moveAlongRoute(
744 const std::string& entityName,
const std::string& routeName,
745 const DtSimulationAddress& addr = DtSimSendToAll);
749 virtual void moveToWaypoint(
750 const std::string& entityName,
const std::string& waypoint,
751 const DtSimulationAddress& addr = DtSimSendToAll);
756 virtual void moveToLocation(
757 const std::string& entityName,
const DtVector& destinationLocation,
758 const DtSimulationAddress& addr = DtSimSendToAll);
762 virtual void patrolBetweenWaypoints(
763 const std::string& name,
764 const std::string& waypoint1,
const std::string& waypoint2,
765 const DtSimulationAddress& addr = DtSimSendToAll);
769 virtual void patrolAlongRoute(
770 const std::string& name,
const std::string& route,
771 const DtSimulationAddress& addr = DtSimSendToAll);
778 virtual void followEntity(
779 const std::string& name,
780 const std::string& leader,
const DtVector& offset,
781 const DtSimulationAddress& addr = DtSimSendToAll);
786 const std::string& name,
787 const DtSimulationAddress& addr = DtSimSendToAll);
791 virtual void waitDuration(
792 const std::string& name, DtTime duration,
793 const DtSimulationAddress& addr = DtSimSendToAll);
798 virtual void waitElapsed(
799 const std::string& name, DtTime elapsed,
800 const DtSimulationAddress& addr = DtSimSendToAll);
806 virtual void requestCurrentTasks(
const std::string& entityName);
811 virtual void subscribeForTaskInformation(
const std::string& entityName);
815 virtual void unsubscribeForTaskInformation(
const std::string& entityName);
820 virtual void sendTaskMsg(
822 const DtSimulationAddress& addr = DtSimSendToAll);
825 virtual void sendTaskRequest(
const DtSimTask& s,
const std::vector<std::string>& names,
const DtSimulationAddress& addr = DtSimSendToAll);
827 virtual void sendTaskRequest(
const DtSimTask& s,
const std::string& name,
const DtSimulationAddress& addr = DtSimSendToAll);
833 virtual void requestTasksAndSetsFor(std::vector<DtString> name);
845 virtual void abandonPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
849 virtual void skipTask(std::string name, DtSimulationAddress addr = DtSimSendToAll);
853 virtual void restartPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
856 virtual void assignPlanByName(std::string name,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
859 virtual void assignMultiplePlanByName(std::vector<std::string> names,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
866 virtual void requestPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
873 virtual void subscribePlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
881 virtual void requestMultiplePlans(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
887 virtual void requestGlobalPlans(DtSimulationAddress addr = DtSimSendToAll);
893 virtual void requestGlobalPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
897 virtual void assignGlobalPlanByName(std::string name,
const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
900 virtual void deleteGlobalPlan(std::string, DtSimulationAddress addr = DtSimSendToAll);
904 virtual void setTimeoutInterval(
int);
911 virtual void requestDIGuyAppearancesAndAnimations(std::vector<DtString> name);
919 virtual void requestResourcesFor(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
922 virtual void sendMessageToObject(
const DtVrfObjectMessage&, DtSimulationAddress addr = DtSimSendToAll);
925 virtual void sendObjectMessageAndDeleteContent(
DtVrfObjectMessage* message, DtSimulationAddress addr = DtSimSendToAll);
928 virtual void requestForces(DtSimulationAddress addr);
931 virtual int generateRequestId();
961 virtual void sendMessage(
const DtSimInterfaceContent& message, DtSimulationAddress addr = DtSimSendToAll);
962 virtual void sendMessageAndDeleteContent(
DtSimInterfaceContent* message, DtSimulationAddress addr = DtSimSendToAll);
970 virtual void embarkOn(
const std::vector<std::string>& children,
const std::string& parentName,
971 bool useSlot =
true,
const DtVector& overridePosition = DtVector::zero(), DtSimulationAddress addr = DtSimSendToAll);
974 virtual void disembark(
const std::vector<std::string>& children, DtSimulationAddress addr = DtSimSendToAll);
977 virtual void disembarkAll(
const std::vector<std::string>& parents, DtSimulationAddress addr = DtSimSendToAll);
980 virtual void attachTo(
const std::vector<std::string>& ids,
const std::string& parentName);
983 virtual void detachAll(
const std::vector<std::string>& ids);
987 virtual void logObjectConsoleToFile(
const std::string& name,
const std::string& filename);
991 virtual void stopLoggingObjectConsoleToFile(
const std::string& objectName);
994 virtual void setObjectNotifyLevel(
const std::string& name,
int);
997 virtual void setTimeOfDay(
int seconds);
1000 virtual void setAggregateOnCreate(
bool);
1001 bool aggregateOnCreate()
const;
1005 virtual void requestScenarioDescription(DtSimulationAddress);
1008 virtual void setScenarioDescription(
const DtString&, DtSimulationAddress addr = DtSimSendToAll);
1012 virtual void sendLoggerSetFilename(std::string filename);
1014 virtual void sendLoggerRecordMessage();
1016 virtual void sendLoggerStopMessage();
1023 virtual void setActivated(
bool);
1032 virtual bool addStatementsAndSendPlan(
const DtPlan& plan,
DtIfPlan& planMsg,
1033 const DtSimulationAddress& addr = DtSimSendToAll,
1034 int *retiStatus = 0,
DtString* retsStmt = 0);