14 #include <libxml/xmlmemory.h>
15 #include <libxml/parser.h>
16 #include <matrix/vlVector.h>
17 #include <vlpi/entityType.h>
32 #define DtImportDataSetCountryForForce "DtImportDataSetCountryForForce"
52 std::map<std::string, DtMsdlScenarioContentsItem>
myChildren;
94 std::map<std::string, DtMsdlScenarioContentsItem>
myContents;
112 std::map<std::string, DtMsdlScenarioContentsItem>
myContents;
138 std::map<std::string, DtMsdlScenarioContentsItem>
myContents;
176 virtual bool loadScenarioDescription(
const DtFilename& file,
const std::map<std::string, std::string>& importData);
179 virtual bool loadScenarioDescription(
const DtFilename& file,
const std::map<std::string, std::string>& importData,
213 virtual std::string findValue(
const std::map<std::string, DtMsdlScenarioContentsItem>&,
const std::string& path)
const;
214 virtual std::map<std::string, std::string>
215 findStdMapValue(
const std::map<std::string, DtMsdlScenarioContentsItem>&,
const std::string& path,
216 const std::set<std::string>& ignore = std::set<std::string>())
const;
217 virtual bool hasValue(
const std::map<std::string, DtMsdlScenarioContentsItem>&,
const std::string& path)
const;
220 virtual std::string convertMapToString(
const std::map<std::string, std::string>&)
const;
223 virtual bool organizationUsesForce(
Msdl_UUID)
const;
232 virtual void clear();
239 virtual std::string pad(
int)
const;
242 virtual bool parseMilitaryScenario(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
245 virtual bool parseScenarioID(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
248 virtual bool parseOptions(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
251 virtual bool parseEnvironment(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
255 virtual bool parseForces(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
258 virtual bool parseForce(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
264 virtual std::string content(
xmlNodePtr)
const;
274 virtual bool parseOrganizations(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
279 virtual bool parseUnits(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
299 virtual bool parseEquipment(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
309 virtual bool parseOverlays(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
316 virtual bool parseTacticalGraphics(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
323 virtual std::vector<DtMSDLVector> parseAnchorPoints(
xmlNodePtr,
const std::map<std::string, std::string>& importData);
344 virtual void convertFlatOrganizationToOrganizationHierarchy();
347 virtual std::string enumerationForUnit(
const std::string& symbolIdentifier,
const DtMsdlSimulatedElement&);
352 virtual int forceTypeFromName(
const std::string&,
int curForce,
const std::map<std::string, std::string>&)
const;
355 virtual std::string countryCodeForForce(
Msdl_UUID forceHandle)
const;
358 virtual void saveScenarioId(std::ostream&,
const DtScenario&)
const;
361 virtual void saveAdditionalScenarioInformation(std::ostream&,
const DtScenario&)
const;
364 virtual void saveOptions(std::ostream&)
const;
367 virtual void saveEnvironment(std::ostream&)
const;
370 virtual void saveForceSides(std::ostream&)
const;
376 virtual void saveOverlayLayers(std::ostream&)
const;
380 virtual void saveTacticalGraphics(std::ostream&)
const;
385 virtual void saveAnchorPoint(std::ostream&,
const DtVector&,
int indent)
const;
388 virtual void saveOrganizations(std::ostream&)
const;
391 virtual void saveUnits(std::ostream&)
const;
399 virtual void saveLocation(std::ostream&,
const DtMSDLVector&,
int indent)
const;
430 virtual void saveEquipment(std::ostream&)
const;
435 virtual void finalize();
437 virtual int nextForceType()
const;
457 namespace DtBufferSerialize
459 template <
typename _Key,
typename _Value>
470 for (i = 0; i <
size; i++)
472 encoded += (buf[i] + 1);
480 template <
typename _Key,
typename _Value>
483 int iLimit = s.size(), i;
484 char*
buf =
new char[iLimit];
486 for (i = 0; i < iLimit; i++)
std::string myName
Definition: msdlScenarioDescriptionImporterExporter.h:108
double myPhysicalLineWidth
Definition: msdlScenarioDescriptionImporterExporter.h:121
DtVrfObject * myObject
Definition: msdlScenarioDescriptionImporterExporter.h:116
OverlayLayer myOverlayLayers
Definition: msdlScenarioDescriptionImporterExporter.h:446
std::map< std::string, DtMsdlScenarioContentsItem > myChildren
Definition: msdlScenarioDescriptionImporterExporter.h:52
std::string myEnumeration
Definition: msdlScenarioDescriptionImporterExporter.h:75
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
std::map< Msdl_UUID, DtMsdlSimulatedElement * > OrganizationPtr
Definition: msdlScenarioDescriptionImporterExporter.h:165
double mySpeed
Definition: msdlScenarioDescriptionImporterExporter.h:86
std::map< std::string, std::string > myExtendedData
Definition: msdlScenarioDescriptionImporterExporter.h:96
double myHeading
Heading is in radians.
Definition: msdlScenarioDescriptionImporterExporter.h:85
DtMSDLVector()
Definition: msdlScenarioDescriptionImporterExporter.h:58
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
std::map< std::string, std::string > myExtendedData
Definition: msdlScenarioDescriptionImporterExporter.h:123
Class that represents an overlay layer.
Definition: msdlScenarioDescriptionImporterExporter.h:128
OrganizationPtr myFlatOrganization
Definition: msdlScenarioDescriptionImporterExporter.h:444
DT_DLL_vrfutil void decodeFromImportData(DtMsdlHierarchyPropertyMappings &, const std::string &)
Definition: scenario.h:52
std::string mySymbolIdentifier
Definition: msdlScenarioDescriptionImporterExporter.h:104
std::string myCountryCode
Definition: msdlScenarioDescriptionImporterExporter.h:152
DtMSDLVector myLocation
Location is in geocentric.
Definition: msdlScenarioDescriptionImporterExporter.h:82
The main class that is used to import/export values from/to an Msdl file.
Definition: msdlScenarioDescriptionImporterExporter.h:161
virtual DtScenarioDescriptionImporterExporter * clone()=0
Clone to create a new copy of the object. Will be used as a "clean" version for import.
DtMsdlHierarchyPropertyMappings myHierarchyPropertyMappings
Definition: msdlScenarioDescriptionImporterExporter.h:451
EquipmentPtr myEquipment
Definition: msdlScenarioDescriptionImporterExporter.h:445
DtVrfObject * myObject
Definition: msdlScenarioDescriptionImporterExporter.h:92
voidpf void uLong size
Definition: ioapi.h:39
std::string mySuperiorHandle
Definition: msdlScenarioDescriptionImporterExporter.h:136
OrganizationPtr myOrganizedOrganization
Definition: msdlScenarioDescriptionImporterExporter.h:443
std::string myName
Definition: msdlScenarioDescriptionImporterExporter.h:49
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
int myForceType
Definition: msdlScenarioDescriptionImporterExporter.h:148
std::map< Msdl_UUID, DtMsdlSimulatedElement * > mySubordinates
Definition: msdlScenarioDescriptionImporterExporter.h:95
std::string myAffiliation
Definition: msdlScenarioDescriptionImporterExporter.h:105
bool myAggregated
Definition: msdlScenarioDescriptionImporterExporter.h:88
DtMSDLVector(const DtVector &orig)
Definition: msdlScenarioDescriptionImporterExporter.h:59
This class is the interface for a scenario description importer/exporter.
Definition: scenarioDescriptionImporterExporter.h:27
virtual bool importFromSimulation(DtSimManager *, const std::map< std::string, std::string > &exportData, const DtMsdlHierarchyPropertyMappings &)=0
Imports from the simulation into internal structures.
virtual bool saveScenarioDescription(const DtFilename &file, const DtScenario &) const =0
Saves the scenario description information to the specified file.
voidpf void * buf
Definition: ioapi.h:39
std::string myName
Definition: msdlScenarioDescriptionImporterExporter.h:132
OrganizationPtr myPendingMatches
Matches, that during reading, have not been made for units as of yet.
Definition: msdlScenarioDescriptionImporterExporter.h:449
std::string myForceHandle
Definition: msdlScenarioDescriptionImporterExporter.h:110
Associations myAssociations
Definition: msdlScenarioDescriptionImporterExporter.h:154
This class is the base class for parsing out creation information from various textual formats...
Definition: createObjectParser.h:45
std::string mySymbolIdentifier
Definition: msdlScenarioDescriptionImporterExporter.h:76
std::string myOneSAFName
Definition: msdlScenarioDescriptionImporterExporter.h:78
std::string myFormation
Definition: msdlScenarioDescriptionImporterExporter.h:79
std::map< Msdl_UUID, DtMsdlOverlayLayer > OverlayLayer
Definition: msdlScenarioDescriptionImporterExporter.h:167
std::string mySuperiorHandle
Definition: msdlScenarioDescriptionImporterExporter.h:90
DtMSDLVector(const DtMSDLVector &orig)
Definition: msdlScenarioDescriptionImporterExporter.h:60
Definition: msdlHierarchyPropertyMappings.h:37
Msdl_UUID myAllegianceHandle
Definition: msdlScenarioDescriptionImporterExporter.h:153
std::map< Msdl_UUID, DtMsdlSimulatedTacticalGraphic > myTacticalGraphics
Definition: msdlScenarioDescriptionImporterExporter.h:139
std::map< std::string, DtMsdlScenarioContentsItem > myContents
Definition: msdlScenarioDescriptionImporterExporter.h:112
std::string mySymbolClassChoice
Definition: msdlScenarioDescriptionImporterExporter.h:107
Msdl_UUID myObjectHandle
Definition: msdlScenarioDescriptionImporterExporter.h:72
virtual std::string supportedExtensions()=0
Returns a space delimeted list of the extensions supported (i.e. "xml" or "csv txt") ...
xmlNode * xmlNodePtr
Definition: DtLightPointTable.h:19
xmlDocPtr myDoc
Definition: msdlScenarioDescriptionImporterExporter.h:440
bool myVisible
Definition: msdlScenarioDescriptionImporterExporter.h:133
std::string myType
Definition: msdlScenarioDescriptionImporterExporter.h:134
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer.
Class that represents a tactical graphic element.
Definition: msdlScenarioDescriptionImporterExporter.h:100
DtMSDLVector & operator=(const DtMSDLVector &orig)
Definition: msdlScenarioDescriptionImporterExporter.h:62
std::string myName
ForcesSideType.
Definition: msdlScenarioDescriptionImporterExporter.h:151
std::string Msdl_UUID
Conveniece typedef for representing an Msdl UUID.
Definition: msdlScenarioDescriptionImporterExporter.h:39
DtMSDLVector & operator=(const DtVector &orig)
Definition: msdlScenarioDescriptionImporterExporter.h:63
DT_DLL_vrfutil std::string encodeForImportData(const DtMsdlHierarchyPropertyMappings &)
std::map< std::string, DtMsdlScenarioContentsItem > myContents
Definition: msdlScenarioDescriptionImporterExporter.h:138
virtual DtObjectParser * parser()=0
Returns parser, if doesn't exist yet will create it.
Msdl_UUID myObjectHandle
Definition: msdlScenarioDescriptionImporterExporter.h:131
std::string myObjectHandle
Definition: msdlScenarioDescriptionImporterExporter.h:103
ForceSides myForces
Definition: msdlScenarioDescriptionImporterExporter.h:441
std::map< std::string, DtMsdlScenarioContentsItem > myContents
Definition: msdlScenarioDescriptionImporterExporter.h:94
Contains the declaration of the DtExtent class.
double myPhysicalLineHeight
Definition: msdlScenarioDescriptionImporterExporter.h:122
ForcesSide structure. Used to hold force information.
Definition: msdlScenarioDescriptionImporterExporter.h:145
std::string myOverlayHandle
Definition: msdlScenarioDescriptionImporterExporter.h:106
#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
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
int myColor
Definition: msdlScenarioDescriptionImporterExporter.h:113
std::string myMilitaryEnumeration
Definition: msdlScenarioDescriptionImporterExporter.h:77
virtual bool canImportFile(const DtFilename &)=0
Returns true if the supplied file can be loaded by this importer.
DtExtent myAreaOfInterest
Corners must be in geocentric.
Definition: msdlScenarioDescriptionImporterExporter.h:454
std::string myEnvironmentalFormattingData
Definition: msdlScenarioDescriptionImporterExporter.h:111
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
Msdl_UUID myForceHandle
Definition: msdlScenarioDescriptionImporterExporter.h:74
std::string myEnumeration
Definition: msdlScenarioDescriptionImporterExporter.h:109
std::string myValue
Definition: msdlScenarioDescriptionImporterExporter.h:50
int myAppearance
Definition: msdlScenarioDescriptionImporterExporter.h:114
bool locationAGL
Definition: msdlScenarioDescriptionImporterExporter.h:63
std::string myName
Definition: msdlScenarioDescriptionImporterExporter.h:73
std::map< Msdl_UUID, std::string > Associations
Definition: msdlScenarioDescriptionImporterExporter.h:142
std::vector< DtMSDLVector > myLocations
All points are in geocentric.
Definition: msdlScenarioDescriptionImporterExporter.h:119
Class that will keep track of all XML data that is not already parsed as part of the import process...
Definition: msdlScenarioDescriptionImporterExporter.h:46
Definition: msdlScenarioDescriptionImporterExporter.h:55
std::map< Msdl_UUID, DtForceSide > ForceSides
Definition: msdlScenarioDescriptionImporterExporter.h:164
Class that represents a simulated element (aggregate or entity) in the simulation.
Definition: msdlScenarioDescriptionImporterExporter.h:69
std::map< Msdl_UUID, DtMsdlSimulatedElement * > EquipmentPtr
Definition: msdlScenarioDescriptionImporterExporter.h:166
virtual bool importIntoSimulation(DtSimManager *)=0
Imports into the simulation.
virtual bool loadScenarioDescription(const DtFilename &file, const std::map< std::string, std::string > &importData)=0