![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtGuiThreadVrfRemoteController.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 00015 #pragma once 00016 00017 #include <vrfGuiCore/vrfGuiCore.h> 00018 #include <vrfGuiCore/DtQueuedManager.h> 00019 #include <vrfGuiCore/DtEnvironmentalCreationData.h> 00020 #include <vrfGuiCore/DtEntityCreationData.h> 00021 #include <vrfGuiCore/DtVrfSimBackEndManager.h> 00022 #include <vrfGuiCore/DtVrfBackendSettingsManager.h> 00023 #include <vrfGuiCore/DtVrfSpotReportManager.h> 00024 #include <vrfGuiCore/DtVrfResourceManager.h> 00025 #include <vrfGuiCore/DtSharedNetworkSignaler.h> 00026 00027 #include <vrvUtil/DtVirtualBaseClass.h> 00028 #include <vrvCore/DtSelectionManager.h> 00029 #include <vrvCore/DtEntityState.h> 00030 #include <vrvUtil/signalslib.h> 00031 #include <vrvCore/DtDe.h> 00032 00033 #include <vlpi/entityType.h> 00034 #include <matrix/vlVector.h> 00035 00036 #include <vrfmsgs/msgExec.h> 00037 #include <vrfmsgs/vrfObjectMessageExecutive.h> 00038 #include <vrfplan/plan.h> 00039 #include <vrfutil/scenario.h> 00040 00041 #include <boost/function.hpp> 00042 00043 class DtScenarioLoadInformation; 00044 class DtSetDataRequest; 00045 class DtIfVrfObjectCreated; 00046 class DtSimTask; 00047 class DtAdminMessage; 00048 class DtSimInterfaceContent; 00049 class DtVrfOverlayObjectModify; 00050 class DtIfPlan; 00051 class DtIfIndirectArtilleryData; 00052 class DtIfCreateVrfObject; 00053 class DtIfModifyVrfObject; 00054 00055 00056 typedef boost::function<void (DtString, const DtEntityIdentifier&)> DtVrfObjectCreatedCallbackFunction; 00057 00058 namespace makVrf 00059 { 00060 class DtNetworkMessageCallbackManager; 00061 00077 class DT_DLL_VRFGUICORE DtGuiThreadVrfRemoteController : public DtQueuedManager 00078 { 00079 public: 00080 00081 DtGuiThreadVrfRemoteController(makVrv::DtDe&); 00082 virtual ~DtGuiThreadVrfRemoteController(); 00083 00085 static DtGuiThreadVrfRemoteController& instance(makVrv::DtDe& de); 00086 00087 public: 00090 DtVrfBackendSettingsManager& backendSettingsManager(); 00091 00094 DtVrfSimBackendManager& backendManager(); 00095 00097 DtVrfSpotReportManager& spotReportManager(); 00098 00100 DtVrfResourceManager& resourceManager(); 00101 00103 DtNetworkMessageCallbackManager& messageHandler(); 00104 00105 public: 00108 00114 virtual void newScenario(const DtScenario*, int startTimeOfDay = 12 * 3600); 00116 virtual void newScenario(const DtFilename& terrainDatabase, int startTimeOfDay = 12 * 3600); 00117 00133 virtual void loadScenario(const DtScenarioLoadInformation&); 00135 virtual bool loadScenario(const DtFilename&); 00136 00149 virtual void saveScenario(const DtScenario*, DtPreserveMappingsFcn fcn = 0, void* userData = 0); 00150 00152 virtual void closeScenario(); 00154 00157 00159 virtual void runScenario(DtSimulationAddress addr = DtSimSendToAll); 00161 virtual void pauseScenario(DtSimulationAddress addr = DtSimSendToAll); 00163 virtual void rewindScenario(DtSimulationAddress addr = DtSimSendToAll); 00165 virtual void exitServer(DtSimulationAddress addr = DtSimSendToAll); 00167 virtual void stepScenario(DtSimulationAddress addr = DtSimSendToAll); 00169 00173 virtual void deleteObject(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00174 00177 00182 virtual void createWaypoint( 00183 const DtVector& geocentricPosition, 00184 const std::string& uniqueName = "", 00185 const std::string& label = "", 00186 const DtSimulationAddress& addr = DtSimSendToAll, 00187 unsigned int requestId = 0); 00188 00192 virtual void createWaypoint( 00193 DtVrfObjectCreatedCallbackFunction fcn, 00194 const DtVector& geocentricPosition, 00195 const std::string& uniqueName = "", 00196 const std::string& label = "", 00197 const DtSimulationAddress& addr = DtSimSendToAll); 00198 00200 virtual void modifyWaypoint( 00201 const std::string& uniqueId, 00202 std::string* uniqueName = 0, 00203 std::string* label = 0, 00204 DtVector* geocentricPosition = 0, 00205 const DtSimulationAddress& addr = DtSimSendToAll); 00206 00211 virtual void createRoute( 00212 const std::vector<DtVector>& vertices, 00213 const std::string& uniqueName = "", 00214 const std::string& label = "", 00215 const DtSimulationAddress& addr = DtSimSendToAll, 00216 unsigned int rId = 0); 00217 00221 virtual void createRoute( 00222 DtVrfObjectCreatedCallbackFunction fcn, 00223 const std::vector<DtVector>& vertices, 00224 const std::string& uniqueName = "", 00225 const std::string& label = "", 00226 const DtSimulationAddress& addr = DtSimSendToAll) ; 00227 00229 virtual void modifyRoute( 00230 const std::string& uniqueId, 00231 std::string* uniqueName = 0, 00232 std::string* label = 0, 00233 std::vector<DtVector>* vertices = 0, 00234 const DtSimulationAddress& addr = DtSimSendToAll); 00235 00240 virtual void createPhaseLine( 00241 const DtVector& dbPoint1, 00242 const DtVector& dbPoint2, 00243 const std::string& uniqueName = "", 00244 const std::string& label = "", 00245 const DtSimulationAddress& addr = DtSimSendToAll, 00246 unsigned int rId = 0); 00247 00251 virtual void createPhaseLine( 00252 DtVrfObjectCreatedCallbackFunction fcn, 00253 const DtVector& dbPoint1, 00254 const DtVector& dbPoint2, 00255 const std::string& uniqueName = "", 00256 const std::string& label = "", 00257 const DtSimulationAddress& addr = DtSimSendToAll); 00258 00260 virtual void modifyPhaseLine( 00261 const std::string& uniqueId, 00262 std::string* uniqueName = 0, 00263 std::string* label = 0, 00264 DtVector* newDbPoint1 = 0, 00265 DtVector* newDbPoint2 = 0, 00266 const DtSimulationAddress& addr = DtSimSendToAll); 00267 00273 virtual void createControlArea( 00274 const std::vector<DtVector>& vertices, 00275 const std::string& uniqueName = "", 00276 const std::string& label = "", 00277 const DtSimulationAddress& addr = DtSimSendToAll, 00278 unsigned int rId = 0); 00279 00283 virtual void createControlArea( 00284 DtVrfObjectCreatedCallbackFunction fcn, 00285 const std::vector<DtVector>& vertices, 00286 const std::string& uniqueName = "", 00287 const std::string& label = "", 00288 const DtSimulationAddress& addr = DtSimSendToAll) ; 00289 00291 virtual void modifyControlArea( 00292 const std::string& uniqueId, 00293 std::string* uniqueName = 0, 00294 std::string* label = 0, 00295 std::vector<DtVector>* newVertices = 0, 00296 const DtSimulationAddress& addr = DtSimSendToAll); 00297 00303 virtual void createObstacle( 00304 const std::vector<DtVector>& vertices, 00305 const std::string& uniqueName = "", 00306 const std::string& label = "", 00307 const DtSimulationAddress& addr = DtSimSendToAll, 00308 unsigned int rId = 0); 00309 00313 virtual void createObstacle( 00314 DtVrfObjectCreatedCallbackFunction fcn, 00315 const std::vector<DtVector>& vertices, 00316 const std::string& uniqueName = "", 00317 const std::string& label = "", 00318 const DtSimulationAddress& addr = DtSimSendToAll) ; 00319 00321 virtual void modifyObstacle( 00322 const std::string& uniqueId, 00323 std::string* uniqueName = 0, 00324 std::string* label = 0, 00325 std::vector<DtVector>* newVertices = 0, 00326 const DtSimulationAddress& addr = DtSimSendToAll); 00327 00334 virtual void createDisaggregationArea( 00335 const std::vector<DtVector>& vertices, 00336 const std::string& uniqueName = "", 00337 const std::string& label = "", 00338 const DtSimulationAddress& addr = DtSimSendToAll, 00339 unsigned int rId = 0); 00340 00345 virtual void createDisaggregationArea( 00346 DtVrfObjectCreatedCallbackFunction fcn, 00347 const std::vector<DtVector>& vertices, 00348 const std::string& uniqueName = "", 00349 const std::string& label = "", 00350 const DtSimulationAddress& addr = DtSimSendToAll) ; 00351 00353 virtual void modifyDisaggregationArea( 00354 const std::string& uniqueId, 00355 std::string* uniqueName = 0, 00356 std::string* label = 0, 00357 std::vector<DtVector>* newVertices = 0, 00358 const DtSimulationAddress& addr = DtSimSendToAll); 00359 00370 virtual void createOverlayObject( 00371 const DtEntityType& type, 00372 const std::vector<DtVector>& vertices, 00373 const DtForceType& force, 00374 const std::string& name, 00375 const std::string& label, 00376 int color, 00377 const std::string& parentName, 00378 bool projection, 00379 bool closedFigure, 00380 const DtAppearance& appearance = DtAppearance::nullAppearance(), 00381 const std::string& attachTo = "", 00382 char* userData = 0, 00383 int dataSize = 0, 00384 DtVrfObjectCreatedCallbackFunction fcn = 0, 00385 const DtSimulationAddress& addr = DtSimSendToAll); 00386 00389 virtual void createIndirectFire( 00390 const DtIfIndirectArtilleryData& params, 00391 const DtSimulationAddress& addr); 00393 00396 00399 virtual void createEntity(DtVrfObjectCreatedCallbackFunction fcn, DtSimulationAddress addr, DtEntityCreationData, 00400 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(), 00401 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>()); 00402 00403 virtual void createEntity(DtSimulationAddress addr, DtEntityCreationData, 00404 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(), 00405 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>()); 00406 00408 virtual void createEntity( 00409 const DtEntityType& type, 00410 const DtVector& geocentricPosition, 00411 DtForceType force, 00412 DtReal heading, 00413 const std::string& uniqueName = "", 00414 const std::string& label = "", 00415 const DtSimulationAddress& addr = DtSimSendToAll, 00416 bool groundClamp = true, const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(), 00417 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>()); 00418 00422 virtual void createEntity( 00423 DtVrfObjectCreatedCallbackFunction fcn, 00424 const DtEntityType& type, 00425 const DtVector& geocentricPosition, 00426 DtForceType force, 00427 DtReal heading, 00428 const std::string& uniqueName = "", 00429 const std::string& label = "", 00430 const DtSimulationAddress& addr = DtSimSendToAll, 00431 bool groundClamp = true, const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(), 00432 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>()); 00433 00435 virtual void createAggregate( 00436 DtVrfObjectCreatedCallbackFunction fcn, 00437 const DtEntityType& type, 00438 const DtVector& geocentricPosition, 00439 DtForceType force, 00440 DtReal heading, 00441 const std::string& uniqueName, 00442 const std::string& label = "", 00443 const DtSimulationAddress& addr = DtSimSendToAll, 00444 DtAggregateState initialAggregateState = DtDisaggregated, 00445 const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(), 00446 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>()); 00447 00449 virtual void aggregateAs(const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names, const DtEntityType& type, 00450 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr, unsigned int requestId = 0); 00451 00455 virtual void aggregateAs(DtVrfObjectCreatedCallbackFunction fcn, 00456 const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names, const DtEntityType& type, 00457 int force, DtAggregateState initialAggregateState, DtSimulationAddress addr); 00458 00461 virtual void addToOrganization(const std::string& childId, const std::string& superiorId, 00462 DtSimulationAddress addr = DtSimSendToAll); 00463 00467 virtual void addToForceLevelOrganization(const std::string& entityId, DtSimulationAddress addr = DtSimSendToAll); 00468 00471 virtual void removeFromOrganization( 00472 const std::string& objectId, 00473 const DtSimulationAddress& addr = DtSimSendToAll); 00475 00481 00483 virtual void createEnvironmentalObject(DtSimulationAddress addr, DtEntityType, int force, const std::vector<DtVector>&, 00484 const DtEnvironmentalCreationData& data = DtEnvironmentalCreationData()); 00485 00492 virtual void sendVrfObjectModifyMsg( 00493 const DtSimulationAddress& addr, 00494 const std::string& entityId, 00495 const std::string* name = 0, 00496 const std::vector<DtVector>& = std::vector<DtVector>(), 00497 int* force = 0, 00498 double* heading = 0, 00499 const std::string* label = 0, 00500 DtAppearance* appearance = 0, 00501 const std::string* overlayParent = 0, 00502 const std::string* userData = 0); 00503 00507 virtual void sendVrfObjectCreateMsg( 00508 const DtSimulationAddress& addr, 00509 unsigned int requestId, 00510 const std::string& name, 00511 const DtObjectType& type, 00512 const std::vector<DtVector>& vertices, 00513 const std::string& label, 00514 const DtAppearance& appearance, 00515 DtForceType force, 00516 bool projection, 00517 bool closedFigure, 00518 DtReal heading, 00519 bool createSubObjects, 00520 bool clampToGroundFlag = true, 00521 const std::string& initialFormation = "", 00522 DtAggregateState initialAggregateState = DtDisaggregated, 00523 const std::string& userData = "", const std::list<DtAdminContent*>& content = std::list<DtAdminContent*>(), 00524 const std::list<DtSimInterfaceContent*>& ifaceContent = std::list<DtSimInterfaceContent*>()); 00525 00528 virtual unsigned int addCreateCallbackFunction(DtVrfObjectCreatedCallbackFunction); 00529 00533 virtual void sendVrfOverlayObjectModifyMsg( 00534 const DtSimulationAddress& addr, 00535 const std::string& id, 00536 int* color = 0, 00537 const std::string* parentName = 0, 00538 const std::string* attachTo = 0, 00539 const std::string* userData = 0); 00540 00542 virtual void sendVrfIndirectFireObjectModifyMsg( 00543 const DtSimulationAddress& addr, 00544 const DtEntityIdentifier& id, 00545 const DtIfIndirectArtilleryData& mod); 00547 00553 00555 virtual void setLabel( 00556 const std::string& id, const std::string& label, 00557 const DtSimulationAddress& addr = DtSimSendToAll); 00558 00560 virtual void setOverlayParent( 00561 const std::string& id, const std::string& label, 00562 const DtSimulationAddress& addr = DtSimSendToAll); 00563 00565 virtual void setAltitude( 00566 const std::string& name, double altitude, 00567 const DtSimulationAddress& addr = DtSimSendToAll); 00568 00570 virtual void setLocation( 00571 const std::string& name, DtVector coord, 00572 const DtSimulationAddress& addr = DtSimSendToAll); 00573 00577 virtual void setAppearance( 00578 const std::string& name, int appearance, 00579 const DtSimulationAddress& addr = DtSimSendToAll); 00580 00584 virtual void setCapabilities( 00585 const std::string& name, int capabilities, 00586 const DtSimulationAddress& addr = DtSimSendToAll); 00587 00589 virtual void setHeading( 00590 const std::string& name, double degrees, 00591 const DtSimulationAddress& addr = DtSimSendToAll); 00592 00594 virtual void setForce( 00595 const std::string& name, DtForceType force, 00596 const DtSimulationAddress& addr = DtSimSendToAll); 00597 00601 virtual void setResource(const std::string& name, 00602 const char* resourceType, double value, 00603 const DtSimulationAddress& addr = DtSimSendToAll); 00604 00608 virtual void setRulesOfEngagement( 00609 const std::string& name, const char* rulesType, 00610 const DtSimulationAddress& addr = DtSimSendToAll); 00611 00613 virtual void setSectorOfResponsibility( 00614 const std::string& name, double center, double size, 00615 const DtSimulationAddress& addr = DtSimSendToAll); 00616 00620 virtual void setSpeed( 00621 const std::string& name, double speed, 00622 const DtSimulationAddress& addr = DtSimSendToAll); 00623 00625 virtual void setTarget( 00626 const std::string& name, const std::string& target, 00627 const DtSimulationAddress& addr = DtSimSendToAll); 00628 00632 virtual void setTaskedBySuperior(const std::string& name, 00633 const DtSimulationAddress& addr = DtSimSendToAll); 00634 00636 virtual void setConcealed(const std::string& name, 00637 bool yes, const DtSimulationAddress& addr = DtSimSendToAll); 00638 00640 virtual void setEmitter(const std::string& name, 00641 int emitterId, bool on, 00642 const DtSimulationAddress& addr = DtSimSendToAll); 00643 00645 virtual void setIff(const std::string& name, 00646 bool mode1on, int mode1code, 00647 bool mode2on, int mode2code, 00648 bool mode3on, int mode3code, 00649 bool mode4on, int mode4code, 00650 DtIffAtcNavaidsAltParm4 altParm4, 00651 bool mode5on, bool useAltMode5, 00652 bool modeSon, bool emergency, 00653 bool flash, bool sti, bool modeSTcasI, 00654 const DtSimulationAddress& addr = DtSimSendToAll); 00655 00659 virtual void restore(const std::string& name, 00660 const DtSimulationAddress& addr = DtSimSendToAll); 00661 00664 virtual void setDestroyed(const std::string& name, 00665 const DtSimulationAddress& addr = DtSimSendToAll); 00666 00668 virtual void setLifeformWeaponState( 00669 const std::string& name, DtWeaponState weapon, 00670 const DtSimulationAddress& addr = DtSimSendToAll); 00671 00673 virtual void setLifeformPosture( 00674 const std::string& name, DtLifeformState posture, 00675 const DtSimulationAddress& addr = DtSimSendToAll); 00676 00678 virtual void setAggregateFormation( 00679 const std::string& leader, const std::string& formationName, 00680 const DtSimulationAddress& addr = DtSimSendToAll); 00681 00685 virtual void reorganizeAggregate(const std::string& leader, 00686 const DtSimulationAddress& addr = DtSimSendToAll); 00687 00691 virtual void disaggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00692 00696 virtual void aggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00697 00699 virtual void setJoystickEnabled(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00700 00702 virtual void setJoystickDisabled(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00703 00706 virtual void sendSetDataMsg( 00707 const std::string& recipient, DtSetDataRequest* msg, 00708 const DtSimulationAddress& addr = DtSimSendToAll, 00709 bool updateScenario = true); 00710 00713 virtual void sendSetRequest(const DtSetDataRequest& s, const std::string& name, 00714 const DtSimulationAddress& addr = DtSimSendToAll, bool updateScenario = true); 00715 00717 virtual void sendSetRequest(const DtSetDataRequest& s, const std::vector<std::string>& names, 00718 const DtSimulationAddress& addr = DtSimSendToAll, bool updateScenario = true); 00719 00725 virtual void requestIndirectFireInformation(const DtString&); 00727 00731 00734 virtual void moveAlongRoute( 00735 const std::string& entityName, const std::string& routeName, 00736 const DtSimulationAddress& addr = DtSimSendToAll); 00737 00740 virtual void moveToWaypoint( 00741 const std::string& entityName, const std::string& waypoint, 00742 bool planPath = false, 00743 const DtSimulationAddress& addr = DtSimSendToAll); 00744 00748 virtual void moveToLocation( 00749 const std::string& entityName, const DtVector& destinationLocation, 00750 bool planPath = false, 00751 const DtSimulationAddress& addr = DtSimSendToAll); 00752 00755 virtual void patrolBetweenWaypoints( 00756 const std::string& name, 00757 const std::string& waypoint1, const std::string& waypoint2, 00758 const DtSimulationAddress& addr = DtSimSendToAll); 00759 00762 virtual void patrolAlongRoute( 00763 const std::string& name, const std::string& route, 00764 const DtSimulationAddress& addr = DtSimSendToAll); 00765 00771 virtual void followEntity( 00772 const std::string& name, 00773 const std::string& leader, const DtVector& offset, 00774 const DtSimulationAddress& addr = DtSimSendToAll); 00775 00778 virtual void wait( 00779 const std::string& name, 00780 const DtSimulationAddress& addr = DtSimSendToAll); 00781 00784 virtual void waitDuration( 00785 const std::string& name, DtTime duration, 00786 const DtSimulationAddress& addr = DtSimSendToAll); 00787 00791 virtual void waitElapsed( 00792 const std::string& name, DtTime elapsed, 00793 const DtSimulationAddress& addr = DtSimSendToAll); 00794 00799 virtual void requestCurrentTasks(const std::string& entityName); 00800 00804 virtual void subscribeForTaskInformation(const std::string& entityName); 00805 00808 virtual void unsubscribeForTaskInformation(const std::string& entityName); 00809 00813 virtual void sendTaskMsg( 00814 const std::string& recipient, DtSimTask* task, 00815 const DtSimulationAddress& addr = DtSimSendToAll); 00816 00818 virtual void sendTaskRequest(const DtSimTask& s, const std::vector<std::string>& names, const DtSimulationAddress& addr = DtSimSendToAll); 00820 virtual void sendTaskRequest(const DtSimTask& s, const std::string& name, const DtSimulationAddress& addr = DtSimSendToAll); 00821 00826 virtual void requestTasksAndSetsFor(std::vector<DtString> name); 00828 00835 00838 virtual void abandonPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00839 00842 virtual void skipTask(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00843 00846 virtual void restartPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00847 00849 virtual void assignPlanByName(std::string name, const DtPlan*, DtSimulationAddress addr = DtSimSendToAll); 00850 00852 virtual void assignMultiplePlanByName(std::vector<std::string> names, const DtPlan*, DtSimulationAddress addr = DtSimSendToAll); 00853 00859 virtual void requestPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00860 00866 virtual void subscribePlan(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00867 00874 virtual void requestMultiplePlans(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll); 00875 00880 virtual void requestGlobalPlans(DtSimulationAddress addr = DtSimSendToAll); 00881 00886 virtual void requestGlobalPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll); 00887 00890 virtual void assignGlobalPlanByName(std::string name, const DtPlan*, DtSimulationAddress addr = DtSimSendToAll); 00891 00893 virtual void deleteGlobalPlan(std::string, DtSimulationAddress addr = DtSimSendToAll); 00895 00897 virtual void setTimeoutInterval(int); 00898 00904 virtual void requestDIGuyAppearancesAndAnimations(std::vector<DtString> name); 00905 00912 virtual void requestResourcesFor(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll); 00913 00915 virtual void sendMessageToObject(const DtVrfObjectMessage&, DtSimulationAddress addr = DtSimSendToAll); 00916 00918 virtual void sendObjectMessageAndDeleteContent(DtVrfObjectMessage* message, DtSimulationAddress addr = DtSimSendToAll); 00919 00921 virtual int generateRequestId(); 00922 00923 public: 00924 00926 virtual void addSetCreatorFcn(std::string, int, DtSetDataRequestCreatorFcn); 00927 00929 virtual void addTaskCreatorFcn(std::string, int, DtSimTaskCreatorFcn); 00930 00932 virtual void addInterfaceContentCreatorFcn(int t, DtInterfaceContentCreatorFcn); 00933 00935 virtual void addAdminContentCreatorFcn(std::string, int, DtAdminContentCreatorFcn); 00936 00938 virtual void addConditionCreatorFcn(std::string, int, DtCondExprCreatorFcn); 00939 00941 virtual void addReportCreatorFcn(std::string, int, DtSimReportCreatorFcn); 00942 00944 virtual void addObjectMessageCreatorFcn(int, DtVrfObjectMessageCreatorFcn); 00945 00947 virtual void addSimulationCommandCreatorFcn(std::string, int, DtSimCommandCreatorFcn); 00948 00951 virtual void sendMessage(const DtSimInterfaceContent& message, DtSimulationAddress addr = DtSimSendToAll); 00952 virtual void sendMessageAndDeleteContent(DtSimInterfaceContent* message, DtSimulationAddress addr = DtSimSendToAll); 00953 00960 virtual void embarkOn(const std::vector<std::string>& children, const std::string& parentName, 00961 bool useSlot = true, const DtVector& overridePosition = DtVector::zero(), DtSimulationAddress addr = DtSimSendToAll); 00962 00964 virtual void disembark(const std::vector<std::string>& children, DtSimulationAddress addr = DtSimSendToAll); 00965 00967 virtual void disembarkAll(const std::vector<std::string>& parents, DtSimulationAddress addr = DtSimSendToAll); 00968 00970 virtual void attachTo(const std::vector<std::string>& ids, const std::string& parentName); 00971 00973 virtual void detachAll(const std::vector<std::string>& ids); 00974 00977 virtual void logObjectConsoleToFile(const std::string& name, const std::string& filename); 00978 00981 virtual void stopLoggingObjectConsoleToFile(const std::string& objectName); 00982 00984 virtual void setObjectNotifyLevel(const std::string& name, int); 00985 00987 virtual void setTimeOfDay(int seconds); 00988 00990 virtual void setAggregateOnCreate(bool); 00991 bool aggregateOnCreate() const; 00992 00995 virtual void requestScenarioDescription(DtSimulationAddress); 00996 00998 virtual void setScenarioDescription(const DtString&, DtSimulationAddress addr = DtSimSendToAll); 00999 01000 public: 01002 virtual void sendLoggerSetFilename(std::string filename); 01003 01004 virtual void sendLoggerRecordMessage(); 01005 01006 virtual void sendLoggerStopMessage(); 01007 01008 protected: 01010 virtual void processObjectCreated(DtSimMessage*); 01011 01013 virtual void setActivated(bool); 01014 01022 virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg, 01023 const DtSimulationAddress& addr = DtSimSendToAll, 01024 int *retiStatus = 0, DtString* retsStmt = 0); 01025 01027 virtual void indirectArtilleryCreated(DtString, const DtEntityIdentifier&, DtIfIndirectArtilleryData); 01028 01029 public: 01033 01035 boost::signal<void (const DtScenario*)> signal_loadedScenario; 01036 01038 boost::signal<void ()> signal_scenarioModified; 01039 01041 boost::signal<void (const DtScenarioLoadInformation&)> signal_loadScenario; 01042 01044 boost::signal<void (const DtScenario*, DtPreserveMappingsFcn fcn, void* userData)> signal_saveScenario; 01045 01048 boost::signal<void (std::string, bool& shouldDelete)> signal_shouldDeleteObject; 01049 01051 boost::signal<void ()> signal_closeScenario; 01052 01055 boost::signal<void (DtIfCreateVrfObject&)> signal_aboutToSendCreateMessage; 01056 01058 boost::signal<void (DtIfModifyVrfObject&)> signal_aboutToSendModifyMessage; 01059 01061 01062 protected: 01064 virtual void slot_deActivated(makVrv::DtDe* de); 01065 virtual void slot_preTick(makVrv::DtDe* de); 01066 01067 protected: 01068 bool myAggregateOnCreate; 01069 01070 typedef std::map<unsigned int, DtVrfObjectCreatedCallbackFunction> CreateCallbacks; 01071 01072 CreateCallbacks myCreateCallbacks; 01073 }; 01074 }