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
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
std::map< std::string, std::string > myExtendedData
Definition: msdlScenarioDescriptionImporterExporter.h:123
Class that represents an overlay layer. Overlay layers will contain the tactical graphics that will b...
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. This class will not actuall...
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
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. Subclasses will implement t...
Definition: scenarioDescriptionImporterExporter.h:27
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:48
std::string mySymbolIdentifier
Definition: msdlScenarioDescriptionImporterExporter.h:76
std::string myOneSAFName
Definition: msdlScenarioDescriptionImporterExporter.h:78
std::string myFormation
Definition: msdlScenarioDescriptionImporterExporter.h:79
DtLocalObject * myObject
Definition: msdlScenarioDescriptionImporterExporter.h:116
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:56
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:20
virtual bool importFromSimulation(DtSimulationServices *, const std::map< std::string, std::string > &exportData, const DtMsdlHierarchyPropertyMappings &)=0
Imports from the simulation into internal structures. DtSimulationServices is not defined at this lev...
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. buffer must have at least the number of bytes returned...
Class that represents a tactical graphic element.
Definition: msdlScenarioDescriptionImporterExporter.h:100
virtual bool importIntoSimulation(DtSimulationServices *)=0
Imports into the simulation. DtSimulationServices is not defined at this level, so subclasses at vrfo...
DtMSDLVector & operator=(const DtMSDLVector &orig)
Definition: msdlScenarioDescriptionImporterExporter.h:62
std::string myName
ForcesSideType.
Definition: msdlScenarioDescriptionImporterExporter.h:151
std::string Msdl_UUID
These structures will be used to keep track of the simulation data that is to be imported into the si...
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
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
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
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
These structures will be used to keep track of the simulation data that is to be imported into the si...
Definition: msdlScenarioDescriptionImporterExporter.h:142
std::vector< DtMSDLVector > myLocations
All points are in geocentric.
Definition: msdlScenarioDescriptionImporterExporter.h:119
DtLocalObject * myObject
Definition: msdlScenarioDescriptionImporterExporter.h:92
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 loadScenarioDescription(const DtFilename &file, const std::map< std::string, std::string > &importData)=0
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86