14 #include <libxml/xmlmemory.h>
15 #include <libxml/parser.h>
16 #include <matrix/vlVector.h>
17 #include <vlpi/entityType.h>
18 #include <geometry/tdbextent.h>
32 #define DtImportDataSetCountryForForce "DtImportDataSetCountryForForce"
52 std::map<std::string, DtMSDLScenarioContentsItem>
myChildren;
81 std::map<std::string, DtMSDLScenarioContentsItem>
myContents;
98 std::map<std::string, DtMSDLScenarioContentsItem>
myContents;
120 std::map<std::string, DtMSDLScenarioContentsItem>
myContents;
159 virtual bool loadScenarioDescription(
const DtFilename& file,
const std::map<std::string, std::string>& importData,
193 virtual std::string findValue(
const std::map<std::string, DtMSDLScenarioContentsItem>&,
const std::string& path)
const;
194 virtual bool hasValue(
const std::map<std::string, DtMSDLScenarioContentsItem>&,
const std::string& path)
const;
197 virtual bool organizationUsesForce(
MSDL_UUID)
const;
207 virtual std::string pad(
int)
const;
210 virtual bool parseMilitaryScenario(xmlNodePtr,
const std::map<std::string, std::string>& importData);
213 virtual bool parseScenarioID(xmlNodePtr,
const std::map<std::string, std::string>& importData);
216 virtual bool parseOptions(xmlNodePtr,
const std::map<std::string, std::string>& importData);
219 virtual bool parseEnvironment(xmlNodePtr,
const std::map<std::string, std::string>& importData);
223 virtual bool parseForces(xmlNodePtr,
const std::map<std::string, std::string>& importData);
226 virtual bool parseForce(xmlNodePtr,
const std::map<std::string, std::string>& importData);
229 virtual bool parsePOC(xmlNodePtr);
232 virtual std::string content(xmlNodePtr)
const;
235 virtual bool parseAssociations(xmlNodePtr,
Associations&);
238 virtual bool parseAssociation(xmlNodePtr,
Associations&);
242 virtual bool parseOrganizations(xmlNodePtr,
const std::map<std::string, std::string>& importData);
247 virtual bool parseUnits(xmlNodePtr,
const std::map<std::string, std::string>& importData);
252 virtual bool parseUnit(xmlNodePtr,
const std::map<std::string, std::string>& importData,
DtMSDLSimulatedElement& unit);
255 virtual bool parseEquipmentItem(xmlNodePtr,
const std::map<std::string, std::string>& importData,
DtMSDLSimulatedElement& unit);
267 virtual bool parseEquipment(xmlNodePtr,
const std::map<std::string, std::string>& importData);
277 virtual bool parseOverlays(xmlNodePtr,
const std::map<std::string, std::string>& importData);
280 virtual bool parseOverlay(xmlNodePtr,
const std::map<std::string, std::string>& importData,
DtMSDLOverlayLayer&);
284 virtual bool parseTacticalGraphics(xmlNodePtr,
const std::map<std::string, std::string>& importData);
291 virtual std::vector<DtVector> parseAnchorPoints(xmlNodePtr,
const std::map<std::string, std::string>& importData);
294 virtual DtVector parseAnchorPoint(xmlNodePtr,
const std::map<std::string, std::string>& importData);
297 virtual DtVector parseLocation(xmlNodePtr);
300 virtual DtVector parseLocationGCC(xmlNodePtr);
303 virtual DtVector parseLocationMGRS(xmlNodePtr);
306 virtual DtVector parseLocationUTM(xmlNodePtr);
309 virtual DtVector parseLocationGDC(xmlNodePtr);
312 virtual void convertFlatOrganizationToOrganizationHierarchy();
315 virtual std::string enumerationForUnit(
const std::string& symbolIdentifier,
const DtMSDLSimulatedElement&);
320 virtual int forceTypeFromName(
const std::string&,
int curForce,
const std::map<std::string, std::string>&)
const;
323 virtual std::string countryCodeForForce(
MSDL_UUID forceHandle)
const;
326 virtual void saveScenarioId(std::ostream&,
const DtScenario&)
const;
329 virtual void saveOptions(std::ostream&)
const;
332 virtual void saveEnvironment(std::ostream&)
const;
335 virtual void saveForceSides(std::ostream&)
const;
341 virtual void saveOverlayLayers(std::ostream&)
const;
345 virtual void saveTacticalGraphics(std::ostream&)
const;
350 virtual void saveAnchorPoint(std::ostream&,
const DtVector&,
int indent)
const;
353 virtual void saveOrganizations(std::ostream&)
const;
356 virtual void saveUnits(std::ostream&)
const;
364 virtual void saveLocation(std::ostream&,
const DtVector&,
int indent)
const;
395 virtual void saveEquipment(std::ostream&)
const;
400 virtual void finalize();
420 namespace DtBufferSerialize
422 template <
typename _Key,
typename _Value>
426 char* buf =
new char[size];
433 for (i = 0; i < size; i++)
435 encoded += (buf[i] + 1);
443 template <
typename _Key,
typename _Value>
446 int iLimit = s.size(), i;
447 char* buf =
new char[iLimit];
449 for (i = 0; i < iLimit; i++)