VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
scenario.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/readerWriter.h"
12 #include <vlutil/vlString.h>
13 #include <vlutil/vlFilename.h>
14 #include "vrfutil/rwString.h"
15 #include "vrfutil/rwBoolean.h"
16 #include "vrfutil/rwReal.h"
17 #include "vrfutil/rwUnsigned.h"
18 #include "vrfutil/rwInt.h"
19 #include "vrfutil/simClock.h"
22 #include "vrfutil/rwKeyValueList.h"
23 #include <vlpi/simulationAddress.h>
24 
26 #include <vrfmsgs/messageTypes.h>
27 
35 
40 
43 typedef bool (*DtPreserveMappingsFcn)(void* usr);
44 
45 #include "vrfutil/vrfutilDefines.h"
47 {
48 public:
49 
51  DtScenario();
52 
54  DtScenario(const DtString & name,
55  DtReaderWriterRegistry * const parentRegistry = 0);
56 
58  virtual ~DtScenario();
59 
61  DtScenario(const DtScenario& orig);
62 
64  DtScenario& operator=(const DtScenario& orig);
65 
67  virtual bool init();
68 
70  virtual bool readScenarioFile(const DtFilename& filename);
71 
73  virtual bool save();
74 
76  virtual void setupScenarioFilenames(const DtFilename& scenarioFilename,
77  bool saveObjectMap = true);
78 
81  virtual bool save(const DtFilename& filename,
82  bool saveObjectMap = true);
83 
86  virtual DtScenario* clone() const;
87 
92  virtual void setComponentAttachmentRule(int rule);
93  virtual int componentAttachmentRule() const;
94 
96  virtual void setComponentAttachmentTableFilename(const DtFilename& filename);
97  virtual const DtFilename& componentAttachmentTableFilename() const;
100  virtual void setTerrainDatabaseFilename(const DtFilename& filename);
101  virtual const DtFilename& terrainDatabaseFilename() const;
102 
104  virtual void setGuiTerrainDatabaseFilename(const DtFilename& filename);
105  virtual const DtFilename& guiTerrainDatabaseFilename() const;
106 
108  virtual void setOrderOfBattleFilename(const DtFilename& filename);
109  virtual DtFilename orderOfBattleFilename() const;
110 
112  virtual void setScenarioScriptsFilename(const DtFilename& filename);
113  virtual DtFilename scenarioScriptsFilename() const;
114 
116  virtual void setPlanFilename(const DtFilename& filename);
117  virtual DtFilename planFilename() const;
118 
120 
121  virtual void setGlobalPlanFilename(const DtFilename& filename);
122  virtual DtFilename globalPlanFilename() const;
124 
126  virtual void setParameterDatabaseFilename(const DtFilename& filename);
127  virtual const DtFilename& parameterDatabaseFilename() const;
128 
130  virtual void setPhysicalWorldFilename(const DtFilename& filename);
131  virtual const DtFilename& physicalWorldFilename() const;
132 
134  virtual void setObjectMapFilename(const DtFilename& filename);
135  virtual DtFilename objectMapFilename() const;
136 
139  virtual void setOverlayFilename(const DtFilename& filename);
140  virtual DtFilename overlayFilename() const;
141 
143  virtual void setSelectionGroupsFilename(const DtFilename& filename);
144  virtual DtFilename selectionGroupsFilename() const;
145 
148  virtual void setSymbolMapFilename(const DtFilename& filename);
149  virtual const DtFilename& symbolMapFilename() const;
150 
153  virtual void setCreateMenuFilename(const DtFilename& filename);
154  virtual const DtFilename& createMenuFilename() const;
155 
159  virtual void setForceHostilityFilename(const DtFilename& filename);
160  virtual DtFilename forceHostilityFilename() const;
161 
165  virtual void setScenarioExtrasFilename(const DtFilename& f);
166  virtual DtFilename scenarioExtrasFilename() const;
168 
170  virtual void setTimeMultiplier(DtReal multiplier);
171  virtual DtReal timeMultiplier() const;
172 
174  virtual void setAutoReorganize(const bool& flag);
175  virtual const bool& autoReorganize() const;
176 
178  virtual void setRandomNumberSeed(long int numberSeed);
179  virtual long int randomNumberSeed() const;
180 
182  virtual DtString frameRateModeString() const;
183  virtual DtFrameMode frameRateMode() const;
184  virtual void setFrameRateModeString(DtString value);
185  virtual void setFrameRateMode(DtFrameMode value);
186 
188  virtual DtReal frameDeltaTime() const;
189  virtual void setFrameDeltaTime(DtReal value);
190 
193  virtual DtTime runDurationTime() const;
194  virtual void setRunDurationTime(DtTime time);
195 
197  virtual void setSimTime(DtTime time);
198  virtual DtTime simTime() const;
199 
201  virtual void setExerciseStartDateAndTime(int year, int month, int day, int hour, int minute, int second);
202 
204  virtual void setExerciseStartDateAndTime(DtTime time);
205 
207  virtual void setExerciseStartTime(DtTime time);
208 
210  virtual DtTime exerciseStartTime() const;
211 
216  virtual void setSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation(bool, int i = 10 * 3600);
217  virtual int setScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation() const;
218  virtual bool shouldSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation() const;
219 
223  virtual DtRwNLengthStringVector& additionalOpdFilenames();
224  virtual const DtRwNLengthStringVector& additionalOpdFilenames() const;
225  virtual void addAdditionalOpdFilename(const DtString&);
226  virtual void removeAdditonalOpdFilename(int iIndex);
227  virtual void setAdditionalOpdFilenames(const DtRwNLengthStringVector&);
229 
232  virtual void setScenarioDescription(const DtString&);
233  virtual DtString scenarioDescription() const;
234 
240  virtual DtRwNLengthStringVector& simulationModelSetFilenames();
241  virtual const DtRwNLengthStringVector& simulationModelSetFilenames() const;
242  virtual void addSimulationModelSetFilename(const DtString&);
243  virtual void removeSimulationModelSetFilename(int iIndex);
244  virtual void setSimulationModelSetFilenames(const DtRwNLengthStringVector&);
245  virtual void setSimulationModelSetFilenames(const std::vector<DtFilename>&);
246  virtual void setSimulationModelSetFilenames(const std::vector<std::string>&);
248 
254 
255  virtual DtRwKeyValueList& scenarioData();
256  virtual const DtRwKeyValueList& scenarioData() const;
258 
261 
262  virtual DtString scenarioName() const;
263  virtual void setScenarioName(const DtString& name);
264  virtual bool scenarioNameSpecified() const;
266 
272  static DtFilename validTerrainFile(const DtFilename&);
273 
275  virtual bool isParameterDatabaseRwStringSpecified();
276  virtual bool isPhysicalWorldRwStringSpecified();
277  virtual bool isOrderOfBattleRwStringSpecified();
278  virtual bool isScenarioScriptsRwStringSpecified();
279  virtual bool isOverlayRwStringSpecified();
280  virtual bool isSelectionGroupsRwStringSpecified();
281  virtual bool isSymbolMapRwStringSpecified();
282  virtual bool isCreateMenuRwStringSpecified();
283  virtual bool isPlanRwStringSpecified();
284  virtual bool isObjectMapRwStringSpecified();
285  virtual bool isTimeMultiplierSpecified();
286  virtual bool isAutoReorganizeRwStringSpecified();
287  virtual bool isRandomNumberSeedSpecified();
288  virtual bool isFrameRateModeSpecified();
289  virtual bool isRunDurationTimeSpecified();
290  virtual bool isFrameDeltaTimeSpecified();
291  virtual bool isSimTimeSpecified();
292  virtual bool isExerciseStartTimeSpecified();
293  virtual bool isForceHostilityRWStringSpecified();
294  virtual bool isScenarioExtrasRWStringSpecified();
295 
296  virtual void setFilename(const DtFilename&);
297  virtual const DtFilename& filename() const;
298 
300  virtual bool writeScenarioFile(const DtFilename & filename);
301 
304  virtual void putSelf(std::string& fp, int indentLevel = 0, bool writeUnspecified = false,
305  const DtFilename& path = DtReaderWriter::appPath());
306 
309  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
310  const DtVariableBindingsList& variableBindings);
311 
315  virtual bool isValid(bool allowEmptyFilenames = true, DtString* retMessage = 0) const;
316 
318  virtual double version() const;
319 
321  virtual bool relativeToScenarioFile() const;
322 
324  virtual void setToCurrentVersion();
325 
327  static double currentScenarioVersion();
328 
329 public:
330 
331  static DtString getFrameModeNameFromFrameModeType(DtFrameMode);
332 
333  static DtFrameMode getFrameModeTypeFromFrameModeName(
334  const DtString& frameModeName);
335 
336 protected:
347  virtual DtFilename absoluteFilename(const DtFilename&) const;
348 
349 protected:
350 
352 
355  DtFilename myFilename;
356 
359 
362 
365 
368 
371 
372  DtFilename myPlanFilename;
374 
377 
380 
381  DtFilename myOverlayFilename;
383 
386 
389 
392 
395 
398 
401 
403 
406 
408 
412 
414 
417 
420 
422 
424 
427 
428 protected:
429 
444 
445  static double theScenarioVersion;
446 };
447 
448 class DtAddressMap;
449 class DtList;
450 class DtBackendMap;
451 
454 typedef bool (*DtLoadBalancingFcn)(DtAddressMap* map, const DtList* backends,
455  bool& remapped, void* usr);
456 
457 typedef bool (*DtRemappingFcn)(DtBackendMap* map, void* usr);
458 
460 {
461 public:
463  DtLoadBalancingFcnInfo(const std::string&, DtLoadBalancingFcn fcn, void*);
465 
467 
468  std::string myLoadBalancer;
471 };
472 
479 const int DtSimulationObjectGroupCreationMode = 0x00000040;
480 
485 
487 {
488 public:
490  DtScenarioLoadInformation(bool createAsNew, DtScenario*, DtLoadBalancingFcnInfo, DtRemappingFcn fcn = 0, void* remappingUsrData = 0,
491  time_t startTimeOfDay = 12 * 3600, bool import = false, const DtSimulationAddress& address = DtSimSendToAll);
493 
495 
496 public:
503  bool myImport;
504  DtSimulationAddress myImportLoadAddress;
505 };
506 
508 {
510  {
511  };
512 
517 
519  {
520  return ((rootDirectory == rhs.rootDirectory) &&
521  (groupName == rhs.groupName) &&
523  (label == rhs.label) &&
524  (palette == rhs.palette) &&
525  (menuIcon == rhs.menuIcon) &&
527  (categories == rhs.categories) &&
529  }
530 
531  bool operator!=(const DtSimulationObjectGroupSaveInformation& rhs) const { return !(*this == rhs); };
532 
533  DtFilename rootDirectory;
534  std::string groupName;
535  std::string groupDescription;
536  std::string palette;
537  std::string menuIcon;
538  std::string label;
540  std::vector<DtString> categories;
541  std::map<DtString, DtString> additionalInformation;
542 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)