10 #include "mtl/environment.h"
11 #include "mtl/envXmlWriter.h"
31 #include "vlutil/vlStringUtil.h"
32 #include "vlutil/vlFilename.h"
34 #include <boost/function.hpp>
35 #include <boost/lexical_cast.hpp>
97 return XmlBindingCharToMtl(root->value());
101 DtEnvValueSP root,
const DtString& paramName = DtString::nullString())
103 FindAndRemove(env, type, paramName, root);
104 DtEnvValueSP newElement = env->addObject(type, type, root);
105 if (paramName != DtString::nullString())
116 newElement->setValue(value ?
"True" :
"False");
123 DtEnvValueSP newElement = AddElement(env,
DtXMLRealType, root, name);
124 newElement->setValue(
DtString(value));
131 DtEnvValueSP newElement = AddElement(env,
DtXMLIntType, root, name);
132 newElement->setValue(
DtString(value));
138 return env->addAttribute(name, value ?
"True" :
"False", root);
146 DtEnvValueSP newElement = AddElement(env,
DtXMLStringType, root, name);
147 newElement->setValue(MtlBindingCharToXml(value));
153 DtEnvValueSP attr = env->getAttribute(name, root);
173 static std::list<DtObjectType> additionalMatchTypes(
DtEnvironmentSP env, DtEnvValueSP root);
174 static void setAdditionalMatchTypes(
DtEnvironmentSP env, DtEnvValueSP root,
const std::list<DtObjectType>& types);
198 const DtEnvValueSP parentNode, DtTaitBryan& orientation)
200 orientation.setPsi(getDoubleAttribute(env,
DtXMLYaw, parentNode));
201 orientation.setTheta(getDoubleAttribute(env,
DtXMLPitch, parentNode));
202 orientation.setPhi(getDoubleAttribute(env,
DtXMLRoll, parentNode));
208 static void CreateVariableBinding(
const DtString& bindingType,
228 const DtString& dataSourceFilename,
bool showConsoleOutput =
true);
231 const DtString& type, DtEnvValueSP root);
253 static std::set<DtString> getVariableTypesFromEnvironment(DtEnvValueSP);
258 DtEnvValueSP envValue,
bool traverseElements =
true)
261 attributeValue, envValue, traverseElements);
266 DtEnvValueSP envValue,
bool traverseElements =
true)
269 attributeValue, envValue, traverseElements);
275 const DtString& attributeValue, DtEnvValueSP envValue,
276 bool traverseElements =
true);
286 static bool IsGroupedElement(
const DtString& rwName,
290 DtEnvValueSP parentNode,
const DtString& groupName,
291 bool createIfMissing =
true);
294 DtEnvValueSP parentNode,
const DtString& groupName);
305 DtEnvValueSP parent,
DtString bindingName =
"")
308 DtEnvValueSP newObject = env->addObject(name, name, parent);
309 if (bindingName !=
"")
320 DtEnvValueSP simObjectNode);
327 const DtString& dataSourceFilename,
bool showConsoleOutput =
true);
343 writer.setIndentation(
" ");
344 writer.writeFile(*env, filename);
355 DtString objType = getAttribute(env, attributeName, root);
358 ot = objType.c_str();
364 bool fallbackOnObjectType =
true)
375 static std::list<DtObjectType> getMatchTypes(
DtEnvironmentSP env, DtEnvValueSP root,
376 bool fallbackOnObjectType =
true);
379 bool fallbackOnMatchType =
true)
384 return getMatchType(env, root,
false);
391 double& x,
double& y,
double& z)
411 const DtRwVector* vec,
bool writeAsBodyPosition)
413 if (writeAsBodyPosition)
430 sprintf(buff,
"%X", number);
static DtObjectType getObjectTypeAttr(DtEnvironmentSP env, const DtString &attributeName, DtEnvValueSP root)
Gets objecttype attribute from current Node.
Definition: vrfXmlUtils.h:353
static DtEnvValueSP CreateEnvNode(DtEnvironmentSP env, const DtString &name, DtEnvValueSP parent, DtString bindingName="")
Definition: vrfXmlUtils.h:304
DT_DLL_readerWriter DtString DtXmlBindingCharToMtl(const DtString &str)
Can't use '$' for variables.
const char DtXMLVectorZ[]
Definition: rwTypes.h:80
static DtString getParentFile(DtEnvironmentSP env, DtEnvValueSP root)
Gets parent file attribute from current Node.
Definition: vrfXmlUtils.h:90
static void WriteXML(DtEnvironmentSP env, DtString filename)
Definition: vrfXmlUtils.h:339
Definition: vrfXmlUtils.h:41
static const char * Platform
Definition: vrfXmlTypes.h:46
const char DtXMLStringType[]
Definition: rwTypes.h:50
static DtString getPlatform(DtEnvironmentSP env, DtEnvValueSP root)
Gets platform attribute from current Node.
Definition: vrfXmlUtils.h:84
static double getDoubleAttribute(DtEnvironmentSP env, DtString attributeName, DtEnvValueSP root)
Definition: vrfXmlUtils.h:181
Definition: readerWriterRegistryData.h:25
#define DT_DLL_vrfobjparam
This file is used to determine how to build.
Definition: vrfobjparamDefines.h:28
const char DtXMLRoll[]
Definition: vrfRwTypes.h:299
static void getOrientation(DtEnvironmentSP env, const DtEnvValueSP parentNode, DtTaitBryan &orientation)
Definition: vrfXmlUtils.h:197
DT_DLL_readerWriter DtBoost::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
const char DtXMLIntType[]
Definition: rwTypes.h:23
DT_DLL_readerWriter DtString DtRemoveQuotes(const DtString &str)
static const DtObjectType & nullType()
List of DtComponentSystemDescriptor instances.
Definition: componentSystemDescriptorList.h:20
std::list< DtString > NameList
Definition: vrfXmlUtils.h:408
std::list< DtString > StringVector
Definition: vrfXmlUtils.h:278
static const char * SimObject
Definition: vrfXmlTypes.h:54
Definition: readerWriter.h:85
static DtEnvValueSP addRealElement(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, double value)
Adds a new real type to the given root and returns the new value.
Definition: vrfXmlUtils.h:121
const char DtXMLRealType[]
Definition: rwTypes.h:36
*virtual const DtObjectType & objectType() const
Definition: readerWriterRegistry.h:39
virtual const char * string(char sep= ':') const
static void getXYZAttrs(DtEnvironmentSP env, const DtEnvValueSP root, double &x, double &y, double &z)
Definition: vrfXmlUtils.h:390
static const char * MatchType
Definition: vrfXmlTypes.h:70
static DtEnvValueSP addBooleanAttribute(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, bool value)
Definition: vrfXmlUtils.h:136
static DtReaderWriter * CreateRwObject(const DtString &rwType)
Creates an RW object given the type.
Definition: vrfXmlUtils.h:192
const char DtXMLBodyForward[]
Definition: rwTypes.h:81
static DtEnvValueSP addStringElement(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, const DtString &value)
Convenience function.
Definition: vrfXmlUtils.h:144
static DtString GetObjectValue(DtEnvValueSP root)
Definition: vrfXmlUtils.h:95
static DtString IntToHexString(const int &number)
Definition: vrfXmlUtils.h:427
const char DtXMLObjectTypeType[]
Definition: rwTypes.h:59
static DtString MtlBindingCharToXml(const DtString &str)
Definition: vrfXmlUtils.h:245
Definition: objectType.h:27
ReaderWriter object that maintains a list of reader-writer variable bindings.
Definition: rwVariableBindings.h:27
Definition: rwVector.h:23
static DtReaderWriterFactory * factory()
static const char * ParentFile
Definition: vrfXmlTypes.h:50
static void setObjectType(DtEnvironmentSP env, DtEnvValueSP root, const DtObjectType &t)
Definition: vrfXmlUtils.h:163
const char DtXMLBooleanType[]
Definition: rwTypes.h:18
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
const char DtXMLPitch[]
Definition: vrfRwTypes.h:298
static DtObjectType getObjectType(DtEnvironmentSP env, DtEnvValueSP root)
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
static DtEnvValueSP addIntegerElement(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, double value)
Adds a new integer type to the given root and returns the new value.
Definition: vrfXmlUtils.h:129
static DtEnvValueSP addbooleanElement(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, bool value)
Adds a new boolean type to the given root and returns the new value.
Definition: vrfXmlUtils.h:113
static DtObjectType getObjectType(DtEnvironmentSP env, DtEnvValueSP root, bool fallbackOnMatchType=true)
Definition: vrfXmlUtils.h:378
static const char * ParamName
Definition: vrfXmlTypes.h:47
const char DtXMLParamName[]
XML types.
Definition: rwTypes.h:71
static DtObjectType getMatchType(DtEnvironmentSP env, DtEnvValueSP root, bool fallbackOnObjectType=true)
Definition: vrfXmlUtils.h:363
const char DtXMLVectorX[]
Definition: rwTypes.h:78
std::list< DtEnvValueSP > DtEnvValueSPList
Definition: vrfXmlUtils.h:44
const char DtXMLSystemName[]
Definition: vrfRwTypes.h:339
DT_DLL_readerWriter DtString DtMtlBindingCharToXml(const DtString &str)
std::vector< DtReaderWriterRegistryData * > RegDataVector
Definition: vrfXmlUtils.h:279
static DtEnvValueSP AddElement(DtEnvironmentSP env, const DtString &type, DtEnvValueSP root, const DtString ¶mName=DtString::nullString())
Definition: vrfXmlUtils.h:100
static DtEnvValueSP FindElementBySystemName(DtEnvironmentSP env, const DtString &nodeType, const DtString &attributeValue, DtEnvValueSP envValue, bool traverseElements=true)
Definition: vrfXmlUtils.h:264
static void WriteVector(DtEnvironmentSP env, DtEnvValueSP root, const DtRwVector *vec, bool writeAsBodyPosition)
Definition: vrfXmlUtils.h:410
static DtString removeQuotes(const DtString &str)
Definition: vrfXmlUtils.h:347
const char DtXMLObjectType[]
Definition: vrfRwTypes.h:325
virtual DtReaderWriter * createItem(const DtString &type, const DtString &name, DtReaderWriterRegistry *parentRegistry) const
Creates a new RW type based on the type string provided, with the specified name and parent registry...
const char DtXMLBodyDown[]
Definition: rwTypes.h:83
static void setMatchType(DtEnvironmentSP env, DtEnvValueSP root, const DtObjectType &t)
Definition: vrfXmlUtils.h:168
const char DtXMLYaw[]
Definition: vrfRwTypes.h:297
static DtEnvValueSP FindElementByParamName(DtEnvironmentSP env, const DtString &nodeType, const DtString &attributeValue, DtEnvValueSP envValue, bool traverseElements=true)
Definition: vrfXmlUtils.h:256
static double getDouble(DtEnvironmentSP env, DtString attributeName, DtEnvValueSP root)
const char DtXMLBodyRight[]
Definition: rwTypes.h:82
static DtEnvValueSP addStringAttribute(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, const DtString &value)
Definition: vrfXmlUtils.h:151
std::map< DtString, DtString > GroupMappings
Definition: vrfXmlUtils.h:281
static DtString getAttribute(DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
Gets the named attribute from a DtEnvValueSP.
static void setPlatform(DtEnvironmentSP env, DtEnvValueSP root, const DtString &t)
Definition: vrfXmlUtils.h:176
static DtString XmlBindingCharToMtl(const DtString &str)
Can't use '$' for variables.
Definition: vrfXmlUtils.h:240
const char DtXMLVectorY[]
Definition: rwTypes.h:79