41 #include "simgear/structure/SGSharedPtr.hxx" 42 #include "math/FGColumnVector3.h" 48 #define ID_XMLELEMENT "$Id: FGXMLElement.h,v 1.25 2015/07/12 19:34:08 bcoconni Exp $" 144 typedef SGSharedPtr<Element> Element_ptr;
155 Element(
const std::string& nm);
162 bool HasAttribute(
const std::string& key) {
return attributes.find(key) != attributes.end();}
186 const std::string&
GetName(
void)
const {
return name;}
317 const std::string& supplied_units,
318 const std::string& target_units);
331 double DisperseValue(
Element *e,
double val,
const std::string& supplied_units=
"",
332 const std::string& target_units=
"");
346 void AddAttribute(
const std::string& name,
const std::string& value);
355 void Print(
unsigned int level=0);
385 std::map <std::string, std::string> attributes;
386 std::vector <std::string> data_lines;
387 std::vector <Element_ptr> children;
389 unsigned int element_index;
390 std::string file_name;
392 typedef std::map <std::string, std::map <std::string, double> > tMapConvert;
393 static tMapConvert convert;
394 static bool converterIsInitialized;
void AddChildElement(Element *el)
Adds a child element to the list of children stored for this element.
Element * GetParent(void)
Returns a pointer to the parent of an element.
const std::string & GetFileName(void) const
Returns the name of the file in which the element has been read.
void AddAttribute(const std::string &name, const std::string &value)
Stores an attribute belonging to this element.
std::string GetAttributeValue(const std::string &key)
Retrieves an attribute.
void SetLineNumber(int line)
Set the line number at which the element has been read.
bool HasAttribute(const std::string &key)
Determines if an element has the supplied attribute.
double FindElementValueAsNumberConvertTo(const std::string &el, const std::string &target_units)
Searches for the named element and converts and returns the data belonging to it. ...
void SetParent(Element *p)
This function sets the value of the parent class attribute to the supplied Element pointer...
Element * FindElement(const std::string &el="")
Searches for a specified element.
double FindElementValueAsNumber(const std::string &el="")
Searches for the named element and returns the data belonging to it as a number.
double FindElementValueAsNumberConvertFromTo(const std::string &el, const std::string &supplied_units, const std::string &target_units)
Searches for the named element and converts and returns the data belonging to it. ...
unsigned int GetNumDataLines(void)
Returns the number of lines of data stored.
~Element(void)
Destructor.
int GetLineNumber(void) const
Returns the line number at which the element has been defined.
void MergeAttributes(Element *el)
Merges the attributes of the current element with another element.
bool SetAttributeValue(const std::string &key, const std::string &value)
Modifies an attribute.
double GetDataAsNumber(void)
Converts the element data to a number.
double GetAttributeValueAsNumber(const std::string &key)
Retrieves an attribute value as a double precision real number.
const std::string & GetName(void) const
Retrieves the element name.
void SetFileName(const std::string &name)
Set the name of the file in which the element has been read.
std::string FindElementValue(const std::string &el="")
Searches for the named element and returns the string data belonging to it.
std::string GetDataLine(unsigned int i=0)
Gets a line of data belonging to an element.
This class implements a 3 element column vector.
unsigned int GetNumElements(void)
Returns the number of child elements for this element.
void Print(unsigned int level=0)
Prints the element.
std::string ReadFrom(void) const
Return a string that contains a description of the location where the current XML element was read fr...
Element(const std::string &nm)
Constructor.
Element * FindNextElement(const std::string &el="")
Searches for the next element as specified.
Element * GetElement(unsigned int el=0)
Returns a pointer to the element requested by index.
Element * GetNextElement(void)
Returns a pointer to the next element in the list.
FGColumnVector3 FindElementTripletConvertTo(const std::string &target_units)
Composes a 3-element column vector for the supplied location or orientation.
void AddData(std::string d)
Stores data belonging to this element.