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>
81 return XmlBindingCharToMtl(root->value());
85 DtEnvValueSP root,
const DtString& paramName = DtString::nullString())
87 FindAndRemove(env, type, paramName, root);
88 DtEnvValueSP newElement = env->addObject(type, type, root);
89 if (paramName != DtString::nullString())
100 newElement->setValue(value ?
"True" :
"False");
107 DtEnvValueSP newElement = AddElement(env,
DtXMLRealType, root, name);
108 newElement->setValue(
DtString(value));
115 DtEnvValueSP newElement = AddElement(env,
DtXMLIntType, root, name);
116 newElement->setValue(
DtString(value));
122 return env->addAttribute(name, value ?
"True" :
"False", root);
130 DtEnvValueSP newElement = AddElement(env,
DtXMLStringType, root, name);
131 newElement->setValue(MtlBindingCharToXml(value));
137 DtEnvValueSP attr = env->getAttribute(name, root);
157 static std::list<DtObjectType> additionalMatchTypes(
DtEnvironmentSP env, DtEnvValueSP root);
158 static void setAdditionalMatchTypes(
DtEnvironmentSP env, DtEnvValueSP root,
const std::list<DtObjectType>& types);
182 const DtEnvValueSP parentNode, DtTaitBryan& orientation)
184 orientation.setPsi(getDoubleAttribute(env,
DtXMLYaw, parentNode));
185 orientation.setTheta(getDoubleAttribute(env,
DtXMLPitch, parentNode));
186 orientation.setPhi(getDoubleAttribute(env,
DtXMLRoll, parentNode));
192 static void CreateVariableBinding(
const DtString& bindingType,
212 const DtString& dataSourceFilename,
bool showConsoleOutput =
true);
215 const DtString& type, DtEnvValueSP root);
238 DtEnvValueSP envValue,
bool traverseElements =
true)
241 attributeValue, envValue, traverseElements);
246 const DtString& attributeValue, DtEnvValueSP envValue,
247 bool traverseElements =
true);
257 static bool IsGroupedElement(
const DtString& rwName,
261 DtEnvValueSP parentNode,
const DtString& groupName,
262 bool createIfMissing =
true);
265 DtEnvValueSP parentNode,
const DtString& groupName);
276 DtEnvValueSP parent,
DtString bindingName =
"")
279 DtEnvValueSP newObject = env->addObject(name, name, parent);
280 if (bindingName !=
"")
291 DtEnvValueSP simObjectNode);
298 const DtString& dataSourceFilename,
bool showConsoleOutput =
true);
305 writer.setIndentation(
" ");
306 writer.writeFile(*env, filename);
317 DtString objType = getAttribute(env, attributeName, root);
320 ot = objType.c_str();
326 bool fallbackOnObjectType =
true)
337 static std::list<DtObjectType> getMatchTypes(
DtEnvironmentSP env, DtEnvValueSP root,
338 bool fallbackOnObjectType =
true);
341 bool fallbackOnMatchType =
true)
346 return getMatchType(env, root,
false);
353 double& x,
double& y,
double& z)
373 const DtRwVector* vec,
bool writeAsBodyPosition)
375 if (writeAsBodyPosition)
392 sprintf(buff,
"%X", number);
static DtObjectType getObjectTypeAttr(DtEnvironmentSP env, const DtString &attributeName, DtEnvValueSP root)
Gets objecttype attribute from current Node.
Definition: vrfXmlUtils.h:315
static DtEnvValueSP CreateEnvNode(DtEnvironmentSP env, const DtString &name, DtEnvValueSP parent, DtString bindingName="")
Definition: vrfXmlUtils.h:275
DT_DLL_readerWriter DtString DtXmlBindingCharToMtl(const DtString &str)
Can't use '$' for variables.
const char DtXMLVectorZ[]
Definition: rwTypes.h:80
static void WriteXML(DtEnvironmentSP env, DtString filename)
Definition: vrfXmlUtils.h:301
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:74
static double getDoubleAttribute(DtEnvironmentSP env, DtString attributeName, DtEnvValueSP root)
Definition: vrfXmlUtils.h:165
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:285
static void getOrientation(DtEnvironmentSP env, const DtEnvValueSP parentNode, DtTaitBryan &orientation)
Definition: vrfXmlUtils.h:181
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:370
std::list< DtString > StringVector
Definition: vrfXmlUtils.h:249
static const char * SimObject
Definition: vrfXmlTypes.h:53
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:105
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:352
static const char * MatchType
Definition: vrfXmlTypes.h:69
static DtEnvValueSP addBooleanAttribute(DtEnvironmentSP env, DtEnvValueSP root, const DtString &name, bool value)
Definition: vrfXmlUtils.h:120
static DtReaderWriter * CreateRwObject(const DtString &rwType)
Creates an RW object given the type.
Definition: vrfXmlUtils.h:176
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:128
static DtString GetObjectValue(DtEnvValueSP root)
Definition: vrfXmlUtils.h:79
static DtString IntToHexString(const int &number)
Definition: vrfXmlUtils.h:389
const char DtXMLObjectTypeType[]
Definition: rwTypes.h:59
static DtString MtlBindingCharToXml(const DtString &str)
Definition: vrfXmlUtils.h:229
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 void setObjectType(DtEnvironmentSP env, DtEnvValueSP root, const DtObjectType &t)
Definition: vrfXmlUtils.h:147
const char DtXMLBooleanType[]
Definition: rwTypes.h:18
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
const char DtXMLPitch[]
Definition: vrfRwTypes.h:284
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:113
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:97
static DtObjectType getObjectType(DtEnvironmentSP env, DtEnvValueSP root, bool fallbackOnMatchType=true)
Definition: vrfXmlUtils.h:340
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:325
const char DtXMLVectorX[]
Definition: rwTypes.h:78
std::list< DtEnvValueSP > DtEnvValueSPList
Definition: vrfXmlUtils.h:44
DT_DLL_readerWriter DtString DtMtlBindingCharToXml(const DtString &str)
std::vector< DtReaderWriterRegistryData * > RegDataVector
Definition: vrfXmlUtils.h:250
static DtEnvValueSP AddElement(DtEnvironmentSP env, const DtString &type, DtEnvValueSP root, const DtString ¶mName=DtString::nullString())
Definition: vrfXmlUtils.h:84
static void WriteVector(DtEnvironmentSP env, DtEnvValueSP root, const DtRwVector *vec, bool writeAsBodyPosition)
Definition: vrfXmlUtils.h:372
static DtString removeQuotes(const DtString &str)
Definition: vrfXmlUtils.h:309
const char DtXMLObjectType[]
Definition: vrfRwTypes.h:311
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:152
const char DtXMLYaw[]
Definition: vrfRwTypes.h:283
static DtEnvValueSP FindElementByParamName(DtEnvironmentSP env, const DtString &nodeType, const DtString &attributeValue, DtEnvValueSP envValue, bool traverseElements=true)
Definition: vrfXmlUtils.h:236
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:135
std::map< DtString, DtString > GroupMappings
Definition: vrfXmlUtils.h:252
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:160
static DtString XmlBindingCharToMtl(const DtString &str)
Can't use '$' for variables.
Definition: vrfXmlUtils.h:224
const char DtXMLVectorY[]
Definition: rwTypes.h:79