13 #include <vlutil/vlString.h>
14 #include <vlutil/vlFilename.h>
26 #include <vlpi/simulationAddress.h>
28 #include <boost/unordered_map.hpp>
76 virtual bool readScenarioFile(
const DtFilename&
filename);
80 bool saveAsZipFile()
const;
81 virtual void setSaveAsZipFile(
bool);
88 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
90 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
91 const char* buffer,
int length);
96 static bool readBufferFromScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
97 DtString& buffer,
bool onlyNeedsExtensionMatch =
true);
100 static bool fileExistsInZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
101 bool onlyNeedsExtensionMatch =
true);
105 static bool extractScenarioFileFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename& zipContentsFile,
106 bool onlyNeedsExtensionMatch =
true);
109 static bool readScenarioFromZipFile(
const DtFilename& f,
DtScenario& scenario);
112 static bool saveFileToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile);
115 static bool isScenarioZipFile(
const DtFilename&);
122 virtual void setupScenarioFilenames(
const DtFilename& scenarioFilename,
123 bool saveObjectMap =
true);
127 virtual bool save(
const DtFilename& filename,
128 bool saveObjectMap =
true);
135 virtual void setComponentAttachmentTableFilename(
const DtFilename& filename);
136 virtual const DtFilename& componentAttachmentTableFilename()
const;
139 virtual void setTerrainDatabaseFilename(
const DtFilename& filename);
140 virtual const DtFilename& terrainDatabaseFilename()
const;
143 virtual void setGuiTerrainDatabaseFilename(
const DtFilename& filename);
144 virtual const DtFilename& guiTerrainDatabaseFilename()
const;
147 virtual void setOrderOfBattleFilename(
const DtFilename& filename);
148 virtual DtFilename orderOfBattleFilename()
const;
151 virtual void setScenarioScriptsFilename(
const DtFilename& filename);
152 virtual DtFilename scenarioScriptsFilename()
const;
155 virtual void setOrbatFilename(
const DtFilename& filename);
156 virtual DtFilename orbatFilename()
const;
159 virtual void setPlanFilename(
const DtFilename& filename);
160 virtual DtFilename planFilename()
const;
164 virtual void setGlobalPlanFilename(
const DtFilename& filename);
165 virtual DtFilename globalPlanFilename()
const;
169 virtual void setParameterDatabaseFilename(
const DtFilename& filename);
170 virtual const DtFilename& parameterDatabaseFilename()
const;
173 virtual void setPhysicalWorldFilename(
const DtFilename& filename);
174 virtual const DtFilename& physicalWorldFilename()
const;
177 virtual void setObjectMapFilename(
const DtFilename& filename);
178 virtual DtFilename objectMapFilename()
const;
182 virtual void setOverlayFilename(
const DtFilename& filename);
183 virtual DtFilename overlayFilename()
const;
186 virtual void setSelectionGroupsFilename(
const DtFilename& filename);
187 virtual DtFilename selectionGroupsFilename()
const;
191 virtual void setSymbolMapFilename(
const DtFilename& filename);
192 virtual const DtFilename& symbolMapFilename()
const;
196 virtual void setCreateMenuFilename(
const DtFilename& filename);
197 virtual const DtFilename& createMenuFilename()
const;
202 virtual void setForceHostilityFilename(
const DtFilename& filename);
203 virtual DtFilename forceHostilityFilename()
const;
208 virtual void setScenarioExtrasFilename(
const DtFilename& f);
209 virtual DtFilename scenarioExtrasFilename()
const;
217 virtual void setUseDayNightIlluminationModel(
bool);
218 virtual bool useDayNightIlluminationModel()
const;
221 virtual void setTimeMultiplier(DtReal multiplier);
222 virtual DtReal timeMultiplier()
const;
225 virtual void setAutoReorganize(
const bool& flag);
226 virtual const bool& autoReorganize()
const;
229 virtual void setRandomNumberSeed(
long int numberSeed);
230 virtual long int randomNumberSeed()
const;
233 virtual DtString frameRateModeString()
const;
235 virtual void setFrameRateModeString(
DtString value);
239 virtual DtReal frameDeltaTime()
const;
240 virtual void setFrameDeltaTime(DtReal value);
244 virtual DtTime runDurationTime()
const;
245 virtual void setRunDurationTime(
DtTime time);
248 virtual void setSimTime(
DtTime time);
249 virtual DtTime simTime()
const;
252 virtual void setExerciseStartDateAndTime(
int year,
int month,
int day,
int hour,
int minute,
int second);
255 virtual void setExerciseStartDateAndTime(
DtTime time);
258 virtual void setExerciseStartTime(
DtTime time);
261 virtual DtTime exerciseStartTime()
const;
267 virtual void setSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation(
bool,
int i = 10 * 3600);
268 virtual int setScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
269 virtual bool shouldSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
273 virtual void setCreateGlobalEnvironment(
bool b);
274 virtual bool createGlobalEnvironment()
const;
280 virtual void setCreateGlobalDynamicTerrain(
bool b);
281 virtual bool createGlobalDynamicTerrain()
const;
289 virtual void addAdditionalOpdFilename(
const DtString&);
290 virtual void removeAdditonalOpdFilename(
int iIndex);
296 virtual void setScenarioDescription(
const DtString&);
297 virtual DtString scenarioDescription()
const;
308 virtual void addSimulationModelSetFilename(
const DtString&);
309 virtual void removeSimulationModelSetFilename(
int iIndex);
311 virtual void setSimulationModelSetFilenames(
const std::vector<DtFilename>&);
312 virtual void setSimulationModelSetFilenames(
const std::vector<std::string>&);
328 virtual DtString scenarioName()
const;
329 virtual void setScenarioName(
const DtString& name);
330 virtual bool scenarioNameSpecified()
const;
337 virtual void setGuiRuntimeLoadBalancingScheme(
const DtString& scheme,
const DtString& userData);
338 virtual void getGuiRuntimeLoadBalancingScheme(
DtString& scheme,
DtString& userData)
const;
344 virtual void setSimRemoteAttachmentBalancingScheme(
const DtString& scheme,
const DtString& userData);
345 virtual void getSimRemoteAttachmentBalancingScheme(
DtString& scheme,
DtString& userData)
const;
353 static DtFilename validTerrainFile(
const DtFilename&);
356 virtual bool isParameterDatabaseRwStringSpecified();
357 virtual bool isPhysicalWorldRwStringSpecified();
358 virtual bool isOrderOfBattleRwStringSpecified();
359 virtual bool isScenarioScriptsRwStringSpecified();
360 virtual bool isOrbatRwStringSpecified();
361 virtual bool isOverlayRwStringSpecified();
362 virtual bool isSelectionGroupsRwStringSpecified();
363 virtual bool isSymbolMapRwStringSpecified();
364 virtual bool isCreateMenuRwStringSpecified();
365 virtual bool isPlanRwStringSpecified();
366 virtual bool isObjectMapRwStringSpecified();
367 virtual bool isTimeMultiplierSpecified();
368 virtual bool isAutoReorganizeRwStringSpecified();
369 virtual bool isRandomNumberSeedSpecified();
370 virtual bool isFrameRateModeSpecified();
371 virtual bool isRunDurationTimeSpecified();
372 virtual bool isFrameDeltaTimeSpecified();
373 virtual bool isSimTimeSpecified();
374 virtual bool isExerciseStartTimeSpecified();
375 virtual bool isForceHostilityRWStringSpecified();
376 virtual bool isScenarioExtrasRWStringSpecified();
378 virtual void setFilename(
const DtFilename&);
379 virtual const DtFilename&
filename()
const;
382 virtual bool writeScenarioFile(
const DtFilename & filename);
386 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
false,
399 virtual void finalizeGetSelf();
404 virtual bool isValid(
bool allowEmptyFilenames =
true,
DtString* retMessage = 0)
const;
407 virtual double version()
const;
410 virtual bool relativeToScenarioFile()
const;
413 virtual void setToCurrentVersion();
416 static double currentScenarioVersion();
421 virtual void updateSimulationModelSetFilenames();
425 static DtFilename reworkDataDirectory(
const DtFilename&, DtFilename* unresolvedFilename =
nullptr);
428 static DtFilename replaceDirectoryWithAppropriateVariable(
const DtFilename&);
432 virtual void resolveSimulationModelSetPaths();
435 virtual void resolveDataPaths();
441 static DtFrameMode getFrameModeTypeFromFrameModeName(
455 virtual DtFilename absoluteFilename(
const DtFilename&)
const;
576 bool& remapped,
void* usr,
const DtString& userOptions);
586 InternalUseOnly = 0x00000000,
587 ShowOnLoadDialog = 0x00000001,
588 ShowOnScenarioDialog = 0x00000002,
589 DefaultSelection = 0x00000004,
590 RemoteConfiguration = 0x00000008,
591 ShowOnAll = ShowOnScenarioDialog | ShowOnLoadDialog | RemoteConfiguration
603 int flags()
const {
return myFlags; };
605 std::string myLoadBalancer;
609 int myFlags = ShowOnLoadDialog;
640 time_t startTimeOfDay = 0,
bool import =
false,
const DtSimulationAddress& address = DtSimSendToAll);
DtFilename myObjectMapFilename
Definition: scenario.h:502
const int DtSimulationObjectGroupCreationMode
Definition: scenario.h:618
DtFilename myOverlayFilename
Definition: scenario.h:490
DtFilename myScenarioScriptsFilename
Definition: scenario.h:475
DtFilename myPlanFilename
Definition: scenario.h:481
bool showOnScenarioDialog() const
Definition: scenario.h:600
Class which holds a list of string key and string value pairs. This class is a DtReaderWriter, and also has associated DtBufferSerialize methods available.
Definition: rwKeyValueList.h:21
DtRwString mySimRemoteAttachmentBalancingScheme
Definition: scenario.h:534
static DtString theOrbatExtension
Definition: scenario.h:552
DtFilename myGlobalPlanFilename
Definition: scenario.h:484
DtRwReal myRunDurationTime
Definition: scenario.h:522
bool(* DtLoadBalancingCheckFcn)(const DtList *backends, void *usr, const DtString &userOptions, DtString &error)
Definition: scenario.h:577
const int DtReinitializeReuseEntityIdentifier
Definition: scenario.h:621
DtRwString myScenarioScriptsRwString
Definition: scenario.h:476
Definition: scenario.h:52
bool(* DtRemappingFcn)(DtBackendMap *map, const std::set< DtSimulationAddress > &expectedBackends, void *usr)
Definition: scenario.h:579
DtRwString myForceHostilityRwString
Definition: scenario.h:506
DtRwString myOverlayRwString
Definition: scenario.h:491
static DtString theObjectMapExtension
Definition: scenario.h:559
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
bool myAutoReorganize
Definition: scenario.h:513
static DtString thePhysicalWorldFilenameExtension
Definition: scenario.h:549
DtRwString myGuiRuntimeLoadBalancingSchemeData
Definition: scenario.h:532
const char * filename
Definition: ioapi.h:38
DtRwReal myVersion
The version of the scenario file.
Definition: scenario.h:542
DtFilename myPhysicalWorldFilename
Definition: scenario.h:466
static DtString theSelectionGroupsExtension
Definition: scenario.h:554
bool showOnRemoteConfiguration() const
Definition: scenario.h:602
Definition: readerWriter.h:85
DtFilename mySymbolMapFilename
Definition: scenario.h:496
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
DtRwString myCreateMenuRwString
Definition: scenario.h:500
DtFilename mySelectionGroupsFilename
Definition: scenario.h:493
DtRwReal myTimeMultiplier
Definition: scenario.h:511
Definition: readerWriterRegistry.h:39
Definition: scenario.h:581
Contains the DtUUID class declaration.
DtRwString myTerrainDatabaseRwString
Definition: scenario.h:464
DtRwString myPhysicalWorldRwString
Definition: scenario.h:467
DtRwString mySimRemoteAttachmentBalancingSchemeData
Definition: scenario.h:535
DtRwNLengthStringVector myAdditionalOpdFilenames
Definition: scenario.h:527
class DtBackendMap:
Definition: backendMap.h:21
bool mySaveAsZipFile
Whether or not to treat the file as a zip file when saving.
Definition: scenario.h:545
DtFilename myTerrainDatabaseFilename
Definition: scenario.h:463
DtFilename myOrderOfBattleFilename
Definition: scenario.h:472
Definition: addressMap.h:24
DtRwString myOrderOfBattleRwString
Definition: scenario.h:473
DtFilename myComponentAttachmentTableFilename
Definition: scenario.h:459
const int DtSimulationObjectGroupDefaultFlags
Definition: scenario.h:632
const int DtSimulationObjectGroupUseGroupNameToDisambiguate
Definition: scenario.h:616
static DtString theSymbolMapExtension
Definition: scenario.h:555
static DtString theCreateMenuExtension
Definition: scenario.h:556
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtRwInt myRandomNumberSeed
Definition: scenario.h:516
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwString mySelectionGroupsRwString
Definition: scenario.h:494
const int DtImportDuplicateScenarioObjects
Definition: scenario.h:620
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwReal mySimTime
Definition: scenario.h:524
DtFilename myCreateMenuFilename
Definition: scenario.h:499
static DtString thePlanExtension
Definition: scenario.h:557
static double theScenarioVersion
Definition: scenario.h:565
DtLoadBalancingCheckFcn myLoadBalancingCheckFcn
Definition: scenario.h:607
DtFilename myFilename
Definition: scenario.h:461
DtRwString myGuiTerrainDatabaseRwString
Definition: scenario.h:470
const int DtImportScenarioCreateSelectionGroup
Definition: scenario.h:614
static DtString theScenarioScriptsExtension
Definition: scenario.h:551
static DtString theForceHostilityExtension
Definition: scenario.h:562
DtFilename myOrbatFilename
Definition: scenario.h:478
const int DtSimulationObjectGroupPreserveForceInformation
Definition: scenario.h:615
static DtString theFileExtension
Definition: scenario.h:561
DtRwString myGuiRuntimeLoadBalancingScheme
Definition: scenario.h:531
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
bool showOnLoadDialog() const
Definition: scenario.h:601
const int DtImportScenarioCreateUniqueNamesOnImport
Definition: scenario.h:612
Definition: asyncJobServer.h:39
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file. If write unspecified is true, will write entries that are uns...
DtFilename myScenarioExtrasFilename
Definition: scenario.h:508
DtFilename myGuiTerrainDatabaseFilename
Definition: scenario.h:469
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
static DtString theOverlayExtension
Definition: scenario.h:553
DtRwKeyValueList myScenarioData
Definition: scenario.h:539
DtFilename myParameterDatabaseFilename
Definition: scenario.h:487
bool(* DtPreserveMappingsFcn)(void *usr)
Used by saveScenario to determine if original (true) or new mappings should be saved.
Definition: vrfRemoteController.h:89
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtRwString myScenarioName
Definition: scenario.h:537
DtRwString myParameterDatabaseRwString
Definition: scenario.h:488
DtRwNLengthStringVector mySimulationModelSetFilenames
Definition: scenario.h:528
DtRwString myScenarioExtrasRWString
Definition: scenario.h:509
const int DtImportScenarioImportScenarioEvents
Definition: scenario.h:613
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtRwString myPlanRwString
Definition: scenario.h:482
const int DtSimulationObjectGroupAllowAltitudePlacement
Definition: scenario.h:619
static DtString theOrderOfBattleExtension
Definition: scenario.h:550
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
DtRwString mySymbolMapRwString
Definition: scenario.h:497
DtRwReal myExerciseStartTime
Definition: scenario.h:525
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
static DtString theScenarioDataExtension
Definition: scenario.h:563
Definition: vrfFileParser.h:30
DT_DLL_readerWriter std::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
virtual DtString toXml() const
Routines to archive/de-archive from an XML Environment.
DtFrameMode
Definition: messageTypes.h:459
DtFrameMode myFrameRateMode
Definition: scenario.h:519
static DtString theGlobalPlanExtension
Definition: scenario.h:558
const int DtDefaultScenarioImportFlags
Default is not not import duplicate UUIDs. This will allow multiple scenarios that have the same base...
Definition: scenario.h:625
Flag
Definition: scenario.h:584
DtRwString myObjectMapRwString
Definition: scenario.h:503
const int DtSimulationObjectGroupAltitudesAreAboveTerrain
Definition: scenario.h:617
const int DtImportScenarioDefaultFlags
If this is on will generate new UUIDs for scenario objects on import and keep all duplicate objects I...
Definition: scenario.h:630
DtRwString myFrameRateModeString
Definition: scenario.h:518
DtRwString myOrbatRwString
Definition: scenario.h:479
DtRwString myGlobalPlanRwString
Definition: scenario.h:485
void * myLoadBalancingUserData
Definition: scenario.h:608
DtRwReal myFrameDeltaTime
Definition: scenario.h:520
DtLoadBalancingFcn myLoadBalancingFcn
Definition: scenario.h:606
DtRwString myComponentAttachmentTableRwString
Definition: scenario.h:460
static const DtFilename & appPath()
Gets the current working directory. The first time this accessor is called, it determines the current...
DtRwBoolean myAutoReorganizeRW
Definition: scenario.h:514
bool(* DtLoadBalancingFcn)(DtAddressMap *map, const DtVrfFileParser *parser, const DtList *backends, bool &remapped, void *usr, const DtString &userOptions)
Return true from this function to signal success of load balancing, however, set remapped to true if ...
Definition: scenario.h:575
static DtString theParameterDatabaseExtension
Definition: scenario.h:560
DtFilename myForceHostilityFilename
Definition: scenario.h:505
DtRwNLengthStringVector myResolvedSimulationModelSetFilenames
Definition: scenario.h:529