![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999-2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfController.h,v $ $Revision: 1.137 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef vrfController_H_ 00016 #define vrfController_H_ 00017 00018 #include <vrfExtProtocol/objType.h> 00019 #include "vrfcontrol/vrfBeListener.h" 00020 #include "vrfutil/compressedFileTransport.h" 00021 #include "vrfmsgs/ifSaveComplete.h" 00022 #include "vrftasks/setDataReq.h" 00023 #include "vrfutil/scenario.h" 00024 #include "vrftasks/simTask.h" 00025 #include "vrfplan/plan.h" 00026 #include <vrfExtProtocol/objTypeEnums.h> 00027 #include "vrfmsgs/spatialSubdivisionTypes.h" 00028 #include "vrfmsgs/dfltRadMsgFactory.h" 00029 #include "vrftasks/dfltTaskFactory.h" 00030 #include "vrftasks/dfltReportFactory.h" 00031 #include "vrftasks/dfltSetReqFact.h" 00032 #include "vrftasks/dfltAdminContentFactory.h" 00033 #include "vrfutil/dfltCeFactory.h" 00034 #include "vrfplan/dfltStmtFactory.h" 00035 #include "vrfplan/dfltSimCommandFactory.h" 00036 #include "vrfcontrol/vrfcontrolDefines.h" 00037 #include "vrfmsgs/vrfObjectMessageExecutive.h" 00038 #include "vrfmsgs/ifModifyIndirectArtilleryObject.h" 00039 00041 #include <vl/commentInter.h> 00042 #include <vl/exerciseConn.h> 00043 #include <vl/hostStructs.h> 00044 #include <vlpi/disEnums.h> 00045 #include <vlpi/appearance.h> 00046 #include <vlutil/vlHashlist.h> 00047 00049 #include <list> 00050 00051 class DtAdminContent; 00052 class DtBackendMap; 00053 class DtAddressMap; 00054 class DtVrfMessageInterface; 00055 class DtVrfConfigurationFileComposer; 00056 class DtIfServerRequestResponse; 00057 class DtIfLoadScenario; 00058 class DtIfPlan; 00059 class DtRadioMessageListener; 00060 class DtIfMultiplePlanResponse; 00061 class DtVrfIndirectArtilleryObjectModify; 00062 class DtSettingsObject; 00063 class DtReflectedEnvironmentProcessList; 00064 class DtRemoteEnvironmentController; 00065 00066 typedef void (*DtScenarioCallbackFcn)(void* usr); 00067 class DtVrfOverlayObjectModify; 00068 00070 typedef bool (*DtBackendRemappingFcn)(DtBackendMap* map, void* usr); 00073 typedef bool (*DtPreserveMappingsFcn)(void* usr); 00074 00075 typedef bool (*DtLoadBalancingFcn)(DtAddressMap* map, const DtList* backends, 00076 void* usr); 00077 00078 typedef void (*DtBackendSaveCallbackFcn) 00079 (const DtSimulationAddress& addr, DtSaveResult result, void * usr); 00080 00081 typedef void (*DtScenarioSavedCallbackFcn) 00082 (DtSaveResult result, void* usr); 00083 00084 typedef void (*DtVrfObjectCreatedCallbackFcn) 00085 (const DtString& name, const DtEntityIdentifier& id, void* usr); 00086 00087 typedef void (*DtOverlayCreatedCallbackFcn) 00088 (const DtString& name, const DtEntityIdentifier& id, DtVrfOverlayObjectModify* usr); 00089 00090 typedef void (*DtIndirectArtilleryCreatedCallbackFcn) 00091 (const DtString& name, const DtEntityIdentifier& id, 00092 void* usr); 00093 00094 typedef void (*DtObjectConsoleMessageCallbackFcn) 00095 (const DtEntityIdentifier& id, int notifyLevel, const DtString& message, 00096 void* usr); 00097 00098 typedef void (*DtBackendConsoleMessageCallbackFcn) 00099 (const DtSimulationAddress& id, int notifyLevel, const DtString& message, 00100 void* usr); 00101 00105 typedef void (*DtServerRequestResponseCallbackFcn) 00106 (const DtIfServerRequestResponse& response, void* usr); 00107 00108 class PlanCbInfo 00109 { 00110 public: 00111 PlanCbInfo(const DtString& n, bool global, DtPlanCallbackFcn f, void* usr) : 00112 name(n), isGlobal(global), fcn(f), data(usr) {} 00113 ~PlanCbInfo() {} 00114 bool operator==(const PlanCbInfo& orig) const 00115 { 00116 return (name == orig.name && fcn == orig.fcn && data == orig.data 00117 && isGlobal == orig.isGlobal); 00118 } 00119 00120 DtString name; 00121 bool isGlobal; 00122 DtPlanCallbackFcn fcn; 00123 void* data; 00124 }; 00125 00126 class StmtCbInfo 00127 { 00128 public: 00129 StmtCbInfo(const DtString& n, bool global, 00130 DtPlanStatementCallbackFcn f, void* usr) : 00131 name(n), isGlobal(global) , fcn(f), data(usr) {} 00132 ~StmtCbInfo() {} 00133 bool operator==(const StmtCbInfo& orig) const 00134 { 00135 return (name == orig.name && fcn == orig.fcn && data == orig.data && 00136 isGlobal == orig.isGlobal); 00137 } 00138 00139 DtPlanStatementCallbackFcn fcn; 00140 DtString name; 00141 bool isGlobal; 00142 void* data; 00143 }; 00144 00145 class PlanCompleteCbInfo 00146 { 00147 public: 00148 PlanCompleteCbInfo(const DtString& n, bool global, 00149 DtPlanCompleteCallbackFcn f, void* usr) : 00150 name(n), isGlobal(global), fcn(f), data(usr) {} 00151 ~PlanCompleteCbInfo() {} 00152 bool operator==(const PlanCompleteCbInfo& orig) const 00153 { 00154 return (name == orig.name && fcn == orig.fcn && data == orig.data && isGlobal == orig.isGlobal); 00155 } 00156 00157 DtPlanCompleteCallbackFcn fcn; 00158 DtString name; 00159 bool isGlobal; 00160 void* data; 00161 }; 00162 00174 class DT_DLL_vrfcontrol DtVrfRemoteController 00175 { 00176 public: 00177 enum ComponentAttachmentRule{ 00178 AttachNone=0, 00179 AttachFirst, 00180 AttachEven 00181 }; 00182 00183 public: 00184 00190 DtVrfRemoteController(int receivePort = 9000); 00191 00202 virtual void init(DtExerciseConn* exConn, 00203 DtReflectedEnvironmentProcessList* rel = NULL); 00204 virtual void init(DtVrfMessageInterface* msgIf, 00205 DtReflectedEnvironmentProcessList* rel = NULL); 00207 00208 virtual ~DtVrfRemoteController(); 00209 00211 virtual DtVrfMessageInterface* vrfMessageInterface() const; 00212 00214 virtual const DtSimulationAddress& simulationAddress() const; 00215 virtual int sessionId() const; 00216 00219 virtual double simTime(const DtSimulationAddress* a = NULL) const; 00220 00222 virtual const DtList& backends() const; 00223 00226 virtual const DtList& pendingBackends() const; 00227 00229 virtual DtVrfBackendListener* backendListener() const; 00230 00232 virtual void addBackendDiscoveryCallback( 00233 DtBackendCallbackFcn fcn, void* usr); 00234 virtual void removeBackendDiscoveryCallback( 00235 DtBackendCallbackFcn fcn, void* usr); 00236 00238 virtual void addBackendRemovalCallback( 00239 DtBackendCallbackFcn fcn, void* usr); 00240 virtual void removeBackendRemovalCallback( 00241 DtBackendCallbackFcn fcn, void* usr); 00242 00246 virtual int backendsControlState() const; 00247 00249 virtual int numberBackendsLoaded() const; 00250 00253 virtual bool allBackendsReady() const; 00254 00256 virtual bool backendLoaded(const DtSimulationAddress& addr) const; 00257 00260 virtual void modifyBackEndSetting(const DtSettingsObject* setting, 00261 const DtSimulationAddress& addr = DtSimSendToAll); 00262 00273 virtual void requestBackEndSetting(std::string name, 00274 DtBackEndSettingRequestCompleteCallbackFcn fcn, void* usr = 0, 00275 const DtSimulationAddress& addr = DtSimSendToAll); 00276 00279 virtual void setSpotReportsGloballyEnabled(bool enabled); 00280 00283 virtual void setDRThresholds(double translation, double rotation); 00284 00286 virtual void setCommModelSettings(bool useExternalComms); 00287 00289 virtual void setRoadDrivingSettings(bool driveOnLeft); 00290 00293 virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled); 00294 00299 virtual void setPublishAggregateFormationRoutes(bool yesNo); 00300 00301 //------------------------------------------------------- 00303 //------------------------------------------------------- 00304 00327 virtual bool loadScenario(const DtFilename& filename, 00328 DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0, 00329 DtLoadBalancingFcn = 0, void* usrBalancing = 0, 00330 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(), 00331 ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone); 00332 00341 virtual bool loadScenario(const DtScenario& scenario, 00342 DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0, 00343 DtLoadBalancingFcn = 0, void* usrBalancing = 0, 00344 const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>()); 00345 00349 virtual DtString guiTerrainDatabaseFilename() const; 00350 virtual void setGuiTerrainDatabaseFilename(DtString db); 00351 00353 virtual const DtRwKeyValueList& scenarioData() const; 00354 virtual void setScenarioData(const DtRwKeyValueList&); 00355 00360 virtual bool newScenario( 00361 const DtFilename& dbname, 00362 const DtFilename& guidbname, 00363 const DtFilename& opdname = DtFilename::nullFilename(), 00364 const DtFilename& physicalWorldName = DtFilename::nullFilename(), 00365 const DtScenario* baseScenario = 0, 00366 int startTimeOfDay = 12 * 3600); 00367 00369 virtual bool newScenario( 00370 const DtFilename& dbname, 00371 const DtFilename& guidbname, 00372 const std::vector<DtString>& simulationModelSetFiles, 00373 const DtScenario* baseScenario = 0, 00374 int startTimeOfDay = 12 * 3600); 00375 00381 virtual bool sendLoadScenarioMessage( 00382 const DtScenario& scenario, 00383 const DtSimulationAddress& addr = DtSimSendToAll) const; 00384 00387 virtual DtIfLoadScenario* createLoadScenarioMessage() const; 00388 00391 virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr); 00392 virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr); 00393 00396 virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr); 00397 virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr); 00398 00411 virtual bool saveScenario(const DtFilename& saveName, 00412 DtPreserveMappingsFcn fcn = 0, void* userData = 0); 00413 00416 virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll) const; 00417 00420 virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr); 00421 virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr); 00422 00427 virtual void addScenarioSavedCallback( 00428 DtScenarioCallbackFcn fcn, void* usr); 00429 virtual void removeScenarioSavedCallback( 00430 DtScenarioCallbackFcn fcn, void* usr); 00431 00435 virtual void addScenarioSavedCallback( 00436 DtScenarioSavedCallbackFcn fcn, void* usr); 00437 virtual void removeScenarioSavedCallback( 00438 DtScenarioSavedCallbackFcn fcn, void* usr); 00439 00441 virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll); 00442 00445 virtual void run(const DtSimulationAddress& addr = DtSimSendToAll) const; 00446 virtual void pause(const DtSimulationAddress& addr = DtSimSendToAll) const; 00447 virtual void rewind(const DtSimulationAddress& addr = DtSimSendToAll) const; 00448 virtual void exit(const DtSimulationAddress& addr = DtSimSendToAll) const; 00449 virtual void step(const DtSimulationAddress& addr = DtSimSendToAll) const; 00451 00460 virtual void setOpdSaveName(const DtFilename& f); 00461 virtual const DtFilename& opdSaveName() const; 00463 00468 virtual void setMaxWaitSaveTime(DtTime t); 00469 virtual DtTime maxWaitSaveTime() const; 00471 00476 virtual void setMaxWaitLoadTime(DtTime t); 00477 virtual DtTime maxWaitLoadTime() const; 00479 00484 virtual void setOverlayFilename(const DtFilename& overlay); 00485 virtual const DtFilename& overlayFilename() const; 00487 00492 virtual void setHostilityFilename(const DtFilename& hostilty); 00493 virtual const DtFilename& hostilityFilename() const; 00495 00496 virtual void setScenarioExtrasFilename(const DtFilename& extras); 00497 virtual const DtFilename& scenarioExtrasFilename() const; 00498 00503 virtual void setSelectionGroupsFilename(const DtFilename& sel); 00504 virtual const DtFilename& selectionGroupsFilename() const; 00506 00511 virtual void setSymbolMapFilename(const DtFilename& overlay); 00512 virtual const DtFilename& symbolMapFilename() const; 00514 00519 virtual void setCreateMenuFilename(const DtFilename& overlay); 00520 virtual const DtFilename& createMenuFilename() const; 00522 00524 virtual void saveParameterDb(const DtFilename& filename); 00525 00526 //------------------------------------------------------- 00528 //------------------------------------------------------- 00529 00531 virtual void deleteObject(const DtString& name, 00532 const DtSimulationAddress& addr = DtSimSendToAll) const; 00533 00535 virtual void deleteObject(const DtEntityIdentifier& id, 00536 const DtSimulationAddress& addr = DtSimSendToAll) const; 00537 00538 //------------------------------------------------------- 00540 //------------------------------------------------------- 00541 00543 00548 virtual void createWaypoint( 00549 const DtVector& geocentricPosition, 00550 const DtString& uniqueName = DtString::nullString(), 00551 const DtString& label = DtString::nullString(), 00552 const DtSimulationAddress& addr = DtSimSendToAll) const; 00553 00557 virtual void createWaypoint( 00558 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00559 const DtVector& geocentricPosition, 00560 const DtString& uniqueName = DtString::nullString(), 00561 const DtString& label = DtString::nullString(), 00562 const DtSimulationAddress& addr = DtSimSendToAll); 00563 00565 virtual void modifyWaypoint( 00566 const DtEntityIdentifier& uniqueId, 00567 DtString* uniqueName = 0, 00568 DtString* label = 0, 00569 DtVector* geocentricPosition = 0, 00570 const DtSimulationAddress& addr = DtSimSendToAll) const; 00571 00573 00578 virtual void createRoute( 00579 const DtList& vertices, 00580 const DtString& uniqueName = DtString::nullString(), 00581 const DtString& label = DtString::nullString(), 00582 const DtSimulationAddress& addr = DtSimSendToAll) const; 00583 00587 virtual void createRoute( 00588 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00589 const DtList& vertices, 00590 const DtString& uniqueName = DtString::nullString(), 00591 const DtString& label = DtString::nullString(), 00592 const DtSimulationAddress& addr = DtSimSendToAll) ; 00593 00595 virtual void modifyRoute( 00596 const DtEntityIdentifier& uniqueId, 00597 DtString* uniqueName = 0, 00598 DtString* label = 0, 00599 DtList* vertices = 0, 00600 const DtSimulationAddress& addr = DtSimSendToAll) const; 00601 00603 00608 virtual void createPhaseLine( 00609 const DtVector& dbPoint1, 00610 const DtVector& dbPoint2, 00611 const DtString& uniqueName = DtString::nullString(), 00612 const DtString& label = DtString::nullString(), 00613 const DtSimulationAddress& addr = DtSimSendToAll) const; 00614 00618 virtual void createPhaseLine( 00619 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00620 const DtVector& dbPoint1, 00621 const DtVector& dbPoint2, 00622 const DtString& uniqueName = DtString::nullString(), 00623 const DtString& label = DtString::nullString(), 00624 const DtSimulationAddress& addr = DtSimSendToAll) ; 00625 00627 virtual void modifyPhaseLine( 00628 const DtEntityIdentifier& uniqueId, 00629 DtString* uniqueName = 0, 00630 DtString* label = 0, 00631 DtVector* newDbPoint1 = 0, 00632 DtVector* newDbPoint2 = 0, 00633 const DtSimulationAddress& addr = DtSimSendToAll) const; 00634 00636 00642 virtual void createControlArea( 00643 const DtList& vertices, 00644 const DtString& uniqueName = DtString::nullString(), 00645 const DtString& label = DtString::nullString(), 00646 const DtSimulationAddress& addr = DtSimSendToAll) const; 00647 00651 virtual void createControlArea( 00652 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00653 const DtList& vertices, 00654 const DtString& uniqueName = DtString::nullString(), 00655 const DtString& label = DtString::nullString(), 00656 const DtSimulationAddress& addr = DtSimSendToAll) ; 00657 00659 virtual void modifyControlArea( 00660 const DtEntityIdentifier& uniqueId, 00661 DtString* uniqueName = 0, 00662 DtString* label = 0, 00663 DtList* newVertices = 0, 00664 const DtSimulationAddress& addr = DtSimSendToAll) const; 00665 00667 00673 virtual void createObstacle( 00674 const DtList& vertices, 00675 const DtString& uniqueName = DtString::nullString(), 00676 const DtString& label = DtString::nullString(), 00677 const DtSimulationAddress& addr = DtSimSendToAll) const; 00678 00682 virtual void createObstacle( 00683 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00684 const DtList& vertices, 00685 const DtString& uniqueName = DtString::nullString(), 00686 const DtString& label = DtString::nullString(), 00687 const DtSimulationAddress& addr = DtSimSendToAll) ; 00688 00690 virtual void modifyObstacle( 00691 const DtEntityIdentifier& uniqueId, 00692 DtString* uniqueName = 0, 00693 DtString* label = 0, 00694 DtList* newVertices = 0, 00695 const DtSimulationAddress& addr = DtSimSendToAll) const; 00696 00698 00705 virtual void createDisaggregationArea( 00706 const DtList& vertices, 00707 const DtString& uniqueName = DtString::nullString(), 00708 const DtString& label = DtString::nullString(), 00709 const DtSimulationAddress& addr = DtSimSendToAll) const; 00710 00715 virtual void createDisaggregationArea( 00716 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00717 const DtList& vertices, 00718 const DtString& uniqueName = DtString::nullString(), 00719 const DtString& label = DtString::nullString(), 00720 const DtSimulationAddress& addr = DtSimSendToAll) ; 00721 00723 virtual void modifyDisaggregationArea( 00724 const DtEntityIdentifier& uniqueId, 00725 DtString* uniqueName = 0, 00726 DtString* label = 0, 00727 DtList* newVertices = 0, 00728 const DtSimulationAddress& addr = DtSimSendToAll) const; 00729 00743 virtual void createOverlayObject( 00744 const DtEntityType& type, 00745 const DtList& vertices, 00746 const DtForceType& force, 00747 const DtString& name, 00748 const DtString& label, 00749 int color, 00750 const DtString& parentName, 00751 bool projection, 00752 bool closedFigure, 00753 const DtAppearance& appearance = DtAppearance::nullAppearance(), 00754 const DtString& attachTo = DtString(), 00755 char* userData = 0, 00756 int dataSize = 0, 00757 DtOverlayCreatedCallbackFcn fcn = 0, 00758 const DtSimulationAddress& addr = DtSimSendToAll, 00759 unsigned int rId = 0); 00760 00761 virtual void createIndirectArtillery( 00762 const DtVrfIndirectArtilleryObjectModify * params, 00763 const DtSimulationAddress& addr); 00764 //------------------------------------------------------- 00766 //------------------------------------------------------- 00767 00769 virtual void createObject( 00770 const DtEntityType& type, 00771 DtForceType force, 00772 DtList* vertices, 00773 const DtString& name, 00774 const DtSimulationAddress& addr); 00775 00777 virtual void createEntity( 00778 const DtEntityType& type, 00779 const DtVector& geocentricPosition, 00780 DtForceType force, 00781 DtReal heading, 00782 const DtString& uniqueName = DtString::nullString(), 00783 const DtString& label = DtString::nullString(), 00784 const DtSimulationAddress& addr = DtSimSendToAll, 00785 bool groundClamp = true) const; 00786 00790 virtual void createEntity( 00791 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00792 const DtEntityType& type, 00793 const DtVector& geocentricPosition, 00794 DtForceType force, 00795 DtReal heading, 00796 const DtString& uniqueName = DtString::nullString(), 00797 const DtString& label = DtString::nullString(), 00798 const DtSimulationAddress& addr = DtSimSendToAll, 00799 bool groundClamp = true); 00800 00801 virtual void createAggregate( 00802 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00803 const DtEntityType& type, 00804 const DtVector& geocentricPosition, 00805 DtForceType force, 00806 DtReal heading, 00807 const DtString& uniqueName, 00808 const DtString& label = DtString::nullString(), 00809 const DtSimulationAddress& addr = DtSimSendToAll, 00810 DtAggregateState initialAggregateState = DtDisaggregated); 00811 00813 virtual void createAggregate( 00814 const DtEntityType& type, 00815 const DtVector& geocentricPosition, 00816 DtForceType force, 00817 DtReal heading, 00818 DtList* entityNames = 0, 00819 const DtSimulationAddress& addr = DtSimSendToAll, 00820 DtAggregateState initialAggregateState = DtDisaggregated, 00821 unsigned int requestId = 0) const; 00822 00826 virtual void createAggregate( 00827 DtVrfObjectCreatedCallbackFcn fcn, void* usr, 00828 const DtEntityType& type, 00829 const DtVector& geocentricPosition, 00830 DtForceType force, 00831 DtReal heading, 00832 DtList* entityNames = 0, 00833 const DtSimulationAddress& addr = DtSimSendToAll, 00834 DtAggregateState initialAggregateState = DtDisaggregated) ; 00835 00838 virtual void addToOrganization( 00839 const DtEntityIdentifier& objectId, 00840 const DtEntityIdentifier& newSuperiorId, 00841 const DtSimulationAddress& addr = DtSimSendToAll); 00842 00846 virtual void addToForceLevelOrganization( 00847 const DtEntityIdentifier& orjectId, 00848 const DtSimulationAddress& addr = DtSimSendToAll); 00849 00852 virtual void removeFromOrganization( 00853 const DtEntityIdentifier& objectId, 00854 const DtSimulationAddress& addr = DtSimSendToAll); 00855 00861 00863 virtual void setLabel( 00864 const DtEntityIdentifier& id, const DtString& label, 00865 const DtSimulationAddress& addr = DtSimSendToAll) const; 00866 00868 virtual void setOverlayParent( 00869 const DtEntityIdentifier& id, const DtString& label, 00870 const DtSimulationAddress& addr = DtSimSendToAll) const; 00871 00873 virtual void setAltitude( 00874 const DtString& name, double altitude, 00875 const DtSimulationAddress& addr = DtSimSendToAll) const; 00876 00878 virtual void setLocation( 00879 const DtString& name, DtVector coord, 00880 const DtSimulationAddress& addr = DtSimSendToAll) const; 00881 00883 virtual void setAppearance( 00884 const DtString& name, int appearance, 00885 const DtSimulationAddress& addr = DtSimSendToAll) const; 00886 00888 virtual void setCapabilities( 00889 const DtString& name, int capabilities, 00890 const DtSimulationAddress& addr = DtSimSendToAll) const; 00891 00893 virtual void setHeading( 00894 const DtString& name, double degrees, 00895 const DtSimulationAddress& addr = DtSimSendToAll) const; 00896 00898 virtual void setForce( 00899 const DtString& name, DtForceType force, 00900 const DtSimulationAddress& addr = DtSimSendToAll) const; 00901 00905 virtual void requestSpotReports(const DtString& name, bool onOff, 00906 const DtSimulationAddress& addr = DtSimSendToAll) const; 00907 00911 virtual void setResource(const DtString& name, 00912 const char* resourceType, double value, 00913 const DtSimulationAddress& addr = DtSimSendToAll) const; 00914 00918 virtual void setRulesOfEngagement( 00919 const DtString& name, const char* rulesType, 00920 const DtSimulationAddress& addr = DtSimSendToAll) const; 00921 00923 virtual void setSectorOfResponsibility( 00924 const DtString& name, double center, double size, 00925 const DtSimulationAddress& addr = DtSimSendToAll) const; 00926 00928 virtual void setSpeed( 00929 const DtString& name, double speed, 00930 const DtSimulationAddress& addr = DtSimSendToAll) const; 00931 00933 virtual void setTarget( 00934 const DtString& name, const DtString& target, 00935 const DtSimulationAddress& addr = DtSimSendToAll) const; 00936 00938 virtual void setTaskedBySuperior(const DtString& name, 00939 const DtSimulationAddress& addr = DtSimSendToAll) const; 00940 00942 virtual void setConcealed(const DtString& name, 00943 bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const; 00944 00946 virtual void setEmitter(const DtString& name, 00947 int emitterId, bool on, 00948 const DtSimulationAddress& addr = DtSimSendToAll) const; 00949 00951 virtual void setIff(const DtString& name, 00952 bool mode1on, int mode1code, 00953 bool mode2on, int mode2code, 00954 bool mode3on, int mode3code, 00955 bool mode4on, int mode4code, 00956 DtIffAtcNavaidsAltParm4 altParm4, 00957 bool mode5on, bool useAltMode5, 00958 bool modeSon, bool emergency, 00959 bool flash, bool sti, bool modeSTcasI, 00960 const DtSimulationAddress& addr = DtSimSendToAll) const; 00961 00963 virtual void restore(const DtString& name, 00964 const DtSimulationAddress& addr = DtSimSendToAll) const; 00965 00968 virtual void setDestroyed(const DtString& name, 00969 const DtSimulationAddress& addr = DtSimSendToAll) const; 00970 00974 virtual void setLifeformWeaponState( 00975 const DtString& name, DtWeaponState weapon, 00976 const DtSimulationAddress& addr) const; 00977 00981 virtual void setLifeformPosture( 00982 const DtString& name, DtLifeformState posture, 00983 const DtSimulationAddress& addr) const; 00984 00987 virtual void setAggregateFormation( 00988 const DtString& leader, const DtString& formationName, 00989 const DtSimulationAddress& addr = DtSimSendToAll) const; 00990 00994 virtual void reorganizeAggregate(const DtString& leader, 00995 const DtSimulationAddress& addr = DtSimSendToAll) const; 00996 01000 virtual void disaggregateEntity(const DtString& entity, 01001 const DtSimulationAddress& addr = DtSimSendToAll) const; 01002 01006 virtual void aggregateEntity(const DtString& entity, 01007 const DtSimulationAddress& addr = DtSimSendToAll) const; 01008 01011 virtual void sendSetDataMsg( 01012 const DtString& recipient, DtSetDataRequest* msg, 01013 const DtSimulationAddress& addr) const; 01014 01016 01017 01018 //------------------------------------------------------- 01020 //------------------------------------------------------- 01021 01025 virtual void sendVrfObjectCreateMsg( 01026 const DtSimulationAddress& addr, 01027 unsigned int requestId, 01028 const DtString& name, 01029 const DtObjectType& type, 01030 const DtList& vertices, 01031 const DtString& label, 01032 const DtAppearance& appearance, 01033 DtForceType force, 01034 bool projection, 01035 bool closedFigure, 01036 DtReal heading, 01037 bool createSubObjects, 01038 bool clampToGroundFlag = true, 01039 const DtString& initialFormation = DtString::nullString(), 01040 DtAggregateState initialAggregateState = DtDisaggregated, 01041 const DtString& userData = DtString::nullString(), 01042 std::list<DtAdminContent*>* initialAdminContent = 0, 01043 std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0) const; 01044 01051 virtual void sendVrfObjectModifyMsg( 01052 const DtSimulationAddress& addr, 01053 const DtEntityIdentifier& id, 01054 DtString* name = 0, 01055 DtList* vertices = 0, 01056 DtForceType* force = 0, 01057 DtReal* heading = 0, 01058 DtString* label = 0, 01059 DtAppearance* appearance = 0, 01060 DtString* overlayParent = 0, 01061 DtString* userData = 0) const; 01062 01066 virtual void sendVrfOverlayObjectModifyMsg( 01067 const DtSimulationAddress& addr, 01068 const DtEntityIdentifier& id, 01069 int color, 01070 DtString parentName, 01071 DtString attachTo, 01072 bool keepExistingAttachment = true, 01073 char* userData = 0, 01074 int len = 0) const; 01075 01076 virtual void sendVrfIndirectArtilleryObjectModifyMsg( 01077 const DtSimulationAddress& addr, 01078 const DtEntityIdentifier& id, 01079 const DtVrfIndirectArtilleryObjectModify * mod) const; 01080 01081 //------------------------------------------------------- 01083 //------------------------------------------------------- 01084 01087 virtual void moveAlongRoute( 01088 const DtString& entityName, const DtString& routeName, 01089 const DtSimulationAddress& addr = DtSimSendToAll) const; 01090 01093 virtual void moveToWaypoint( 01094 const DtString& entityName, const DtString& waypoint, 01095 bool planPath = false, 01096 const DtSimulationAddress& addr = DtSimSendToAll) const; 01097 01101 virtual void moveToLocation( 01102 const DtString& entityName, const DtVector& destinationLocation, 01103 bool planPath = false, 01104 const DtSimulationAddress& addr = DtSimSendToAll) const; 01105 01108 virtual void patrolBetweenWaypoints( 01109 const DtString& name, 01110 const DtString& waypoint1, const DtString& waypoint2, 01111 const DtSimulationAddress& addr = DtSimSendToAll) const; 01112 01115 virtual void patrolAlongRoute( 01116 const DtString& name, const DtString& route, 01117 const DtSimulationAddress& addr = DtSimSendToAll) const; 01118 01124 virtual void followEntity( 01125 const DtString& name, 01126 const DtString& leader, const DtVector& offset, 01127 const DtSimulationAddress& addr = DtSimSendToAll) const; 01128 01131 virtual void wait( 01132 const DtString& name, 01133 const DtSimulationAddress& addr = DtSimSendToAll) const; 01134 01137 virtual void waitDuration( 01138 const DtString& name, DtTime duration, 01139 const DtSimulationAddress& addr = DtSimSendToAll) const; 01140 01143 virtual void waitElapsed( 01144 const DtString& name, DtTime elapsed, 01145 const DtSimulationAddress& addr = DtSimSendToAll) const; 01146 01150 virtual void sendTaskMsg( 01151 const DtString& recipient, DtSimTask* task, 01152 const DtSimulationAddress& addr = DtSimSendToAll) const; 01153 01156 virtual void abandonPlan(const DtString& name, 01157 const DtSimulationAddress& addr = DtSimSendToAll) const; 01158 01160 virtual void skipTask(const DtString& name, 01161 const DtSimulationAddress& addr = DtSimSendToAll) const; 01162 01165 virtual void restartPlan(const DtString& name, 01166 const DtSimulationAddress& addr = DtSimSendToAll) const; 01167 01175 virtual void assignPlanByName( 01176 const DtString& name, const DtPlan& plan, 01177 const DtSimulationAddress& addr = DtSimSendToAll, 01178 int *retiStatus = NULL, DtString* retsStmt = NULL) const; 01179 01181 virtual void assignMultiplePlanByName( 01182 const std::vector<DtString>& entities, const DtPlan& plan, 01183 const DtSimulationAddress& addr = DtSimSendToAll, 01184 int *retiStatus = NULL, DtString* retsStmt = NULL) const; 01185 01190 virtual void requestPlan( 01191 const DtString& name, 01192 bool addStmtCallback = true, 01193 const DtSimulationAddress& addr = DtSimSendToAll) const; 01194 01199 virtual void subscribePlan(const DtString& name, 01200 DtPlanCallbackFcn fn, void* usr, 01201 const DtSimulationAddress& addr = DtSimSendToAll); 01202 01208 virtual void requestMultiplePlan(const std::vector<DtString>& entities, 01209 DtMultiplePlanRequestCallbackFcn fcn, void *usr, 01210 const DtSimulationAddress& addr = DtSimSendToAll); 01211 01212 virtual void requestMultiplePlan(const std::vector<DtString>& entities, 01213 const DtSimulationAddress& addr = DtSimSendToAll); 01214 01217 virtual void unsubscribePlan(const DtString& name, 01218 DtPlanCallbackFcn fn, void* usr); 01219 01222 virtual void unsubscribeAllPlans(); 01223 01228 virtual void addPlanStatementCallback(const DtString& name, 01229 DtPlanStatementCallbackFcn callback, void* usrData); 01230 01233 virtual void removePlanStatementCallback(const DtString& name, 01234 DtPlanStatementCallbackFcn callback, void* usrData); 01235 01238 virtual void removeAllPlanStatementCallbacks(); 01239 01244 virtual void addPlanCompleteCallback(const DtString& name, 01245 DtPlanCompleteCallbackFcn callback, void* usrData); 01246 01249 virtual void removePlanCompleteCallback(const DtString& name, 01250 DtPlanCompleteCallbackFcn callback, void* usrData); 01251 01254 virtual void removeAllPlanCompleteCallbacks(); 01255 01257 01259 virtual void requestGlobalPlansList(const DtSimulationAddress& addr); 01260 01268 virtual void assignGlobalPlan( 01269 const DtString& name, const DtPlan& plan, 01270 const DtSimulationAddress& addr = DtSimSendToAll, 01271 int *retiStatus = NULL, DtString* retsStmt = NULL) const; 01272 01274 virtual void deleteGlobalPlan(const DtString& name, 01275 const DtSimulationAddress& addr = DtSimSendToAll) const; 01276 01280 virtual void requestGlobalPlan( 01281 const DtString& name, 01282 const DtSimulationAddress& addr = DtSimSendToAll) const; 01283 01288 virtual void subscribeGlobalPlan(const DtString& name, 01289 DtPlanCallbackFcn fn, void* usr, 01290 const DtSimulationAddress& addr = DtSimSendToAll); 01291 01294 virtual void unsubscribeGlobalPlan(const DtString& name, 01295 DtPlanCallbackFcn fn, void* usr); 01296 01300 virtual void addGlobalPlanStatementCallback(const DtString& name, 01301 DtPlanStatementCallbackFcn callback, void* usrData); 01302 01304 virtual void removeGlobalPlanStatementCallback(const DtString& name, 01305 DtPlanStatementCallbackFcn callback, void* usrData); 01306 01310 virtual void addGlobalPlanCompleteCallback(const DtString& name, 01311 DtPlanCompleteCallbackFcn callback, void* usrData); 01312 01314 virtual void removeGlobalPlanCompleteCallback(const DtString& name, 01315 DtPlanCompleteCallbackFcn callback, void* usrData); 01316 01322 virtual DtVrfObjectMessageExecutive* objectMessageExecutive(); 01323 01329 virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage, 01330 const DtSimulationAddress& addr = DtSimSendToAll) const; 01331 01332 //------------------------------------------------------- 01333 01337 virtual void loadedScenario( 01338 const DtSimulationAddress& addr, unsigned int requestId); 01339 01343 virtual void processSaveMessages(); 01344 01348 virtual DtTime scenarioSimTimeForSave(); 01349 01353 virtual void setTerrainDatabaseFilename(DtScenario* scen); 01354 01358 virtual void setParameterDatabaseFilename(DtScenario* scen); 01359 01363 virtual void setPhysicalWorldFilename(DtScenario* scen); 01364 01368 virtual void setTimeMultiplier(DtScenario* scen); 01369 01373 virtual void setAutoReorganize(DtScenario* scen); 01374 01378 virtual void setRandomNumberSeed(DtScenario* scen); 01379 01383 virtual void setFrameRateMode(DtScenario* scen); 01384 01388 virtual void setFrameDeltaTime(DtScenario* scen); 01389 01393 virtual void setExerciseStartTime(DtScenario* scen); 01394 01400 virtual bool save(); 01401 01406 virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s); 01407 01411 virtual void savedScenario(const DtSimulationAddress& addr, 01412 DtSaveResult result, unsigned int requestId); 01413 01416 virtual void doPendingSaveWork(); 01417 01420 virtual void doPendingLoadWork(); 01421 01424 virtual void objectCreated(unsigned int requestId, 01425 const DtString& name, const DtEntityIdentifier& id); 01426 01428 virtual unsigned int generateRequestId() const; 01429 01432 virtual void receivedPlan(const DtString& name, bool isGlobal, 01433 const DtList& statements); 01434 01440 virtual void receivedPlanStmt(const DtString& name, bool isGlobal, 01441 DtPlanStatus planStatus); 01442 01449 virtual void embarkObject(const DtSimulationAddress& addr, const DtString& entity, const DtString& ontoEntity, 01450 bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero()); 01451 01452 virtual void disembarkObject(const DtSimulationAddress& addr, const DtString& entity); 01453 virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtString& entity); 01454 01457 virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr, 01458 const DtString& entityName); 01459 01461 virtual void requestTasksAndSetsFor(const std::vector<DtString>& names); 01462 01465 virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr, 01466 const DtString& entityName); 01467 01469 virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& names); 01470 01471 //------------------------------------------------------- 01473 //------------------------------------------------------- 01474 01478 virtual DtDefaultRadioMessageFactory* radioMsgFactory(); 01479 virtual DtDefaultCondExprFactory* condExprFactory(); 01480 virtual DtDefaultStatementFactory* stmtFactory(); 01481 virtual DtDefaultSimReportFactory* reportFactory(); 01482 virtual DtDefaultSimTaskFactory* taskFactory(); 01483 virtual DtDefaultSetDataRequestFactory* setDataFactory(); 01484 virtual DtDefaultSimCommandFactory* simCommandFactory(); 01485 virtual DtDefaultAdminContentFactory* adminContentFactory(); 01486 01487 //------------------------------------------------------- 01489 //------------------------------------------------------- 01490 01492 virtual void setRotationThreshold(DtReal thresh); 01493 01495 virtual void setTranslationThreshold(DtReal thresh); 01496 01501 virtual void setAggDimensionThreshold(DtReal thresh); 01502 01504 virtual void setHostInetAddr(DtInetAddr); 01505 virtual DtInetAddr hostInetAddr() const; 01506 01509 virtual void querySpatialSubdivisionConfiguration( 01510 const DtSimulationAddress& backendAddress, 01511 DtSpatialSubdivisionType spatialSubdivisionType, 01512 DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0); 01513 01515 virtual void setSpatialSubdivsionConfiguration( 01516 const DtSimulationAddress& backendAddress, 01517 DtSpatialSubdivisionType spatialSubdivisionType, 01518 const int spatialSubdivisionXResolution, 01519 const int spatialSubdivisionYResolution, 01520 const int spatialSubdivisionZResolution); 01521 01523 virtual void requestIndirectArtilleryInformation(const DtString&); 01524 01525 //------------------------------------------------------- 01527 //------------------------------------------------------- 01528 01536 virtual void requestResources(const DtString& name = DtString::nullString(), 01537 const std::list<DtString>* list = 0, 01538 DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0); 01539 01540 //------------------------------------------------------- 01542 //------------------------------------------------------- 01546 virtual void addObjectConsoleMessageCallback( 01547 DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0); 01548 01549 virtual void removeObjectConsoleMessageCallback( 01550 DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0); 01552 01555 virtual void setObjectNotifyLevel(const DtString& objectName, 01556 DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll); 01557 01561 virtual void logObjectConsoleToFile(const DtString& objectName, 01562 const DtFilename filename); 01563 01566 virtual void stopLoggingObjectConsoleToFile(const DtString& objectName); 01567 01568 //------------------------------------------------------- 01570 //------------------------------------------------------- 01574 virtual void addBackendConsoleMessageCallback( 01575 DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0); 01576 01577 virtual void removeBackendConsoleMessageCallback( 01578 DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0); 01580 01585 virtual void requestResourceNames(const std::list<DtString>& list, 01586 DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0); 01587 01593 virtual DtRadioMessageListener* radioMessageListener(); 01594 01595 //------------------------------------------------------- 01597 //------------------------------------------------------- 01598 01600 DtRemoteEnvironmentController* remoteEnvironmentController(); 01601 01607 virtual void initializeGlobalEnvironment( 01608 const DtSimulationAddress& environmentSimBackend = DtSimSendToAll); 01609 01612 DtRemoteEnvironmentController* createRemoteEnvironmentController(); 01613 01614 public: 01615 01618 static void doPendingSaveWorkCb(void* usr); 01619 01622 static void doPendingLoadWorkCb(void* usr); 01623 01626 static void savedScenarioCb(DtSimMessage* msg, void* usr); 01627 01630 static void loadedScenarioCb(DtSimMessage* msg, void* usr); 01631 01634 static void receiveFileCb(const DtFilename& filename, void* usr); 01635 01637 static void receivedMultiPlanCb(DtSimMessage* msg, void* usr); 01638 01640 virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg); 01641 01643 static void objectCreatedCb(DtSimMessage* msg, void* usr); 01644 01646 static void receivedPlanCb(DtSimMessage* msg, void* usr); 01647 01649 static void receivedPlanStmtCb(DtSimMessage* msg, void* usr); 01650 01653 static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id, 01654 void* usr); 01655 virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id, 01656 DtVrfOverlayObjectModify* modifications); 01657 01660 static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id, 01661 void* usr); 01662 virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id, 01663 DtVrfIndirectArtilleryObjectModify* modifications); 01664 01666 static void resourcesProcessedCb(DtSimMessage* msg, void* usr); 01667 01669 virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp); 01670 01673 static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr); 01674 01677 virtual void processSpatialSubdivisionConfigurationCb( 01678 const DtIfServerRequestResponse& rsp); 01679 01682 static void commentInteractionCallback(DtCommentInteraction *inter, void* usr); 01683 01686 virtual void processCommentInteraction(DtCommentInteraction* inter); 01687 01688 protected: 01689 01693 virtual void onInit(); 01694 virtual void resetStateData(); 01695 virtual void emptyLists(); 01696 01698 virtual void sendAggregateAsMsg( 01699 const DtSimulationAddress& addr, 01700 unsigned int requestId, 01701 const DtObjectType& objectType, 01702 DtForceType force, 01703 const DtVector& position, 01704 DtReal heading, 01705 DtList* entityNames, 01706 DtAggregateState initialAggregateState) const; 01707 01709 virtual DtVrfConfigurationFileComposer* createComposer(); 01710 01713 virtual void sendQuerySpatialSubdivisionConfigurationRequest( 01714 const DtSimulationAddress& backendAddress, 01715 DtSpatialSubdivisionType spatialSubdivisionType , 01716 DtServerRequestResponseCallbackFcn fcn, void* usr); 01717 01724 virtual bool arbitrarySimAddress(DtSimulationAddress& address) const; 01725 01733 virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg, 01734 const DtSimulationAddress& addr = DtSimSendToAll, 01735 int *retiStatus = 0, DtString* retsStmt = 0) const; 01736 01739 static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr); 01740 static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr); 01743 virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg); 01744 01747 static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, void* usr); 01748 virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id); 01749 01750 public: 01752 01756 virtual bool newScenario( 01757 const DtFilename& dbname, 01758 const DtFilename& guidbname, 01759 const DtFilename& opdname, 01760 const DtFilename& physicalWorldName, 01761 const std::vector<DtString>& simulationModelSetFiles, 01762 const DtScenario* baseScenario = 0, 01763 int startTimeOfDay = 12 * 3600); 01764 01765 protected: 01766 DtExerciseConn* myExConn; 01767 DtReflectedEnvironmentProcessList* myReflectedEnvironmentProcessList; 01768 bool myCreatedReflectedEnvironmentProcessList; 01769 DtVrfMessageInterface* myMsgIf; 01770 DtVrfBackendListener* myListener; 01771 DtCompressedFileTransporter* myTransporter; 01772 DtList myReceivedFiles; 01773 DtList myReceivedSaves; 01774 DtU32 myCurrentRequestId; 01775 DtTime myLastCommandTime; 01776 DtTime myMaxWaitLoadTime; 01777 DtTime myMaxWaitSaveTime; 01778 DtList myBeList; 01779 01780 DtList myScenLoadedCbs; 01781 DtList myBeLoadedCbs; 01782 DtList myScenSavedOldCbs; 01783 DtList myScenSavedCbs; 01784 DtList myBeSavedCbs; 01785 01786 typedef std::list<PlanCbInfo> DtPlanCallbackListType; 01787 DtPlanCallbackListType myPlanCbs; 01788 typedef std::list<StmtCbInfo> DtStatementCallbackListType; 01789 DtStatementCallbackListType myStmtCbs; 01790 typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType; 01791 DtPlanCompleteCallbaclListType myPlanCompleteCbs; 01792 01793 DtHashlist myObjectCbs; 01794 01795 typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> > 01796 DtObjectConsoleMessageCallbackListType; 01797 DtObjectConsoleMessageCallbackListType myObjectConsoleMessageCallbackList; 01798 01799 typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> > 01800 DtBackendConsoleMessageCallbackListType; 01801 DtBackendConsoleMessageCallbackListType myBackendConsoleMessageCallbackList; 01802 01803 bool myCreatedMsgIf; 01804 DtFilename mySaveName; 01805 DtFilename myOverlayFilename; 01806 DtFilename mySelectionGroupsFilename; 01807 DtFilename mySymbolMapFilename; 01808 DtFilename myCreateMenuFilename; 01809 DtFilename myOpdName; 01810 DtFilename myHostilityFilename; 01811 DtFilename myScenarioExtrasFilename; 01812 DtScenario* mySaveScen; 01813 DtScenario* myLoadScen; 01814 DtVrfConfigurationFileComposer* myComposer; 01816 bool myRemapped; 01818 bool myPreserveMappings; 01822 bool myDidRemap; 01823 01825 bool myNeedsGlobalEnvironment; 01826 01828 DtDefaultRadioMessageFactory myRadioMsgFact; 01829 DtDefaultCondExprFactory myCondExprFact; 01830 DtDefaultStatementFactory myStmtFact; 01831 DtDefaultSimReportFactory myReportFact; 01832 DtDefaultSimTaskFactory myTaskFact; 01833 DtDefaultSetDataRequestFactory mySetDataFact; 01834 DtDefaultSimCommandFactory mySimCommandFact; 01835 DtDefaultAdminContentFactory myAdminContentFact; 01836 01840 DtString myGuiTerrainDatabaseFilename; 01841 01843 DtRwKeyValueList myScenarioData; 01844 01847 DtFilename myTempDirectory; 01848 01852 DtInetAddr myInetAddr; 01853 01858 mutable unsigned int myRequestIdCounter; 01859 01861 DtVrfObjectMessageExecutive myObjectMessageExecutive; 01862 01864 DtRadioMessageListener* myRadioMessageListener; 01865 01867 DtRemoteEnvironmentController* myRemoteEnvironmentController; 01868 01870 int myStartTimeOfDay; 01871 }; 01872 01880 class DT_DLL_vrfcontrol DtVrfOverlayObjectModify 01881 { 01882 public: 01883 DtVrfOverlayObjectModify(int color, 01884 const DtString& parentName, const DtString& attachTo, 01885 char* userData, 01886 int iUserDataSize, DtOverlayCreatedCallbackFcn fcn, 01887 DtVrfRemoteController* control); 01888 01889 virtual ~DtVrfOverlayObjectModify(); 01890 01891 virtual int color() const; 01892 virtual const DtString& parentName() const; 01893 virtual const DtString& attachTo() const; 01894 virtual void userData(char** data, int* userDataSize); 01895 virtual DtVrfRemoteController* remoteController(); 01896 virtual DtOverlayCreatedCallbackFcn userCallback(); 01897 01898 protected: 01899 int myColor; 01900 DtString myParentName; 01901 DtString myAttachTo; 01902 DtVrfRemoteController* myController; 01903 char* myUserData; 01904 int myUserDataSize; 01905 DtOverlayCreatedCallbackFcn myUserCallback; 01906 }; 01907 01910 class DT_DLL_vrfcontrol DtVrfIndirectArtilleryObjectModify 01911 { 01912 public: 01913 DtVrfIndirectArtilleryObjectModify(DtVrfRemoteController* control); 01914 virtual ~DtVrfIndirectArtilleryObjectModify(); 01915 01917 virtual DtVrfRemoteController* remoteController() const; 01918 virtual void setRemoteController(DtVrfRemoteController*); 01919 01921 virtual const DtIfIndirectArtilleryData & data() const; 01922 virtual DtIfIndirectArtilleryData & data(); 01923 virtual void setData(const DtIfIndirectArtilleryData & data); 01924 01925 protected: 01926 DtVrfRemoteController* myController; 01927 DtIfIndirectArtilleryData myData; 01928 }; 01929 01930 #endif