diff --git a/Engine/lib/CMakeLists.txt b/Engine/lib/CMakeLists.txt index 1000cba53..e3a28fbb5 100644 --- a/Engine/lib/CMakeLists.txt +++ b/Engine/lib/CMakeLists.txt @@ -186,7 +186,7 @@ mark_as_advanced(PNG_DEBUG) mark_as_advanced(PNG_FRAMEWORK) mark_as_advanced(PNG_PREFIX) -add_subdirectory(tinyxml ${TORQUE_LIB_TARG_DIRECTORY}/tinyxml EXCLUDE_FROM_ALL) +add_subdirectory(tinyxml2 ${TORQUE_LIB_TARG_DIRECTORY}/tinyxml2 EXCLUDE_FROM_ALL) add_subdirectory(opcode ${TORQUE_LIB_TARG_DIRECTORY}/opcode EXCLUDE_FROM_ALL) add_subdirectory(pcre ${TORQUE_LIB_TARG_DIRECTORY}/pcre EXCLUDE_FROM_ALL) diff --git a/Engine/lib/collada/CMakeLists.txt b/Engine/lib/collada/CMakeLists.txt index 4c9b9616d..533565457 100644 --- a/Engine/lib/collada/CMakeLists.txt +++ b/Engine/lib/collada/CMakeLists.txt @@ -4,4 +4,4 @@ file(GLOB COLLADA_SOURCES "src/1.4/dom/*.cpp" "src/dae/*.cpp" "src/modules/LIBXM add_library(collada STATIC ${COLLADA_SOURCES}) target_include_directories(collada PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/1.4) target_compile_definitions(collada PUBLIC DOM_INCLUDE_TINYXML PCRE_STATIC) -target_link_libraries(collada PUBLIC tinyxml pcre) +target_link_libraries(collada PUBLIC tinyxml2 pcre) diff --git a/Engine/lib/tinyxml/CMakeLists.txt b/Engine/lib/tinyxml/CMakeLists.txt deleted file mode 100644 index 83ac40ea3..000000000 --- a/Engine/lib/tinyxml/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -add_library(tinyxml STATIC "tinyxml2.cpp") - -# NOTE: Some stuff include tinyxml by tinyxml/tinyxml2.h instead of just tinyxml2.h -target_include_directories(tinyxml PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../) diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_attribute.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_attribute.html deleted file mode 100644 index bcec9428d..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_attribute.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLAttribute Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLAttribute Class Reference
-
-
- -

#include <tinyxml2.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-const char * Name () const
 The name of the attribute.
 
-const char * Value () const
 The value of the attribute.
 
-int GetLineNum () const
 Gets the line number the attribute is in, if the document was parsed from a file.
 
-const XMLAttributeNext () const
 The next attribute in the list.
 
int IntValue () const
 
-unsigned UnsignedValue () const
 Query as an unsigned integer. See IntValue()
 
-bool BoolValue () const
 Query as a boolean. See IntValue()
 
-double DoubleValue () const
 Query as a double. See IntValue()
 
-float FloatValue () const
 Query as a float. See IntValue()
 
XMLError QueryIntValue (int *value) const
 
-XMLError QueryUnsignedValue (unsigned int *value) const
 See QueryIntValue.
 
-XMLError QueryInt64Value (int64_t *value) const
 See QueryIntValue.
 
-XMLError QueryUnsigned64Value (uint64_t *value) const
 See QueryIntValue.
 
-XMLError QueryBoolValue (bool *value) const
 See QueryIntValue.
 
-XMLError QueryDoubleValue (double *value) const
 See QueryIntValue.
 
-XMLError QueryFloatValue (float *value) const
 See QueryIntValue.
 
-void SetAttribute (const char *value)
 Set the attribute to a string value.
 
-void SetAttribute (int value)
 Set the attribute to value.
 
-void SetAttribute (unsigned value)
 Set the attribute to value.
 
-void SetAttribute (int64_t value)
 Set the attribute to value.
 
-void SetAttribute (uint64_t value)
 Set the attribute to value.
 
-void SetAttribute (bool value)
 Set the attribute to value.
 
-void SetAttribute (double value)
 Set the attribute to value.
 
-void SetAttribute (float value)
 Set the attribute to value.
 
-

Detailed Description

-

An attribute is a name-value pair. Elements have an arbitrary number of attributes, each with a unique name.

-
Note
The attributes are not XMLNodes. You may only query the Next() attribute in a list.
-

Member Function Documentation

- -

◆ IntValue()

- -
-
- - - - - -
- - - - - - - -
int tinyxml2::XMLAttribute::IntValue () const
-
-inline
-
-

IntValue interprets the attribute as an integer, and returns the value. If the value isn't an integer, 0 will be returned. There is no error checking; use QueryIntValue() if you need error checking.

- -
-
- -

◆ QueryIntValue()

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLAttribute::QueryIntValue (int * value) const
-
-

QueryIntValue interprets the attribute as an integer, and returns the value in the provided parameter. The function will return XML_SUCCESS on success, and XML_WRONG_ATTRIBUTE_TYPE if the conversion is not successful.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment-members.html deleted file mode 100644 index 1e7f36a6d..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment-members.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLComment Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLComment, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLCommentvirtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLCommentvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLCommentvirtual
ToComment()tinyxml2::XMLCommentinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment.html deleted file mode 100644 index dd1a5d4f2..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLComment Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLComment Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLComment:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

An XML Comment.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLComment::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLComment::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLComment::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment.png deleted file mode 100644 index 3a076f05c..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_comment.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration-members.html deleted file mode 100644 index c470c21b6..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration-members.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLDeclaration Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLDeclaration, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLDeclarationvirtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLDeclarationvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLDeclarationvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLDeclarationinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration.html deleted file mode 100644 index 6e8f9e2b2..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLDeclaration Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLDeclaration Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLDeclaration:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

In correct XML the declaration is the first entry in the file.

    <?xml version="1.0" standalone="yes"?>
-

TinyXML-2 will happily read or write files without a declaration, however.

-

The text of the declaration isn't interpreted. It is parsed and written as a string.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDeclaration::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLDeclaration::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDeclaration::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration.png deleted file mode 100644 index c7aa6319f..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_declaration.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document-members.html deleted file mode 100644 index b7d873993..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLDocument Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLDocument, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLDocumentvirtual
Clear()tinyxml2::XMLDocument
ClearError()tinyxml2::XMLDocument
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeepCopy(XMLDocument *target) consttinyxml2::XMLDocument
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
DeleteNode(XMLNode *node)tinyxml2::XMLDocument
Error() consttinyxml2::XMLDocumentinline
ErrorID() consttinyxml2::XMLDocumentinline
ErrorLineNum() consttinyxml2::XMLDocumentinline
ErrorStr() consttinyxml2::XMLDocument
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
HasBOM() consttinyxml2::XMLDocumentinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
LoadFile(const char *filename)tinyxml2::XMLDocument
LoadFile(FILE *)tinyxml2::XMLDocument
NewComment(const char *comment)tinyxml2::XMLDocument
NewDeclaration(const char *text=0)tinyxml2::XMLDocument
NewElement(const char *name)tinyxml2::XMLDocument
NewText(const char *text)tinyxml2::XMLDocument
NewUnknown(const char *text)tinyxml2::XMLDocument
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
Parse(const char *xml, size_t nBytes=static_cast< size_t >(-1))tinyxml2::XMLDocument
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
Print(XMLPrinter *streamer=0) consttinyxml2::XMLDocument
PrintError() consttinyxml2::XMLDocument
RootElement()tinyxml2::XMLDocumentinline
SaveFile(const char *filename, bool compact=false)tinyxml2::XMLDocument
SaveFile(FILE *fp, bool compact=false)tinyxml2::XMLDocument
SetBOM(bool useBOM)tinyxml2::XMLDocumentinline
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *) consttinyxml2::XMLDocumentinlinevirtual
ShallowEqual(const XMLNode *) consttinyxml2::XMLDocumentinlinevirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLDocumentinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
XMLDocument(bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)tinyxml2::XMLDocument
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document.html deleted file mode 100644 index 43c6c5d22..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document.html +++ /dev/null @@ -1,747 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLDocument Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLDocument Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLDocument:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

XMLDocument (bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)
 constructor
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
XMLError Parse (const char *xml, size_t nBytes=static_cast< size_t >(-1))
 
XMLError LoadFile (const char *filename)
 
XMLError LoadFile (FILE *)
 
XMLError SaveFile (const char *filename, bool compact=false)
 
XMLError SaveFile (FILE *fp, bool compact=false)
 
bool HasBOM () const
 
void SetBOM (bool useBOM)
 
XMLElementRootElement ()
 
void Print (XMLPrinter *streamer=0) const
 
virtual bool Accept (XMLVisitor *visitor) const
 
XMLElementNewElement (const char *name)
 
XMLCommentNewComment (const char *comment)
 
XMLTextNewText (const char *text)
 
XMLDeclarationNewDeclaration (const char *text=0)
 
XMLUnknownNewUnknown (const char *text)
 
void DeleteNode (XMLNode *node)
 
-void ClearError ()
 Clears the error flags.
 
-bool Error () const
 Return true if there was an error parsing the document.
 
-XMLError ErrorID () const
 Return the errorID.
 
const char * ErrorStr () const
 
-void PrintError () const
 A (trivial) utility function that prints the ErrorStr() to stdout.
 
-int ErrorLineNum () const
 Return the line where the error occurred, or zero if unknown.
 
-void Clear ()
 Clear the document, resetting it to the initial state.
 
void DeepCopy (XMLDocument *target) const
 
virtual XMLNodeShallowClone (XMLDocument *) const
 
virtual bool ShallowEqual (const XMLNode *) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

A Document binds together all the functionality. It can be saved, loaded, and printed to the screen. All Nodes are connected and allocated to a Document. If the Document is deleted, all its Nodes are also deleted.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDocument::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implements tinyxml2::XMLNode.

- -
-
- -

◆ DeepCopy()

- -
-
- - - - - - - - -
void tinyxml2::XMLDocument::DeepCopy (XMLDocumenttarget) const
-
-

Copies this document to a target document. The target will be completely cleared before the copy. If you want to copy a sub-tree, see XMLNode::DeepClone().

-

NOTE: that the 'target' must be non-null.

- -
-
- -

◆ DeleteNode()

- -
-
- - - - - - - - -
void tinyxml2::XMLDocument::DeleteNode (XMLNodenode)
-
-

Delete a node associated with this document. It will be unlinked from the DOM.

- -
-
- -

◆ ErrorStr()

- -
-
- - - - - - - -
const char* tinyxml2::XMLDocument::ErrorStr () const
-
-

Returns a "long form" error description. A hopefully helpful diagnostic with location, line number, and/or additional info.

- -
-
- -

◆ HasBOM()

- -
-
- - - - - -
- - - - - - - -
bool tinyxml2::XMLDocument::HasBOM () const
-
-inline
-
-

Returns true if this document has a leading Byte Order Mark of UTF8.

- -
-
- -

◆ LoadFile() [1/2]

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLDocument::LoadFile (const char * filename)
-
-

Load an XML file from disk. Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ LoadFile() [2/2]

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLDocument::LoadFile (FILE * )
-
-

Load an XML file from disk. You are responsible for providing and closing the FILE*.

-

NOTE: The file should be opened as binary ("rb") not text in order for TinyXML-2 to correctly do newline normalization.

-

Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ NewComment()

- -
-
- - - - - - - - -
XMLComment* tinyxml2::XMLDocument::NewComment (const char * comment)
-
-

Create a new Comment associated with this Document. The memory for the Comment is managed by the Document.

- -
-
- -

◆ NewDeclaration()

- -
-
- - - - - - - - -
XMLDeclaration* tinyxml2::XMLDocument::NewDeclaration (const char * text = 0)
-
-

Create a new Declaration associated with this Document. The memory for the object is managed by the Document.

-

If the 'text' param is null, the standard declaration is used.:

    <?xml version="1.0" encoding="UTF-8"?>
-
-
-
- -

◆ NewElement()

- -
-
- - - - - - - - -
XMLElement* tinyxml2::XMLDocument::NewElement (const char * name)
-
-

Create a new Element associated with this Document. The memory for the Element is managed by the Document.

- -
-
- -

◆ NewText()

- -
-
- - - - - - - - -
XMLText* tinyxml2::XMLDocument::NewText (const char * text)
-
-

Create a new Text associated with this Document. The memory for the Text is managed by the Document.

- -
-
- -

◆ NewUnknown()

- -
-
- - - - - - - - -
XMLUnknown* tinyxml2::XMLDocument::NewUnknown (const char * text)
-
-

Create a new Unknown associated with this Document. The memory for the object is managed by the Document.

- -
-
- -

◆ Parse()

- -
-
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLDocument::Parse (const char * xml,
size_t nBytes = static_cast< size_t >(-1) 
)
-
-

Parse an XML file from a character string. Returns XML_SUCCESS (0) on success, or an errorID.

-

You may optionally pass in the 'nBytes', which is the number of bytes which will be parsed. If not specified, TinyXML-2 will assume 'xml' points to a null terminated string.

- -
-
- -

◆ Print()

- -
-
- - - - - - - - -
void tinyxml2::XMLDocument::Print (XMLPrinterstreamer = 0) const
-
-

Print the Document. If the Printer is not provided, it will print to stdout. If you provide Printer, this can print to a file:

XMLPrinter printer( fp );
-doc.Print( &printer );
-

Or you can use a printer to print to memory:

XMLPrinter printer;
-doc.Print( &printer );
-// printer.CStr() has a const char* to the XML
-
-
-
- -

◆ RootElement()

- -
-
- - - - - -
- - - - - - - -
XMLElement* tinyxml2::XMLDocument::RootElement ()
-
-inline
-
-

Return the root element of DOM. Equivalent to FirstChildElement(). To get the first node, use FirstChild().

- -
-
- -

◆ SaveFile() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLDocument::SaveFile (const char * filename,
bool compact = false 
)
-
-

Save the XML file to disk. Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ SaveFile() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLDocument::SaveFile (FILE * fp,
bool compact = false 
)
-
-

Save the XML file to disk. You are responsible for providing and closing the FILE*.

-

Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ SetBOM()

- -
-
- - - - - -
- - - - - - - - -
void tinyxml2::XMLDocument::SetBOM (bool useBOM)
-
-inline
-
-

Sets whether to write the BOM when writing the file.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLDocument::ShallowClone (XMLDocumentdocument) const
-
-inlinevirtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDocument::ShallowEqual (const XMLNodecompare) const
-
-inlinevirtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document.png deleted file mode 100644 index 4fcf9f466..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_document.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_element.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_element.html deleted file mode 100644 index 7a56950bf..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_element.html +++ /dev/null @@ -1,774 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLElement Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLElement Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLElement:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-const char * Name () const
 Get the name of an element (which is the Value() of the node.)
 
-void SetName (const char *str, bool staticMem=false)
 Set the name of the element.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
const char * Attribute (const char *name, const char *value=0) const
 
int IntAttribute (const char *name, int defaultValue=0) const
 
-unsigned UnsignedAttribute (const char *name, unsigned defaultValue=0) const
 See IntAttribute()
 
-int64_t Int64Attribute (const char *name, int64_t defaultValue=0) const
 See IntAttribute()
 
-uint64_t Unsigned64Attribute (const char *name, uint64_t defaultValue=0) const
 See IntAttribute()
 
-bool BoolAttribute (const char *name, bool defaultValue=false) const
 See IntAttribute()
 
-double DoubleAttribute (const char *name, double defaultValue=0) const
 See IntAttribute()
 
-float FloatAttribute (const char *name, float defaultValue=0) const
 See IntAttribute()
 
XMLError QueryIntAttribute (const char *name, int *value) const
 
-XMLError QueryUnsignedAttribute (const char *name, unsigned int *value) const
 See QueryIntAttribute()
 
-XMLError QueryInt64Attribute (const char *name, int64_t *value) const
 See QueryIntAttribute()
 
-XMLError QueryUnsigned64Attribute (const char *name, uint64_t *value) const
 See QueryIntAttribute()
 
-XMLError QueryBoolAttribute (const char *name, bool *value) const
 See QueryIntAttribute()
 
-XMLError QueryDoubleAttribute (const char *name, double *value) const
 See QueryIntAttribute()
 
-XMLError QueryFloatAttribute (const char *name, float *value) const
 See QueryIntAttribute()
 
-XMLError QueryStringAttribute (const char *name, const char **value) const
 See QueryIntAttribute()
 
XMLError QueryAttribute (const char *name, int *value) const
 
-void SetAttribute (const char *name, const char *value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, int value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, unsigned value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, int64_t value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, uint64_t value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, bool value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, double value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, float value)
 Sets the named attribute to value.
 
void DeleteAttribute (const char *name)
 
-const XMLAttributeFirstAttribute () const
 Return the first attribute in the list.
 
-const XMLAttributeFindAttribute (const char *name) const
 Query a specific attribute in the list.
 
const char * GetText () const
 
void SetText (const char *inText)
 
-void SetText (int value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (unsigned value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (int64_t value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (uint64_t value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (bool value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (double value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (float value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
XMLError QueryIntText (int *ival) const
 
-XMLError QueryUnsignedText (unsigned *uval) const
 See QueryIntText()
 
-XMLError QueryInt64Text (int64_t *uval) const
 See QueryIntText()
 
-XMLError QueryUnsigned64Text (uint64_t *uval) const
 See QueryIntText()
 
-XMLError QueryBoolText (bool *bval) const
 See QueryIntText()
 
-XMLError QueryDoubleText (double *dval) const
 See QueryIntText()
 
-XMLError QueryFloatText (float *fval) const
 See QueryIntText()
 
-unsigned UnsignedText (unsigned defaultValue=0) const
 See QueryIntText()
 
-int64_t Int64Text (int64_t defaultValue=0) const
 See QueryIntText()
 
-uint64_t Unsigned64Text (uint64_t defaultValue=0) const
 See QueryIntText()
 
-bool BoolText (bool defaultValue=false) const
 See QueryIntText()
 
-double DoubleText (double defaultValue=0) const
 See QueryIntText()
 
-float FloatText (float defaultValue=0) const
 See QueryIntText()
 
XMLElementInsertNewChildElement (const char *name)
 
-XMLCommentInsertNewComment (const char *comment)
 See InsertNewChildElement()
 
-XMLTextInsertNewText (const char *text)
 See InsertNewChildElement()
 
-XMLDeclarationInsertNewDeclaration (const char *text)
 See InsertNewChildElement()
 
-XMLUnknownInsertNewUnknown (const char *text)
 See InsertNewChildElement()
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

The element is a container class. It has a value, the element name, and can contain other elements, text, comments, and unknowns. Elements also contain an arbitrary number of attributes.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLElement::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implements tinyxml2::XMLNode.

- -
-
- -

◆ Attribute()

- -
-
- - - - - - - - - - - - - - - - - - -
const char* tinyxml2::XMLElement::Attribute (const char * name,
const char * value = 0 
) const
-
-

Given an attribute name, Attribute() returns the value for the attribute of that name, or null if none exists. For example:

-
const char* value = ele->Attribute( "foo" );
-

The 'value' parameter is normally null. However, if specified, the attribute will only be returned if the 'name' and 'value' match. This allow you to write code:

-
if ( ele->Attribute( "foo", "bar" ) ) callFooIsBar();
-

rather than:

if ( ele->Attribute( "foo" ) ) {
-    if ( strcmp( ele->Attribute( "foo" ), "bar" ) == 0 ) callFooIsBar();
-}
-
-
-
- -

◆ DeleteAttribute()

- -
-
- - - - - - - - -
void tinyxml2::XMLElement::DeleteAttribute (const char * name)
-
-

Delete an attribute.

- -
-
- -

◆ GetText()

- -
-
- - - - - - - -
const char* tinyxml2::XMLElement::GetText () const
-
-

Convenience function for easy access to the text inside an element. Although easy and concise, GetText() is limited compared to getting the XMLText child and accessing it directly.

-

If the first child of 'this' is a XMLText, the GetText() returns the character string of the Text node, else null is returned.

-

This is a convenient method for getting the text of simple contained text:

<foo>This is text</foo>
-    const char* str = fooElement->GetText();
-

'str' will be a pointer to "This is text".

-

Note that this function can be misleading. If the element foo was created from this XML:

    <foo><b>This is text</b></foo>
-

then the value of str would be null. The first child node isn't a text node, it is another element. From this XML:

    <foo>This is <b>text</b></foo>
-

GetText() will return "This is ".

- -
-
- -

◆ InsertNewChildElement()

- -
-
- - - - - - - - -
XMLElement* tinyxml2::XMLElement::InsertNewChildElement (const char * name)
-
-

Convenience method to create a new XMLElement and add it as last (right) child of this node. Returns the created and inserted element.

- -
-
- -

◆ IntAttribute()

- -
-
- - - - - - - - - - - - - - - - - - -
int tinyxml2::XMLElement::IntAttribute (const char * name,
int defaultValue = 0 
) const
-
-

Given an attribute name, IntAttribute() returns the value of the attribute interpreted as an integer. The default value will be returned if the attribute isn't present, or if there is an error. (For a method with error checking, see QueryIntAttribute()).

- -
-
- -

◆ QueryAttribute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLElement::QueryAttribute (const char * name,
int * value 
) const
-
-inline
-
-

Given an attribute name, QueryAttribute() returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. It is overloaded for the primitive types, and is a generally more convenient replacement of QueryIntAttribute() and related functions.

-

If successful, the result of the conversion will be written to 'value'. If not successful, nothing will be written to 'value'. This allows you to provide default value:

-
int value = 10;
-QueryAttribute( "foo", &value );        // if "foo" isn't found, value will still be 10
-
-
-
- -

◆ QueryIntAttribute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLElement::QueryIntAttribute (const char * name,
int * value 
) const
-
-inline
-
-

Given an attribute name, QueryIntAttribute() returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. If successful, the result of the conversion will be written to 'value'. If not successful, nothing will be written to 'value'. This allows you to provide default value:

-
int value = 10;
-QueryIntAttribute( "foo", &value );     // if "foo" isn't found, value will still be 10
-
-
-
- -

◆ QueryIntText()

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLElement::QueryIntText (int * ival) const
-
-

Convenience method to query the value of a child text node. This is probably best shown by example. Given you have a document is this form:

    <point>
-        <x>1</x>
-        <y>1.4</y>
-    </point>
-

The QueryIntText() and similar functions provide a safe and easier way to get to the "value" of x and y.

-
    int x = 0;
-    float y = 0;    // types of x and y are contrived for example
-    const XMLElement* xElement = pointElement->FirstChildElement( "x" );
-    const XMLElement* yElement = pointElement->FirstChildElement( "y" );
-    xElement->QueryIntText( &x );
-    yElement->QueryFloatText( &y );
-
Returns
XML_SUCCESS (0) on success, XML_CAN_NOT_CONVERT_TEXT if the text cannot be converted to the requested type, and XML_NO_TEXT_NODE if there is no child text to query.
- -
-
- -

◆ SetText()

- -
-
- - - - - - - - -
void tinyxml2::XMLElement::SetText (const char * inText)
-
-

Convenience function for easy access to the text inside an element. Although easy and concise, SetText() is limited compared to creating an XMLText child and mutating it directly.

-

If the first child of 'this' is a XMLText, SetText() sets its value to the given string, otherwise it will create a first child that is an XMLText.

-

This is a convenient method for setting the text of simple contained text:

<foo>This is text</foo>
-    fooElement->SetText( "Hullaballoo!" );
-<foo>Hullaballoo!</foo>
-

Note that this function can be misleading. If the element foo was created from this XML:

    <foo><b>This is text</b></foo>
-

then it will not change "This is text", but rather prefix it with a text element:

    <foo>Hullaballoo!<b>This is text</b></foo>
-

For this XML:

    <foo />
-

SetText() will generate

    <foo>Hullaballoo!</foo>
-
-
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLElement::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLElement::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_element.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_element.png deleted file mode 100644 index b76dc5b54..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_element.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node-members.html deleted file mode 100644 index 6359fb289..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node-members.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLNode Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLNode, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) const =0tinyxml2::XMLNodepure virtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) const =0tinyxml2::XMLNodepure virtual
ShallowEqual(const XMLNode *compare) const =0tinyxml2::XMLNodepure virtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node.html deleted file mode 100644 index a6f21a6fd..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLNode Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLNode Class Referenceabstract
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLNode:
-
-
- - -tinyxml2::XMLComment -tinyxml2::XMLDeclaration -tinyxml2::XMLDocument -tinyxml2::XMLElement -tinyxml2::XMLText -tinyxml2::XMLUnknown - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
virtual XMLNodeShallowClone (XMLDocument *document) const =0
 
XMLNodeDeepClone (XMLDocument *target) const
 
virtual bool ShallowEqual (const XMLNode *compare) const =0
 
virtual bool Accept (XMLVisitor *visitor) const =0
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

XMLNode is a base class for every object that is in the XML Document Object Model (DOM), except XMLAttributes. Nodes have siblings, a parent, and children which can be navigated. A node is always in a XMLDocument. The type of a XMLNode can be queried, and it can be cast to its more defined type.

-

A XMLDocument allocates memory for all its Nodes. When the XMLDocument gets deleted, all its Nodes will also be deleted.

-
A Document can contain: Element (container or leaf)
-                        Comment (leaf)
-                        Unknown (leaf)
-                        Declaration( leaf )
-
-An Element can contain: Element (container or leaf)
-                        Text    (leaf)
-                        Attributes (not on tree)
-                        Comment (leaf)
-                        Unknown (leaf)

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLNode::Accept (XMLVisitorvisitor) const
-
-pure virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

- -
-
- -

◆ DeepClone()

- -
-
- - - - - - - - -
XMLNode* tinyxml2::XMLNode::DeepClone (XMLDocumenttarget) const
-
-

Make a copy of this node and all its children.

-

If the 'target' is null, then the nodes will be allocated in the current document. If 'target' is specified, the memory will be allocated is the specified XMLDocument.

-

NOTE: This is probably not the correct tool to copy a document, since XMLDocuments can have multiple top level XMLNodes. You probably want to use XMLDocument::DeepCopy()

- -
-
- -

◆ DeleteChild()

- -
-
- - - - - - - - -
void tinyxml2::XMLNode::DeleteChild (XMLNodenode)
-
-

Delete a child of this node.

- -
-
- -

◆ DeleteChildren()

- -
-
- - - - - - - -
void tinyxml2::XMLNode::DeleteChildren ()
-
-

Delete all the children of this node.

- -
-
- -

◆ FirstChildElement()

- -
-
- - - - - - - - -
const XMLElement* tinyxml2::XMLNode::FirstChildElement (const char * name = 0) const
-
-

Get the first child element, or optionally the first child element with the specified name.

- -
-
- -

◆ GetUserData()

- -
-
- - - - - -
- - - - - - - -
void* tinyxml2::XMLNode::GetUserData () const
-
-inline
-
-

Get user data set into the XMLNode. TinyXML-2 in no way processes or interprets user data. It is initially 0.

- -
-
- -

◆ InsertAfterChild()

- -
-
- - - - - - - - - - - - - - - - - - -
XMLNode* tinyxml2::XMLNode::InsertAfterChild (XMLNodeafterThis,
XMLNodeaddThis 
)
-
-

Add a node after the specified child node. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the afterThis node is not a child of this node, or if the node does not belong to the same document.

- -
-
- -

◆ InsertEndChild()

- -
-
- - - - - - - - -
XMLNode* tinyxml2::XMLNode::InsertEndChild (XMLNodeaddThis)
-
-

Add a child node as the last (right) child. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the node does not belong to the same document.

- -
-
- -

◆ InsertFirstChild()

- -
-
- - - - - - - - -
XMLNode* tinyxml2::XMLNode::InsertFirstChild (XMLNodeaddThis)
-
-

Add a child node as the first (left) child. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the node does not belong to the same document.

- -
-
- -

◆ LastChildElement()

- -
-
- - - - - - - - -
const XMLElement* tinyxml2::XMLNode::LastChildElement (const char * name = 0) const
-
-

Get the last child element or optionally the last child element with the specified name.

- -
-
- -

◆ SetUserData()

- -
-
- - - - - -
- - - - - - - - -
void tinyxml2::XMLNode::SetUserData (void * userData)
-
-inline
-
-

Set user data into the XMLNode. TinyXML-2 in no way processes or interprets user data. It is initially 0.

- -
-
- -

◆ SetValue()

- -
-
- - - - - - - - - - - - - - - - - - -
void tinyxml2::XMLNode::SetValue (const char * val,
bool staticMem = false 
)
-
-

Set the Value of an XML node.

See also
Value()
- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLNode::ShallowClone (XMLDocumentdocument) const
-
-pure virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implemented in tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, tinyxml2::XMLText, and tinyxml2::XMLDocument.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLNode::ShallowEqual (const XMLNodecompare) const
-
-pure virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implemented in tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, tinyxml2::XMLText, and tinyxml2::XMLDocument.

- -
-
- -

◆ Value()

- -
-
- - - - - - - -
const char* tinyxml2::XMLNode::Value () const
-
-

The meaning of 'value' changes for the specific type.

Document:   empty (NULL is returned, not an empty string)
-Element:    name of the element
-Comment:    the comment text
-Unknown:    the tag contents
-Text:       the text string
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node.png deleted file mode 100644 index cb1e7ce19..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_node.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer-members.html deleted file mode 100644 index 81c731923..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer-members.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLPrinter Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLPrinter, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
ClearBuffer(bool resetToFirstElement=true)tinyxml2::XMLPrinterinline
CloseElement(bool compactMode=false)tinyxml2::XMLPrintervirtual
CStr() consttinyxml2::XMLPrinterinline
CStrSize() consttinyxml2::XMLPrinterinline
OpenElement(const char *name, bool compactMode=false)tinyxml2::XMLPrinter
PrintSpace(int depth)tinyxml2::XMLPrinterprotectedvirtual
PushAttribute(const char *name, const char *value)tinyxml2::XMLPrinter
PushComment(const char *comment)tinyxml2::XMLPrinter
PushHeader(bool writeBOM, bool writeDeclaration)tinyxml2::XMLPrinter
PushText(const char *text, bool cdata=false)tinyxml2::XMLPrinter
PushText(int value)tinyxml2::XMLPrinter
PushText(unsigned value)tinyxml2::XMLPrinter
PushText(int64_t value)tinyxml2::XMLPrinter
PushText(uint64_t value)tinyxml2::XMLPrinter
PushText(bool value)tinyxml2::XMLPrinter
PushText(float value)tinyxml2::XMLPrinter
PushText(double value)tinyxml2::XMLPrinter
Visit(const XMLText &text)tinyxml2::XMLPrintervirtual
Visit(const XMLComment &comment)tinyxml2::XMLPrintervirtual
Visit(const XMLDeclaration &declaration)tinyxml2::XMLPrintervirtual
Visit(const XMLUnknown &unknown)tinyxml2::XMLPrintervirtual
VisitEnter(const XMLDocument &)tinyxml2::XMLPrintervirtual
VisitEnter(const XMLElement &element, const XMLAttribute *attribute)tinyxml2::XMLPrintervirtual
VisitExit(const XMLDocument &)tinyxml2::XMLPrinterinlinevirtual
VisitExit(const XMLElement &element)tinyxml2::XMLPrintervirtual
XMLPrinter(FILE *file=0, bool compact=false, int depth=0)tinyxml2::XMLPrinter
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer.html deleted file mode 100644 index d04441937..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer.html +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLPrinter Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Protected Member Functions | -List of all members
-
-
tinyxml2::XMLPrinter Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLPrinter:
-
-
- - -tinyxml2::XMLVisitor - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 XMLPrinter (FILE *file=0, bool compact=false, int depth=0)
 
void PushHeader (bool writeBOM, bool writeDeclaration)
 
void OpenElement (const char *name, bool compactMode=false)
 
-void PushAttribute (const char *name, const char *value)
 If streaming, add an attribute to an open element.
 
-virtual void CloseElement (bool compactMode=false)
 If streaming, close the Element.
 
-void PushText (const char *text, bool cdata=false)
 Add a text node.
 
-void PushText (int value)
 Add a text node from an integer.
 
-void PushText (unsigned value)
 Add a text node from an unsigned.
 
-void PushText (int64_t value)
 Add a text node from a signed 64bit integer.
 
-void PushText (uint64_t value)
 Add a text node from an unsigned 64bit integer.
 
-void PushText (bool value)
 Add a text node from a bool.
 
-void PushText (float value)
 Add a text node from a float.
 
-void PushText (double value)
 Add a text node from a double.
 
-void PushComment (const char *comment)
 Add a comment.
 
-virtual bool VisitEnter (const XMLDocument &)
 Visit a document.
 
-virtual bool VisitExit (const XMLDocument &)
 Visit a document.
 
-virtual bool VisitEnter (const XMLElement &element, const XMLAttribute *attribute)
 Visit an element.
 
-virtual bool VisitExit (const XMLElement &element)
 Visit an element.
 
-virtual bool Visit (const XMLText &text)
 Visit a text node.
 
-virtual bool Visit (const XMLComment &comment)
 Visit a comment node.
 
-virtual bool Visit (const XMLDeclaration &declaration)
 Visit a declaration.
 
-virtual bool Visit (const XMLUnknown &unknown)
 Visit an unknown node.
 
const char * CStr () const
 
int CStrSize () const
 
void ClearBuffer (bool resetToFirstElement=true)
 
- - - -

-Protected Member Functions

virtual void PrintSpace (int depth)
 
-

Detailed Description

-

Printing functionality. The XMLPrinter gives you more options than the XMLDocument::Print() method.

-

It can:

    -
  1. Print to memory.
  2. -
  3. Print to a file you provide.
  4. -
  5. Print XML without a XMLDocument.
  6. -
-

Print to Memory

-
XMLPrinter printer;
-doc.Print( &printer );
-SomeFunction( printer.CStr() );
-

Print to a File

-

You provide the file pointer.

XMLPrinter printer( fp );
-doc.Print( &printer );
-

Print without a XMLDocument

-

When loading, an XML parser is very useful. However, sometimes when saving, it just gets in the way. The code is often set up for streaming, and constructing the DOM is just overhead.

-

The Printer supports the streaming case. The following code prints out a trivially simple XML file without ever creating an XML document.

-
XMLPrinter printer( fp );
-printer.OpenElement( "foo" );
-printer.PushAttribute( "foo", "bar" );
-printer.CloseElement();
-

Constructor & Destructor Documentation

- -

◆ XMLPrinter()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
tinyxml2::XMLPrinter::XMLPrinter (FILE * file = 0,
bool compact = false,
int depth = 0 
)
-
-

Construct the printer. If the FILE* is specified, this will print to the FILE. Else it will print to memory, and the result is available in CStr(). If 'compact' is set to true, then output is created with only required whitespace and newlines.

- -
-
-

Member Function Documentation

- -

◆ ClearBuffer()

- -
-
- - - - - -
- - - - - - - - -
void tinyxml2::XMLPrinter::ClearBuffer (bool resetToFirstElement = true)
-
-inline
-
-

If in print to memory mode, reset the buffer to the beginning.

- -
-
- -

◆ CStr()

- -
-
- - - - - -
- - - - - - - -
const char* tinyxml2::XMLPrinter::CStr () const
-
-inline
-
-

If in print to memory mode, return a pointer to the XML file in memory.

- -
-
- -

◆ CStrSize()

- -
-
- - - - - -
- - - - - - - -
int tinyxml2::XMLPrinter::CStrSize () const
-
-inline
-
-

If in print to memory mode, return the size of the XML file in memory. (Note the size returned includes the terminating null.)

- -
-
- -

◆ OpenElement()

- -
-
- - - - - - - - - - - - - - - - - - -
void tinyxml2::XMLPrinter::OpenElement (const char * name,
bool compactMode = false 
)
-
-

If streaming, start writing an element. The element must be closed with CloseElement()

- -
-
- -

◆ PrintSpace()

- -
-
- - - - - -
- - - - - - - - -
virtual void tinyxml2::XMLPrinter::PrintSpace (int depth)
-
-protectedvirtual
-
-

Prints out the space before an element. You may override to change the space and tabs used. A PrintSpace() override should call Print().

- -
-
- -

◆ PushHeader()

- -
-
- - - - - - - - - - - - - - - - - - -
void tinyxml2::XMLPrinter::PushHeader (bool writeBOM,
bool writeDeclaration 
)
-
-

If streaming, write the BOM and declaration.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer.png deleted file mode 100644 index 9bc674855..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_printer.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text-members.html deleted file mode 100644 index 2927baee8..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLText Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLText, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLTextvirtual
CData() consttinyxml2::XMLTextinline
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetCData(bool isCData)tinyxml2::XMLTextinline
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLTextvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLTextvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLTextinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text.html deleted file mode 100644 index 7317358c5..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLText Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLText Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLText:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

virtual bool Accept (XMLVisitor *visitor) const
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-void SetCData (bool isCData)
 Declare whether this should be CDATA or standard text.
 
-bool CData () const
 Returns true if this is a CDATA text element.
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

XML text.

-

Note that a text node can have child element nodes, for example:

<root>This is <b>bold</b></root>
-

A text node can have 2 ways to output the next. "normal" output and CDATA. It will default to the mode it was parsed from the XML file and you generally want to leave it alone, but you can change the output mode with SetCData() and query it with CData().

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLText::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLText::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLText::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text.png deleted file mode 100644 index 5a9863acc..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_text.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown-members.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown-members.html deleted file mode 100644 index 31f01b973..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown-members.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLUnknown Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLUnknown, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLUnknownvirtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLUnknownvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLUnknownvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLUnknowninlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown.html b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown.html deleted file mode 100644 index 8b10ba7b4..000000000 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLUnknown Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
tinyxml2::XMLUnknown Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLUnknown:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

Any tag that TinyXML-2 doesn't recognize is saved as an unknown. It is a tag of text, but should not be modified. It will be written back to the XML, unchanged, when the file is saved.

-

DTD tags get thrown into XMLUnknowns.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLUnknown::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

XMLPrinter printer;
-tinyxmlDoc.Accept( &printer );
-const char* xmlcstr = printer.CStr();
-
-

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLUnknown::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLUnknown::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown.png deleted file mode 100644 index 217b62c55..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_unknown.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_visitor.png b/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_visitor.png deleted file mode 100644 index 8ae4c23cf..000000000 Binary files a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_visitor.png and /dev/null differ diff --git a/Engine/lib/tinyxml/docs/doxygen.css b/Engine/lib/tinyxml/docs/doxygen.css deleted file mode 100644 index ffbff0224..000000000 --- a/Engine/lib/tinyxml/docs/doxygen.css +++ /dev/null @@ -1,1793 +0,0 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - border-right: 1px solid #A3B4D7; - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} -td.navtabHL { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: #A0A0A0; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: black; -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.odd { - background-color: #F8F9FC; -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/Engine/lib/tinyxml/docs/dynsections.js b/Engine/lib/tinyxml/docs/dynsections.js deleted file mode 100644 index 3174bd7be..000000000 --- a/Engine/lib/tinyxml/docs/dynsections.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- a -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_c.html b/Engine/lib/tinyxml/docs/functions_c.html deleted file mode 100644 index 9050d9518..000000000 --- a/Engine/lib/tinyxml/docs/functions_c.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- c -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_d.html b/Engine/lib/tinyxml/docs/functions_d.html deleted file mode 100644 index 1d214aa8f..000000000 --- a/Engine/lib/tinyxml/docs/functions_d.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- d -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_f.html b/Engine/lib/tinyxml/docs/functions_f.html deleted file mode 100644 index 4d4cce5b4..000000000 --- a/Engine/lib/tinyxml/docs/functions_f.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- f -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func.html b/Engine/lib/tinyxml/docs/functions_func.html deleted file mode 100644 index dd3c76d2c..000000000 --- a/Engine/lib/tinyxml/docs/functions_func.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_b.html b/Engine/lib/tinyxml/docs/functions_func_b.html deleted file mode 100644 index da6fdf4e1..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_b.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- b -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_c.html b/Engine/lib/tinyxml/docs/functions_func_c.html deleted file mode 100644 index a9c8d30fb..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_c.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- c -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_d.html b/Engine/lib/tinyxml/docs/functions_func_d.html deleted file mode 100644 index 272ba3c68..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_d.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- d -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_e.html b/Engine/lib/tinyxml/docs/functions_func_e.html deleted file mode 100644 index 194408c5d..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_e.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- e -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_f.html b/Engine/lib/tinyxml/docs/functions_func_f.html deleted file mode 100644 index 95f324f76..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_f.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- f -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_g.html b/Engine/lib/tinyxml/docs/functions_func_g.html deleted file mode 100644 index 06909ed0c..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_g.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- g -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_i.html b/Engine/lib/tinyxml/docs/functions_func_i.html deleted file mode 100644 index 195a666ab..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_i.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- i -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_l.html b/Engine/lib/tinyxml/docs/functions_func_l.html deleted file mode 100644 index 41da93c0f..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_l.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- l -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_n.html b/Engine/lib/tinyxml/docs/functions_func_n.html deleted file mode 100644 index 195bdb506..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_n.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- n -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_p.html b/Engine/lib/tinyxml/docs/functions_func_p.html deleted file mode 100644 index 59bab84df..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_p.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- p -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_q.html b/Engine/lib/tinyxml/docs/functions_func_q.html deleted file mode 100644 index 9f97d62d0..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_q.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- q -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_s.html b/Engine/lib/tinyxml/docs/functions_func_s.html deleted file mode 100644 index ddc052454..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_s.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- s -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_t.html b/Engine/lib/tinyxml/docs/functions_func_t.html deleted file mode 100644 index afb9ff638..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_t.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- t -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_u.html b/Engine/lib/tinyxml/docs/functions_func_u.html deleted file mode 100644 index ef4de8ce3..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_u.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- u -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_v.html b/Engine/lib/tinyxml/docs/functions_func_v.html deleted file mode 100644 index b189d4e3b..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_v.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- v -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_func_x.html b/Engine/lib/tinyxml/docs/functions_func_x.html deleted file mode 100644 index dd3040fd4..000000000 --- a/Engine/lib/tinyxml/docs/functions_func_x.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- x -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_g.html b/Engine/lib/tinyxml/docs/functions_g.html deleted file mode 100644 index d788ac5ea..000000000 --- a/Engine/lib/tinyxml/docs/functions_g.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- g -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_i.html b/Engine/lib/tinyxml/docs/functions_i.html deleted file mode 100644 index 26f42e1eb..000000000 --- a/Engine/lib/tinyxml/docs/functions_i.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- i -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_l.html b/Engine/lib/tinyxml/docs/functions_l.html deleted file mode 100644 index fdaeaa84b..000000000 --- a/Engine/lib/tinyxml/docs/functions_l.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- l -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_n.html b/Engine/lib/tinyxml/docs/functions_n.html deleted file mode 100644 index da911b636..000000000 --- a/Engine/lib/tinyxml/docs/functions_n.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- n -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_p.html b/Engine/lib/tinyxml/docs/functions_p.html deleted file mode 100644 index 3411ec0ec..000000000 --- a/Engine/lib/tinyxml/docs/functions_p.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- p -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_q.html b/Engine/lib/tinyxml/docs/functions_q.html deleted file mode 100644 index 6df8d6e35..000000000 --- a/Engine/lib/tinyxml/docs/functions_q.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- q -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_s.html b/Engine/lib/tinyxml/docs/functions_s.html deleted file mode 100644 index 7d81025c4..000000000 --- a/Engine/lib/tinyxml/docs/functions_s.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- s -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_t.html b/Engine/lib/tinyxml/docs/functions_t.html deleted file mode 100644 index 4afc96c82..000000000 --- a/Engine/lib/tinyxml/docs/functions_t.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- t -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_u.html b/Engine/lib/tinyxml/docs/functions_u.html deleted file mode 100644 index b2a403172..000000000 --- a/Engine/lib/tinyxml/docs/functions_u.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- u -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/functions_v.html b/Engine/lib/tinyxml/docs/functions_v.html deleted file mode 100644 index 2b0b5d98f..000000000 --- a/Engine/lib/tinyxml/docs/functions_v.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  9.0.0 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- v -

-
- - - - diff --git a/Engine/lib/tinyxml/docs/jquery.js b/Engine/lib/tinyxml/docs/jquery.js deleted file mode 100644 index 103c32d79..000000000 --- a/Engine/lib/tinyxml/docs/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Engine/lib/tinyxml/docs/menu.js b/Engine/lib/tinyxml/docs/menu.js deleted file mode 100644 index 2fe2214f2..000000000 --- a/Engine/lib/tinyxml/docs/menu.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/Engine/lib/tinyxml/docs/search/all_0.js b/Engine/lib/tinyxml/docs/search/all_0.js deleted file mode 100644 index 69ff10e1a..000000000 --- a/Engine/lib/tinyxml/docs/search/all_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['accept_0',['Accept',['../classtinyxml2_1_1_x_m_l_node.html#a81e66df0a44c67a7af17f3b77a152785',1,'tinyxml2::XMLNode::Accept()'],['../classtinyxml2_1_1_x_m_l_text.html#a1b2c1448f1a21299d0a7913f18b55206',1,'tinyxml2::XMLText::Accept()'],['../classtinyxml2_1_1_x_m_l_comment.html#a4a33dc32fae0285b03f9cfcb3e43e122',1,'tinyxml2::XMLComment::Accept()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a5f376019fb34752eb248548f42f32045',1,'tinyxml2::XMLDeclaration::Accept()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a70983aa1b1cff3d3aa6d4d0a80e5ee48',1,'tinyxml2::XMLUnknown::Accept()'],['../classtinyxml2_1_1_x_m_l_element.html#a3ea8a40e788fb9ad876c28a32932c6d5',1,'tinyxml2::XMLElement::Accept()'],['../classtinyxml2_1_1_x_m_l_document.html#a9efa54f7ecb37c17ab1fa2b3078ccca1',1,'tinyxml2::XMLDocument::Accept()']]], - ['attribute_1',['Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a70e49ed60b11212ae35f7e354cfe1de9',1,'tinyxml2::XMLElement']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_10.js b/Engine/lib/tinyxml/docs/search/all_10.js deleted file mode 100644 index cac5f2a79..000000000 --- a/Engine/lib/tinyxml/docs/search/all_10.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['tinyxml_2d2_113',['TinyXML-2',['../index.html',1,'']]], - ['tocomment_114',['ToComment',['../classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3',1,'tinyxml2::XMLNode::ToComment()'],['../classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee',1,'tinyxml2::XMLComment::ToComment()']]], - ['todeclaration_115',['ToDeclaration',['../classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51',1,'tinyxml2::XMLNode::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5',1,'tinyxml2::XMLDeclaration::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0',1,'tinyxml2::XMLHandle::ToDeclaration()']]], - ['todocument_116',['ToDocument',['../classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357',1,'tinyxml2::XMLNode::ToDocument()'],['../classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec',1,'tinyxml2::XMLDocument::ToDocument()']]], - ['toelement_117',['ToElement',['../classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8',1,'tinyxml2::XMLNode::ToElement()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d',1,'tinyxml2::XMLElement::ToElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99',1,'tinyxml2::XMLHandle::ToElement()']]], - ['tonode_118',['ToNode',['../classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df',1,'tinyxml2::XMLHandle']]], - ['totext_119',['ToText',['../classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b',1,'tinyxml2::XMLNode::ToText()'],['../classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7',1,'tinyxml2::XMLText::ToText()'],['../classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a',1,'tinyxml2::XMLHandle::ToText()']]], - ['tounknown_120',['ToUnknown',['../classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd',1,'tinyxml2::XMLNode::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6',1,'tinyxml2::XMLUnknown::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de',1,'tinyxml2::XMLHandle::ToUnknown()']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_11.js b/Engine/lib/tinyxml/docs/search/all_11.js deleted file mode 100644 index aa21f644e..000000000 --- a/Engine/lib/tinyxml/docs/search/all_11.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['unsigned64attribute_121',['Unsigned64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a226502bab8f1be7ede1fdd255398eb85',1,'tinyxml2::XMLElement']]], - ['unsigned64text_122',['Unsigned64Text',['../classtinyxml2_1_1_x_m_l_element.html#af48c1023abbac1acdf4927c51c3a5f0c',1,'tinyxml2::XMLElement']]], - ['unsignedattribute_123',['UnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c',1,'tinyxml2::XMLElement']]], - ['unsignedtext_124',['UnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5',1,'tinyxml2::XMLElement']]], - ['unsignedvalue_125',['UnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_12.js b/Engine/lib/tinyxml/docs/search/all_12.js deleted file mode 100644 index 886312d96..000000000 --- a/Engine/lib/tinyxml/docs/search/all_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['value_126',['Value',['../classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82',1,'tinyxml2::XMLNode::Value()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853',1,'tinyxml2::XMLAttribute::Value()']]], - ['visit_127',['Visit',['../classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a',1,'tinyxml2::XMLVisitor::Visit(const XMLDeclaration &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b',1,'tinyxml2::XMLVisitor::Visit(const XMLText &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7',1,'tinyxml2::XMLVisitor::Visit(const XMLComment &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292',1,'tinyxml2::XMLVisitor::Visit(const XMLUnknown &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a275ae25544a12199ae40b6994ca6e4de',1,'tinyxml2::XMLPrinter::Visit(const XMLText &text)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3f16a30be1537ac141d9bd2db824ba9e',1,'tinyxml2::XMLPrinter::Visit(const XMLComment &comment)'],['../classtinyxml2_1_1_x_m_l_printer.html#a9ceff5cd85e5db65838962174fcdcc46',1,'tinyxml2::XMLPrinter::Visit(const XMLDeclaration &declaration)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa15e1da81e17dea5da6499ac5b08d9d8',1,'tinyxml2::XMLPrinter::Visit(const XMLUnknown &unknown)']]], - ['visitenter_128',['VisitEnter',['../classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLElement &, const XMLAttribute *)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae966b988a7a28c41e91c5ca17fb2054b',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a2ce2aa508c21ac91615093ddb9c282c5',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLElement &element, const XMLAttribute *attribute)']]], - ['visitexit_129',['VisitExit',['../classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086',1,'tinyxml2::XMLVisitor::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6',1,'tinyxml2::XMLVisitor::VisitExit(const XMLElement &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29',1,'tinyxml2::XMLPrinter::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae99e0a7086543591edfb565f24689098',1,'tinyxml2::XMLPrinter::VisitExit(const XMLElement &element)']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_13.js b/Engine/lib/tinyxml/docs/search/all_13.js deleted file mode 100644 index a438148c9..000000000 --- a/Engine/lib/tinyxml/docs/search/all_13.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['xmlattribute_130',['XMLAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html',1,'tinyxml2']]], - ['xmlcomment_131',['XMLComment',['../classtinyxml2_1_1_x_m_l_comment.html',1,'tinyxml2']]], - ['xmlconsthandle_132',['XMLConstHandle',['../classtinyxml2_1_1_x_m_l_const_handle.html',1,'tinyxml2']]], - ['xmldeclaration_133',['XMLDeclaration',['../classtinyxml2_1_1_x_m_l_declaration.html',1,'tinyxml2']]], - ['xmldocument_134',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html',1,'tinyxml2::XMLDocument'],['../classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70',1,'tinyxml2::XMLDocument::XMLDocument()']]], - ['xmlelement_135',['XMLElement',['../classtinyxml2_1_1_x_m_l_element.html',1,'tinyxml2']]], - ['xmlhandle_136',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html',1,'tinyxml2::XMLHandle'],['../classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode *node)'],['../classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode &node)'],['../classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa',1,'tinyxml2::XMLHandle::XMLHandle(const XMLHandle &ref)']]], - ['xmlnode_137',['XMLNode',['../classtinyxml2_1_1_x_m_l_node.html',1,'tinyxml2']]], - ['xmlprinter_138',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html',1,'tinyxml2::XMLPrinter'],['../classtinyxml2_1_1_x_m_l_printer.html#aa6d3841c069085f5b8a27bc7103c04f7',1,'tinyxml2::XMLPrinter::XMLPrinter()']]], - ['xmltext_139',['XMLText',['../classtinyxml2_1_1_x_m_l_text.html',1,'tinyxml2']]], - ['xmlunknown_140',['XMLUnknown',['../classtinyxml2_1_1_x_m_l_unknown.html',1,'tinyxml2']]], - ['xmlvisitor_141',['XMLVisitor',['../classtinyxml2_1_1_x_m_l_visitor.html',1,'tinyxml2']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_2.js b/Engine/lib/tinyxml/docs/search/all_2.js deleted file mode 100644 index 211e24efc..000000000 --- a/Engine/lib/tinyxml/docs/search/all_2.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['cdata_5',['CData',['../classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b',1,'tinyxml2::XMLText']]], - ['clear_6',['Clear',['../classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf',1,'tinyxml2::XMLDocument']]], - ['clearbuffer_7',['ClearBuffer',['../classtinyxml2_1_1_x_m_l_printer.html#a690cb140ba98b7339734ff865f56b0b3',1,'tinyxml2::XMLPrinter']]], - ['clearerror_8',['ClearError',['../classtinyxml2_1_1_x_m_l_document.html#a4085d9c52f1d93214311459d6d1fcf17',1,'tinyxml2::XMLDocument']]], - ['closeelement_9',['CloseElement',['../classtinyxml2_1_1_x_m_l_printer.html#ad04d29562b46fcdb23ab320f8b664240',1,'tinyxml2::XMLPrinter']]], - ['cstr_10',['CStr',['../classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e',1,'tinyxml2::XMLPrinter']]], - ['cstrsize_11',['CStrSize',['../classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c',1,'tinyxml2::XMLPrinter']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_3.js b/Engine/lib/tinyxml/docs/search/all_3.js deleted file mode 100644 index 6520bfaac..000000000 --- a/Engine/lib/tinyxml/docs/search/all_3.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['deepclone_12',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266',1,'tinyxml2::XMLNode']]], - ['deepcopy_13',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45',1,'tinyxml2::XMLDocument']]], - ['deleteattribute_14',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]], - ['deletechild_15',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]], - ['deletechildren_16',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]], - ['deletenode_17',['DeleteNode',['../classtinyxml2_1_1_x_m_l_document.html#ac1d6e2c7fcc1a660624ac4f68e96380d',1,'tinyxml2::XMLDocument']]], - ['doubleattribute_18',['DoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a10a90c505aea716bf073eea1c97f33b5',1,'tinyxml2::XMLElement']]], - ['doubletext_19',['DoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a81b1ff0cf2f2cd09be8badc08b39a2b7',1,'tinyxml2::XMLElement']]], - ['doublevalue_20',['DoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_4.js b/Engine/lib/tinyxml/docs/search/all_4.js deleted file mode 100644 index 52bdc46bd..000000000 --- a/Engine/lib/tinyxml/docs/search/all_4.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['error_21',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]], - ['errorid_22',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]], - ['errorlinenum_23',['ErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76',1,'tinyxml2::XMLDocument']]], - ['errorstr_24',['ErrorStr',['../classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf',1,'tinyxml2::XMLDocument']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_5.js b/Engine/lib/tinyxml/docs/search/all_5.js deleted file mode 100644 index 1d4413afa..000000000 --- a/Engine/lib/tinyxml/docs/search/all_5.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['findattribute_25',['FindAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a2dcd4d5d6fb63396cd2f257c318b42c4',1,'tinyxml2::XMLElement']]], - ['firstattribute_26',['FirstAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686',1,'tinyxml2::XMLElement']]], - ['firstchild_27',['FirstChild',['../classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08',1,'tinyxml2::XMLNode::FirstChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae',1,'tinyxml2::XMLHandle::FirstChild()']]], - ['firstchildelement_28',['FirstChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b',1,'tinyxml2::XMLNode::FirstChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3',1,'tinyxml2::XMLHandle::FirstChildElement()']]], - ['floatattribute_29',['FloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#ab1f4be2332e27dc640e9b6abd01d64dd',1,'tinyxml2::XMLElement']]], - ['floattext_30',['FloatText',['../classtinyxml2_1_1_x_m_l_element.html#a45444eb21f99ca46101545992dc2e927',1,'tinyxml2::XMLElement']]], - ['floatvalue_31',['FloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_6.js b/Engine/lib/tinyxml/docs/search/all_6.js deleted file mode 100644 index 9dddc4ff7..000000000 --- a/Engine/lib/tinyxml/docs/search/all_6.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['get_20information_20out_20of_20xml_32',['Get information out of XML',['../_example_3.html',1,'']]], - ['getdocument_33',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68',1,'tinyxml2::XMLNode::GetDocument()']]], - ['getlinenum_34',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]], - ['gettext_35',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51',1,'tinyxml2::XMLElement']]], - ['getuserdata_36',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe',1,'tinyxml2::XMLNode']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_7.js b/Engine/lib/tinyxml/docs/search/all_7.js deleted file mode 100644 index 118d61e26..000000000 --- a/Engine/lib/tinyxml/docs/search/all_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hasbom_37',['HasBOM',['../classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd',1,'tinyxml2::XMLDocument']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_8.js b/Engine/lib/tinyxml/docs/search/all_8.js deleted file mode 100644 index 9256a19a6..000000000 --- a/Engine/lib/tinyxml/docs/search/all_8.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['insertafterchild_38',['InsertAfterChild',['../classtinyxml2_1_1_x_m_l_node.html#a85adb8f0b7477eec30f9a41d420b09c2',1,'tinyxml2::XMLNode']]], - ['insertendchild_39',['InsertEndChild',['../classtinyxml2_1_1_x_m_l_node.html#aeb249ed60f4e8bfad3709151c3ee4286',1,'tinyxml2::XMLNode']]], - ['insertfirstchild_40',['InsertFirstChild',['../classtinyxml2_1_1_x_m_l_node.html#a8ff7dc071f3a1a6ae2ac25a37492865d',1,'tinyxml2::XMLNode']]], - ['insertnewchildelement_41',['InsertNewChildElement',['../classtinyxml2_1_1_x_m_l_element.html#abc9506eff9780f666f49dc3d5e5cae13',1,'tinyxml2::XMLElement']]], - ['insertnewcomment_42',['InsertNewComment',['../classtinyxml2_1_1_x_m_l_element.html#ae4f2c2e781b8dc030411d84cd20fa46d',1,'tinyxml2::XMLElement']]], - ['insertnewdeclaration_43',['InsertNewDeclaration',['../classtinyxml2_1_1_x_m_l_element.html#adec237e788b50c4ed73c918a166adde6',1,'tinyxml2::XMLElement']]], - ['insertnewtext_44',['InsertNewText',['../classtinyxml2_1_1_x_m_l_element.html#a189e155810fc9fdd4da1409cbadee187',1,'tinyxml2::XMLElement']]], - ['insertnewunknown_45',['InsertNewUnknown',['../classtinyxml2_1_1_x_m_l_element.html#acaa5fe3957760e68185006965e2c11c2',1,'tinyxml2::XMLElement']]], - ['int64attribute_46',['Int64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a66d96972adecd816194191f13cc4a0a0',1,'tinyxml2::XMLElement']]], - ['int64text_47',['Int64Text',['../classtinyxml2_1_1_x_m_l_element.html#aab6151f7e3b4c2c0a8234e262d7b6b8a',1,'tinyxml2::XMLElement']]], - ['intattribute_48',['IntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a95a89b13bb14a2d4655e2b5b406c00d4',1,'tinyxml2::XMLElement']]], - ['intvalue_49',['IntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_9.js b/Engine/lib/tinyxml/docs/search/all_9.js deleted file mode 100644 index f6023fe35..000000000 --- a/Engine/lib/tinyxml/docs/search/all_9.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['lastchild_50',['LastChild',['../classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e',1,'tinyxml2::XMLNode::LastChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b',1,'tinyxml2::XMLHandle::LastChild()']]], - ['lastchildelement_51',['LastChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551',1,'tinyxml2::XMLNode::LastChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c',1,'tinyxml2::XMLHandle::LastChildElement()']]], - ['load_20an_20xml_20file_52',['Load an XML File',['../_example_1.html',1,'']]], - ['loadfile_53',['LoadFile',['../classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a',1,'tinyxml2::XMLDocument::LoadFile(const char *filename)'],['../classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2',1,'tinyxml2::XMLDocument::LoadFile(FILE *)']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_a.js b/Engine/lib/tinyxml/docs/search/all_a.js deleted file mode 100644 index 5211f98c9..000000000 --- a/Engine/lib/tinyxml/docs/search/all_a.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['name_54',['Name',['../classtinyxml2_1_1_x_m_l_attribute.html#ab886c486ec19f02ed826f8dc129e5ad8',1,'tinyxml2::XMLAttribute::Name()'],['../classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35',1,'tinyxml2::XMLElement::Name()']]], - ['newcomment_55',['NewComment',['../classtinyxml2_1_1_x_m_l_document.html#ade4874bcb439954972ef2b3723ff3259',1,'tinyxml2::XMLDocument']]], - ['newdeclaration_56',['NewDeclaration',['../classtinyxml2_1_1_x_m_l_document.html#aee2eb3435923f5494dcc70ac225b60a2',1,'tinyxml2::XMLDocument']]], - ['newelement_57',['NewElement',['../classtinyxml2_1_1_x_m_l_document.html#a8aa7817d4a1001364b06373763ab99d6',1,'tinyxml2::XMLDocument']]], - ['newtext_58',['NewText',['../classtinyxml2_1_1_x_m_l_document.html#ab7e8b29ae4099092a8bb947da6361296',1,'tinyxml2::XMLDocument']]], - ['newunknown_59',['NewUnknown',['../classtinyxml2_1_1_x_m_l_document.html#a5385c937734ff6db9226ab707d2c7147',1,'tinyxml2::XMLDocument']]], - ['next_60',['Next',['../classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6',1,'tinyxml2::XMLAttribute']]], - ['nextsibling_61',['NextSibling',['../classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5',1,'tinyxml2::XMLNode::NextSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5',1,'tinyxml2::XMLHandle::NextSibling()']]], - ['nextsiblingelement_62',['NextSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a1264c86233328f0cd36297552d982f80',1,'tinyxml2::XMLNode::NextSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5',1,'tinyxml2::XMLHandle::NextSiblingElement()']]], - ['nochildren_63',['NoChildren',['../classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4',1,'tinyxml2::XMLNode']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_b.js b/Engine/lib/tinyxml/docs/search/all_b.js deleted file mode 100644 index 38c0c2a36..000000000 --- a/Engine/lib/tinyxml/docs/search/all_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['openelement_64',['OpenElement',['../classtinyxml2_1_1_x_m_l_printer.html#a20fb06c83bd13e5140d7dd13af06c010',1,'tinyxml2::XMLPrinter']]], - ['operator_3d_65',['operator=',['../classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20',1,'tinyxml2::XMLHandle']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_c.js b/Engine/lib/tinyxml/docs/search/all_c.js deleted file mode 100644 index 1ec43192f..000000000 --- a/Engine/lib/tinyxml/docs/search/all_c.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['parent_66',['Parent',['../classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34',1,'tinyxml2::XMLNode']]], - ['parse_67',['Parse',['../classtinyxml2_1_1_x_m_l_document.html#af2b616169e6517182f6725f2498e9a01',1,'tinyxml2::XMLDocument']]], - ['parse_20an_20xml_20from_20char_20buffer_68',['Parse an XML from char buffer',['../_example_2.html',1,'']]], - ['previoussibling_69',['PreviousSibling',['../classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551',1,'tinyxml2::XMLNode::PreviousSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c',1,'tinyxml2::XMLHandle::PreviousSibling()']]], - ['previoussiblingelement_70',['PreviousSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70',1,'tinyxml2::XMLNode::PreviousSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e',1,'tinyxml2::XMLHandle::PreviousSiblingElement()']]], - ['print_71',['Print',['../classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083',1,'tinyxml2::XMLDocument']]], - ['printerror_72',['PrintError',['../classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552',1,'tinyxml2::XMLDocument']]], - ['printspace_73',['PrintSpace',['../classtinyxml2_1_1_x_m_l_printer.html#a01148e2ebe6776e38c5a3e41bc5feb74',1,'tinyxml2::XMLPrinter']]], - ['pushattribute_74',['PushAttribute',['../classtinyxml2_1_1_x_m_l_printer.html#a9a4e2c9348b42e147629d5a99f4af3f0',1,'tinyxml2::XMLPrinter']]], - ['pushcomment_75',['PushComment',['../classtinyxml2_1_1_x_m_l_printer.html#afc8416814219591c2fd5656e0c233140',1,'tinyxml2::XMLPrinter']]], - ['pushheader_76',['PushHeader',['../classtinyxml2_1_1_x_m_l_printer.html#a178c608ce8476043d5d6513819cde903',1,'tinyxml2::XMLPrinter']]], - ['pushtext_77',['PushText',['../classtinyxml2_1_1_x_m_l_printer.html#a1cc16a9362df4332012cb13cff6441b3',1,'tinyxml2::XMLPrinter::PushText(const char *text, bool cdata=false)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3e0d4d78de25d4cf081009e1431cea7e',1,'tinyxml2::XMLPrinter::PushText(int value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a661fb50e7e0a4918d2d259cb0fae647e',1,'tinyxml2::XMLPrinter::PushText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a96b0a0bfe105154a0a6c37d725258f0a',1,'tinyxml2::XMLPrinter::PushText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a60b0a4cf57371ff8679c2c7556ccb708',1,'tinyxml2::XMLPrinter::PushText(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a4390e5fa1ed05189a8686647345ab29f',1,'tinyxml2::XMLPrinter::PushText(bool value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a1dbb1390e829d0673af66b9cd1928bd7',1,'tinyxml2::XMLPrinter::PushText(float value)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa715302dfc09473c77c853cbd5431965',1,'tinyxml2::XMLPrinter::PushText(double value)']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_d.js b/Engine/lib/tinyxml/docs/search/all_d.js deleted file mode 100644 index cab2932b6..000000000 --- a/Engine/lib/tinyxml/docs/search/all_d.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['queryattribute_78',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]], - ['queryboolattribute_79',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]], - ['querybooltext_80',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]], - ['queryboolvalue_81',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]], - ['querydoubleattribute_82',['QueryDoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c',1,'tinyxml2::XMLElement']]], - ['querydoubletext_83',['QueryDoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a684679c99bb036a25652744cec6c4d96',1,'tinyxml2::XMLElement']]], - ['querydoublevalue_84',['QueryDoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9',1,'tinyxml2::XMLAttribute']]], - ['queryfloatattribute_85',['QueryFloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5',1,'tinyxml2::XMLElement']]], - ['queryfloattext_86',['QueryFloatText',['../classtinyxml2_1_1_x_m_l_element.html#afa332afedd93210daa6d44b88eb11e29',1,'tinyxml2::XMLElement']]], - ['queryfloatvalue_87',['QueryFloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607',1,'tinyxml2::XMLAttribute']]], - ['queryint64attribute_88',['QueryInt64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8',1,'tinyxml2::XMLElement']]], - ['queryint64text_89',['QueryInt64Text',['../classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8',1,'tinyxml2::XMLElement']]], - ['queryint64value_90',['QueryInt64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2',1,'tinyxml2::XMLAttribute']]], - ['queryintattribute_91',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]], - ['queryinttext_92',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]], - ['queryintvalue_93',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]], - ['querystringattribute_94',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]], - ['queryunsigned64attribute_95',['QueryUnsigned64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a13dd590b5d3958ce2ed79844aacd9405',1,'tinyxml2::XMLElement']]], - ['queryunsigned64text_96',['QueryUnsigned64Text',['../classtinyxml2_1_1_x_m_l_element.html#ac2239b3bd172ad8f5b78d04d4236144b',1,'tinyxml2::XMLElement']]], - ['queryunsigned64value_97',['QueryUnsigned64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#af793c695e7ee65cf20b8010d38b1d157',1,'tinyxml2::XMLAttribute']]], - ['queryunsignedattribute_98',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]], - ['queryunsignedtext_99',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]], - ['queryunsignedvalue_100',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_e.js b/Engine/lib/tinyxml/docs/search/all_e.js deleted file mode 100644 index 0ccf8e1ac..000000000 --- a/Engine/lib/tinyxml/docs/search/all_e.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['read_20attributes_20and_20text_20information_2e_101',['Read attributes and text information.',['../_example_4.html',1,'']]], - ['rootelement_102',['RootElement',['../classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c',1,'tinyxml2::XMLDocument']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/all_f.js b/Engine/lib/tinyxml/docs/search/all_f.js deleted file mode 100644 index 54bdc74a8..000000000 --- a/Engine/lib/tinyxml/docs/search/all_f.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['savefile_103',['SaveFile',['../classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f',1,'tinyxml2::XMLDocument::SaveFile(const char *filename, bool compact=false)'],['../classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74',1,'tinyxml2::XMLDocument::SaveFile(FILE *fp, bool compact=false)']]], - ['setattribute_104',['SetAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581',1,'tinyxml2::XMLAttribute::SetAttribute(const char *value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ad86d7d7058d76761c3a80662566a57e5',1,'tinyxml2::XMLAttribute::SetAttribute(int value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae70468c0f6df2748ba3529c716999fae',1,'tinyxml2::XMLAttribute::SetAttribute(unsigned value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a7c1240f479722b9aa29b6c030aa116c2',1,'tinyxml2::XMLAttribute::SetAttribute(int64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a10964060a5c0d92486ecf8705bdf37da',1,'tinyxml2::XMLAttribute::SetAttribute(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ab3516def4fe058fe328f2b89fc2d77da',1,'tinyxml2::XMLAttribute::SetAttribute(bool value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a9a65ab3147abe8ccbbd373ce8791e818',1,'tinyxml2::XMLAttribute::SetAttribute(double value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae95e843313aaf5d56c32530b6456df02',1,'tinyxml2::XMLAttribute::SetAttribute(float value)'],['../classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c',1,'tinyxml2::XMLElement::SetAttribute(const char *name, const char *value)'],['../classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f',1,'tinyxml2::XMLElement::SetAttribute(const char *name, unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ad598868c0599ddc4695dab18552c308d',1,'tinyxml2::XMLElement::SetAttribute(const char *name, uint64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1',1,'tinyxml2::XMLElement::SetAttribute(const char *name, bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533',1,'tinyxml2::XMLElement::SetAttribute(const char *name, double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759',1,'tinyxml2::XMLElement::SetAttribute(const char *name, float value)']]], - ['setbom_105',['SetBOM',['../classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0',1,'tinyxml2::XMLDocument']]], - ['setcdata_106',['SetCData',['../classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d',1,'tinyxml2::XMLText']]], - ['setname_107',['SetName',['../classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1',1,'tinyxml2::XMLElement']]], - ['settext_108',['SetText',['../classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce',1,'tinyxml2::XMLElement::SetText(const char *inText)'],['../classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7',1,'tinyxml2::XMLElement::SetText(int value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597',1,'tinyxml2::XMLElement::SetText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4',1,'tinyxml2::XMLElement::SetText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#a6e615bc745afd1ca8ded56d7aac02657',1,'tinyxml2::XMLElement::SetText(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4',1,'tinyxml2::XMLElement::SetText(bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e',1,'tinyxml2::XMLElement::SetText(double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a',1,'tinyxml2::XMLElement::SetText(float value)']]], - ['setuserdata_109',['SetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2',1,'tinyxml2::XMLNode']]], - ['setvalue_110',['SetValue',['../classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513',1,'tinyxml2::XMLNode']]], - ['shallowclone_111',['ShallowClone',['../classtinyxml2_1_1_x_m_l_node.html#a8402cbd3129d20e9e6024bbcc0531283',1,'tinyxml2::XMLNode::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_text.html#af3a81ed4dd49d5151c477b3f265a3011',1,'tinyxml2::XMLText::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_comment.html#a08991cc63fadf7e95078ac4f9ea1b073',1,'tinyxml2::XMLComment::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a118d47518dd9e522644e42efa259aed7',1,'tinyxml2::XMLDeclaration::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0125f41c89763dea06619b5fd5246b4c',1,'tinyxml2::XMLUnknown::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750',1,'tinyxml2::XMLElement::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8',1,'tinyxml2::XMLDocument::ShallowClone()']]], - ['shallowequal_112',['ShallowEqual',['../classtinyxml2_1_1_x_m_l_node.html#a7ce18b751c3ea09eac292dca264f9226',1,'tinyxml2::XMLNode::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_text.html#ae0fff8a24e2de7eb073fd192e9db0331',1,'tinyxml2::XMLText::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_comment.html#a6f7d227b25afa8cc3c763b7cc8833739',1,'tinyxml2::XMLComment::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_declaration.html#aa26b70011694e9b9e9480b929e9b78d6',1,'tinyxml2::XMLDeclaration::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0715ab2c05d7f74845c188122213b116',1,'tinyxml2::XMLUnknown::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6',1,'tinyxml2::XMLElement::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9',1,'tinyxml2::XMLDocument::ShallowEqual()']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/classes_0.js b/Engine/lib/tinyxml/docs/search/classes_0.js deleted file mode 100644 index a9be1214f..000000000 --- a/Engine/lib/tinyxml/docs/search/classes_0.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['xmlattribute_142',['XMLAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html',1,'tinyxml2']]], - ['xmlcomment_143',['XMLComment',['../classtinyxml2_1_1_x_m_l_comment.html',1,'tinyxml2']]], - ['xmlconsthandle_144',['XMLConstHandle',['../classtinyxml2_1_1_x_m_l_const_handle.html',1,'tinyxml2']]], - ['xmldeclaration_145',['XMLDeclaration',['../classtinyxml2_1_1_x_m_l_declaration.html',1,'tinyxml2']]], - ['xmldocument_146',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html',1,'tinyxml2']]], - ['xmlelement_147',['XMLElement',['../classtinyxml2_1_1_x_m_l_element.html',1,'tinyxml2']]], - ['xmlhandle_148',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html',1,'tinyxml2']]], - ['xmlnode_149',['XMLNode',['../classtinyxml2_1_1_x_m_l_node.html',1,'tinyxml2']]], - ['xmlprinter_150',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html',1,'tinyxml2']]], - ['xmltext_151',['XMLText',['../classtinyxml2_1_1_x_m_l_text.html',1,'tinyxml2']]], - ['xmlunknown_152',['XMLUnknown',['../classtinyxml2_1_1_x_m_l_unknown.html',1,'tinyxml2']]], - ['xmlvisitor_153',['XMLVisitor',['../classtinyxml2_1_1_x_m_l_visitor.html',1,'tinyxml2']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_0.js b/Engine/lib/tinyxml/docs/search/functions_0.js deleted file mode 100644 index 782a66289..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['accept_154',['Accept',['../classtinyxml2_1_1_x_m_l_node.html#a81e66df0a44c67a7af17f3b77a152785',1,'tinyxml2::XMLNode::Accept()'],['../classtinyxml2_1_1_x_m_l_text.html#a1b2c1448f1a21299d0a7913f18b55206',1,'tinyxml2::XMLText::Accept()'],['../classtinyxml2_1_1_x_m_l_comment.html#a4a33dc32fae0285b03f9cfcb3e43e122',1,'tinyxml2::XMLComment::Accept()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a5f376019fb34752eb248548f42f32045',1,'tinyxml2::XMLDeclaration::Accept()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a70983aa1b1cff3d3aa6d4d0a80e5ee48',1,'tinyxml2::XMLUnknown::Accept()'],['../classtinyxml2_1_1_x_m_l_element.html#a3ea8a40e788fb9ad876c28a32932c6d5',1,'tinyxml2::XMLElement::Accept()'],['../classtinyxml2_1_1_x_m_l_document.html#a9efa54f7ecb37c17ab1fa2b3078ccca1',1,'tinyxml2::XMLDocument::Accept()']]], - ['attribute_155',['Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a70e49ed60b11212ae35f7e354cfe1de9',1,'tinyxml2::XMLElement']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_1.js b/Engine/lib/tinyxml/docs/search/functions_1.js deleted file mode 100644 index 44f3cf941..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['boolattribute_156',['BoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a53eda26131e1ad1031ef8ec8adb51bd8',1,'tinyxml2::XMLElement']]], - ['booltext_157',['BoolText',['../classtinyxml2_1_1_x_m_l_element.html#a68569f59f6382bcea7f5013ec59736d2',1,'tinyxml2::XMLElement']]], - ['boolvalue_158',['BoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_10.js b/Engine/lib/tinyxml/docs/search/functions_10.js deleted file mode 100644 index d3cd46f95..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_10.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['tocomment_263',['ToComment',['../classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3',1,'tinyxml2::XMLNode::ToComment()'],['../classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee',1,'tinyxml2::XMLComment::ToComment()']]], - ['todeclaration_264',['ToDeclaration',['../classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51',1,'tinyxml2::XMLNode::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5',1,'tinyxml2::XMLDeclaration::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0',1,'tinyxml2::XMLHandle::ToDeclaration()']]], - ['todocument_265',['ToDocument',['../classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357',1,'tinyxml2::XMLNode::ToDocument()'],['../classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec',1,'tinyxml2::XMLDocument::ToDocument()']]], - ['toelement_266',['ToElement',['../classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8',1,'tinyxml2::XMLNode::ToElement()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d',1,'tinyxml2::XMLElement::ToElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99',1,'tinyxml2::XMLHandle::ToElement()']]], - ['tonode_267',['ToNode',['../classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df',1,'tinyxml2::XMLHandle']]], - ['totext_268',['ToText',['../classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b',1,'tinyxml2::XMLNode::ToText()'],['../classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7',1,'tinyxml2::XMLText::ToText()'],['../classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a',1,'tinyxml2::XMLHandle::ToText()']]], - ['tounknown_269',['ToUnknown',['../classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd',1,'tinyxml2::XMLNode::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6',1,'tinyxml2::XMLUnknown::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de',1,'tinyxml2::XMLHandle::ToUnknown()']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_11.js b/Engine/lib/tinyxml/docs/search/functions_11.js deleted file mode 100644 index 11799315f..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_11.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['unsigned64attribute_270',['Unsigned64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a226502bab8f1be7ede1fdd255398eb85',1,'tinyxml2::XMLElement']]], - ['unsigned64text_271',['Unsigned64Text',['../classtinyxml2_1_1_x_m_l_element.html#af48c1023abbac1acdf4927c51c3a5f0c',1,'tinyxml2::XMLElement']]], - ['unsignedattribute_272',['UnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c',1,'tinyxml2::XMLElement']]], - ['unsignedtext_273',['UnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5',1,'tinyxml2::XMLElement']]], - ['unsignedvalue_274',['UnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_12.js b/Engine/lib/tinyxml/docs/search/functions_12.js deleted file mode 100644 index 6ec91512c..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['value_275',['Value',['../classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82',1,'tinyxml2::XMLNode::Value()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853',1,'tinyxml2::XMLAttribute::Value()']]], - ['visit_276',['Visit',['../classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a',1,'tinyxml2::XMLVisitor::Visit(const XMLDeclaration &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b',1,'tinyxml2::XMLVisitor::Visit(const XMLText &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7',1,'tinyxml2::XMLVisitor::Visit(const XMLComment &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292',1,'tinyxml2::XMLVisitor::Visit(const XMLUnknown &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a275ae25544a12199ae40b6994ca6e4de',1,'tinyxml2::XMLPrinter::Visit(const XMLText &text)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3f16a30be1537ac141d9bd2db824ba9e',1,'tinyxml2::XMLPrinter::Visit(const XMLComment &comment)'],['../classtinyxml2_1_1_x_m_l_printer.html#a9ceff5cd85e5db65838962174fcdcc46',1,'tinyxml2::XMLPrinter::Visit(const XMLDeclaration &declaration)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa15e1da81e17dea5da6499ac5b08d9d8',1,'tinyxml2::XMLPrinter::Visit(const XMLUnknown &unknown)']]], - ['visitenter_277',['VisitEnter',['../classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLElement &, const XMLAttribute *)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae966b988a7a28c41e91c5ca17fb2054b',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a2ce2aa508c21ac91615093ddb9c282c5',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLElement &element, const XMLAttribute *attribute)']]], - ['visitexit_278',['VisitExit',['../classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086',1,'tinyxml2::XMLVisitor::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6',1,'tinyxml2::XMLVisitor::VisitExit(const XMLElement &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29',1,'tinyxml2::XMLPrinter::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae99e0a7086543591edfb565f24689098',1,'tinyxml2::XMLPrinter::VisitExit(const XMLElement &element)']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_13.js b/Engine/lib/tinyxml/docs/search/functions_13.js deleted file mode 100644 index 195574aa7..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_13.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['xmldocument_279',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70',1,'tinyxml2::XMLDocument']]], - ['xmlhandle_280',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode *node)'],['../classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode &node)'],['../classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa',1,'tinyxml2::XMLHandle::XMLHandle(const XMLHandle &ref)']]], - ['xmlprinter_281',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html#aa6d3841c069085f5b8a27bc7103c04f7',1,'tinyxml2::XMLPrinter']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_2.js b/Engine/lib/tinyxml/docs/search/functions_2.js deleted file mode 100644 index 497e75a70..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_2.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['cdata_159',['CData',['../classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b',1,'tinyxml2::XMLText']]], - ['clear_160',['Clear',['../classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf',1,'tinyxml2::XMLDocument']]], - ['clearbuffer_161',['ClearBuffer',['../classtinyxml2_1_1_x_m_l_printer.html#a690cb140ba98b7339734ff865f56b0b3',1,'tinyxml2::XMLPrinter']]], - ['clearerror_162',['ClearError',['../classtinyxml2_1_1_x_m_l_document.html#a4085d9c52f1d93214311459d6d1fcf17',1,'tinyxml2::XMLDocument']]], - ['closeelement_163',['CloseElement',['../classtinyxml2_1_1_x_m_l_printer.html#ad04d29562b46fcdb23ab320f8b664240',1,'tinyxml2::XMLPrinter']]], - ['cstr_164',['CStr',['../classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e',1,'tinyxml2::XMLPrinter']]], - ['cstrsize_165',['CStrSize',['../classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c',1,'tinyxml2::XMLPrinter']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_3.js b/Engine/lib/tinyxml/docs/search/functions_3.js deleted file mode 100644 index f54c8935e..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_3.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['deepclone_166',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266',1,'tinyxml2::XMLNode']]], - ['deepcopy_167',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45',1,'tinyxml2::XMLDocument']]], - ['deleteattribute_168',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]], - ['deletechild_169',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]], - ['deletechildren_170',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]], - ['deletenode_171',['DeleteNode',['../classtinyxml2_1_1_x_m_l_document.html#ac1d6e2c7fcc1a660624ac4f68e96380d',1,'tinyxml2::XMLDocument']]], - ['doubleattribute_172',['DoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a10a90c505aea716bf073eea1c97f33b5',1,'tinyxml2::XMLElement']]], - ['doubletext_173',['DoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a81b1ff0cf2f2cd09be8badc08b39a2b7',1,'tinyxml2::XMLElement']]], - ['doublevalue_174',['DoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_4.js b/Engine/lib/tinyxml/docs/search/functions_4.js deleted file mode 100644 index 55d93b477..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_4.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['error_175',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]], - ['errorid_176',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]], - ['errorlinenum_177',['ErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76',1,'tinyxml2::XMLDocument']]], - ['errorstr_178',['ErrorStr',['../classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf',1,'tinyxml2::XMLDocument']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_5.js b/Engine/lib/tinyxml/docs/search/functions_5.js deleted file mode 100644 index 6a7db0b85..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_5.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['findattribute_179',['FindAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a2dcd4d5d6fb63396cd2f257c318b42c4',1,'tinyxml2::XMLElement']]], - ['firstattribute_180',['FirstAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686',1,'tinyxml2::XMLElement']]], - ['firstchild_181',['FirstChild',['../classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08',1,'tinyxml2::XMLNode::FirstChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae',1,'tinyxml2::XMLHandle::FirstChild()']]], - ['firstchildelement_182',['FirstChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b',1,'tinyxml2::XMLNode::FirstChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3',1,'tinyxml2::XMLHandle::FirstChildElement()']]], - ['floatattribute_183',['FloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#ab1f4be2332e27dc640e9b6abd01d64dd',1,'tinyxml2::XMLElement']]], - ['floattext_184',['FloatText',['../classtinyxml2_1_1_x_m_l_element.html#a45444eb21f99ca46101545992dc2e927',1,'tinyxml2::XMLElement']]], - ['floatvalue_185',['FloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_6.js b/Engine/lib/tinyxml/docs/search/functions_6.js deleted file mode 100644 index 71d809055..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_6.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['getdocument_186',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68',1,'tinyxml2::XMLNode::GetDocument()']]], - ['getlinenum_187',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]], - ['gettext_188',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51',1,'tinyxml2::XMLElement']]], - ['getuserdata_189',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe',1,'tinyxml2::XMLNode']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_7.js b/Engine/lib/tinyxml/docs/search/functions_7.js deleted file mode 100644 index 676d3b56b..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hasbom_190',['HasBOM',['../classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd',1,'tinyxml2::XMLDocument']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_8.js b/Engine/lib/tinyxml/docs/search/functions_8.js deleted file mode 100644 index f64483102..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_8.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['insertafterchild_191',['InsertAfterChild',['../classtinyxml2_1_1_x_m_l_node.html#a85adb8f0b7477eec30f9a41d420b09c2',1,'tinyxml2::XMLNode']]], - ['insertendchild_192',['InsertEndChild',['../classtinyxml2_1_1_x_m_l_node.html#aeb249ed60f4e8bfad3709151c3ee4286',1,'tinyxml2::XMLNode']]], - ['insertfirstchild_193',['InsertFirstChild',['../classtinyxml2_1_1_x_m_l_node.html#a8ff7dc071f3a1a6ae2ac25a37492865d',1,'tinyxml2::XMLNode']]], - ['insertnewchildelement_194',['InsertNewChildElement',['../classtinyxml2_1_1_x_m_l_element.html#abc9506eff9780f666f49dc3d5e5cae13',1,'tinyxml2::XMLElement']]], - ['insertnewcomment_195',['InsertNewComment',['../classtinyxml2_1_1_x_m_l_element.html#ae4f2c2e781b8dc030411d84cd20fa46d',1,'tinyxml2::XMLElement']]], - ['insertnewdeclaration_196',['InsertNewDeclaration',['../classtinyxml2_1_1_x_m_l_element.html#adec237e788b50c4ed73c918a166adde6',1,'tinyxml2::XMLElement']]], - ['insertnewtext_197',['InsertNewText',['../classtinyxml2_1_1_x_m_l_element.html#a189e155810fc9fdd4da1409cbadee187',1,'tinyxml2::XMLElement']]], - ['insertnewunknown_198',['InsertNewUnknown',['../classtinyxml2_1_1_x_m_l_element.html#acaa5fe3957760e68185006965e2c11c2',1,'tinyxml2::XMLElement']]], - ['int64attribute_199',['Int64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a66d96972adecd816194191f13cc4a0a0',1,'tinyxml2::XMLElement']]], - ['int64text_200',['Int64Text',['../classtinyxml2_1_1_x_m_l_element.html#aab6151f7e3b4c2c0a8234e262d7b6b8a',1,'tinyxml2::XMLElement']]], - ['intattribute_201',['IntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a95a89b13bb14a2d4655e2b5b406c00d4',1,'tinyxml2::XMLElement']]], - ['intvalue_202',['IntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_9.js b/Engine/lib/tinyxml/docs/search/functions_9.js deleted file mode 100644 index 1cf1c10be..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['lastchild_203',['LastChild',['../classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e',1,'tinyxml2::XMLNode::LastChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b',1,'tinyxml2::XMLHandle::LastChild()']]], - ['lastchildelement_204',['LastChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551',1,'tinyxml2::XMLNode::LastChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c',1,'tinyxml2::XMLHandle::LastChildElement()']]], - ['loadfile_205',['LoadFile',['../classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a',1,'tinyxml2::XMLDocument::LoadFile(const char *filename)'],['../classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2',1,'tinyxml2::XMLDocument::LoadFile(FILE *)']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_a.js b/Engine/lib/tinyxml/docs/search/functions_a.js deleted file mode 100644 index 28686f0d4..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_a.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['name_206',['Name',['../classtinyxml2_1_1_x_m_l_attribute.html#ab886c486ec19f02ed826f8dc129e5ad8',1,'tinyxml2::XMLAttribute::Name()'],['../classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35',1,'tinyxml2::XMLElement::Name()']]], - ['newcomment_207',['NewComment',['../classtinyxml2_1_1_x_m_l_document.html#ade4874bcb439954972ef2b3723ff3259',1,'tinyxml2::XMLDocument']]], - ['newdeclaration_208',['NewDeclaration',['../classtinyxml2_1_1_x_m_l_document.html#aee2eb3435923f5494dcc70ac225b60a2',1,'tinyxml2::XMLDocument']]], - ['newelement_209',['NewElement',['../classtinyxml2_1_1_x_m_l_document.html#a8aa7817d4a1001364b06373763ab99d6',1,'tinyxml2::XMLDocument']]], - ['newtext_210',['NewText',['../classtinyxml2_1_1_x_m_l_document.html#ab7e8b29ae4099092a8bb947da6361296',1,'tinyxml2::XMLDocument']]], - ['newunknown_211',['NewUnknown',['../classtinyxml2_1_1_x_m_l_document.html#a5385c937734ff6db9226ab707d2c7147',1,'tinyxml2::XMLDocument']]], - ['next_212',['Next',['../classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6',1,'tinyxml2::XMLAttribute']]], - ['nextsibling_213',['NextSibling',['../classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5',1,'tinyxml2::XMLNode::NextSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5',1,'tinyxml2::XMLHandle::NextSibling()']]], - ['nextsiblingelement_214',['NextSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a1264c86233328f0cd36297552d982f80',1,'tinyxml2::XMLNode::NextSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5',1,'tinyxml2::XMLHandle::NextSiblingElement()']]], - ['nochildren_215',['NoChildren',['../classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4',1,'tinyxml2::XMLNode']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_b.js b/Engine/lib/tinyxml/docs/search/functions_b.js deleted file mode 100644 index 22db1d696..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['openelement_216',['OpenElement',['../classtinyxml2_1_1_x_m_l_printer.html#a20fb06c83bd13e5140d7dd13af06c010',1,'tinyxml2::XMLPrinter']]], - ['operator_3d_217',['operator=',['../classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20',1,'tinyxml2::XMLHandle']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_c.js b/Engine/lib/tinyxml/docs/search/functions_c.js deleted file mode 100644 index ffa085637..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_c.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['parent_218',['Parent',['../classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34',1,'tinyxml2::XMLNode']]], - ['parse_219',['Parse',['../classtinyxml2_1_1_x_m_l_document.html#af2b616169e6517182f6725f2498e9a01',1,'tinyxml2::XMLDocument']]], - ['previoussibling_220',['PreviousSibling',['../classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551',1,'tinyxml2::XMLNode::PreviousSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c',1,'tinyxml2::XMLHandle::PreviousSibling()']]], - ['previoussiblingelement_221',['PreviousSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70',1,'tinyxml2::XMLNode::PreviousSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e',1,'tinyxml2::XMLHandle::PreviousSiblingElement()']]], - ['print_222',['Print',['../classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083',1,'tinyxml2::XMLDocument']]], - ['printerror_223',['PrintError',['../classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552',1,'tinyxml2::XMLDocument']]], - ['printspace_224',['PrintSpace',['../classtinyxml2_1_1_x_m_l_printer.html#a01148e2ebe6776e38c5a3e41bc5feb74',1,'tinyxml2::XMLPrinter']]], - ['pushattribute_225',['PushAttribute',['../classtinyxml2_1_1_x_m_l_printer.html#a9a4e2c9348b42e147629d5a99f4af3f0',1,'tinyxml2::XMLPrinter']]], - ['pushcomment_226',['PushComment',['../classtinyxml2_1_1_x_m_l_printer.html#afc8416814219591c2fd5656e0c233140',1,'tinyxml2::XMLPrinter']]], - ['pushheader_227',['PushHeader',['../classtinyxml2_1_1_x_m_l_printer.html#a178c608ce8476043d5d6513819cde903',1,'tinyxml2::XMLPrinter']]], - ['pushtext_228',['PushText',['../classtinyxml2_1_1_x_m_l_printer.html#a1cc16a9362df4332012cb13cff6441b3',1,'tinyxml2::XMLPrinter::PushText(const char *text, bool cdata=false)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3e0d4d78de25d4cf081009e1431cea7e',1,'tinyxml2::XMLPrinter::PushText(int value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a661fb50e7e0a4918d2d259cb0fae647e',1,'tinyxml2::XMLPrinter::PushText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a96b0a0bfe105154a0a6c37d725258f0a',1,'tinyxml2::XMLPrinter::PushText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a60b0a4cf57371ff8679c2c7556ccb708',1,'tinyxml2::XMLPrinter::PushText(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a4390e5fa1ed05189a8686647345ab29f',1,'tinyxml2::XMLPrinter::PushText(bool value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a1dbb1390e829d0673af66b9cd1928bd7',1,'tinyxml2::XMLPrinter::PushText(float value)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa715302dfc09473c77c853cbd5431965',1,'tinyxml2::XMLPrinter::PushText(double value)']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_d.js b/Engine/lib/tinyxml/docs/search/functions_d.js deleted file mode 100644 index 080168cc5..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_d.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['queryattribute_229',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]], - ['queryboolattribute_230',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]], - ['querybooltext_231',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]], - ['queryboolvalue_232',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]], - ['querydoubleattribute_233',['QueryDoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c',1,'tinyxml2::XMLElement']]], - ['querydoubletext_234',['QueryDoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a684679c99bb036a25652744cec6c4d96',1,'tinyxml2::XMLElement']]], - ['querydoublevalue_235',['QueryDoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9',1,'tinyxml2::XMLAttribute']]], - ['queryfloatattribute_236',['QueryFloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5',1,'tinyxml2::XMLElement']]], - ['queryfloattext_237',['QueryFloatText',['../classtinyxml2_1_1_x_m_l_element.html#afa332afedd93210daa6d44b88eb11e29',1,'tinyxml2::XMLElement']]], - ['queryfloatvalue_238',['QueryFloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607',1,'tinyxml2::XMLAttribute']]], - ['queryint64attribute_239',['QueryInt64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8',1,'tinyxml2::XMLElement']]], - ['queryint64text_240',['QueryInt64Text',['../classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8',1,'tinyxml2::XMLElement']]], - ['queryint64value_241',['QueryInt64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2',1,'tinyxml2::XMLAttribute']]], - ['queryintattribute_242',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]], - ['queryinttext_243',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]], - ['queryintvalue_244',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]], - ['querystringattribute_245',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]], - ['queryunsigned64attribute_246',['QueryUnsigned64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a13dd590b5d3958ce2ed79844aacd9405',1,'tinyxml2::XMLElement']]], - ['queryunsigned64text_247',['QueryUnsigned64Text',['../classtinyxml2_1_1_x_m_l_element.html#ac2239b3bd172ad8f5b78d04d4236144b',1,'tinyxml2::XMLElement']]], - ['queryunsigned64value_248',['QueryUnsigned64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#af793c695e7ee65cf20b8010d38b1d157',1,'tinyxml2::XMLAttribute']]], - ['queryunsignedattribute_249',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]], - ['queryunsignedtext_250',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]], - ['queryunsignedvalue_251',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_e.js b/Engine/lib/tinyxml/docs/search/functions_e.js deleted file mode 100644 index a61c42748..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['rootelement_252',['RootElement',['../classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c',1,'tinyxml2::XMLDocument']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/functions_f.js b/Engine/lib/tinyxml/docs/search/functions_f.js deleted file mode 100644 index 83d3b690c..000000000 --- a/Engine/lib/tinyxml/docs/search/functions_f.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['savefile_253',['SaveFile',['../classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f',1,'tinyxml2::XMLDocument::SaveFile(const char *filename, bool compact=false)'],['../classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74',1,'tinyxml2::XMLDocument::SaveFile(FILE *fp, bool compact=false)']]], - ['setattribute_254',['SetAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581',1,'tinyxml2::XMLAttribute::SetAttribute(const char *value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ad86d7d7058d76761c3a80662566a57e5',1,'tinyxml2::XMLAttribute::SetAttribute(int value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae70468c0f6df2748ba3529c716999fae',1,'tinyxml2::XMLAttribute::SetAttribute(unsigned value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a7c1240f479722b9aa29b6c030aa116c2',1,'tinyxml2::XMLAttribute::SetAttribute(int64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a10964060a5c0d92486ecf8705bdf37da',1,'tinyxml2::XMLAttribute::SetAttribute(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ab3516def4fe058fe328f2b89fc2d77da',1,'tinyxml2::XMLAttribute::SetAttribute(bool value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a9a65ab3147abe8ccbbd373ce8791e818',1,'tinyxml2::XMLAttribute::SetAttribute(double value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae95e843313aaf5d56c32530b6456df02',1,'tinyxml2::XMLAttribute::SetAttribute(float value)'],['../classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c',1,'tinyxml2::XMLElement::SetAttribute(const char *name, const char *value)'],['../classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f',1,'tinyxml2::XMLElement::SetAttribute(const char *name, unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ad598868c0599ddc4695dab18552c308d',1,'tinyxml2::XMLElement::SetAttribute(const char *name, uint64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1',1,'tinyxml2::XMLElement::SetAttribute(const char *name, bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533',1,'tinyxml2::XMLElement::SetAttribute(const char *name, double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759',1,'tinyxml2::XMLElement::SetAttribute(const char *name, float value)']]], - ['setbom_255',['SetBOM',['../classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0',1,'tinyxml2::XMLDocument']]], - ['setcdata_256',['SetCData',['../classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d',1,'tinyxml2::XMLText']]], - ['setname_257',['SetName',['../classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1',1,'tinyxml2::XMLElement']]], - ['settext_258',['SetText',['../classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce',1,'tinyxml2::XMLElement::SetText(const char *inText)'],['../classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7',1,'tinyxml2::XMLElement::SetText(int value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597',1,'tinyxml2::XMLElement::SetText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4',1,'tinyxml2::XMLElement::SetText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#a6e615bc745afd1ca8ded56d7aac02657',1,'tinyxml2::XMLElement::SetText(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4',1,'tinyxml2::XMLElement::SetText(bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e',1,'tinyxml2::XMLElement::SetText(double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a',1,'tinyxml2::XMLElement::SetText(float value)']]], - ['setuserdata_259',['SetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2',1,'tinyxml2::XMLNode']]], - ['setvalue_260',['SetValue',['../classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513',1,'tinyxml2::XMLNode']]], - ['shallowclone_261',['ShallowClone',['../classtinyxml2_1_1_x_m_l_node.html#a8402cbd3129d20e9e6024bbcc0531283',1,'tinyxml2::XMLNode::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_text.html#af3a81ed4dd49d5151c477b3f265a3011',1,'tinyxml2::XMLText::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_comment.html#a08991cc63fadf7e95078ac4f9ea1b073',1,'tinyxml2::XMLComment::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a118d47518dd9e522644e42efa259aed7',1,'tinyxml2::XMLDeclaration::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0125f41c89763dea06619b5fd5246b4c',1,'tinyxml2::XMLUnknown::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750',1,'tinyxml2::XMLElement::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8',1,'tinyxml2::XMLDocument::ShallowClone()']]], - ['shallowequal_262',['ShallowEqual',['../classtinyxml2_1_1_x_m_l_node.html#a7ce18b751c3ea09eac292dca264f9226',1,'tinyxml2::XMLNode::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_text.html#ae0fff8a24e2de7eb073fd192e9db0331',1,'tinyxml2::XMLText::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_comment.html#a6f7d227b25afa8cc3c763b7cc8833739',1,'tinyxml2::XMLComment::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_declaration.html#aa26b70011694e9b9e9480b929e9b78d6',1,'tinyxml2::XMLDeclaration::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0715ab2c05d7f74845c188122213b116',1,'tinyxml2::XMLUnknown::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6',1,'tinyxml2::XMLElement::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9',1,'tinyxml2::XMLDocument::ShallowEqual()']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/mag_sel.svg b/Engine/lib/tinyxml/docs/search/mag_sel.svg deleted file mode 100644 index 03626f64a..000000000 --- a/Engine/lib/tinyxml/docs/search/mag_sel.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/Engine/lib/tinyxml/docs/search/pages_0.js b/Engine/lib/tinyxml/docs/search/pages_0.js deleted file mode 100644 index d992ed086..000000000 --- a/Engine/lib/tinyxml/docs/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['get_20information_20out_20of_20xml_282',['Get information out of XML',['../_example_3.html',1,'']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/pages_1.js b/Engine/lib/tinyxml/docs/search/pages_1.js deleted file mode 100644 index 2d10aa6f7..000000000 --- a/Engine/lib/tinyxml/docs/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['load_20an_20xml_20file_283',['Load an XML File',['../_example_1.html',1,'']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/pages_2.js b/Engine/lib/tinyxml/docs/search/pages_2.js deleted file mode 100644 index e7cdf36f3..000000000 --- a/Engine/lib/tinyxml/docs/search/pages_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['parse_20an_20xml_20from_20char_20buffer_284',['Parse an XML from char buffer',['../_example_2.html',1,'']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/pages_3.js b/Engine/lib/tinyxml/docs/search/pages_3.js deleted file mode 100644 index 8f6a8fc81..000000000 --- a/Engine/lib/tinyxml/docs/search/pages_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['read_20attributes_20and_20text_20information_2e_285',['Read attributes and text information.',['../_example_4.html',1,'']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/pages_4.js b/Engine/lib/tinyxml/docs/search/pages_4.js deleted file mode 100644 index e97fabfa8..000000000 --- a/Engine/lib/tinyxml/docs/search/pages_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['tinyxml_2d2_286',['TinyXML-2',['../index.html',1,'']]] -]; diff --git a/Engine/lib/tinyxml/docs/search/search.js b/Engine/lib/tinyxml/docs/search/search.js deleted file mode 100644 index fb226f734..000000000 --- a/Engine/lib/tinyxml/docs/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/Engine/lib/tinyxml/docs/tinyxml2_8h_source.html b/Engine/lib/tinyxml/docs/tinyxml2_8h_source.html deleted file mode 100644 index dc1d92ae3..000000000 --- a/Engine/lib/tinyxml/docs/tinyxml2_8h_source.html +++ /dev/null @@ -1,1955 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    TinyXML-2 -  9.0.0 -
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    tinyxml2.h
    -
    -
    -
    1 /*
    -
    2 Original code by Lee Thomason (www.grinninglizard.com)
    -
    3 
    -
    4 This software is provided 'as-is', without any express or implied
    -
    5 warranty. In no event will the authors be held liable for any
    -
    6 damages arising from the use of this software.
    -
    7 
    -
    8 Permission is granted to anyone to use this software for any
    -
    9 purpose, including commercial applications, and to alter it and
    -
    10 redistribute it freely, subject to the following restrictions:
    -
    11 
    -
    12 1. The origin of this software must not be misrepresented; you must
    -
    13 not claim that you wrote the original software. If you use this
    -
    14 software in a product, an acknowledgment in the product documentation
    -
    15 would be appreciated but is not required.
    -
    16 
    -
    17 2. Altered source versions must be plainly marked as such, and
    -
    18 must not be misrepresented as being the original software.
    -
    19 
    -
    20 3. This notice may not be removed or altered from any source
    -
    21 distribution.
    -
    22 */
    -
    23 
    -
    24 #ifndef TINYXML2_INCLUDED
    -
    25 #define TINYXML2_INCLUDED
    -
    26 
    -
    27 #if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)
    -
    28 # include <ctype.h>
    -
    29 # include <limits.h>
    -
    30 # include <stdio.h>
    -
    31 # include <stdlib.h>
    -
    32 # include <string.h>
    -
    33 # if defined(__PS3__)
    -
    34 # include <stddef.h>
    -
    35 # endif
    -
    36 #else
    -
    37 # include <cctype>
    -
    38 # include <climits>
    -
    39 # include <cstdio>
    -
    40 # include <cstdlib>
    -
    41 # include <cstring>
    -
    42 #endif
    -
    43 #include <stdint.h>
    -
    44 
    -
    45 /*
    -
    46  TODO: intern strings instead of allocation.
    -
    47 */
    -
    48 /*
    -
    49  gcc:
    -
    50  g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
    -
    51 
    -
    52  Formatting, Artistic Style:
    -
    53  AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h
    -
    54 */
    -
    55 
    -
    56 #if defined( _DEBUG ) || defined (__DEBUG__)
    -
    57 # ifndef TINYXML2_DEBUG
    -
    58 # define TINYXML2_DEBUG
    -
    59 # endif
    -
    60 #endif
    -
    61 
    -
    62 #ifdef _MSC_VER
    -
    63 # pragma warning(push)
    -
    64 # pragma warning(disable: 4251)
    -
    65 #endif
    -
    66 
    -
    67 #ifdef _WIN32
    -
    68 # ifdef TINYXML2_EXPORT
    -
    69 # define TINYXML2_LIB __declspec(dllexport)
    -
    70 # elif defined(TINYXML2_IMPORT)
    -
    71 # define TINYXML2_LIB __declspec(dllimport)
    -
    72 # else
    -
    73 # define TINYXML2_LIB
    -
    74 # endif
    -
    75 #elif __GNUC__ >= 4
    -
    76 # define TINYXML2_LIB __attribute__((visibility("default")))
    -
    77 #else
    -
    78 # define TINYXML2_LIB
    -
    79 #endif
    -
    80 
    -
    81 
    -
    82 #if !defined(TIXMLASSERT)
    -
    83 #if defined(TINYXML2_DEBUG)
    -
    84 # if defined(_MSC_VER)
    -
    85 # // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like
    -
    86 # define TIXMLASSERT( x ) if ( !((void)0,(x))) { __debugbreak(); }
    -
    87 # elif defined (ANDROID_NDK)
    -
    88 # include <android/log.h>
    -
    89 # define TIXMLASSERT( x ) if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }
    -
    90 # else
    -
    91 # include <assert.h>
    -
    92 # define TIXMLASSERT assert
    -
    93 # endif
    -
    94 #else
    -
    95 # define TIXMLASSERT( x ) {}
    -
    96 #endif
    -
    97 #endif
    -
    98 
    -
    99 /* Versioning, past 1.0.14:
    -
    100  http://semver.org/
    -
    101 */
    -
    102 static const int TIXML2_MAJOR_VERSION = 9;
    -
    103 static const int TIXML2_MINOR_VERSION = 0;
    -
    104 static const int TIXML2_PATCH_VERSION = 0;
    -
    105 
    -
    106 #define TINYXML2_MAJOR_VERSION 9
    -
    107 #define TINYXML2_MINOR_VERSION 0
    -
    108 #define TINYXML2_PATCH_VERSION 0
    -
    109 
    -
    110 // A fixed element depth limit is problematic. There needs to be a
    -
    111 // limit to avoid a stack overflow. However, that limit varies per
    -
    112 // system, and the capacity of the stack. On the other hand, it's a trivial
    -
    113 // attack that can result from ill, malicious, or even correctly formed XML,
    -
    114 // so there needs to be a limit in place.
    -
    115 static const int TINYXML2_MAX_ELEMENT_DEPTH = 100;
    -
    116 
    -
    117 namespace tinyxml2
    -
    118 {
    -
    119 class XMLDocument;
    -
    120 class XMLElement;
    -
    121 class XMLAttribute;
    -
    122 class XMLComment;
    -
    123 class XMLText;
    -
    124 class XMLDeclaration;
    -
    125 class XMLUnknown;
    -
    126 class XMLPrinter;
    -
    127 
    -
    128 /*
    -
    129  A class that wraps strings. Normally stores the start and end
    -
    130  pointers into the XML file itself, and will apply normalization
    -
    131  and entity translation if actually read. Can also store (and memory
    -
    132  manage) a traditional char[]
    -
    133 
    -
    134  Isn't clear why TINYXML2_LIB is needed; but seems to fix #719
    -
    135 */
    -
    136 class TINYXML2_LIB StrPair
    -
    137 {
    -
    138 public:
    -
    139  enum Mode {
    -
    140  NEEDS_ENTITY_PROCESSING = 0x01,
    -
    141  NEEDS_NEWLINE_NORMALIZATION = 0x02,
    -
    142  NEEDS_WHITESPACE_COLLAPSING = 0x04,
    -
    143 
    -
    144  TEXT_ELEMENT = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,
    -
    145  TEXT_ELEMENT_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,
    -
    146  ATTRIBUTE_NAME = 0,
    -
    147  ATTRIBUTE_VALUE = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,
    -
    148  ATTRIBUTE_VALUE_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,
    -
    149  COMMENT = NEEDS_NEWLINE_NORMALIZATION
    -
    150  };
    -
    151 
    -
    152  StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}
    -
    153  ~StrPair();
    -
    154 
    -
    155  void Set( char* start, char* end, int flags ) {
    -
    156  TIXMLASSERT( start );
    -
    157  TIXMLASSERT( end );
    -
    158  Reset();
    -
    159  _start = start;
    -
    160  _end = end;
    -
    161  _flags = flags | NEEDS_FLUSH;
    -
    162  }
    -
    163 
    -
    164  const char* GetStr();
    -
    165 
    -
    166  bool Empty() const {
    -
    167  return _start == _end;
    -
    168  }
    -
    169 
    -
    170  void SetInternedStr( const char* str ) {
    -
    171  Reset();
    -
    172  _start = const_cast<char*>(str);
    -
    173  }
    -
    174 
    -
    175  void SetStr( const char* str, int flags=0 );
    -
    176 
    -
    177  char* ParseText( char* in, const char* endTag, int strFlags, int* curLineNumPtr );
    -
    178  char* ParseName( char* in );
    -
    179 
    -
    180  void TransferTo( StrPair* other );
    -
    181  void Reset();
    -
    182 
    -
    183 private:
    -
    184  void CollapseWhitespace();
    -
    185 
    -
    186  enum {
    -
    187  NEEDS_FLUSH = 0x100,
    -
    188  NEEDS_DELETE = 0x200
    -
    189  };
    -
    190 
    -
    191  int _flags;
    -
    192  char* _start;
    -
    193  char* _end;
    -
    194 
    -
    195  StrPair( const StrPair& other ); // not supported
    -
    196  void operator=( const StrPair& other ); // not supported, use TransferTo()
    -
    197 };
    -
    198 
    -
    199 
    -
    200 /*
    -
    201  A dynamic array of Plain Old Data. Doesn't support constructors, etc.
    -
    202  Has a small initial memory pool, so that low or no usage will not
    -
    203  cause a call to new/delete
    -
    204 */
    -
    205 template <class T, int INITIAL_SIZE>
    -
    206 class DynArray
    -
    207 {
    -
    208 public:
    -
    209  DynArray() :
    -
    210  _mem( _pool ),
    -
    211  _allocated( INITIAL_SIZE ),
    -
    212  _size( 0 )
    -
    213  {
    -
    214  }
    -
    215 
    -
    216  ~DynArray() {
    -
    217  if ( _mem != _pool ) {
    -
    218  delete [] _mem;
    -
    219  }
    -
    220  }
    -
    221 
    -
    222  void Clear() {
    -
    223  _size = 0;
    -
    224  }
    -
    225 
    -
    226  void Push( T t ) {
    -
    227  TIXMLASSERT( _size < INT_MAX );
    -
    228  EnsureCapacity( _size+1 );
    -
    229  _mem[_size] = t;
    -
    230  ++_size;
    -
    231  }
    -
    232 
    -
    233  T* PushArr( int count ) {
    -
    234  TIXMLASSERT( count >= 0 );
    -
    235  TIXMLASSERT( _size <= INT_MAX - count );
    -
    236  EnsureCapacity( _size+count );
    -
    237  T* ret = &_mem[_size];
    -
    238  _size += count;
    -
    239  return ret;
    -
    240  }
    -
    241 
    -
    242  T Pop() {
    -
    243  TIXMLASSERT( _size > 0 );
    -
    244  --_size;
    -
    245  return _mem[_size];
    -
    246  }
    -
    247 
    -
    248  void PopArr( int count ) {
    -
    249  TIXMLASSERT( _size >= count );
    -
    250  _size -= count;
    -
    251  }
    -
    252 
    -
    253  bool Empty() const {
    -
    254  return _size == 0;
    -
    255  }
    -
    256 
    -
    257  T& operator[](int i) {
    -
    258  TIXMLASSERT( i>= 0 && i < _size );
    -
    259  return _mem[i];
    -
    260  }
    -
    261 
    -
    262  const T& operator[](int i) const {
    -
    263  TIXMLASSERT( i>= 0 && i < _size );
    -
    264  return _mem[i];
    -
    265  }
    -
    266 
    -
    267  const T& PeekTop() const {
    -
    268  TIXMLASSERT( _size > 0 );
    -
    269  return _mem[ _size - 1];
    -
    270  }
    -
    271 
    -
    272  int Size() const {
    -
    273  TIXMLASSERT( _size >= 0 );
    -
    274  return _size;
    -
    275  }
    -
    276 
    -
    277  int Capacity() const {
    -
    278  TIXMLASSERT( _allocated >= INITIAL_SIZE );
    -
    279  return _allocated;
    -
    280  }
    -
    281 
    -
    282  void SwapRemove(int i) {
    -
    283  TIXMLASSERT(i >= 0 && i < _size);
    -
    284  TIXMLASSERT(_size > 0);
    -
    285  _mem[i] = _mem[_size - 1];
    -
    286  --_size;
    -
    287  }
    -
    288 
    -
    289  const T* Mem() const {
    -
    290  TIXMLASSERT( _mem );
    -
    291  return _mem;
    -
    292  }
    -
    293 
    -
    294  T* Mem() {
    -
    295  TIXMLASSERT( _mem );
    -
    296  return _mem;
    -
    297  }
    -
    298 
    -
    299 private:
    -
    300  DynArray( const DynArray& ); // not supported
    -
    301  void operator=( const DynArray& ); // not supported
    -
    302 
    -
    303  void EnsureCapacity( int cap ) {
    -
    304  TIXMLASSERT( cap > 0 );
    -
    305  if ( cap > _allocated ) {
    -
    306  TIXMLASSERT( cap <= INT_MAX / 2 );
    -
    307  const int newAllocated = cap * 2;
    -
    308  T* newMem = new T[newAllocated];
    -
    309  TIXMLASSERT( newAllocated >= _size );
    -
    310  memcpy( newMem, _mem, sizeof(T)*_size ); // warning: not using constructors, only works for PODs
    -
    311  if ( _mem != _pool ) {
    -
    312  delete [] _mem;
    -
    313  }
    -
    314  _mem = newMem;
    -
    315  _allocated = newAllocated;
    -
    316  }
    -
    317  }
    -
    318 
    -
    319  T* _mem;
    -
    320  T _pool[INITIAL_SIZE];
    -
    321  int _allocated; // objects allocated
    -
    322  int _size; // number objects in use
    -
    323 };
    -
    324 
    -
    325 
    -
    326 /*
    -
    327  Parent virtual class of a pool for fast allocation
    -
    328  and deallocation of objects.
    -
    329 */
    -
    330 class MemPool
    -
    331 {
    -
    332 public:
    -
    333  MemPool() {}
    -
    334  virtual ~MemPool() {}
    -
    335 
    -
    336  virtual int ItemSize() const = 0;
    -
    337  virtual void* Alloc() = 0;
    -
    338  virtual void Free( void* ) = 0;
    -
    339  virtual void SetTracked() = 0;
    -
    340 };
    -
    341 
    -
    342 
    -
    343 /*
    -
    344  Template child class to create pools of the correct type.
    -
    345 */
    -
    346 template< int ITEM_SIZE >
    -
    347 class MemPoolT : public MemPool
    -
    348 {
    -
    349 public:
    -
    350  MemPoolT() : _blockPtrs(), _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0) {}
    -
    351  ~MemPoolT() {
    -
    352  MemPoolT< ITEM_SIZE >::Clear();
    -
    353  }
    -
    354 
    -
    355  void Clear() {
    -
    356  // Delete the blocks.
    -
    357  while( !_blockPtrs.Empty()) {
    -
    358  Block* lastBlock = _blockPtrs.Pop();
    -
    359  delete lastBlock;
    -
    360  }
    -
    361  _root = 0;
    -
    362  _currentAllocs = 0;
    -
    363  _nAllocs = 0;
    -
    364  _maxAllocs = 0;
    -
    365  _nUntracked = 0;
    -
    366  }
    -
    367 
    -
    368  virtual int ItemSize() const {
    -
    369  return ITEM_SIZE;
    -
    370  }
    -
    371  int CurrentAllocs() const {
    -
    372  return _currentAllocs;
    -
    373  }
    -
    374 
    -
    375  virtual void* Alloc() {
    -
    376  if ( !_root ) {
    -
    377  // Need a new block.
    -
    378  Block* block = new Block();
    -
    379  _blockPtrs.Push( block );
    -
    380 
    -
    381  Item* blockItems = block->items;
    -
    382  for( int i = 0; i < ITEMS_PER_BLOCK - 1; ++i ) {
    -
    383  blockItems[i].next = &(blockItems[i + 1]);
    -
    384  }
    -
    385  blockItems[ITEMS_PER_BLOCK - 1].next = 0;
    -
    386  _root = blockItems;
    -
    387  }
    -
    388  Item* const result = _root;
    -
    389  TIXMLASSERT( result != 0 );
    -
    390  _root = _root->next;
    -
    391 
    -
    392  ++_currentAllocs;
    -
    393  if ( _currentAllocs > _maxAllocs ) {
    -
    394  _maxAllocs = _currentAllocs;
    -
    395  }
    -
    396  ++_nAllocs;
    -
    397  ++_nUntracked;
    -
    398  return result;
    -
    399  }
    -
    400 
    -
    401  virtual void Free( void* mem ) {
    -
    402  if ( !mem ) {
    -
    403  return;
    -
    404  }
    -
    405  --_currentAllocs;
    -
    406  Item* item = static_cast<Item*>( mem );
    -
    407 #ifdef TINYXML2_DEBUG
    -
    408  memset( item, 0xfe, sizeof( *item ) );
    -
    409 #endif
    -
    410  item->next = _root;
    -
    411  _root = item;
    -
    412  }
    -
    413  void Trace( const char* name ) {
    -
    414  printf( "Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n",
    -
    415  name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,
    -
    416  ITEM_SIZE, _nAllocs, _blockPtrs.Size() );
    -
    417  }
    -
    418 
    -
    419  void SetTracked() {
    -
    420  --_nUntracked;
    -
    421  }
    -
    422 
    -
    423  int Untracked() const {
    -
    424  return _nUntracked;
    -
    425  }
    -
    426 
    -
    427  // This number is perf sensitive. 4k seems like a good tradeoff on my machine.
    -
    428  // The test file is large, 170k.
    -
    429  // Release: VS2010 gcc(no opt)
    -
    430  // 1k: 4000
    -
    431  // 2k: 4000
    -
    432  // 4k: 3900 21000
    -
    433  // 16k: 5200
    -
    434  // 32k: 4300
    -
    435  // 64k: 4000 21000
    -
    436  // Declared public because some compilers do not accept to use ITEMS_PER_BLOCK
    -
    437  // in private part if ITEMS_PER_BLOCK is private
    -
    438  enum { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };
    -
    439 
    -
    440 private:
    -
    441  MemPoolT( const MemPoolT& ); // not supported
    -
    442  void operator=( const MemPoolT& ); // not supported
    -
    443 
    -
    444  union Item {
    -
    445  Item* next;
    -
    446  char itemData[ITEM_SIZE];
    -
    447  };
    -
    448  struct Block {
    -
    449  Item items[ITEMS_PER_BLOCK];
    -
    450  };
    -
    451  DynArray< Block*, 10 > _blockPtrs;
    -
    452  Item* _root;
    -
    453 
    -
    454  int _currentAllocs;
    -
    455  int _nAllocs;
    -
    456  int _maxAllocs;
    -
    457  int _nUntracked;
    -
    458 };
    -
    459 
    -
    460 
    -
    461 
    -
    481 class TINYXML2_LIB XMLVisitor
    -
    482 {
    -
    483 public:
    -
    484  virtual ~XMLVisitor() {}
    -
    485 
    -
    487  virtual bool VisitEnter( const XMLDocument& /*doc*/ ) {
    -
    488  return true;
    -
    489  }
    -
    491  virtual bool VisitExit( const XMLDocument& /*doc*/ ) {
    -
    492  return true;
    -
    493  }
    -
    494 
    -
    496  virtual bool VisitEnter( const XMLElement& /*element*/, const XMLAttribute* /*firstAttribute*/ ) {
    -
    497  return true;
    -
    498  }
    -
    500  virtual bool VisitExit( const XMLElement& /*element*/ ) {
    -
    501  return true;
    -
    502  }
    -
    503 
    -
    505  virtual bool Visit( const XMLDeclaration& /*declaration*/ ) {
    -
    506  return true;
    -
    507  }
    -
    509  virtual bool Visit( const XMLText& /*text*/ ) {
    -
    510  return true;
    -
    511  }
    -
    513  virtual bool Visit( const XMLComment& /*comment*/ ) {
    -
    514  return true;
    -
    515  }
    -
    517  virtual bool Visit( const XMLUnknown& /*unknown*/ ) {
    -
    518  return true;
    -
    519  }
    -
    520 };
    -
    521 
    -
    522 // WARNING: must match XMLDocument::_errorNames[]
    -
    523 enum XMLError {
    -
    524  XML_SUCCESS = 0,
    -
    525  XML_NO_ATTRIBUTE,
    -
    526  XML_WRONG_ATTRIBUTE_TYPE,
    -
    527  XML_ERROR_FILE_NOT_FOUND,
    -
    528  XML_ERROR_FILE_COULD_NOT_BE_OPENED,
    -
    529  XML_ERROR_FILE_READ_ERROR,
    -
    530  XML_ERROR_PARSING_ELEMENT,
    -
    531  XML_ERROR_PARSING_ATTRIBUTE,
    -
    532  XML_ERROR_PARSING_TEXT,
    -
    533  XML_ERROR_PARSING_CDATA,
    -
    534  XML_ERROR_PARSING_COMMENT,
    -
    535  XML_ERROR_PARSING_DECLARATION,
    -
    536  XML_ERROR_PARSING_UNKNOWN,
    -
    537  XML_ERROR_EMPTY_DOCUMENT,
    -
    538  XML_ERROR_MISMATCHED_ELEMENT,
    -
    539  XML_ERROR_PARSING,
    -
    540  XML_CAN_NOT_CONVERT_TEXT,
    -
    541  XML_NO_TEXT_NODE,
    -
    542  XML_ELEMENT_DEPTH_EXCEEDED,
    -
    543 
    -
    544  XML_ERROR_COUNT
    -
    545 };
    -
    546 
    -
    547 
    -
    548 /*
    -
    549  Utility functionality.
    -
    550 */
    -
    551 class TINYXML2_LIB XMLUtil
    -
    552 {
    -
    553 public:
    -
    554  static const char* SkipWhiteSpace( const char* p, int* curLineNumPtr ) {
    -
    555  TIXMLASSERT( p );
    -
    556 
    -
    557  while( IsWhiteSpace(*p) ) {
    -
    558  if (curLineNumPtr && *p == '\n') {
    -
    559  ++(*curLineNumPtr);
    -
    560  }
    -
    561  ++p;
    -
    562  }
    -
    563  TIXMLASSERT( p );
    -
    564  return p;
    -
    565  }
    -
    566  static char* SkipWhiteSpace( char* const p, int* curLineNumPtr ) {
    -
    567  return const_cast<char*>( SkipWhiteSpace( const_cast<const char*>(p), curLineNumPtr ) );
    -
    568  }
    -
    569 
    -
    570  // Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't
    -
    571  // correct, but simple, and usually works.
    -
    572  static bool IsWhiteSpace( char p ) {
    -
    573  return !IsUTF8Continuation(p) && isspace( static_cast<unsigned char>(p) );
    -
    574  }
    -
    575 
    -
    576  inline static bool IsNameStartChar( unsigned char ch ) {
    -
    577  if ( ch >= 128 ) {
    -
    578  // This is a heuristic guess in attempt to not implement Unicode-aware isalpha()
    -
    579  return true;
    -
    580  }
    -
    581  if ( isalpha( ch ) ) {
    -
    582  return true;
    -
    583  }
    -
    584  return ch == ':' || ch == '_';
    -
    585  }
    -
    586 
    -
    587  inline static bool IsNameChar( unsigned char ch ) {
    -
    588  return IsNameStartChar( ch )
    -
    589  || isdigit( ch )
    -
    590  || ch == '.'
    -
    591  || ch == '-';
    -
    592  }
    -
    593 
    -
    594  inline static bool IsPrefixHex( const char* p) {
    -
    595  p = SkipWhiteSpace(p, 0);
    -
    596  return p && *p == '0' && ( *(p + 1) == 'x' || *(p + 1) == 'X');
    -
    597  }
    -
    598 
    -
    599  inline static bool StringEqual( const char* p, const char* q, int nChar=INT_MAX ) {
    -
    600  if ( p == q ) {
    -
    601  return true;
    -
    602  }
    -
    603  TIXMLASSERT( p );
    -
    604  TIXMLASSERT( q );
    -
    605  TIXMLASSERT( nChar >= 0 );
    -
    606  return strncmp( p, q, nChar ) == 0;
    -
    607  }
    -
    608 
    -
    609  inline static bool IsUTF8Continuation( const char p ) {
    -
    610  return ( p & 0x80 ) != 0;
    -
    611  }
    -
    612 
    -
    613  static const char* ReadBOM( const char* p, bool* hasBOM );
    -
    614  // p is the starting location,
    -
    615  // the UTF-8 value of the entity will be placed in value, and length filled in.
    -
    616  static const char* GetCharacterRef( const char* p, char* value, int* length );
    -
    617  static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length );
    -
    618 
    -
    619  // converts primitive types to strings
    -
    620  static void ToStr( int v, char* buffer, int bufferSize );
    -
    621  static void ToStr( unsigned v, char* buffer, int bufferSize );
    -
    622  static void ToStr( bool v, char* buffer, int bufferSize );
    -
    623  static void ToStr( float v, char* buffer, int bufferSize );
    -
    624  static void ToStr( double v, char* buffer, int bufferSize );
    -
    625  static void ToStr(int64_t v, char* buffer, int bufferSize);
    -
    626  static void ToStr(uint64_t v, char* buffer, int bufferSize);
    -
    627 
    -
    628  // converts strings to primitive types
    -
    629  static bool ToInt( const char* str, int* value );
    -
    630  static bool ToUnsigned( const char* str, unsigned* value );
    -
    631  static bool ToBool( const char* str, bool* value );
    -
    632  static bool ToFloat( const char* str, float* value );
    -
    633  static bool ToDouble( const char* str, double* value );
    -
    634  static bool ToInt64(const char* str, int64_t* value);
    -
    635  static bool ToUnsigned64(const char* str, uint64_t* value);
    -
    636  // Changes what is serialized for a boolean value.
    -
    637  // Default to "true" and "false". Shouldn't be changed
    -
    638  // unless you have a special testing or compatibility need.
    -
    639  // Be careful: static, global, & not thread safe.
    -
    640  // Be sure to set static const memory as parameters.
    -
    641  static void SetBoolSerialization(const char* writeTrue, const char* writeFalse);
    -
    642 
    -
    643 private:
    -
    644  static const char* writeBoolTrue;
    -
    645  static const char* writeBoolFalse;
    -
    646 };
    -
    647 
    -
    648 
    -
    674 class TINYXML2_LIB XMLNode
    -
    675 {
    -
    676  friend class XMLDocument;
    -
    677  friend class XMLElement;
    -
    678 public:
    -
    679 
    -
    681  const XMLDocument* GetDocument() const {
    -
    682  TIXMLASSERT( _document );
    -
    683  return _document;
    -
    684  }
    - -
    687  TIXMLASSERT( _document );
    -
    688  return _document;
    -
    689  }
    -
    690 
    -
    692  virtual XMLElement* ToElement() {
    -
    693  return 0;
    -
    694  }
    -
    696  virtual XMLText* ToText() {
    -
    697  return 0;
    -
    698  }
    -
    700  virtual XMLComment* ToComment() {
    -
    701  return 0;
    -
    702  }
    -
    704  virtual XMLDocument* ToDocument() {
    -
    705  return 0;
    -
    706  }
    - -
    709  return 0;
    -
    710  }
    -
    712  virtual XMLUnknown* ToUnknown() {
    -
    713  return 0;
    -
    714  }
    -
    715 
    -
    716  virtual const XMLElement* ToElement() const {
    -
    717  return 0;
    -
    718  }
    -
    719  virtual const XMLText* ToText() const {
    -
    720  return 0;
    -
    721  }
    -
    722  virtual const XMLComment* ToComment() const {
    -
    723  return 0;
    -
    724  }
    -
    725  virtual const XMLDocument* ToDocument() const {
    -
    726  return 0;
    -
    727  }
    -
    728  virtual const XMLDeclaration* ToDeclaration() const {
    -
    729  return 0;
    -
    730  }
    -
    731  virtual const XMLUnknown* ToUnknown() const {
    -
    732  return 0;
    -
    733  }
    -
    734 
    -
    744  const char* Value() const;
    -
    745 
    -
    749  void SetValue( const char* val, bool staticMem=false );
    -
    750 
    -
    752  int GetLineNum() const { return _parseLineNum; }
    -
    753 
    -
    755  const XMLNode* Parent() const {
    -
    756  return _parent;
    -
    757  }
    -
    758 
    -
    759  XMLNode* Parent() {
    -
    760  return _parent;
    -
    761  }
    -
    762 
    -
    764  bool NoChildren() const {
    -
    765  return !_firstChild;
    -
    766  }
    -
    767 
    -
    769  const XMLNode* FirstChild() const {
    -
    770  return _firstChild;
    -
    771  }
    -
    772 
    -
    773  XMLNode* FirstChild() {
    -
    774  return _firstChild;
    -
    775  }
    -
    776 
    -
    780  const XMLElement* FirstChildElement( const char* name = 0 ) const;
    -
    781 
    -
    782  XMLElement* FirstChildElement( const char* name = 0 ) {
    -
    783  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->FirstChildElement( name ));
    -
    784  }
    -
    785 
    -
    787  const XMLNode* LastChild() const {
    -
    788  return _lastChild;
    -
    789  }
    -
    790 
    -
    791  XMLNode* LastChild() {
    -
    792  return _lastChild;
    -
    793  }
    -
    794 
    -
    798  const XMLElement* LastChildElement( const char* name = 0 ) const;
    -
    799 
    -
    800  XMLElement* LastChildElement( const char* name = 0 ) {
    -
    801  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->LastChildElement(name) );
    -
    802  }
    -
    803 
    -
    805  const XMLNode* PreviousSibling() const {
    -
    806  return _prev;
    -
    807  }
    -
    808 
    -
    809  XMLNode* PreviousSibling() {
    -
    810  return _prev;
    -
    811  }
    -
    812 
    -
    814  const XMLElement* PreviousSiblingElement( const char* name = 0 ) const ;
    -
    815 
    -
    816  XMLElement* PreviousSiblingElement( const char* name = 0 ) {
    -
    817  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->PreviousSiblingElement( name ) );
    -
    818  }
    -
    819 
    -
    821  const XMLNode* NextSibling() const {
    -
    822  return _next;
    -
    823  }
    -
    824 
    -
    825  XMLNode* NextSibling() {
    -
    826  return _next;
    -
    827  }
    -
    828 
    -
    830  const XMLElement* NextSiblingElement( const char* name = 0 ) const;
    -
    831 
    -
    832  XMLElement* NextSiblingElement( const char* name = 0 ) {
    -
    833  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->NextSiblingElement( name ) );
    -
    834  }
    -
    835 
    - -
    844 
    -
    845  XMLNode* LinkEndChild( XMLNode* addThis ) {
    -
    846  return InsertEndChild( addThis );
    -
    847  }
    - -
    864  XMLNode* InsertAfterChild( XMLNode* afterThis, XMLNode* addThis );
    -
    865 
    - -
    870 
    -
    874  void DeleteChild( XMLNode* node );
    -
    875 
    -
    885  virtual XMLNode* ShallowClone( XMLDocument* document ) const = 0;
    -
    886 
    -
    900  XMLNode* DeepClone( XMLDocument* target ) const;
    -
    901 
    -
    908  virtual bool ShallowEqual( const XMLNode* compare ) const = 0;
    -
    909 
    -
    932  virtual bool Accept( XMLVisitor* visitor ) const = 0;
    -
    933 
    -
    939  void SetUserData(void* userData) { _userData = userData; }
    -
    940 
    -
    946  void* GetUserData() const { return _userData; }
    -
    947 
    -
    948 protected:
    -
    949  explicit XMLNode( XMLDocument* );
    -
    950  virtual ~XMLNode();
    -
    951 
    -
    952  virtual char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr);
    -
    953 
    -
    954  XMLDocument* _document;
    -
    955  XMLNode* _parent;
    -
    956  mutable StrPair _value;
    -
    957  int _parseLineNum;
    -
    958 
    -
    959  XMLNode* _firstChild;
    -
    960  XMLNode* _lastChild;
    -
    961 
    -
    962  XMLNode* _prev;
    -
    963  XMLNode* _next;
    -
    964 
    -
    965  void* _userData;
    -
    966 
    -
    967 private:
    -
    968  MemPool* _memPool;
    -
    969  void Unlink( XMLNode* child );
    -
    970  static void DeleteNode( XMLNode* node );
    -
    971  void InsertChildPreamble( XMLNode* insertThis ) const;
    -
    972  const XMLElement* ToElementWithName( const char* name ) const;
    -
    973 
    -
    974  XMLNode( const XMLNode& ); // not supported
    -
    975  XMLNode& operator=( const XMLNode& ); // not supported
    -
    976 };
    -
    977 
    -
    978 
    -
    991 class TINYXML2_LIB XMLText : public XMLNode
    -
    992 {
    -
    993  friend class XMLDocument;
    -
    994 public:
    -
    995  virtual bool Accept( XMLVisitor* visitor ) const;
    -
    996 
    -
    997  virtual XMLText* ToText() {
    -
    998  return this;
    -
    999  }
    -
    1000  virtual const XMLText* ToText() const {
    -
    1001  return this;
    -
    1002  }
    -
    1003 
    -
    1005  void SetCData( bool isCData ) {
    -
    1006  _isCData = isCData;
    -
    1007  }
    -
    1009  bool CData() const {
    -
    1010  return _isCData;
    -
    1011  }
    -
    1012 
    -
    1013  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
    -
    1014  virtual bool ShallowEqual( const XMLNode* compare ) const;
    -
    1015 
    -
    1016 protected:
    -
    1017  explicit XMLText( XMLDocument* doc ) : XMLNode( doc ), _isCData( false ) {}
    -
    1018  virtual ~XMLText() {}
    -
    1019 
    -
    1020  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
    -
    1021 
    -
    1022 private:
    -
    1023  bool _isCData;
    -
    1024 
    -
    1025  XMLText( const XMLText& ); // not supported
    -
    1026  XMLText& operator=( const XMLText& ); // not supported
    -
    1027 };
    -
    1028 
    -
    1029 
    -
    1031 class TINYXML2_LIB XMLComment : public XMLNode
    -
    1032 {
    -
    1033  friend class XMLDocument;
    -
    1034 public:
    -
    1035  virtual XMLComment* ToComment() {
    -
    1036  return this;
    -
    1037  }
    -
    1038  virtual const XMLComment* ToComment() const {
    -
    1039  return this;
    -
    1040  }
    -
    1041 
    -
    1042  virtual bool Accept( XMLVisitor* visitor ) const;
    -
    1043 
    -
    1044  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
    -
    1045  virtual bool ShallowEqual( const XMLNode* compare ) const;
    -
    1046 
    -
    1047 protected:
    -
    1048  explicit XMLComment( XMLDocument* doc );
    -
    1049  virtual ~XMLComment();
    -
    1050 
    -
    1051  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr);
    -
    1052 
    -
    1053 private:
    -
    1054  XMLComment( const XMLComment& ); // not supported
    -
    1055  XMLComment& operator=( const XMLComment& ); // not supported
    -
    1056 };
    -
    1057 
    -
    1058 
    -
    1070 class TINYXML2_LIB XMLDeclaration : public XMLNode
    -
    1071 {
    -
    1072  friend class XMLDocument;
    -
    1073 public:
    - -
    1075  return this;
    -
    1076  }
    -
    1077  virtual const XMLDeclaration* ToDeclaration() const {
    -
    1078  return this;
    -
    1079  }
    -
    1080 
    -
    1081  virtual bool Accept( XMLVisitor* visitor ) const;
    -
    1082 
    -
    1083  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
    -
    1084  virtual bool ShallowEqual( const XMLNode* compare ) const;
    -
    1085 
    -
    1086 protected:
    -
    1087  explicit XMLDeclaration( XMLDocument* doc );
    -
    1088  virtual ~XMLDeclaration();
    -
    1089 
    -
    1090  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
    -
    1091 
    -
    1092 private:
    -
    1093  XMLDeclaration( const XMLDeclaration& ); // not supported
    -
    1094  XMLDeclaration& operator=( const XMLDeclaration& ); // not supported
    -
    1095 };
    -
    1096 
    -
    1097 
    -
    1105 class TINYXML2_LIB XMLUnknown : public XMLNode
    -
    1106 {
    -
    1107  friend class XMLDocument;
    -
    1108 public:
    -
    1109  virtual XMLUnknown* ToUnknown() {
    -
    1110  return this;
    -
    1111  }
    -
    1112  virtual const XMLUnknown* ToUnknown() const {
    -
    1113  return this;
    -
    1114  }
    -
    1115 
    -
    1116  virtual bool Accept( XMLVisitor* visitor ) const;
    -
    1117 
    -
    1118  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
    -
    1119  virtual bool ShallowEqual( const XMLNode* compare ) const;
    -
    1120 
    -
    1121 protected:
    -
    1122  explicit XMLUnknown( XMLDocument* doc );
    -
    1123  virtual ~XMLUnknown();
    -
    1124 
    -
    1125  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
    -
    1126 
    -
    1127 private:
    -
    1128  XMLUnknown( const XMLUnknown& ); // not supported
    -
    1129  XMLUnknown& operator=( const XMLUnknown& ); // not supported
    -
    1130 };
    -
    1131 
    -
    1132 
    -
    1133 
    -
    1140 class TINYXML2_LIB XMLAttribute
    -
    1141 {
    -
    1142  friend class XMLElement;
    -
    1143 public:
    -
    1145  const char* Name() const;
    -
    1146 
    -
    1148  const char* Value() const;
    -
    1149 
    -
    1151  int GetLineNum() const { return _parseLineNum; }
    -
    1152 
    -
    1154  const XMLAttribute* Next() const {
    -
    1155  return _next;
    -
    1156  }
    -
    1157 
    -
    1162  int IntValue() const {
    -
    1163  int i = 0;
    -
    1164  QueryIntValue(&i);
    -
    1165  return i;
    -
    1166  }
    -
    1167 
    -
    1168  int64_t Int64Value() const {
    -
    1169  int64_t i = 0;
    -
    1170  QueryInt64Value(&i);
    -
    1171  return i;
    -
    1172  }
    -
    1173 
    -
    1174  uint64_t Unsigned64Value() const {
    -
    1175  uint64_t i = 0;
    -
    1176  QueryUnsigned64Value(&i);
    -
    1177  return i;
    -
    1178  }
    -
    1179 
    -
    1181  unsigned UnsignedValue() const {
    -
    1182  unsigned i=0;
    -
    1183  QueryUnsignedValue( &i );
    -
    1184  return i;
    -
    1185  }
    -
    1187  bool BoolValue() const {
    -
    1188  bool b=false;
    -
    1189  QueryBoolValue( &b );
    -
    1190  return b;
    -
    1191  }
    -
    1193  double DoubleValue() const {
    -
    1194  double d=0;
    -
    1195  QueryDoubleValue( &d );
    -
    1196  return d;
    -
    1197  }
    -
    1199  float FloatValue() const {
    -
    1200  float f=0;
    -
    1201  QueryFloatValue( &f );
    -
    1202  return f;
    -
    1203  }
    -
    1204 
    -
    1209  XMLError QueryIntValue( int* value ) const;
    -
    1211  XMLError QueryUnsignedValue( unsigned int* value ) const;
    -
    1213  XMLError QueryInt64Value(int64_t* value) const;
    -
    1215  XMLError QueryUnsigned64Value(uint64_t* value) const;
    -
    1217  XMLError QueryBoolValue( bool* value ) const;
    -
    1219  XMLError QueryDoubleValue( double* value ) const;
    -
    1221  XMLError QueryFloatValue( float* value ) const;
    -
    1222 
    -
    1224  void SetAttribute( const char* value );
    -
    1226  void SetAttribute( int value );
    -
    1228  void SetAttribute( unsigned value );
    -
    1230  void SetAttribute(int64_t value);
    -
    1232  void SetAttribute(uint64_t value);
    -
    1234  void SetAttribute( bool value );
    -
    1236  void SetAttribute( double value );
    -
    1238  void SetAttribute( float value );
    -
    1239 
    -
    1240 private:
    -
    1241  enum { BUF_SIZE = 200 };
    -
    1242 
    -
    1243  XMLAttribute() : _name(), _value(),_parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}
    -
    1244  virtual ~XMLAttribute() {}
    -
    1245 
    -
    1246  XMLAttribute( const XMLAttribute& ); // not supported
    -
    1247  void operator=( const XMLAttribute& ); // not supported
    -
    1248  void SetName( const char* name );
    -
    1249 
    -
    1250  char* ParseDeep( char* p, bool processEntities, int* curLineNumPtr );
    -
    1251 
    -
    1252  mutable StrPair _name;
    -
    1253  mutable StrPair _value;
    -
    1254  int _parseLineNum;
    -
    1255  XMLAttribute* _next;
    -
    1256  MemPool* _memPool;
    -
    1257 };
    -
    1258 
    -
    1259 
    -
    1264 class TINYXML2_LIB XMLElement : public XMLNode
    -
    1265 {
    -
    1266  friend class XMLDocument;
    -
    1267 public:
    -
    1269  const char* Name() const {
    -
    1270  return Value();
    -
    1271  }
    -
    1273  void SetName( const char* str, bool staticMem=false ) {
    -
    1274  SetValue( str, staticMem );
    -
    1275  }
    -
    1276 
    -
    1277  virtual XMLElement* ToElement() {
    -
    1278  return this;
    -
    1279  }
    -
    1280  virtual const XMLElement* ToElement() const {
    -
    1281  return this;
    -
    1282  }
    -
    1283  virtual bool Accept( XMLVisitor* visitor ) const;
    -
    1284 
    -
    1308  const char* Attribute( const char* name, const char* value=0 ) const;
    -
    1309 
    -
    1316  int IntAttribute(const char* name, int defaultValue = 0) const;
    -
    1318  unsigned UnsignedAttribute(const char* name, unsigned defaultValue = 0) const;
    -
    1320  int64_t Int64Attribute(const char* name, int64_t defaultValue = 0) const;
    -
    1322  uint64_t Unsigned64Attribute(const char* name, uint64_t defaultValue = 0) const;
    -
    1324  bool BoolAttribute(const char* name, bool defaultValue = false) const;
    -
    1326  double DoubleAttribute(const char* name, double defaultValue = 0) const;
    -
    1328  float FloatAttribute(const char* name, float defaultValue = 0) const;
    -
    1329 
    -
    1343  XMLError QueryIntAttribute( const char* name, int* value ) const {
    -
    1344  const XMLAttribute* a = FindAttribute( name );
    -
    1345  if ( !a ) {
    -
    1346  return XML_NO_ATTRIBUTE;
    -
    1347  }
    -
    1348  return a->QueryIntValue( value );
    -
    1349  }
    -
    1350 
    -
    1352  XMLError QueryUnsignedAttribute( const char* name, unsigned int* value ) const {
    -
    1353  const XMLAttribute* a = FindAttribute( name );
    -
    1354  if ( !a ) {
    -
    1355  return XML_NO_ATTRIBUTE;
    -
    1356  }
    -
    1357  return a->QueryUnsignedValue( value );
    -
    1358  }
    -
    1359 
    -
    1361  XMLError QueryInt64Attribute(const char* name, int64_t* value) const {
    -
    1362  const XMLAttribute* a = FindAttribute(name);
    -
    1363  if (!a) {
    -
    1364  return XML_NO_ATTRIBUTE;
    -
    1365  }
    -
    1366  return a->QueryInt64Value(value);
    -
    1367  }
    -
    1368 
    -
    1370  XMLError QueryUnsigned64Attribute(const char* name, uint64_t* value) const {
    -
    1371  const XMLAttribute* a = FindAttribute(name);
    -
    1372  if(!a) {
    -
    1373  return XML_NO_ATTRIBUTE;
    -
    1374  }
    -
    1375  return a->QueryUnsigned64Value(value);
    -
    1376  }
    -
    1377 
    -
    1379  XMLError QueryBoolAttribute( const char* name, bool* value ) const {
    -
    1380  const XMLAttribute* a = FindAttribute( name );
    -
    1381  if ( !a ) {
    -
    1382  return XML_NO_ATTRIBUTE;
    -
    1383  }
    -
    1384  return a->QueryBoolValue( value );
    -
    1385  }
    -
    1387  XMLError QueryDoubleAttribute( const char* name, double* value ) const {
    -
    1388  const XMLAttribute* a = FindAttribute( name );
    -
    1389  if ( !a ) {
    -
    1390  return XML_NO_ATTRIBUTE;
    -
    1391  }
    -
    1392  return a->QueryDoubleValue( value );
    -
    1393  }
    -
    1395  XMLError QueryFloatAttribute( const char* name, float* value ) const {
    -
    1396  const XMLAttribute* a = FindAttribute( name );
    -
    1397  if ( !a ) {
    -
    1398  return XML_NO_ATTRIBUTE;
    -
    1399  }
    -
    1400  return a->QueryFloatValue( value );
    -
    1401  }
    -
    1402 
    -
    1404  XMLError QueryStringAttribute(const char* name, const char** value) const {
    -
    1405  const XMLAttribute* a = FindAttribute(name);
    -
    1406  if (!a) {
    -
    1407  return XML_NO_ATTRIBUTE;
    -
    1408  }
    -
    1409  *value = a->Value();
    -
    1410  return XML_SUCCESS;
    -
    1411  }
    -
    1412 
    -
    1413 
    -
    1414 
    -
    1432  XMLError QueryAttribute( const char* name, int* value ) const {
    -
    1433  return QueryIntAttribute( name, value );
    -
    1434  }
    -
    1435 
    -
    1436  XMLError QueryAttribute( const char* name, unsigned int* value ) const {
    -
    1437  return QueryUnsignedAttribute( name, value );
    -
    1438  }
    -
    1439 
    -
    1440  XMLError QueryAttribute(const char* name, int64_t* value) const {
    -
    1441  return QueryInt64Attribute(name, value);
    -
    1442  }
    -
    1443 
    -
    1444  XMLError QueryAttribute(const char* name, uint64_t* value) const {
    -
    1445  return QueryUnsigned64Attribute(name, value);
    -
    1446  }
    -
    1447 
    -
    1448  XMLError QueryAttribute( const char* name, bool* value ) const {
    -
    1449  return QueryBoolAttribute( name, value );
    -
    1450  }
    -
    1451 
    -
    1452  XMLError QueryAttribute( const char* name, double* value ) const {
    -
    1453  return QueryDoubleAttribute( name, value );
    -
    1454  }
    -
    1455 
    -
    1456  XMLError QueryAttribute( const char* name, float* value ) const {
    -
    1457  return QueryFloatAttribute( name, value );
    -
    1458  }
    -
    1459 
    -
    1460  XMLError QueryAttribute(const char* name, const char** value) const {
    -
    1461  return QueryStringAttribute(name, value);
    -
    1462  }
    -
    1463 
    -
    1465  void SetAttribute( const char* name, const char* value ) {
    -
    1466  XMLAttribute* a = FindOrCreateAttribute( name );
    -
    1467  a->SetAttribute( value );
    -
    1468  }
    -
    1470  void SetAttribute( const char* name, int value ) {
    -
    1471  XMLAttribute* a = FindOrCreateAttribute( name );
    -
    1472  a->SetAttribute( value );
    -
    1473  }
    -
    1475  void SetAttribute( const char* name, unsigned value ) {
    -
    1476  XMLAttribute* a = FindOrCreateAttribute( name );
    -
    1477  a->SetAttribute( value );
    -
    1478  }
    -
    1479 
    -
    1481  void SetAttribute(const char* name, int64_t value) {
    -
    1482  XMLAttribute* a = FindOrCreateAttribute(name);
    -
    1483  a->SetAttribute(value);
    -
    1484  }
    -
    1485 
    -
    1487  void SetAttribute(const char* name, uint64_t value) {
    -
    1488  XMLAttribute* a = FindOrCreateAttribute(name);
    -
    1489  a->SetAttribute(value);
    -
    1490  }
    -
    1491 
    -
    1493  void SetAttribute( const char* name, bool value ) {
    -
    1494  XMLAttribute* a = FindOrCreateAttribute( name );
    -
    1495  a->SetAttribute( value );
    -
    1496  }
    -
    1498  void SetAttribute( const char* name, double value ) {
    -
    1499  XMLAttribute* a = FindOrCreateAttribute( name );
    -
    1500  a->SetAttribute( value );
    -
    1501  }
    -
    1503  void SetAttribute( const char* name, float value ) {
    -
    1504  XMLAttribute* a = FindOrCreateAttribute( name );
    -
    1505  a->SetAttribute( value );
    -
    1506  }
    -
    1507 
    -
    1511  void DeleteAttribute( const char* name );
    -
    1512 
    -
    1514  const XMLAttribute* FirstAttribute() const {
    -
    1515  return _rootAttribute;
    -
    1516  }
    -
    1518  const XMLAttribute* FindAttribute( const char* name ) const;
    -
    1519 
    -
    1548  const char* GetText() const;
    -
    1549 
    -
    1584  void SetText( const char* inText );
    -
    1586  void SetText( int value );
    -
    1588  void SetText( unsigned value );
    -
    1590  void SetText(int64_t value);
    -
    1592  void SetText(uint64_t value);
    -
    1594  void SetText( bool value );
    -
    1596  void SetText( double value );
    -
    1598  void SetText( float value );
    -
    1599 
    -
    1626  XMLError QueryIntText( int* ival ) const;
    -
    1628  XMLError QueryUnsignedText( unsigned* uval ) const;
    -
    1630  XMLError QueryInt64Text(int64_t* uval) const;
    -
    1632  XMLError QueryUnsigned64Text(uint64_t* uval) const;
    -
    1634  XMLError QueryBoolText( bool* bval ) const;
    -
    1636  XMLError QueryDoubleText( double* dval ) const;
    -
    1638  XMLError QueryFloatText( float* fval ) const;
    -
    1639 
    -
    1640  int IntText(int defaultValue = 0) const;
    -
    1641 
    -
    1643  unsigned UnsignedText(unsigned defaultValue = 0) const;
    -
    1645  int64_t Int64Text(int64_t defaultValue = 0) const;
    -
    1647  uint64_t Unsigned64Text(uint64_t defaultValue = 0) const;
    -
    1649  bool BoolText(bool defaultValue = false) const;
    -
    1651  double DoubleText(double defaultValue = 0) const;
    -
    1653  float FloatText(float defaultValue = 0) const;
    -
    1654 
    -
    1659  XMLElement* InsertNewChildElement(const char* name);
    -
    1661  XMLComment* InsertNewComment(const char* comment);
    -
    1663  XMLText* InsertNewText(const char* text);
    - -
    1667  XMLUnknown* InsertNewUnknown(const char* text);
    -
    1668 
    -
    1669 
    -
    1670  // internal:
    -
    1671  enum ElementClosingType {
    -
    1672  OPEN, // <foo>
    -
    1673  CLOSED, // <foo/>
    -
    1674  CLOSING // </foo>
    -
    1675  };
    -
    1676  ElementClosingType ClosingType() const {
    -
    1677  return _closingType;
    -
    1678  }
    -
    1679  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
    -
    1680  virtual bool ShallowEqual( const XMLNode* compare ) const;
    -
    1681 
    -
    1682 protected:
    -
    1683  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
    -
    1684 
    -
    1685 private:
    -
    1686  XMLElement( XMLDocument* doc );
    -
    1687  virtual ~XMLElement();
    -
    1688  XMLElement( const XMLElement& ); // not supported
    -
    1689  void operator=( const XMLElement& ); // not supported
    -
    1690 
    -
    1691  XMLAttribute* FindOrCreateAttribute( const char* name );
    -
    1692  char* ParseAttributes( char* p, int* curLineNumPtr );
    -
    1693  static void DeleteAttribute( XMLAttribute* attribute );
    -
    1694  XMLAttribute* CreateAttribute();
    -
    1695 
    -
    1696  enum { BUF_SIZE = 200 };
    -
    1697  ElementClosingType _closingType;
    -
    1698  // The attribute list is ordered; there is no 'lastAttribute'
    -
    1699  // because the list needs to be scanned for dupes before adding
    -
    1700  // a new attribute.
    -
    1701  XMLAttribute* _rootAttribute;
    -
    1702 };
    -
    1703 
    -
    1704 
    -
    1705 enum Whitespace {
    -
    1706  PRESERVE_WHITESPACE,
    -
    1707  COLLAPSE_WHITESPACE
    -
    1708 };
    -
    1709 
    -
    1710 
    -
    1716 class TINYXML2_LIB XMLDocument : public XMLNode
    -
    1717 {
    -
    1718  friend class XMLElement;
    -
    1719  // Gives access to SetError and Push/PopDepth, but over-access for everything else.
    -
    1720  // Wishing C++ had "internal" scope.
    -
    1721  friend class XMLNode;
    -
    1722  friend class XMLText;
    -
    1723  friend class XMLComment;
    -
    1724  friend class XMLDeclaration;
    -
    1725  friend class XMLUnknown;
    -
    1726 public:
    -
    1728  XMLDocument( bool processEntities = true, Whitespace whitespaceMode = PRESERVE_WHITESPACE );
    -
    1729  ~XMLDocument();
    -
    1730 
    - -
    1732  TIXMLASSERT( this == _document );
    -
    1733  return this;
    -
    1734  }
    -
    1735  virtual const XMLDocument* ToDocument() const {
    -
    1736  TIXMLASSERT( this == _document );
    -
    1737  return this;
    -
    1738  }
    -
    1739 
    -
    1750  XMLError Parse( const char* xml, size_t nBytes=static_cast<size_t>(-1) );
    -
    1751 
    -
    1757  XMLError LoadFile( const char* filename );
    -
    1758 
    -
    1770  XMLError LoadFile( FILE* );
    -
    1771 
    -
    1777  XMLError SaveFile( const char* filename, bool compact = false );
    -
    1778 
    -
    1786  XMLError SaveFile( FILE* fp, bool compact = false );
    -
    1787 
    -
    1788  bool ProcessEntities() const {
    -
    1789  return _processEntities;
    -
    1790  }
    -
    1791  Whitespace WhitespaceMode() const {
    -
    1792  return _whitespaceMode;
    -
    1793  }
    -
    1794 
    -
    1798  bool HasBOM() const {
    -
    1799  return _writeBOM;
    -
    1800  }
    -
    1803  void SetBOM( bool useBOM ) {
    -
    1804  _writeBOM = useBOM;
    -
    1805  }
    -
    1806 
    - -
    1811  return FirstChildElement();
    -
    1812  }
    -
    1813  const XMLElement* RootElement() const {
    -
    1814  return FirstChildElement();
    -
    1815  }
    -
    1816 
    -
    1831  void Print( XMLPrinter* streamer=0 ) const;
    -
    1832  virtual bool Accept( XMLVisitor* visitor ) const;
    -
    1833 
    -
    1839  XMLElement* NewElement( const char* name );
    -
    1845  XMLComment* NewComment( const char* comment );
    -
    1851  XMLText* NewText( const char* text );
    -
    1863  XMLDeclaration* NewDeclaration( const char* text=0 );
    -
    1869  XMLUnknown* NewUnknown( const char* text );
    -
    1870 
    -
    1875  void DeleteNode( XMLNode* node );
    -
    1876 
    -
    1878  void ClearError();
    -
    1879 
    -
    1881  bool Error() const {
    -
    1882  return _errorID != XML_SUCCESS;
    -
    1883  }
    -
    1885  XMLError ErrorID() const {
    -
    1886  return _errorID;
    -
    1887  }
    -
    1888  const char* ErrorName() const;
    -
    1889  static const char* ErrorIDToName(XMLError errorID);
    -
    1890 
    -
    1894  const char* ErrorStr() const;
    -
    1895 
    -
    1897  void PrintError() const;
    -
    1898 
    -
    1900  int ErrorLineNum() const
    -
    1901  {
    -
    1902  return _errorLineNum;
    -
    1903  }
    -
    1904 
    -
    1906  void Clear();
    -
    1907 
    -
    1915  void DeepCopy(XMLDocument* target) const;
    -
    1916 
    -
    1917  // internal
    -
    1918  char* Identify( char* p, XMLNode** node );
    -
    1919 
    -
    1920  // internal
    -
    1921  void MarkInUse(const XMLNode* const);
    -
    1922 
    -
    1923  virtual XMLNode* ShallowClone( XMLDocument* /*document*/ ) const {
    -
    1924  return 0;
    -
    1925  }
    -
    1926  virtual bool ShallowEqual( const XMLNode* /*compare*/ ) const {
    -
    1927  return false;
    -
    1928  }
    -
    1929 
    -
    1930 private:
    -
    1931  XMLDocument( const XMLDocument& ); // not supported
    -
    1932  void operator=( const XMLDocument& ); // not supported
    -
    1933 
    -
    1934  bool _writeBOM;
    -
    1935  bool _processEntities;
    -
    1936  XMLError _errorID;
    -
    1937  Whitespace _whitespaceMode;
    -
    1938  mutable StrPair _errorStr;
    -
    1939  int _errorLineNum;
    -
    1940  char* _charBuffer;
    -
    1941  int _parseCurLineNum;
    -
    1942  int _parsingDepth;
    -
    1943  // Memory tracking does add some overhead.
    -
    1944  // However, the code assumes that you don't
    -
    1945  // have a bunch of unlinked nodes around.
    -
    1946  // Therefore it takes less memory to track
    -
    1947  // in the document vs. a linked list in the XMLNode,
    -
    1948  // and the performance is the same.
    -
    1949  DynArray<XMLNode*, 10> _unlinked;
    -
    1950 
    -
    1951  MemPoolT< sizeof(XMLElement) > _elementPool;
    -
    1952  MemPoolT< sizeof(XMLAttribute) > _attributePool;
    -
    1953  MemPoolT< sizeof(XMLText) > _textPool;
    -
    1954  MemPoolT< sizeof(XMLComment) > _commentPool;
    -
    1955 
    -
    1956  static const char* _errorNames[XML_ERROR_COUNT];
    -
    1957 
    -
    1958  void Parse();
    -
    1959 
    -
    1960  void SetError( XMLError error, int lineNum, const char* format, ... );
    -
    1961 
    -
    1962  // Something of an obvious security hole, once it was discovered.
    -
    1963  // Either an ill-formed XML or an excessively deep one can overflow
    -
    1964  // the stack. Track stack depth, and error out if needed.
    -
    1965  class DepthTracker {
    -
    1966  public:
    -
    1967  explicit DepthTracker(XMLDocument * document) {
    -
    1968  this->_document = document;
    -
    1969  document->PushDepth();
    -
    1970  }
    -
    1971  ~DepthTracker() {
    -
    1972  _document->PopDepth();
    -
    1973  }
    -
    1974  private:
    -
    1975  XMLDocument * _document;
    -
    1976  };
    -
    1977  void PushDepth();
    -
    1978  void PopDepth();
    -
    1979 
    -
    1980  template<class NodeType, int PoolElementSize>
    -
    1981  NodeType* CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool );
    -
    1982 };
    -
    1983 
    -
    1984 template<class NodeType, int PoolElementSize>
    -
    1985 inline NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool )
    -
    1986 {
    -
    1987  TIXMLASSERT( sizeof( NodeType ) == PoolElementSize );
    -
    1988  TIXMLASSERT( sizeof( NodeType ) == pool.ItemSize() );
    -
    1989  NodeType* returnNode = new (pool.Alloc()) NodeType( this );
    -
    1990  TIXMLASSERT( returnNode );
    -
    1991  returnNode->_memPool = &pool;
    -
    1992 
    -
    1993  _unlinked.Push(returnNode);
    -
    1994  return returnNode;
    -
    1995 }
    -
    1996 
    -
    2052 class TINYXML2_LIB XMLHandle
    -
    2053 {
    -
    2054 public:
    -
    2056  explicit XMLHandle( XMLNode* node ) : _node( node ) {
    -
    2057  }
    -
    2059  explicit XMLHandle( XMLNode& node ) : _node( &node ) {
    -
    2060  }
    -
    2062  XMLHandle( const XMLHandle& ref ) : _node( ref._node ) {
    -
    2063  }
    -
    2065  XMLHandle& operator=( const XMLHandle& ref ) {
    -
    2066  _node = ref._node;
    -
    2067  return *this;
    -
    2068  }
    -
    2069 
    - -
    2072  return XMLHandle( _node ? _node->FirstChild() : 0 );
    -
    2073  }
    -
    2075  XMLHandle FirstChildElement( const char* name = 0 ) {
    -
    2076  return XMLHandle( _node ? _node->FirstChildElement( name ) : 0 );
    -
    2077  }
    - -
    2080  return XMLHandle( _node ? _node->LastChild() : 0 );
    -
    2081  }
    -
    2083  XMLHandle LastChildElement( const char* name = 0 ) {
    -
    2084  return XMLHandle( _node ? _node->LastChildElement( name ) : 0 );
    -
    2085  }
    - -
    2088  return XMLHandle( _node ? _node->PreviousSibling() : 0 );
    -
    2089  }
    -
    2091  XMLHandle PreviousSiblingElement( const char* name = 0 ) {
    -
    2092  return XMLHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );
    -
    2093  }
    - -
    2096  return XMLHandle( _node ? _node->NextSibling() : 0 );
    -
    2097  }
    -
    2099  XMLHandle NextSiblingElement( const char* name = 0 ) {
    -
    2100  return XMLHandle( _node ? _node->NextSiblingElement( name ) : 0 );
    -
    2101  }
    -
    2102 
    - -
    2105  return _node;
    -
    2106  }
    - -
    2109  return ( _node ? _node->ToElement() : 0 );
    -
    2110  }
    - -
    2113  return ( _node ? _node->ToText() : 0 );
    -
    2114  }
    - -
    2117  return ( _node ? _node->ToUnknown() : 0 );
    -
    2118  }
    - -
    2121  return ( _node ? _node->ToDeclaration() : 0 );
    -
    2122  }
    -
    2123 
    -
    2124 private:
    -
    2125  XMLNode* _node;
    -
    2126 };
    -
    2127 
    -
    2128 
    -
    2133 class TINYXML2_LIB XMLConstHandle
    -
    2134 {
    -
    2135 public:
    -
    2136  explicit XMLConstHandle( const XMLNode* node ) : _node( node ) {
    -
    2137  }
    -
    2138  explicit XMLConstHandle( const XMLNode& node ) : _node( &node ) {
    -
    2139  }
    -
    2140  XMLConstHandle( const XMLConstHandle& ref ) : _node( ref._node ) {
    -
    2141  }
    -
    2142 
    -
    2143  XMLConstHandle& operator=( const XMLConstHandle& ref ) {
    -
    2144  _node = ref._node;
    -
    2145  return *this;
    -
    2146  }
    -
    2147 
    -
    2148  const XMLConstHandle FirstChild() const {
    -
    2149  return XMLConstHandle( _node ? _node->FirstChild() : 0 );
    -
    2150  }
    -
    2151  const XMLConstHandle FirstChildElement( const char* name = 0 ) const {
    -
    2152  return XMLConstHandle( _node ? _node->FirstChildElement( name ) : 0 );
    -
    2153  }
    -
    2154  const XMLConstHandle LastChild() const {
    -
    2155  return XMLConstHandle( _node ? _node->LastChild() : 0 );
    -
    2156  }
    -
    2157  const XMLConstHandle LastChildElement( const char* name = 0 ) const {
    -
    2158  return XMLConstHandle( _node ? _node->LastChildElement( name ) : 0 );
    -
    2159  }
    -
    2160  const XMLConstHandle PreviousSibling() const {
    -
    2161  return XMLConstHandle( _node ? _node->PreviousSibling() : 0 );
    -
    2162  }
    -
    2163  const XMLConstHandle PreviousSiblingElement( const char* name = 0 ) const {
    -
    2164  return XMLConstHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );
    -
    2165  }
    -
    2166  const XMLConstHandle NextSibling() const {
    -
    2167  return XMLConstHandle( _node ? _node->NextSibling() : 0 );
    -
    2168  }
    -
    2169  const XMLConstHandle NextSiblingElement( const char* name = 0 ) const {
    -
    2170  return XMLConstHandle( _node ? _node->NextSiblingElement( name ) : 0 );
    -
    2171  }
    -
    2172 
    -
    2173 
    -
    2174  const XMLNode* ToNode() const {
    -
    2175  return _node;
    -
    2176  }
    -
    2177  const XMLElement* ToElement() const {
    -
    2178  return ( _node ? _node->ToElement() : 0 );
    -
    2179  }
    -
    2180  const XMLText* ToText() const {
    -
    2181  return ( _node ? _node->ToText() : 0 );
    -
    2182  }
    -
    2183  const XMLUnknown* ToUnknown() const {
    -
    2184  return ( _node ? _node->ToUnknown() : 0 );
    -
    2185  }
    -
    2186  const XMLDeclaration* ToDeclaration() const {
    -
    2187  return ( _node ? _node->ToDeclaration() : 0 );
    -
    2188  }
    -
    2189 
    -
    2190 private:
    -
    2191  const XMLNode* _node;
    -
    2192 };
    -
    2193 
    -
    2194 
    -
    2237 class TINYXML2_LIB XMLPrinter : public XMLVisitor
    -
    2238 {
    -
    2239 public:
    -
    2246  XMLPrinter( FILE* file=0, bool compact = false, int depth = 0 );
    -
    2247  virtual ~XMLPrinter() {}
    -
    2248 
    -
    2250  void PushHeader( bool writeBOM, bool writeDeclaration );
    -
    2254  void OpenElement( const char* name, bool compactMode=false );
    -
    2256  void PushAttribute( const char* name, const char* value );
    -
    2257  void PushAttribute( const char* name, int value );
    -
    2258  void PushAttribute( const char* name, unsigned value );
    -
    2259  void PushAttribute( const char* name, int64_t value );
    -
    2260  void PushAttribute( const char* name, uint64_t value );
    -
    2261  void PushAttribute( const char* name, bool value );
    -
    2262  void PushAttribute( const char* name, double value );
    -
    2264  virtual void CloseElement( bool compactMode=false );
    -
    2265 
    -
    2267  void PushText( const char* text, bool cdata=false );
    -
    2269  void PushText( int value );
    -
    2271  void PushText( unsigned value );
    -
    2273  void PushText( int64_t value );
    -
    2275  void PushText( uint64_t value );
    -
    2277  void PushText( bool value );
    -
    2279  void PushText( float value );
    -
    2281  void PushText( double value );
    -
    2282 
    -
    2284  void PushComment( const char* comment );
    -
    2285 
    -
    2286  void PushDeclaration( const char* value );
    -
    2287  void PushUnknown( const char* value );
    -
    2288 
    -
    2289  virtual bool VisitEnter( const XMLDocument& /*doc*/ );
    -
    2290  virtual bool VisitExit( const XMLDocument& /*doc*/ ) {
    -
    2291  return true;
    -
    2292  }
    -
    2293 
    -
    2294  virtual bool VisitEnter( const XMLElement& element, const XMLAttribute* attribute );
    -
    2295  virtual bool VisitExit( const XMLElement& element );
    -
    2296 
    -
    2297  virtual bool Visit( const XMLText& text );
    -
    2298  virtual bool Visit( const XMLComment& comment );
    -
    2299  virtual bool Visit( const XMLDeclaration& declaration );
    -
    2300  virtual bool Visit( const XMLUnknown& unknown );
    -
    2301 
    -
    2306  const char* CStr() const {
    -
    2307  return _buffer.Mem();
    -
    2308  }
    -
    2314  int CStrSize() const {
    -
    2315  return _buffer.Size();
    -
    2316  }
    -
    2321  void ClearBuffer( bool resetToFirstElement = true ) {
    -
    2322  _buffer.Clear();
    -
    2323  _buffer.Push(0);
    -
    2324  _firstElement = resetToFirstElement;
    -
    2325  }
    -
    2326 
    -
    2327 protected:
    -
    2328  virtual bool CompactMode( const XMLElement& ) { return _compactMode; }
    -
    2329 
    -
    2333  virtual void PrintSpace( int depth );
    -
    2334  virtual void Print( const char* format, ... );
    -
    2335  virtual void Write( const char* data, size_t size );
    -
    2336  virtual void Putc( char ch );
    -
    2337 
    -
    2338  inline void Write(const char* data) { Write(data, strlen(data)); }
    -
    2339 
    -
    2340  void SealElementIfJustOpened();
    -
    2341  bool _elementJustOpened;
    -
    2342  DynArray< const char*, 10 > _stack;
    -
    2343 
    -
    2344 private:
    -
    2349  void PrepareForNewNode( bool compactMode );
    -
    2350  void PrintString( const char*, bool restrictedEntitySet ); // prints out, after detecting entities.
    -
    2351 
    -
    2352  bool _firstElement;
    -
    2353  FILE* _fp;
    -
    2354  int _depth;
    -
    2355  int _textDepth;
    -
    2356  bool _processEntities;
    -
    2357  bool _compactMode;
    -
    2358 
    -
    2359  enum {
    -
    2360  ENTITY_RANGE = 64,
    -
    2361  BUF_SIZE = 200
    -
    2362  };
    -
    2363  bool _entityFlag[ENTITY_RANGE];
    -
    2364  bool _restrictedEntityFlag[ENTITY_RANGE];
    -
    2365 
    -
    2366  DynArray< char, 20 > _buffer;
    -
    2367 
    -
    2368  // Prohibit cloning, intentionally not implemented
    -
    2369  XMLPrinter( const XMLPrinter& );
    -
    2370  XMLPrinter& operator=( const XMLPrinter& );
    -
    2371 };
    -
    2372 
    -
    2373 
    -
    2374 } // tinyxml2
    -
    2375 
    -
    2376 #if defined(_MSC_VER)
    -
    2377 # pragma warning(pop)
    -
    2378 #endif
    -
    2379 
    -
    2380 #endif // TINYXML2_INCLUDED
    -
    Definition: tinyxml2.h:1141
    -
    int GetLineNum() const
    Gets the line number the attribute is in, if the document was parsed from a file.
    Definition: tinyxml2.h:1151
    -
    XMLError QueryFloatValue(float *value) const
    See QueryIntValue.
    -
    unsigned UnsignedValue() const
    Query as an unsigned integer. See IntValue()
    Definition: tinyxml2.h:1181
    -
    void SetAttribute(uint64_t value)
    Set the attribute to value.
    -
    const char * Value() const
    The value of the attribute.
    -
    float FloatValue() const
    Query as a float. See IntValue()
    Definition: tinyxml2.h:1199
    -
    XMLError QueryDoubleValue(double *value) const
    See QueryIntValue.
    -
    void SetAttribute(const char *value)
    Set the attribute to a string value.
    -
    XMLError QueryUnsignedValue(unsigned int *value) const
    See QueryIntValue.
    -
    double DoubleValue() const
    Query as a double. See IntValue()
    Definition: tinyxml2.h:1193
    -
    XMLError QueryInt64Value(int64_t *value) const
    See QueryIntValue.
    -
    XMLError QueryBoolValue(bool *value) const
    See QueryIntValue.
    -
    XMLError QueryIntValue(int *value) const
    -
    void SetAttribute(int64_t value)
    Set the attribute to value.
    -
    bool BoolValue() const
    Query as a boolean. See IntValue()
    Definition: tinyxml2.h:1187
    -
    void SetAttribute(double value)
    Set the attribute to value.
    -
    void SetAttribute(bool value)
    Set the attribute to value.
    -
    const char * Name() const
    The name of the attribute.
    -
    void SetAttribute(int value)
    Set the attribute to value.
    -
    int IntValue() const
    Definition: tinyxml2.h:1162
    -
    void SetAttribute(unsigned value)
    Set the attribute to value.
    -
    void SetAttribute(float value)
    Set the attribute to value.
    -
    const XMLAttribute * Next() const
    The next attribute in the list.
    Definition: tinyxml2.h:1154
    -
    XMLError QueryUnsigned64Value(uint64_t *value) const
    See QueryIntValue.
    -
    Definition: tinyxml2.h:1032
    -
    virtual XMLNode * ShallowClone(XMLDocument *document) const
    -
    virtual bool Accept(XMLVisitor *visitor) const
    -
    virtual bool ShallowEqual(const XMLNode *compare) const
    -
    virtual XMLComment * ToComment()
    Safely cast to a Comment, or null.
    Definition: tinyxml2.h:1035
    -
    Definition: tinyxml2.h:2134
    -
    Definition: tinyxml2.h:1071
    -
    virtual XMLNode * ShallowClone(XMLDocument *document) const
    -
    virtual XMLDeclaration * ToDeclaration()
    Safely cast to a Declaration, or null.
    Definition: tinyxml2.h:1074
    -
    virtual bool Accept(XMLVisitor *visitor) const
    -
    virtual bool ShallowEqual(const XMLNode *compare) const
    -
    Definition: tinyxml2.h:1717
    -
    void SetBOM(bool useBOM)
    Definition: tinyxml2.h:1803
    -
    void PrintError() const
    A (trivial) utility function that prints the ErrorStr() to stdout.
    -
    XMLError LoadFile(const char *filename)
    -
    bool HasBOM() const
    Definition: tinyxml2.h:1798
    -
    bool Error() const
    Return true if there was an error parsing the document.
    Definition: tinyxml2.h:1881
    -
    virtual XMLDocument * ToDocument()
    Safely cast to a Document, or null.
    Definition: tinyxml2.h:1731
    -
    void ClearError()
    Clears the error flags.
    -
    XMLUnknown * NewUnknown(const char *text)
    -
    int ErrorLineNum() const
    Return the line where the error occurred, or zero if unknown.
    Definition: tinyxml2.h:1900
    -
    XMLDocument(bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)
    constructor
    -
    XMLError LoadFile(FILE *)
    -
    void Clear()
    Clear the document, resetting it to the initial state.
    -
    virtual bool ShallowEqual(const XMLNode *) const
    Definition: tinyxml2.h:1926
    -
    XMLError SaveFile(const char *filename, bool compact=false)
    -
    void Print(XMLPrinter *streamer=0) const
    -
    XMLElement * NewElement(const char *name)
    -
    XMLError SaveFile(FILE *fp, bool compact=false)
    -
    virtual bool Accept(XMLVisitor *visitor) const
    -
    virtual XMLNode * ShallowClone(XMLDocument *) const
    Definition: tinyxml2.h:1923
    -
    XMLText * NewText(const char *text)
    -
    void DeleteNode(XMLNode *node)
    -
    XMLElement * RootElement()
    Definition: tinyxml2.h:1810
    -
    const char * ErrorStr() const
    -
    XMLComment * NewComment(const char *comment)
    -
    XMLDeclaration * NewDeclaration(const char *text=0)
    -
    XMLError Parse(const char *xml, size_t nBytes=static_cast< size_t >(-1))
    -
    void DeepCopy(XMLDocument *target) const
    -
    XMLError ErrorID() const
    Return the errorID.
    Definition: tinyxml2.h:1885
    -
    Definition: tinyxml2.h:1265
    -
    double DoubleAttribute(const char *name, double defaultValue=0) const
    See IntAttribute()
    -
    void SetAttribute(const char *name, const char *value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1465
    -
    XMLError QueryInt64Text(int64_t *uval) const
    See QueryIntText()
    -
    XMLError QueryUnsigned64Attribute(const char *name, uint64_t *value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1370
    -
    XMLError QueryBoolAttribute(const char *name, bool *value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1379
    -
    XMLError QueryUnsignedText(unsigned *uval) const
    See QueryIntText()
    -
    XMLText * InsertNewText(const char *text)
    See InsertNewChildElement()
    -
    void SetText(const char *inText)
    -
    uint64_t Unsigned64Attribute(const char *name, uint64_t defaultValue=0) const
    See IntAttribute()
    -
    void SetAttribute(const char *name, double value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1498
    -
    XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1352
    -
    const XMLAttribute * FindAttribute(const char *name) const
    Query a specific attribute in the list.
    -
    const XMLAttribute * FirstAttribute() const
    Return the first attribute in the list.
    Definition: tinyxml2.h:1514
    -
    virtual bool Accept(XMLVisitor *visitor) const
    -
    XMLError QueryBoolText(bool *bval) const
    See QueryIntText()
    -
    float FloatText(float defaultValue=0) const
    See QueryIntText()
    -
    unsigned UnsignedText(unsigned defaultValue=0) const
    See QueryIntText()
    -
    void SetText(float value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    bool BoolAttribute(const char *name, bool defaultValue=false) const
    See IntAttribute()
    -
    void SetAttribute(const char *name, float value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1503
    -
    XMLError QueryAttribute(const char *name, int *value) const
    Definition: tinyxml2.h:1432
    -
    XMLError QueryDoubleAttribute(const char *name, double *value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1387
    -
    const char * Name() const
    Get the name of an element (which is the Value() of the node.)
    Definition: tinyxml2.h:1269
    -
    int64_t Int64Attribute(const char *name, int64_t defaultValue=0) const
    See IntAttribute()
    -
    void SetText(double value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    XMLError QueryDoubleText(double *dval) const
    See QueryIntText()
    -
    bool BoolText(bool defaultValue=false) const
    See QueryIntText()
    -
    const char * GetText() const
    -
    void SetText(uint64_t value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    const char * Attribute(const char *name, const char *value=0) const
    -
    void SetText(int64_t value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    void SetText(unsigned value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    XMLError QueryInt64Attribute(const char *name, int64_t *value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1361
    -
    double DoubleText(double defaultValue=0) const
    See QueryIntText()
    -
    XMLError QueryIntAttribute(const char *name, int *value) const
    Definition: tinyxml2.h:1343
    -
    XMLError QueryIntText(int *ival) const
    -
    int IntAttribute(const char *name, int defaultValue=0) const
    -
    void SetName(const char *str, bool staticMem=false)
    Set the name of the element.
    Definition: tinyxml2.h:1273
    -
    void SetAttribute(const char *name, bool value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1493
    -
    int64_t Int64Text(int64_t defaultValue=0) const
    See QueryIntText()
    -
    void SetAttribute(const char *name, int value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1470
    -
    void SetAttribute(const char *name, int64_t value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1481
    -
    float FloatAttribute(const char *name, float defaultValue=0) const
    See IntAttribute()
    -
    XMLElement * InsertNewChildElement(const char *name)
    -
    virtual XMLNode * ShallowClone(XMLDocument *document) const
    -
    XMLError QueryUnsigned64Text(uint64_t *uval) const
    See QueryIntText()
    -
    XMLUnknown * InsertNewUnknown(const char *text)
    See InsertNewChildElement()
    -
    XMLError QueryFloatAttribute(const char *name, float *value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1395
    -
    void SetAttribute(const char *name, uint64_t value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1487
    -
    virtual bool ShallowEqual(const XMLNode *compare) const
    -
    virtual XMLElement * ToElement()
    Safely cast to an Element, or null.
    Definition: tinyxml2.h:1277
    -
    XMLError QueryStringAttribute(const char *name, const char **value) const
    See QueryIntAttribute()
    Definition: tinyxml2.h:1404
    -
    XMLDeclaration * InsertNewDeclaration(const char *text)
    See InsertNewChildElement()
    -
    void SetAttribute(const char *name, unsigned value)
    Sets the named attribute to value.
    Definition: tinyxml2.h:1475
    -
    void SetText(bool value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    XMLComment * InsertNewComment(const char *comment)
    See InsertNewChildElement()
    -
    void SetText(int value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    -
    void DeleteAttribute(const char *name)
    -
    uint64_t Unsigned64Text(uint64_t defaultValue=0) const
    See QueryIntText()
    -
    XMLError QueryFloatText(float *fval) const
    See QueryIntText()
    -
    unsigned UnsignedAttribute(const char *name, unsigned defaultValue=0) const
    See IntAttribute()
    -
    Definition: tinyxml2.h:2053
    -
    XMLNode * ToNode()
    Safe cast to XMLNode. This can return null.
    Definition: tinyxml2.h:2104
    -
    XMLDeclaration * ToDeclaration()
    Safe cast to XMLDeclaration. This can return null.
    Definition: tinyxml2.h:2120
    -
    XMLHandle PreviousSibling()
    Get the previous sibling of this handle.
    Definition: tinyxml2.h:2087
    -
    XMLHandle LastChildElement(const char *name=0)
    Get the last child element of this handle.
    Definition: tinyxml2.h:2083
    -
    XMLHandle FirstChild()
    Get the first child of this handle.
    Definition: tinyxml2.h:2071
    -
    XMLElement * ToElement()
    Safe cast to XMLElement. This can return null.
    Definition: tinyxml2.h:2108
    -
    XMLText * ToText()
    Safe cast to XMLText. This can return null.
    Definition: tinyxml2.h:2112
    -
    XMLHandle FirstChildElement(const char *name=0)
    Get the first child element of this handle.
    Definition: tinyxml2.h:2075
    -
    XMLHandle & operator=(const XMLHandle &ref)
    Assignment.
    Definition: tinyxml2.h:2065
    -
    XMLHandle PreviousSiblingElement(const char *name=0)
    Get the previous sibling element of this handle.
    Definition: tinyxml2.h:2091
    -
    XMLHandle(XMLNode *node)
    Create a handle from any node (at any depth of the tree.) This can be a null pointer.
    Definition: tinyxml2.h:2056
    -
    XMLHandle LastChild()
    Get the last child of this handle.
    Definition: tinyxml2.h:2079
    -
    XMLHandle(XMLNode &node)
    Create a handle from a node.
    Definition: tinyxml2.h:2059
    -
    XMLUnknown * ToUnknown()
    Safe cast to XMLUnknown. This can return null.
    Definition: tinyxml2.h:2116
    -
    XMLHandle NextSibling()
    Get the next sibling of this handle.
    Definition: tinyxml2.h:2095
    -
    XMLHandle NextSiblingElement(const char *name=0)
    Get the next sibling element of this handle.
    Definition: tinyxml2.h:2099
    -
    XMLHandle(const XMLHandle &ref)
    Copy constructor.
    Definition: tinyxml2.h:2062
    -
    Definition: tinyxml2.h:675
    -
    void SetUserData(void *userData)
    Definition: tinyxml2.h:939
    - -
    void SetValue(const char *val, bool staticMem=false)
    -
    const XMLElement * NextSiblingElement(const char *name=0) const
    Get the next (right) sibling element of this node, with an optionally supplied name.
    -
    const XMLElement * LastChildElement(const char *name=0) const
    -
    virtual XMLDeclaration * ToDeclaration()
    Safely cast to a Declaration, or null.
    Definition: tinyxml2.h:708
    -
    const XMLElement * FirstChildElement(const char *name=0) const
    -
    const XMLDocument * GetDocument() const
    Get the XMLDocument that owns this XMLNode.
    Definition: tinyxml2.h:681
    -
    void DeleteChild(XMLNode *node)
    -
    virtual XMLText * ToText()
    Safely cast to Text, or null.
    Definition: tinyxml2.h:696
    -
    XMLNode * DeepClone(XMLDocument *target) const
    -
    const char * Value() const
    -
    const XMLNode * NextSibling() const
    Get the next (right) sibling node of this node.
    Definition: tinyxml2.h:821
    -
    virtual bool ShallowEqual(const XMLNode *compare) const =0
    -
    void * GetUserData() const
    Definition: tinyxml2.h:946
    -
    virtual bool Accept(XMLVisitor *visitor) const =0
    -
    virtual XMLDocument * ToDocument()
    Safely cast to a Document, or null.
    Definition: tinyxml2.h:704
    -
    virtual XMLNode * ShallowClone(XMLDocument *document) const =0
    -
    XMLNode * InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)
    -
    virtual XMLUnknown * ToUnknown()
    Safely cast to an Unknown, or null.
    Definition: tinyxml2.h:712
    -
    const XMLElement * PreviousSiblingElement(const char *name=0) const
    Get the previous (left) sibling element of this node, with an optionally supplied name.
    -
    XMLNode * InsertFirstChild(XMLNode *addThis)
    -
    int GetLineNum() const
    Gets the line number the node is in, if the document was parsed from a file.
    Definition: tinyxml2.h:752
    -
    const XMLNode * LastChild() const
    Get the last child node, or null if none exists.
    Definition: tinyxml2.h:787
    -
    virtual XMLElement * ToElement()
    Safely cast to an Element, or null.
    Definition: tinyxml2.h:692
    -
    const XMLNode * PreviousSibling() const
    Get the previous (left) sibling node of this node.
    Definition: tinyxml2.h:805
    -
    bool NoChildren() const
    Returns true if this node has no children.
    Definition: tinyxml2.h:764
    -
    const XMLNode * Parent() const
    Get the parent of this node on the DOM.
    Definition: tinyxml2.h:755
    -
    const XMLNode * FirstChild() const
    Get the first child node, or null if none exists.
    Definition: tinyxml2.h:769
    -
    XMLNode * InsertEndChild(XMLNode *addThis)
    -
    XMLDocument * GetDocument()
    Get the XMLDocument that owns this XMLNode.
    Definition: tinyxml2.h:686
    -
    virtual XMLComment * ToComment()
    Safely cast to a Comment, or null.
    Definition: tinyxml2.h:700
    -
    Definition: tinyxml2.h:2238
    -
    virtual void PrintSpace(int depth)
    -
    virtual bool VisitExit(const XMLDocument &)
    Visit a document.
    Definition: tinyxml2.h:2290
    -
    void PushHeader(bool writeBOM, bool writeDeclaration)
    -
    const char * CStr() const
    Definition: tinyxml2.h:2306
    -
    void PushText(const char *text, bool cdata=false)
    Add a text node.
    -
    void PushText(float value)
    Add a text node from a float.
    -
    void OpenElement(const char *name, bool compactMode=false)
    -
    virtual bool Visit(const XMLText &text)
    Visit a text node.
    -
    virtual bool VisitEnter(const XMLElement &element, const XMLAttribute *attribute)
    Visit an element.
    -
    int CStrSize() const
    Definition: tinyxml2.h:2314
    -
    void PushText(int value)
    Add a text node from an integer.
    -
    virtual bool Visit(const XMLComment &comment)
    Visit a comment node.
    -
    void PushText(bool value)
    Add a text node from a bool.
    -
    void PushText(uint64_t value)
    Add a text node from an unsigned 64bit integer.
    -
    void PushText(unsigned value)
    Add a text node from an unsigned.
    -
    void ClearBuffer(bool resetToFirstElement=true)
    Definition: tinyxml2.h:2321
    -
    void PushText(int64_t value)
    Add a text node from a signed 64bit integer.
    -
    void PushAttribute(const char *name, const char *value)
    If streaming, add an attribute to an open element.
    -
    virtual bool Visit(const XMLDeclaration &declaration)
    Visit a declaration.
    -
    virtual bool Visit(const XMLUnknown &unknown)
    Visit an unknown node.
    -
    XMLPrinter(FILE *file=0, bool compact=false, int depth=0)
    -
    void PushText(double value)
    Add a text node from a double.
    -
    virtual void CloseElement(bool compactMode=false)
    If streaming, close the Element.
    -
    virtual bool VisitEnter(const XMLDocument &)
    Visit a document.
    -
    virtual bool VisitExit(const XMLElement &element)
    Visit an element.
    -
    void PushComment(const char *comment)
    Add a comment.
    -
    Definition: tinyxml2.h:992
    -
    virtual bool Accept(XMLVisitor *visitor) const
    -
    virtual XMLText * ToText()
    Safely cast to Text, or null.
    Definition: tinyxml2.h:997
    -
    bool CData() const
    Returns true if this is a CDATA text element.
    Definition: tinyxml2.h:1009
    -
    void SetCData(bool isCData)
    Declare whether this should be CDATA or standard text.
    Definition: tinyxml2.h:1005
    -
    virtual bool ShallowEqual(const XMLNode *compare) const
    -
    virtual XMLNode * ShallowClone(XMLDocument *document) const
    -
    Definition: tinyxml2.h:1106
    -
    virtual XMLNode * ShallowClone(XMLDocument *document) const
    -
    virtual bool ShallowEqual(const XMLNode *compare) const
    -
    virtual bool Accept(XMLVisitor *visitor) const
    -
    virtual XMLUnknown * ToUnknown()
    Safely cast to an Unknown, or null.
    Definition: tinyxml2.h:1109
    -
    Definition: tinyxml2.h:482
    -
    virtual bool Visit(const XMLUnknown &)
    Visit an unknown node.
    Definition: tinyxml2.h:517
    -
    virtual bool VisitExit(const XMLDocument &)
    Visit a document.
    Definition: tinyxml2.h:491
    -
    virtual bool VisitExit(const XMLElement &)
    Visit an element.
    Definition: tinyxml2.h:500
    -
    virtual bool VisitEnter(const XMLDocument &)
    Visit a document.
    Definition: tinyxml2.h:487
    -
    virtual bool Visit(const XMLComment &)
    Visit a comment node.
    Definition: tinyxml2.h:513
    -
    virtual bool Visit(const XMLDeclaration &)
    Visit a declaration.
    Definition: tinyxml2.h:505
    -
    virtual bool Visit(const XMLText &)
    Visit a text node.
    Definition: tinyxml2.h:509
    -
    virtual bool VisitEnter(const XMLElement &, const XMLAttribute *)
    Visit an element.
    Definition: tinyxml2.h:496
    -
    - - - - diff --git a/Engine/lib/tinyxml2/.github/workflows/test.yml b/Engine/lib/tinyxml2/.github/workflows/test.yml new file mode 100644 index 000000000..74d5e1c1c --- /dev/null +++ b/Engine/lib/tinyxml2/.github/workflows/test.yml @@ -0,0 +1,111 @@ +name: Test +on: [ push, pull_request, workflow_dispatch ] +jobs: + test: + name: ${{ matrix.os }}, ${{ matrix.cmake_name }} + strategy: + fail-fast: false + matrix: + os: [ windows-2019, macos-latest, ubuntu-20.04 ] + cmake: [ 3.15, 3.x ] + include: + - os: windows-2019 + static_postfix: _static + tree: tree /F + CXX: cl + + - os: ubuntu-20.04 + tree: tree + + - os: macos-latest + tree: find + + - cmake: 3.15 + cmake_name: CMake 3.15 + - cmake: 3.x + cmake_name: Latest CMake + env: + # CMake 3.15 doesn't detect Visual Studio correctly without these. + CXX: ${{ matrix.CXX }} + CC: ${{ matrix.CXX }} + runs-on: ${{ matrix.os }} + steps: + # System set-up + - uses: actions/checkout@v2 + - uses: ilammy/msvc-dev-cmd@v1 + - uses: seanmiddleditch/gha-setup-ninja@master + - uses: jwlawson/actions-setup-cmake@v1.8 + with: + cmake-version: ${{ matrix.cmake }} + + # Static Debug + - name: "Static Debug: Configure" + run: cmake -G Ninja -S . -B build-static-dbg -DCMAKE_BUILD_TYPE=Debug "-DCMAKE_DEBUG_POSTFIX=d${{matrix.static_postfix}}" + - name: "Static Debug: Build" + run: cmake --build build-static-dbg + - name: "Static Debug: Test" + run: ctest --output-on-failure + working-directory: build-static-dbg + + # Shared Debug + - name: "Shared Debug: Configure" + run: cmake -G Ninja -S . -B build-shared-dbg -DCMAKE_BUILD_TYPE=Debug -DCMAKE_DEBUG_POSTFIX=d -DBUILD_SHARED_LIBS=ON + - name: "Shared Debug: Build" + run: cmake --build build-shared-dbg + - name: "Shared Debug: Test" + run: ctest --output-on-failure + working-directory: build-shared-dbg + + # Static Release + - name: "Static Release: Configure" + run: cmake -G Ninja -S . -B build-static-rel -DCMAKE_BUILD_TYPE=Release "-DCMAKE_RELEASE_POSTFIX=${{matrix.static_postfix}}" + - name: "Static Release: Build" + run: cmake --build build-static-rel + - name: "Static Release: Test" + run: ctest --output-on-failure + working-directory: build-static-rel + + # Shared Release + - name: "Shared Release: Configure" + run: cmake -G Ninja -S . -B build-shared-rel -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON + - name: "Shared Release: Build" + run: cmake --build build-shared-rel + - name: "Shared Release: Test" + run: ctest --output-on-failure + working-directory: build-shared-rel + + # Joint install + - name: Install + run: | + cmake --install build-shared-dbg --prefix install + cmake --install build-static-dbg --prefix install + cmake --install build-shared-rel --prefix install + cmake --install build-static-rel --prefix install + - name: List install tree + run: ${{matrix.tree}} install + + # Test find_package + - name: "Test find_package: Static Debug" + run: >- + ctest --build-and-test test test-static-dbg + --build-generator Ninja + --build-options -DCMAKE_BUILD_TYPE=Debug -Dtinyxml2_SHARED_LIBS=NO -DCMAKE_PREFIX_PATH=${{github.workspace}}/install + --test-command ctest --output-on-failure + - name: "Test find_package: Static Release" + run: >- + ctest --build-and-test test test-static-rel + --build-generator Ninja + --build-options -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_SHARED_LIBS=NO -DCMAKE_PREFIX_PATH=${{github.workspace}}/install + --test-command ctest --output-on-failure + - name: "Test find_package: Shared Debug" + run: >- + ctest --build-and-test test test-shared-dbg + --build-generator Ninja + --build-options -DCMAKE_BUILD_TYPE=Debug -Dtinyxml2_SHARED_LIBS=YES -DCMAKE_PREFIX_PATH=${{github.workspace}}/install + --test-command ctest --output-on-failure + - name: "Test find_package: Shared Release" + run: >- + ctest --build-and-test test test-shared-rel + --build-generator Ninja + --build-options -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_SHARED_LIBS=YES -DCMAKE_PREFIX_PATH=${{github.workspace}}/install + --test-command ctest --output-on-failure diff --git a/Engine/lib/tinyxml2/.gitignore b/Engine/lib/tinyxml2/.gitignore new file mode 100644 index 000000000..2c3e2b35a --- /dev/null +++ b/Engine/lib/tinyxml2/.gitignore @@ -0,0 +1,24 @@ +# intermediate files +Win32/ +x64/ +ipch/ +resources/out/ +tinyxml2/tinyxml2-cbp/bin/ +tinyxml2/tinyxml2-cbp/obj/ +tinyxml2/bin/ +tinyxml2/temp/ +.artifacts/ +.projects/ +*.sdf +*.suo +*.opensdf +*.user +*.depend +*.layout +*.o +*.vc.db +*.vc.opendb +libtinyxml2.a +xmltest +vs/debug + diff --git a/Engine/lib/tinyxml2/CMakeLists.txt b/Engine/lib/tinyxml2/CMakeLists.txt new file mode 100644 index 000000000..b950a8bba --- /dev/null +++ b/Engine/lib/tinyxml2/CMakeLists.txt @@ -0,0 +1,3 @@ +add_library(tinyxml2 STATIC "tinyxml2.cpp") + +target_include_directories(tinyxml2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../) \ No newline at end of file diff --git a/Engine/lib/tinyxml/LICENSE.txt b/Engine/lib/tinyxml2/LICENSE.txt similarity index 100% rename from Engine/lib/tinyxml/LICENSE.txt rename to Engine/lib/tinyxml2/LICENSE.txt diff --git a/Engine/lib/tinyxml2/Makefile b/Engine/lib/tinyxml2/Makefile new file mode 100644 index 000000000..6ca8544ed --- /dev/null +++ b/Engine/lib/tinyxml2/Makefile @@ -0,0 +1,75 @@ +# For GNU conventions and targets see https://www.gnu.org/prep/standards/standards.html +# Using GNU standards makes it easier for some users to keep doing what they are used to. + +# 'mkdir -p' is non-portable, but it is widely supported. A portable solution +# is elusive due to race conditions on testing the directory and creating it. +# Anemic toolchain users can sidestep the problem using MKDIR="mkdir". + +AR = ar +ARFLAGS = cr +RM = rm -f +RANLIB = ranlib +MKDIR = mkdir -p +CXXFLAGS = -D_FILE_OFFSET_BITS=64 -fPIC + +INSTALL = install +INSTALL_PROGRAM = $(INSTALL) +INSTALL_DATA = $(INSTALL) -m 644 + +prefix = /usr/local +bindir = $(prefix)/bin +libdir = $(prefix)/lib +includedir = $(prefix)/include + +all: xmltest staticlib + +rebuild: clean all + +xmltest: xmltest.cpp libtinyxml2.a + +effc: + gcc -Werror -Wall -Wextra -Wshadow -Wpedantic -Wformat-nonliteral \ + -Wformat-security -Wswitch-default -Wuninitialized -Wundef \ + -Wpointer-arith -Woverloaded-virtual -Wctor-dtor-privacy \ + -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo \ + -Wno-unused-parameter -Weffc++ xmltest.cpp tinyxml2.cpp -o xmltest + +clean: + -$(RM) *.o xmltest libtinyxml2.a + +# Standard GNU target +distclean: + -$(RM) *.o xmltest libtinyxml2.a + +test: xmltest + ./xmltest + +# Standard GNU target +check: xmltest + ./xmltest + +staticlib: libtinyxml2.a + +libtinyxml2.a: tinyxml2.o + $(AR) $(ARFLAGS) $@ $^ + $(RANLIB) $@ + +tinyxml2.o: tinyxml2.cpp tinyxml2.h + +directories: + $(MKDIR) $(DESTDIR)$(prefix) + $(MKDIR) $(DESTDIR)$(bindir) + $(MKDIR) $(DESTDIR)$(libdir) + $(MKDIR) $(DESTDIR)$(includedir) + +# Standard GNU target. +install: xmltest staticlib directories + $(INSTALL_PROGRAM) xmltest $(DESTDIR)$(bindir)/xmltest + $(INSTALL_DATA) tinyxml2.h $(DESTDIR)$(includedir)/tinyxml2.h + $(INSTALL_DATA) libtinyxml2.a $(DESTDIR)$(libdir)/libtinyxml2.a + +# Standard GNU target +uninstall: + $(RM) $(DESTDIR)$(bindir)/xmltest + $(RM) $(DESTDIR)$(includedir)/tinyxml2.h + $(RM) $(DESTDIR)$(libdir)/libtinyxml2.a diff --git a/Engine/lib/tinyxml2/TinyXML2_small.png b/Engine/lib/tinyxml2/TinyXML2_small.png new file mode 100644 index 000000000..6e84b3535 Binary files /dev/null and b/Engine/lib/tinyxml2/TinyXML2_small.png differ diff --git a/Engine/lib/tinyxml2/cmake/tinyxml2-config.cmake b/Engine/lib/tinyxml2/cmake/tinyxml2-config.cmake new file mode 100644 index 000000000..5baa36418 --- /dev/null +++ b/Engine/lib/tinyxml2/cmake/tinyxml2-config.cmake @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.15) + +set(tinyxml2_known_comps static shared) +set(tinyxml2_comp_static NO) +set(tinyxml2_comp_shared NO) +foreach (tinyxml2_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS) + if (tinyxml2_comp IN_LIST tinyxml2_known_comps) + set(tinyxml2_comp_${tinyxml2_comp} YES) + else () + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "tinyxml2 does not recognize component `${tinyxml2_comp}`.") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) + return() + endif () +endforeach () + +if (tinyxml2_comp_static AND tinyxml2_comp_shared) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "tinyxml2 `static` and `shared` components are mutually exclusive.") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) + return() +endif () + +set(tinyxml2_static_targets "${CMAKE_CURRENT_LIST_DIR}/tinyxml2-static-targets.cmake") +set(tinyxml2_shared_targets "${CMAKE_CURRENT_LIST_DIR}/tinyxml2-shared-targets.cmake") + +macro(tinyxml2_load_targets type) + if (NOT EXISTS "${tinyxml2_${type}_targets}") + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "tinyxml2 `${type}` libraries were requested but not found.") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) + return() + endif () + include("${tinyxml2_${type}_targets}") +endmacro() + +if (tinyxml2_comp_static) + tinyxml2_load_targets(static) +elseif (tinyxml2_comp_shared) + tinyxml2_load_targets(shared) +elseif (DEFINED tinyxml2_SHARED_LIBS AND tinyxml2_SHARED_LIBS) + tinyxml2_load_targets(shared) +elseif (DEFINED tinyxml2_SHARED_LIBS AND NOT tinyxml2_SHARED_LIBS) + tinyxml2_load_targets(static) +elseif (BUILD_SHARED_LIBS) + if (EXISTS "${tinyxml2_shared_targets}") + tinyxml2_load_targets(shared) + else () + tinyxml2_load_targets(static) + endif () +else () + if (EXISTS "${tinyxml2_static_targets}") + tinyxml2_load_targets(static) + else () + tinyxml2_load_targets(shared) + endif () +endif () diff --git a/Engine/lib/tinyxml2/cmake/tinyxml2.pc.in b/Engine/lib/tinyxml2/cmake/tinyxml2.pc.in new file mode 100644 index 000000000..a4fe22fae --- /dev/null +++ b/Engine/lib/tinyxml2/cmake/tinyxml2.pc.in @@ -0,0 +1,10 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ + +Name: TinyXML2 +Description: simple, small, C++ XML parser +Version: @tinyxml2_VERSION@ +Libs: -L${libdir} -l$ +Cflags: -I${includedir} diff --git a/Engine/lib/tinyxml2/contrib/html5-printer.cpp b/Engine/lib/tinyxml2/contrib/html5-printer.cpp new file mode 100644 index 000000000..e9a423d22 --- /dev/null +++ b/Engine/lib/tinyxml2/contrib/html5-printer.cpp @@ -0,0 +1,108 @@ +// g++ -Wall -O2 contrib/html5-printer.cpp -o html5-printer -ltinyxml2 + +// This program demonstrates how to use "tinyxml2" to generate conformant HTML5 +// by deriving from the "tinyxml2::XMLPrinter" class. + +// http://dev.w3.org/html5/markup/syntax.html + +// In HTML5, there are 16 so-called "void" elements. "void elements" NEVER have +// inner content (but they MAY have attributes), and are assumed to be self-closing. +// An example of a self-closig HTML5 element is "
    " (line break) +// All other elements are called "non-void" and MUST never self-close. +// Examples: "
    ". + +// tinyxml2::XMLPrinter will emit _ALL_ XML elements with no inner content as +// self-closing. This behavior produces space-effeceint XML, but incorrect HTML5. + +// Author: Dennis Jenkins, dennis (dot) jenkins (dot) 75 (at) gmail (dot) com. +// License: Same as tinyxml2 (zlib, see below) +// This example is a small contribution to the world! Enjoy it! + +/* +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. +*/ + + +#include "../tinyxml2.h" +#include + +#if defined (_MSC_VER) +#define strcasecmp stricmp +#endif + +using namespace tinyxml2; + +// Contrived input containing a mix of void and non-void HTML5 elements. +// When printed via XMLPrinter, some non-void elements will self-close (not valid HTML5). +static const char input[] = +"


    ©
    "; + +// XMLPrinterHTML5 is small enough, just put the entire implementation inline. +class XMLPrinterHTML5 : public XMLPrinter +{ +public: + XMLPrinterHTML5 (FILE* file=0, bool compact = false, int depth = 0) : + XMLPrinter (file, compact, depth) + {} + +protected: + virtual void CloseElement () { + if (_elementJustOpened && !isVoidElement (_stack.PeekTop())) { + SealElementIfJustOpened(); + } + XMLPrinter::CloseElement(); + } + + virtual bool isVoidElement (const char *name) { +// Complete list of all HTML5 "void elements", +// http://dev.w3.org/html5/markup/syntax.html + static const char *list[] = { + "area", "base", "br", "col", "command", "embed", "hr", "img", + "input", "keygen", "link", "meta", "param", "source", "track", "wbr", + NULL + }; + +// I could use 'bsearch', but I don't have MSVC to test on (it would work with gcc/libc). + for (const char **p = list; *p; ++p) { + if (!strcasecmp (name, *p)) { + return true; + } + } + + return false; + } +}; + +int main (void) { + XMLDocument doc (false); + doc.Parse (input); + + std::cout << "INPUT:\n" << input << "\n\n"; + + XMLPrinter prn (NULL, true); + doc.Print (&prn); + std::cout << "XMLPrinter (not valid HTML5):\n" << prn.CStr() << "\n\n"; + + XMLPrinterHTML5 html5 (NULL, true); + doc.Print (&html5); + std::cout << "XMLPrinterHTML5:\n" << html5.CStr() << "\n"; + + return 0; +} diff --git a/Engine/lib/tinyxml2/docs/_config.yml b/Engine/lib/tinyxml2/docs/_config.yml new file mode 100644 index 000000000..8ceb7a0ac --- /dev/null +++ b/Engine/lib/tinyxml2/docs/_config.yml @@ -0,0 +1,2 @@ +include: + - "_*.html" diff --git a/Engine/lib/tinyxml/docs/_example_1.html b/Engine/lib/tinyxml2/docs/_example_1.html similarity index 64% rename from Engine/lib/tinyxml/docs/_example_1.html rename to Engine/lib/tinyxml2/docs/_example_1.html index 6cccb3123..9659fcbd3 100644 --- a/Engine/lib/tinyxml/docs/_example_1.html +++ b/Engine/lib/tinyxml2/docs/_example_1.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Load an XML File + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    Load an XML File
    +
    +
    Load an XML File

    Basic XML file loading. The basic syntax to load an XML file from disk and check for an error. (ErrorID() will return 0 for no error.)

    int example_1()
    @@ -77,7 +85,7 @@ $(function() {
    diff --git a/Engine/lib/tinyxml/docs/_example_2.html b/Engine/lib/tinyxml2/docs/_example_2.html similarity index 66% rename from Engine/lib/tinyxml/docs/_example_2.html rename to Engine/lib/tinyxml2/docs/_example_2.html index fb406a469..0fda91bcd 100644 --- a/Engine/lib/tinyxml/docs/_example_2.html +++ b/Engine/lib/tinyxml2/docs/_example_2.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Parse an XML from char buffer + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    Parse an XML from char buffer
    +
    +
    Parse an XML from char buffer

    Basic XML string parsing. The basic syntax to parse an XML for a char* and check for an error. (ErrorID() will return 0 for no error.)

    int example_2()
    @@ -78,7 +86,7 @@ $(function() {
    diff --git a/Engine/lib/tinyxml/docs/_example_3.html b/Engine/lib/tinyxml2/docs/_example_3.html similarity index 79% rename from Engine/lib/tinyxml/docs/_example_3.html rename to Engine/lib/tinyxml2/docs/_example_3.html index 2994ed67b..b63348a3e 100644 --- a/Engine/lib/tinyxml/docs/_example_3.html +++ b/Engine/lib/tinyxml2/docs/_example_3.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Get information out of XML + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    Get information out of XML
    +
    +
    Get information out of XML

    In this example, we navigate a simple XML file, and read some interesting text. Note that this example doesn't use error checking; working code should check for null pointers when walking an XML tree, or use XMLHandle.

    @@ -115,7 +123,7 @@ Text "A Midsummer Night's Dream"
    diff --git a/Engine/lib/tinyxml/docs/_example_4.html b/Engine/lib/tinyxml2/docs/_example_4.html similarity index 76% rename from Engine/lib/tinyxml/docs/_example_4.html rename to Engine/lib/tinyxml2/docs/_example_4.html index 5f8d39180..5a14aeebe 100644 --- a/Engine/lib/tinyxml/docs/_example_4.html +++ b/Engine/lib/tinyxml2/docs/_example_4.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Read attributes and text information. + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    Read attributes and text information.
    +
    +
    Read attributes and text information.

    @@ -88,7 +96,7 @@ $(function() {
    diff --git a/Engine/lib/tinyxml/docs/annotated.html b/Engine/lib/tinyxml2/docs/annotated.html similarity index 51% rename from Engine/lib/tinyxml/docs/annotated.html rename to Engine/lib/tinyxml2/docs/annotated.html index 24d5b3f9b..03f06407a 100644 --- a/Engine/lib/tinyxml/docs/annotated.html +++ b/Engine/lib/tinyxml2/docs/annotated.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class List + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,37 +58,43 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    Class List
    +
    Class List
    Here are the classes, structs, unions and interfaces with brief descriptions:
    -
    [detail level 12]
    - - - - - - - - - - - - - +
    [detail level 12]
     Ntinyxml2
     CXMLVisitor
     CXMLNode
     CXMLText
     CXMLComment
     CXMLDeclaration
     CXMLUnknown
     CXMLAttribute
     CXMLElement
     CXMLDocument
     CXMLHandle
     CXMLConstHandle
     CXMLPrinter
    + + + + + + + + + + + + +
     Ntinyxml2
     CXMLAttribute
     CXMLComment
     CXMLConstHandle
     CXMLDeclaration
     CXMLDocument
     CXMLElement
     CXMLHandle
     CXMLNode
     CXMLPrinter
     CXMLText
     CXMLUnknown
     CXMLVisitor
    diff --git a/Engine/lib/tinyxml/docs/bc_s.png b/Engine/lib/tinyxml2/docs/bc_s.png similarity index 100% rename from Engine/lib/tinyxml/docs/bc_s.png rename to Engine/lib/tinyxml2/docs/bc_s.png diff --git a/Engine/lib/tinyxml2/docs/bc_sd.png b/Engine/lib/tinyxml2/docs/bc_sd.png new file mode 100644 index 000000000..31ca888dc Binary files /dev/null and b/Engine/lib/tinyxml2/docs/bc_sd.png differ diff --git a/Engine/lib/tinyxml/docs/bdwn.png b/Engine/lib/tinyxml2/docs/bdwn.png similarity index 100% rename from Engine/lib/tinyxml/docs/bdwn.png rename to Engine/lib/tinyxml2/docs/bdwn.png diff --git a/Engine/lib/tinyxml/docs/classes.html b/Engine/lib/tinyxml2/docs/classes.html similarity index 69% rename from Engine/lib/tinyxml/docs/classes.html rename to Engine/lib/tinyxml2/docs/classes.html index c5048a5c6..3c50e5ae8 100644 --- a/Engine/lib/tinyxml/docs/classes.html +++ b/Engine/lib/tinyxml2/docs/classes.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Index + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,26 +58,32 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    Class Index
    +
    Class Index
    -
    X
    +
    X
    XMLAttribute (tinyxml2)
    XMLComment (tinyxml2)
    XMLConstHandle (tinyxml2)
    XMLDeclaration (tinyxml2)
    XMLDocument (tinyxml2)
    XMLElement (tinyxml2)
    XMLHandle (tinyxml2)
    XMLNode (tinyxml2)
    XMLPrinter (tinyxml2)
    XMLText (tinyxml2)
    XMLUnknown (tinyxml2)
    XMLVisitor (tinyxml2)
    diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_attribute-members.html b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_attribute-members.html similarity index 57% rename from Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_attribute-members.html rename to Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_attribute-members.html index bb41a263c..9f3f9902d 100644 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_attribute-members.html +++ b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_attribute-members.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Member List + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    tinyxml2::XMLAttribute Member List
    +
    tinyxml2::XMLAttribute Member List

    This is the complete list of members for tinyxml2::XMLAttribute, including all inherited members.

    - + - + - - - + + + - + - + - + - + - + - + - + - +
    BoolValue() consttinyxml2::XMLAttributeinline
    DoubleValue() consttinyxml2::XMLAttributeinline
    DoubleValue() consttinyxml2::XMLAttributeinline
    FloatValue() consttinyxml2::XMLAttributeinline
    GetLineNum() consttinyxml2::XMLAttributeinline
    GetLineNum() consttinyxml2::XMLAttributeinline
    IntValue() consttinyxml2::XMLAttributeinline
    Name() consttinyxml2::XMLAttribute
    Next() consttinyxml2::XMLAttributeinline
    QueryBoolValue(bool *value) consttinyxml2::XMLAttribute
    Name() consttinyxml2::XMLAttribute
    Next() consttinyxml2::XMLAttributeinline
    QueryBoolValue(bool *value) consttinyxml2::XMLAttribute
    QueryDoubleValue(double *value) consttinyxml2::XMLAttribute
    QueryFloatValue(float *value) consttinyxml2::XMLAttribute
    QueryFloatValue(float *value) consttinyxml2::XMLAttribute
    QueryInt64Value(int64_t *value) consttinyxml2::XMLAttribute
    QueryIntValue(int *value) consttinyxml2::XMLAttribute
    QueryIntValue(int *value) consttinyxml2::XMLAttribute
    QueryUnsigned64Value(uint64_t *value) consttinyxml2::XMLAttribute
    QueryUnsignedValue(unsigned int *value) consttinyxml2::XMLAttribute
    QueryUnsignedValue(unsigned int *value) consttinyxml2::XMLAttribute
    SetAttribute(const char *value)tinyxml2::XMLAttribute
    SetAttribute(int value)tinyxml2::XMLAttribute
    SetAttribute(int value)tinyxml2::XMLAttribute
    SetAttribute(unsigned value)tinyxml2::XMLAttribute
    SetAttribute(int64_t value)tinyxml2::XMLAttribute
    SetAttribute(int64_t value)tinyxml2::XMLAttribute
    SetAttribute(uint64_t value)tinyxml2::XMLAttribute
    SetAttribute(bool value)tinyxml2::XMLAttribute
    SetAttribute(bool value)tinyxml2::XMLAttribute
    SetAttribute(double value)tinyxml2::XMLAttribute
    SetAttribute(float value)tinyxml2::XMLAttribute
    SetAttribute(float value)tinyxml2::XMLAttribute
    UnsignedValue() consttinyxml2::XMLAttributeinline
    Value() consttinyxml2::XMLAttribute
    Value() consttinyxml2::XMLAttribute
    diff --git a/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_attribute.html b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_attribute.html new file mode 100644 index 000000000..e1b88e612 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_attribute.html @@ -0,0 +1,239 @@ + + + + + + + +TinyXML-2: tinyxml2::XMLAttribute Class Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tinyxml2::XMLAttribute Class Reference
    +
    +
    + +

    #include <tinyxml2.h>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +const char * Name () const
     The name of the attribute.
     
    +const char * Value () const
     The value of the attribute.
     
    +int GetLineNum () const
     Gets the line number the attribute is in, if the document was parsed from a file.
     
    +const XMLAttributeNext () const
     The next attribute in the list.
     
    int IntValue () const
     
    +unsigned UnsignedValue () const
     Query as an unsigned integer. See IntValue()
     
    +bool BoolValue () const
     Query as a boolean. See IntValue()
     
    +double DoubleValue () const
     Query as a double. See IntValue()
     
    +float FloatValue () const
     Query as a float. See IntValue()
     
    XMLError QueryIntValue (int *value) const
     
    +XMLError QueryUnsignedValue (unsigned int *value) const
     See QueryIntValue.
     
    +XMLError QueryInt64Value (int64_t *value) const
     See QueryIntValue.
     
    +XMLError QueryUnsigned64Value (uint64_t *value) const
     See QueryIntValue.
     
    +XMLError QueryBoolValue (bool *value) const
     See QueryIntValue.
     
    +XMLError QueryDoubleValue (double *value) const
     See QueryIntValue.
     
    +XMLError QueryFloatValue (float *value) const
     See QueryIntValue.
     
    +void SetAttribute (const char *value)
     Set the attribute to a string value.
     
    +void SetAttribute (int value)
     Set the attribute to value.
     
    +void SetAttribute (unsigned value)
     Set the attribute to value.
     
    +void SetAttribute (int64_t value)
     Set the attribute to value.
     
    +void SetAttribute (uint64_t value)
     Set the attribute to value.
     
    +void SetAttribute (bool value)
     Set the attribute to value.
     
    +void SetAttribute (double value)
     Set the attribute to value.
     
    +void SetAttribute (float value)
     Set the attribute to value.
     
    +

    Detailed Description

    +

    An attribute is a name-value pair. Elements have an arbitrary number of attributes, each with a unique name.

    +
    Note
    The attributes are not XMLNodes. You may only query the Next() attribute in a list.
    +

    Member Function Documentation

    + +

    ◆ IntValue()

    + +
    +
    + + + + + +
    + + + + + + + +
    int tinyxml2::XMLAttribute::IntValue () const
    +
    +inline
    +
    +

    IntValue interprets the attribute as an integer, and returns the value. If the value isn't an integer, 0 will be returned. There is no error checking; use QueryIntValue() if you need error checking.

    + +
    +
    + +

    ◆ QueryIntValue()

    + +
    +
    + + + + + + + +
    XMLError tinyxml2::XMLAttribute::QueryIntValue (int * value) const
    +
    +

    QueryIntValue interprets the attribute as an integer, and returns the value in the provided parameter. The function will return XML_SUCCESS on success, and XML_WRONG_ATTRIBUTE_TYPE if the conversion is not successful.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment-members.html b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment-members.html new file mode 100644 index 000000000..4ea42ba39 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment-members.html @@ -0,0 +1,122 @@ + + + + + + + +TinyXML-2: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tinyxml2::XMLComment Member List
    +
    +
    + +

    This is the complete list of members for tinyxml2::XMLComment, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Accept(XMLVisitor *visitor) const overridetinyxml2::XMLCommentvirtual
    DeepClone(XMLDocument *target) consttinyxml2::XMLNode
    DeleteChild(XMLNode *node)tinyxml2::XMLNode
    DeleteChildren()tinyxml2::XMLNode
    FirstChild() consttinyxml2::XMLNodeinline
    FirstChildElement(const char *name=0) consttinyxml2::XMLNode
    GetDocument() consttinyxml2::XMLNodeinline
    GetDocument()tinyxml2::XMLNodeinline
    GetLineNum() consttinyxml2::XMLNodeinline
    GetUserData() consttinyxml2::XMLNodeinline
    InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
    InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
    InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
    LastChild() consttinyxml2::XMLNodeinline
    LastChildElement(const char *name=0) consttinyxml2::XMLNode
    NextSibling() consttinyxml2::XMLNodeinline
    NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
    NoChildren() consttinyxml2::XMLNodeinline
    Parent() consttinyxml2::XMLNodeinline
    PreviousSibling() consttinyxml2::XMLNodeinline
    PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
    SetUserData(void *userData)tinyxml2::XMLNodeinline
    SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
    ShallowClone(XMLDocument *document) const overridetinyxml2::XMLCommentvirtual
    ShallowEqual(const XMLNode *compare) const overridetinyxml2::XMLCommentvirtual
    ToComment() overridetinyxml2::XMLCommentinlinevirtual
    ToDeclaration()tinyxml2::XMLNodeinlinevirtual
    ToDocument()tinyxml2::XMLNodeinlinevirtual
    ToElement()tinyxml2::XMLNodeinlinevirtual
    ToText()tinyxml2::XMLNodeinlinevirtual
    ToUnknown()tinyxml2::XMLNodeinlinevirtual
    Value() consttinyxml2::XMLNode
    + + + + diff --git a/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment.html b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment.html new file mode 100644 index 000000000..bd85209a4 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment.html @@ -0,0 +1,306 @@ + + + + + + + +TinyXML-2: tinyxml2::XMLComment Class Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tinyxml2::XMLComment Class Reference
    +
    +
    + +

    #include <tinyxml2.h>

    +
    +Inheritance diagram for tinyxml2::XMLComment:
    +
    +
    + + +tinyxml2::XMLNode + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +virtual XMLCommentToComment () override
     Safely cast to a Comment, or null.
     
    virtual bool Accept (XMLVisitor *visitor) const override
     
    virtual XMLNodeShallowClone (XMLDocument *document) const override
     
    virtual bool ShallowEqual (const XMLNode *compare) const override
     
    - Public Member Functions inherited from tinyxml2::XMLNode
    +const XMLDocumentGetDocument () const
     Get the XMLDocument that owns this XMLNode.
     
    +XMLDocumentGetDocument ()
     Get the XMLDocument that owns this XMLNode.
     
    +virtual XMLElementToElement ()
     Safely cast to an Element, or null.
     
    +virtual XMLTextToText ()
     Safely cast to Text, or null.
     
    +virtual XMLDocumentToDocument ()
     Safely cast to a Document, or null.
     
    +virtual XMLDeclarationToDeclaration ()
     Safely cast to a Declaration, or null.
     
    +virtual XMLUnknownToUnknown ()
     Safely cast to an Unknown, or null.
     
    const char * Value () const
     
    void SetValue (const char *val, bool staticMem=false)
     
    +int GetLineNum () const
     Gets the line number the node is in, if the document was parsed from a file.
     
    +const XMLNodeParent () const
     Get the parent of this node on the DOM.
     
    +bool NoChildren () const
     Returns true if this node has no children.
     
    +const XMLNodeFirstChild () const
     Get the first child node, or null if none exists.
     
    const XMLElementFirstChildElement (const char *name=0) const
     
    +const XMLNodeLastChild () const
     Get the last child node, or null if none exists.
     
    const XMLElementLastChildElement (const char *name=0) const
     
    +const XMLNodePreviousSibling () const
     Get the previous (left) sibling node of this node.
     
    +const XMLElementPreviousSiblingElement (const char *name=0) const
     Get the previous (left) sibling element of this node, with an optionally supplied name.
     
    +const XMLNodeNextSibling () const
     Get the next (right) sibling node of this node.
     
    +const XMLElementNextSiblingElement (const char *name=0) const
     Get the next (right) sibling element of this node, with an optionally supplied name.
     
    XMLNodeInsertEndChild (XMLNode *addThis)
     
    XMLNodeInsertFirstChild (XMLNode *addThis)
     
    XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
     
    void DeleteChildren ()
     
    void DeleteChild (XMLNode *node)
     
    XMLNodeDeepClone (XMLDocument *target) const
     
    void SetUserData (void *userData)
     
    void * GetUserData () const
     
    +

    Detailed Description

    +

    An XML Comment.

    +

    Member Function Documentation

    + +

    ◆ Accept()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual bool tinyxml2::XMLComment::Accept (XMLVisitor * visitor) const
    +
    +overridevirtual
    +
    +

    Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

    +

    This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

    +

    The interface has been based on ideas from:

    + +

    Which are both good references for "visiting".

    +

    An example of using Accept():

    XMLPrinter printer;
    +tinyxmlDoc.Accept( &printer );
    +const char* xmlcstr = printer.CStr();
    +
    +

    Implements tinyxml2::XMLNode.

    + +
    +
    + +

    ◆ ShallowClone()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual XMLNode * tinyxml2::XMLComment::ShallowClone (XMLDocument * document) const
    +
    +overridevirtual
    +
    +

    Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

    +

    Note: if called on a XMLDocument, this will return null.

    + +

    Implements tinyxml2::XMLNode.

    + +
    +
    + +

    ◆ ShallowEqual()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual bool tinyxml2::XMLComment::ShallowEqual (const XMLNode * compare) const
    +
    +overridevirtual
    +
    +

    Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

    +

    Note: if called on a XMLDocument, this will return false.

    + +

    Implements tinyxml2::XMLNode.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment.png b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment.png new file mode 100644 index 000000000..273dd1fcb Binary files /dev/null and b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_comment.png differ diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html similarity index 62% rename from Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html rename to Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html index 03c24bf76..672929bcd 100644 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html +++ b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Member List + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    tinyxml2::XMLConstHandle Member List
    +
    tinyxml2::XMLConstHandle Member List
    @@ -75,7 +83,7 @@ $(function() {
    diff --git a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_const_handle.html b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_const_handle.html similarity index 68% rename from Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_const_handle.html rename to Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_const_handle.html index eb72a01b6..94d59f6d5 100644 --- a/Engine/lib/tinyxml/docs/classtinyxml2_1_1_x_m_l_const_handle.html +++ b/Engine/lib/tinyxml2/docs/classtinyxml2_1_1_x_m_l_const_handle.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: tinyxml2::XMLConstHandle Class Reference + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    @@ -56,26 +58,29 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - o -

    diff --git a/Engine/lib/tinyxml2/docs/functions_func_p.html b/Engine/lib/tinyxml2/docs/functions_func_p.html new file mode 100644 index 000000000..7993545a1 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_p.html @@ -0,0 +1,95 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - p -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_func_q.html b/Engine/lib/tinyxml2/docs/functions_func_q.html new file mode 100644 index 000000000..1d7dd9bc3 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_q.html @@ -0,0 +1,107 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - q -

    +
    + + + + diff --git a/Engine/lib/tinyxml/docs/functions_func_r.html b/Engine/lib/tinyxml2/docs/functions_func_r.html similarity index 53% rename from Engine/lib/tinyxml/docs/functions_func_r.html rename to Engine/lib/tinyxml2/docs/functions_func_r.html index a30280fe9..59100bea3 100644 --- a/Engine/lib/tinyxml/docs/functions_func_r.html +++ b/Engine/lib/tinyxml2/docs/functions_func_r.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Members - Functions + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,23 +58,28 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - r -

    diff --git a/Engine/lib/tinyxml2/docs/functions_func_s.html b/Engine/lib/tinyxml2/docs/functions_func_s.html new file mode 100644 index 000000000..c860fa893 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_s.html @@ -0,0 +1,94 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - s -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_func_t.html b/Engine/lib/tinyxml2/docs/functions_func_t.html new file mode 100644 index 000000000..7d98c7d15 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_t.html @@ -0,0 +1,91 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - t -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_func_u.html b/Engine/lib/tinyxml2/docs/functions_func_u.html new file mode 100644 index 000000000..bd4f9509a --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_u.html @@ -0,0 +1,89 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - u -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_func_v.html b/Engine/lib/tinyxml2/docs/functions_func_v.html new file mode 100644 index 000000000..9c13ad732 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_v.html @@ -0,0 +1,88 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - v -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_func_x.html b/Engine/lib/tinyxml2/docs/functions_func_x.html new file mode 100644 index 000000000..6b0c6610e --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_func_x.html @@ -0,0 +1,87 @@ + + + + + + + +TinyXML-2: Class Members - Functions + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - x -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_g.html b/Engine/lib/tinyxml2/docs/functions_g.html new file mode 100644 index 000000000..2bca2cdf0 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_g.html @@ -0,0 +1,88 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - g -

    +
    + + + + diff --git a/Engine/lib/tinyxml/docs/functions_h.html b/Engine/lib/tinyxml2/docs/functions_h.html similarity index 57% rename from Engine/lib/tinyxml/docs/functions_h.html rename to Engine/lib/tinyxml2/docs/functions_h.html index 79938c75b..49c2488c2 100644 --- a/Engine/lib/tinyxml/docs/functions_h.html +++ b/Engine/lib/tinyxml2/docs/functions_h.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Members + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,23 +58,28 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - h -

    diff --git a/Engine/lib/tinyxml2/docs/functions_i.html b/Engine/lib/tinyxml2/docs/functions_i.html new file mode 100644 index 000000000..159365339 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_i.html @@ -0,0 +1,96 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - i -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_l.html b/Engine/lib/tinyxml2/docs/functions_l.html new file mode 100644 index 000000000..75ae7912b --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_l.html @@ -0,0 +1,87 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - l -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_n.html b/Engine/lib/tinyxml2/docs/functions_n.html new file mode 100644 index 000000000..7f6707bff --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_n.html @@ -0,0 +1,94 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - n -

    +
    + + + + diff --git a/Engine/lib/tinyxml/docs/functions_o.html b/Engine/lib/tinyxml2/docs/functions_o.html similarity index 55% rename from Engine/lib/tinyxml/docs/functions_o.html rename to Engine/lib/tinyxml2/docs/functions_o.html index a75344f0a..78a18ea3f 100644 --- a/Engine/lib/tinyxml/docs/functions_o.html +++ b/Engine/lib/tinyxml2/docs/functions_o.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Members + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,26 +58,29 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - o -

    diff --git a/Engine/lib/tinyxml2/docs/functions_p.html b/Engine/lib/tinyxml2/docs/functions_p.html new file mode 100644 index 000000000..51069975a --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_p.html @@ -0,0 +1,95 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - p -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_q.html b/Engine/lib/tinyxml2/docs/functions_q.html new file mode 100644 index 000000000..fa7c8a529 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_q.html @@ -0,0 +1,107 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - q -

    +
    + + + + diff --git a/Engine/lib/tinyxml/docs/functions_r.html b/Engine/lib/tinyxml2/docs/functions_r.html similarity index 57% rename from Engine/lib/tinyxml/docs/functions_r.html rename to Engine/lib/tinyxml2/docs/functions_r.html index 75f15a379..a88893b3c 100644 --- a/Engine/lib/tinyxml/docs/functions_r.html +++ b/Engine/lib/tinyxml2/docs/functions_r.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Members + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,23 +58,28 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - r -

    diff --git a/Engine/lib/tinyxml2/docs/functions_s.html b/Engine/lib/tinyxml2/docs/functions_s.html new file mode 100644 index 000000000..e184e5763 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_s.html @@ -0,0 +1,94 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - s -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_t.html b/Engine/lib/tinyxml2/docs/functions_t.html new file mode 100644 index 000000000..187154c4e --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_t.html @@ -0,0 +1,91 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - t -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_u.html b/Engine/lib/tinyxml2/docs/functions_u.html new file mode 100644 index 000000000..4c5bee75c --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_u.html @@ -0,0 +1,89 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - u -

    +
    + + + + diff --git a/Engine/lib/tinyxml2/docs/functions_v.html b/Engine/lib/tinyxml2/docs/functions_v.html new file mode 100644 index 000000000..9b4fb1ea3 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/functions_v.html @@ -0,0 +1,88 @@ + + + + + + + +TinyXML-2: Class Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - v -

    +
    + + + + diff --git a/Engine/lib/tinyxml/docs/functions_x.html b/Engine/lib/tinyxml2/docs/functions_x.html similarity index 52% rename from Engine/lib/tinyxml/docs/functions_x.html rename to Engine/lib/tinyxml2/docs/functions_x.html index 048879181..4a9df22cf 100644 --- a/Engine/lib/tinyxml/docs/functions_x.html +++ b/Engine/lib/tinyxml2/docs/functions_x.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Members + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,29 +58,30 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - x -

    diff --git a/Engine/lib/tinyxml/docs/hierarchy.html b/Engine/lib/tinyxml2/docs/hierarchy.html similarity index 50% rename from Engine/lib/tinyxml/docs/hierarchy.html rename to Engine/lib/tinyxml2/docs/hierarchy.html index 65db86d6a..ade52fb55 100644 --- a/Engine/lib/tinyxml/docs/hierarchy.html +++ b/Engine/lib/tinyxml2/docs/hierarchy.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Class Hierarchy + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,36 +58,42 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    Class Hierarchy
    +
    Class Hierarchy
    diff --git a/Engine/lib/tinyxml/docs/index.html b/Engine/lib/tinyxml2/docs/index.html similarity index 86% rename from Engine/lib/tinyxml/docs/index.html rename to Engine/lib/tinyxml2/docs/index.html index 033d61797..57993bb97 100644 --- a/Engine/lib/tinyxml/docs/index.html +++ b/Engine/lib/tinyxml2/docs/index.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: TinyXML-2 + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,19 +58,24 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    TinyXML-2
    +
    +
    TinyXML-2

    -

    Build

    -

    TinyXML-2 Logo

    +

    Test

    TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrated into other programs.

    The master is hosted on github: https://github.com/leethomason/tinyxml2

    The online HTML version of these docs: http://leethomason.github.io/tinyxml2/

    @@ -95,7 +102,7 @@ $(function() {

    An XMLDocument is a C++ object like any other, that can be on the stack, or new'd and deleted on the heap.

    However, any sub-node of the Document, XMLElement, XMLText, etc, can only be created by calling the appropriate XMLDocument::NewElement, NewText, etc. method. Although you have pointers to these objects, they are still owned by the Document. When the Document is deleted, so are all the nodes it contains.

    White Space

    -

    Whitespace Preservation (default)

    +

    Whitespace Preservation (default, PRESERVE_WHITESPACE)

    Microsoft has an excellent article on white space: http://msdn.microsoft.com/en-us/library/ms256097.aspx

    By default, TinyXML-2 preserves white space in a (hopefully) sane way that is almost compliant with the spec. (TinyXML-1 used a completely different model, much more similar to 'collapse', below.)

    As a first step, all newlines / carriage-returns / line-feeds are normalized to a line-feed character, as required by the XML spec.

    @@ -109,7 +116,7 @@ $(function() { </document> <document><data>1</data><data>2</data><data>3</data></document> -

    Whitespace Collapse

    +

    Whitespace Collapse (COLLAPSE_WHITESPACE)

    For some applications, it is preferable to collapse whitespace. Collapsing whitespace gives you "HTML-like" behavior, which is sometimes more suitable for hand typed documents.

    TinyXML-2 supports this with the 'whitespace' parameter to the XMLDocument constructor. (The default is to preserve whitespace, as described above.)

    However, you may also use COLLAPSE_WHITESPACE, which will:

    @@ -119,7 +126,10 @@ $(function() {
  • Collapse a run of any number of space characters into a single space character
  • Note that (currently) there is a performance impact for using COLLAPSE_WHITESPACE. It essentially causes the XML to be parsed twice.

    -

    Error Reporting

    +

    Pedantic Whitespace (PEDANTIC_WHITESPACE)

    +

    For applications that need to know about text nodes that are composed entirely of whitespace, PEDANTIC_WHITESPACE is available. PEDANTIC_WHITESPACE maintains all the whilespace between elements.

    +

    PEDANTIC_WHITESPACE is a new mode and not as tested as the other whitespace modes.

    +

    Error Reporting

    TinyXML-2 reports the line number of any errors in an XML document that cannot be parsed correctly. In addition, all nodes (elements, declarations, text, comments etc.) and attributes have a line number recorded as they are parsed. This allows an application that performs additional validation of the parsed XML document (e.g. application-implemented DTD validation) to report line number information for error messages.

    Entities

    TinyXML-2 recognizes the pre-defined "character entities", meaning special characters. Namely:

    &amp;   &
    @@ -186,8 +196,8 @@ printer.CloseElement();
     
  • xmltest.cpp
  • Generally speaking, the intent is that you simply include the tinyxml2.cpp and tinyxml2.h files in your project and build with your other source code.

    -

    There is also a CMake build included. CMake is the general build for TinyXML-2. Additional build systems are costly to maintain, and tend to bit-rot.

    -

    A Visual Studio project is included, but that is largely for developer convenience, and is not intended to integrate well with other builds.

    +

    There is also a CMake build included. CMake is the general build for TinyXML-2.

    +

    (Additional build systems are costly to maintain, and tend to bit-rot. They are being removed over time.)

    Building TinyXML-2 - Using vcpkg

    You can download and install TinyXML-2 using the vcpkg dependency manager:

    git clone https://github.com/Microsoft/vcpkg.git
     cd vcpkg
    @@ -213,10 +223,11 @@ cd vcpkg
     

    TinyXML-2 grew from that effort. Lee Thomason is the original author of TinyXML-2 (and TinyXML-1) but TinyXML-2 has been and is being improved by many contributors.

    Thanks to John Mackay at http://john.mackay.rosalilastudio.com for the TinyXML-2 logo!

    +
    diff --git a/Engine/lib/tinyxml2/docs/jquery.js b/Engine/lib/tinyxml2/docs/jquery.js new file mode 100644 index 000000000..1dffb65b5 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
    ").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
    ").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Engine/lib/tinyxml2/docs/menu.js b/Engine/lib/tinyxml2/docs/menu.js new file mode 100644 index 000000000..717761d01 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/menu.js @@ -0,0 +1,134 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
      '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
    • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
    • '; + } + result+='
    '; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
    '+ + '
    '+ + '
     '+ + ''+ + '
    '+ + '
    '+ + '
    '+ + '
    '; + } else { + searchBoxHtml='
    '+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '; + } + } + + $('#main-nav').before('
    '+ + ''+ + ''+ + '
    '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/Engine/lib/tinyxml/docs/menudata.js b/Engine/lib/tinyxml2/docs/menudata.js similarity index 100% rename from Engine/lib/tinyxml/docs/menudata.js rename to Engine/lib/tinyxml2/docs/menudata.js diff --git a/Engine/lib/tinyxml2/docs/minus.svg b/Engine/lib/tinyxml2/docs/minus.svg new file mode 100644 index 000000000..f70d0c1a1 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Engine/lib/tinyxml2/docs/minusd.svg b/Engine/lib/tinyxml2/docs/minusd.svg new file mode 100644 index 000000000..5f8e87962 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Engine/lib/tinyxml/docs/nav_f.png b/Engine/lib/tinyxml2/docs/nav_f.png similarity index 100% rename from Engine/lib/tinyxml/docs/nav_f.png rename to Engine/lib/tinyxml2/docs/nav_f.png diff --git a/Engine/lib/tinyxml2/docs/nav_fd.png b/Engine/lib/tinyxml2/docs/nav_fd.png new file mode 100644 index 000000000..032fbdd4c Binary files /dev/null and b/Engine/lib/tinyxml2/docs/nav_fd.png differ diff --git a/Engine/lib/tinyxml/docs/nav_g.png b/Engine/lib/tinyxml2/docs/nav_g.png similarity index 100% rename from Engine/lib/tinyxml/docs/nav_g.png rename to Engine/lib/tinyxml2/docs/nav_g.png diff --git a/Engine/lib/tinyxml/docs/nav_h.png b/Engine/lib/tinyxml2/docs/nav_h.png similarity index 100% rename from Engine/lib/tinyxml/docs/nav_h.png rename to Engine/lib/tinyxml2/docs/nav_h.png diff --git a/Engine/lib/tinyxml2/docs/nav_hd.png b/Engine/lib/tinyxml2/docs/nav_hd.png new file mode 100644 index 000000000..de80f18ad Binary files /dev/null and b/Engine/lib/tinyxml2/docs/nav_hd.png differ diff --git a/Engine/lib/tinyxml/docs/open.png b/Engine/lib/tinyxml2/docs/open.png similarity index 100% rename from Engine/lib/tinyxml/docs/open.png rename to Engine/lib/tinyxml2/docs/open.png diff --git a/Engine/lib/tinyxml/docs/pages.html b/Engine/lib/tinyxml2/docs/pages.html similarity index 58% rename from Engine/lib/tinyxml/docs/pages.html rename to Engine/lib/tinyxml2/docs/pages.html index 12adb8316..0c7428d76 100644 --- a/Engine/lib/tinyxml/docs/pages.html +++ b/Engine/lib/tinyxml2/docs/pages.html @@ -1,14 +1,16 @@ - + - - + + TinyXML-2: Related Pages + + @@ -19,10 +21,9 @@
    - - + @@ -30,21 +31,22 @@
    -
    TinyXML-2 -  9.0.0 +
    +
    TinyXML-2 10.0.0
    - + +/* @license-end */ +
    @@ -56,28 +58,34 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    Related Pages
    +
    Related Pages
    diff --git a/Engine/lib/tinyxml2/docs/plus.svg b/Engine/lib/tinyxml2/docs/plus.svg new file mode 100644 index 000000000..075201655 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Engine/lib/tinyxml2/docs/plusd.svg b/Engine/lib/tinyxml2/docs/plusd.svg new file mode 100644 index 000000000..0c65bfe94 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Engine/lib/tinyxml/docs/search/all_0.html b/Engine/lib/tinyxml2/docs/search/all_0.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_0.html rename to Engine/lib/tinyxml2/docs/search/all_0.html diff --git a/Engine/lib/tinyxml2/docs/search/all_0.js b/Engine/lib/tinyxml2/docs/search/all_0.js new file mode 100644 index 000000000..5da8a5542 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['2_0',['TinyXML-2',['../index.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_1.html b/Engine/lib/tinyxml2/docs/search/all_1.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_1.html rename to Engine/lib/tinyxml2/docs/search/all_1.html diff --git a/Engine/lib/tinyxml2/docs/search/all_1.js b/Engine/lib/tinyxml2/docs/search/all_1.js new file mode 100644 index 000000000..9843f1842 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['accept_0',['Accept',['../classtinyxml2_1_1_x_m_l_node.html#a81e66df0a44c67a7af17f3b77a152785',1,'tinyxml2::XMLNode::Accept()'],['../classtinyxml2_1_1_x_m_l_text.html#a4022fa0089f2964203c7a69cd0f3726f',1,'tinyxml2::XMLText::Accept()'],['../classtinyxml2_1_1_x_m_l_comment.html#a171ccb71232b90cd0d6945b92cfc4aec',1,'tinyxml2::XMLComment::Accept()'],['../classtinyxml2_1_1_x_m_l_declaration.html#afd861abee3ed6c88e9a6965dac32f8b7',1,'tinyxml2::XMLDeclaration::Accept()'],['../classtinyxml2_1_1_x_m_l_unknown.html#ab510bfaa18873a3968964655353d2946',1,'tinyxml2::XMLUnknown::Accept()'],['../classtinyxml2_1_1_x_m_l_element.html#acae4a763d74c13ce4a31eb70b4db9f82',1,'tinyxml2::XMLElement::Accept()'],['../classtinyxml2_1_1_x_m_l_document.html#a853f05e2f7f51eb598e32ec61d8bc53c',1,'tinyxml2::XMLDocument::Accept()']]], + ['an_20xml_20file_1',['Load an XML File',['../_example_1.html',1,'']]], + ['an_20xml_20from_20char_20buffer_2',['Parse an XML from char buffer',['../_example_2.html',1,'']]], + ['and_20text_20information_3',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['attribute_4',['Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a48cf4a315cfbac7d74cd0d5ff2c5df51',1,'tinyxml2::XMLElement']]], + ['attributes_20and_20text_20information_5',['Read attributes and text information.',['../_example_4.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_10.html b/Engine/lib/tinyxml2/docs/search/all_10.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_10.html rename to Engine/lib/tinyxml2/docs/search/all_10.html diff --git a/Engine/lib/tinyxml2/docs/search/all_10.js b/Engine/lib/tinyxml2/docs/search/all_10.js new file mode 100644 index 000000000..c29ac63b3 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_10.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['savefile_0',['SaveFile',['../classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f',1,'tinyxml2::XMLDocument::SaveFile(const char *filename, bool compact=false)'],['../classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74',1,'tinyxml2::XMLDocument::SaveFile(FILE *fp, bool compact=false)']]], + ['setattribute_1',['SetAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581',1,'tinyxml2::XMLAttribute::SetAttribute(const char *value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ad86d7d7058d76761c3a80662566a57e5',1,'tinyxml2::XMLAttribute::SetAttribute(int value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae70468c0f6df2748ba3529c716999fae',1,'tinyxml2::XMLAttribute::SetAttribute(unsigned value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a7c1240f479722b9aa29b6c030aa116c2',1,'tinyxml2::XMLAttribute::SetAttribute(int64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a10964060a5c0d92486ecf8705bdf37da',1,'tinyxml2::XMLAttribute::SetAttribute(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ab3516def4fe058fe328f2b89fc2d77da',1,'tinyxml2::XMLAttribute::SetAttribute(bool value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a9a65ab3147abe8ccbbd373ce8791e818',1,'tinyxml2::XMLAttribute::SetAttribute(double value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae95e843313aaf5d56c32530b6456df02',1,'tinyxml2::XMLAttribute::SetAttribute(float value)'],['../classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c',1,'tinyxml2::XMLElement::SetAttribute(const char *name, const char *value)'],['../classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f',1,'tinyxml2::XMLElement::SetAttribute(const char *name, unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ad598868c0599ddc4695dab18552c308d',1,'tinyxml2::XMLElement::SetAttribute(const char *name, uint64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1',1,'tinyxml2::XMLElement::SetAttribute(const char *name, bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533',1,'tinyxml2::XMLElement::SetAttribute(const char *name, double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759',1,'tinyxml2::XMLElement::SetAttribute(const char *name, float value)']]], + ['setbom_2',['SetBOM',['../classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0',1,'tinyxml2::XMLDocument']]], + ['setcdata_3',['SetCData',['../classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d',1,'tinyxml2::XMLText']]], + ['setname_4',['SetName',['../classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1',1,'tinyxml2::XMLElement']]], + ['settext_5',['SetText',['../classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce',1,'tinyxml2::XMLElement::SetText(const char *inText)'],['../classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7',1,'tinyxml2::XMLElement::SetText(int value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597',1,'tinyxml2::XMLElement::SetText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4',1,'tinyxml2::XMLElement::SetText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#a6e615bc745afd1ca8ded56d7aac02657',1,'tinyxml2::XMLElement::SetText(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4',1,'tinyxml2::XMLElement::SetText(bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e',1,'tinyxml2::XMLElement::SetText(double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a',1,'tinyxml2::XMLElement::SetText(float value)']]], + ['setuserdata_6',['SetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2',1,'tinyxml2::XMLNode']]], + ['setvalue_7',['SetValue',['../classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513',1,'tinyxml2::XMLNode']]], + ['shallowclone_8',['ShallowClone',['../classtinyxml2_1_1_x_m_l_node.html#a9046880c05b81ad99ee645f4b2a53ecd',1,'tinyxml2::XMLNode::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_text.html#a277bbcf2e0e1326ca7f6f7c4d0820bb0',1,'tinyxml2::XMLText::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_comment.html#a5396d702a6ca251ee1493707a3ac6086',1,'tinyxml2::XMLComment::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a0e1151bfb4c2a42ed8a1991169cbc59e',1,'tinyxml2::XMLDeclaration::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a5ffeb6cd9e55008ebc160c1ceb4115ec',1,'tinyxml2::XMLUnknown::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_element.html#a6dc4d8774d1e77a8c37a7b3d039d3049',1,'tinyxml2::XMLElement::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_document.html#a01ab2fc16fbce5f4456d67d24090e70b',1,'tinyxml2::XMLDocument::ShallowClone()']]], + ['shallowequal_9',['ShallowEqual',['../classtinyxml2_1_1_x_m_l_node.html#a7ce18b751c3ea09eac292dca264f9226',1,'tinyxml2::XMLNode::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_text.html#a032269f8d4d0357912fcb9bdc796f50c',1,'tinyxml2::XMLText::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_comment.html#a5d905bdee77945cf8473987911fbe581',1,'tinyxml2::XMLComment::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a125d70baaba44a55c2f10e185f70d478',1,'tinyxml2::XMLDeclaration::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a300a119859a7c25a64f400c16535d8b4',1,'tinyxml2::XMLUnknown::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_element.html#aaba88737610559755425b8a59179817e',1,'tinyxml2::XMLElement::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_document.html#ac538345c44f521e418ff86b4bdc20ca8',1,'tinyxml2::XMLDocument::ShallowEqual()']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_11.html b/Engine/lib/tinyxml2/docs/search/all_11.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_11.html rename to Engine/lib/tinyxml2/docs/search/all_11.html diff --git a/Engine/lib/tinyxml2/docs/search/all_11.js b/Engine/lib/tinyxml2/docs/search/all_11.js new file mode 100644 index 000000000..494ed06ee --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_11.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['text_20information_0',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['tinyxml_202_1',['TinyXML-2',['../index.html',1,'']]], + ['tocomment_2',['ToComment',['../classtinyxml2_1_1_x_m_l_node.html#a5dc13f02ae49e3fa609e426f47c8466d',1,'tinyxml2::XMLNode::ToComment()'],['../classtinyxml2_1_1_x_m_l_comment.html#a7bd0df98fc2bb55d1d4445bfd2ec0053',1,'tinyxml2::XMLComment::ToComment()']]], + ['todeclaration_3',['ToDeclaration',['../classtinyxml2_1_1_x_m_l_node.html#a12aa783a3a4445ad5557c7d56cd8dc4a',1,'tinyxml2::XMLNode::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_declaration.html#ac485f175252b0d838d86de5fa22455cd',1,'tinyxml2::XMLDeclaration::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_handle.html#a85d0c76920a013ea2a29456dbf7d160d',1,'tinyxml2::XMLHandle::ToDeclaration()']]], + ['todocument_4',['ToDocument',['../classtinyxml2_1_1_x_m_l_node.html#a6107c3f57ab6e0755959947762953652',1,'tinyxml2::XMLNode::ToDocument()'],['../classtinyxml2_1_1_x_m_l_document.html#a290ad241e05e6aeeccbc78a4f3454f55',1,'tinyxml2::XMLDocument::ToDocument()']]], + ['toelement_5',['ToElement',['../classtinyxml2_1_1_x_m_l_node.html#a9417e1f8a9787ae27741605493514b18',1,'tinyxml2::XMLNode::ToElement()'],['../classtinyxml2_1_1_x_m_l_element.html#a88621376780280c0695458e30212eebe',1,'tinyxml2::XMLElement::ToElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#ab2371c4adb8b04afe04ed216bf9b0676',1,'tinyxml2::XMLHandle::ToElement()']]], + ['tonode_6',['ToNode',['../classtinyxml2_1_1_x_m_l_handle.html#a689453c96dd3d4016437d2298d1de691',1,'tinyxml2::XMLHandle']]], + ['totext_7',['ToText',['../classtinyxml2_1_1_x_m_l_node.html#a0aea8c9c5853c35a06da1988486abc60',1,'tinyxml2::XMLNode::ToText()'],['../classtinyxml2_1_1_x_m_l_text.html#a221e45ee1026407049d89786cbbfe145',1,'tinyxml2::XMLText::ToText()'],['../classtinyxml2_1_1_x_m_l_handle.html#accc80bcbd81e816f13a23c172587c288',1,'tinyxml2::XMLHandle::ToText()']]], + ['tounknown_8',['ToUnknown',['../classtinyxml2_1_1_x_m_l_node.html#aa8a2dd38b786c3b8d406c2047753cbfd',1,'tinyxml2::XMLNode::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a7d2238fe165736605de3ba2e2e5a99d1',1,'tinyxml2::XMLUnknown::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_handle.html#add97784cbe14ef42bb36e158ad6e6082',1,'tinyxml2::XMLHandle::ToUnknown()']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_12.html b/Engine/lib/tinyxml2/docs/search/all_12.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_12.html rename to Engine/lib/tinyxml2/docs/search/all_12.html diff --git a/Engine/lib/tinyxml2/docs/search/all_12.js b/Engine/lib/tinyxml2/docs/search/all_12.js new file mode 100644 index 000000000..d1602adc1 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_12.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['unsigned64attribute_0',['Unsigned64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a226502bab8f1be7ede1fdd255398eb85',1,'tinyxml2::XMLElement']]], + ['unsigned64text_1',['Unsigned64Text',['../classtinyxml2_1_1_x_m_l_element.html#af48c1023abbac1acdf4927c51c3a5f0c',1,'tinyxml2::XMLElement']]], + ['unsignedattribute_2',['UnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c',1,'tinyxml2::XMLElement']]], + ['unsignedtext_3',['UnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5',1,'tinyxml2::XMLElement']]], + ['unsignedvalue_4',['UnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338',1,'tinyxml2::XMLAttribute']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_13.html b/Engine/lib/tinyxml2/docs/search/all_13.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_13.html rename to Engine/lib/tinyxml2/docs/search/all_13.html diff --git a/Engine/lib/tinyxml2/docs/search/all_13.js b/Engine/lib/tinyxml2/docs/search/all_13.js new file mode 100644 index 000000000..cc7cc15ca --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['value_0',['Value',['../classtinyxml2_1_1_x_m_l_node.html#a0485e51c670e741884cfd8362274d680',1,'tinyxml2::XMLNode::Value()'],['../classtinyxml2_1_1_x_m_l_attribute.html#ab1c5cd993f836a771818ca408994b14e',1,'tinyxml2::XMLAttribute::Value()']]], + ['visit_1',['Visit',['../classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a',1,'tinyxml2::XMLVisitor::Visit(const XMLDeclaration &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b',1,'tinyxml2::XMLVisitor::Visit(const XMLText &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7',1,'tinyxml2::XMLVisitor::Visit(const XMLComment &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292',1,'tinyxml2::XMLVisitor::Visit(const XMLUnknown &)'],['../classtinyxml2_1_1_x_m_l_printer.html#ad903ea1672831f797130b4cddddfa532',1,'tinyxml2::XMLPrinter::Visit(const XMLText &text) override'],['../classtinyxml2_1_1_x_m_l_printer.html#a76fe434cdd4c39cb9963e3025e53609a',1,'tinyxml2::XMLPrinter::Visit(const XMLComment &comment) override'],['../classtinyxml2_1_1_x_m_l_printer.html#a63df55647c0e170e5b8702842b82008e',1,'tinyxml2::XMLPrinter::Visit(const XMLDeclaration &declaration) override'],['../classtinyxml2_1_1_x_m_l_printer.html#a31002765840bc4ea7b22332f71d83c74',1,'tinyxml2::XMLPrinter::Visit(const XMLUnknown &unknown) override']]], + ['visitenter_2',['VisitEnter',['../classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLElement &, const XMLAttribute *)'],['../classtinyxml2_1_1_x_m_l_printer.html#a73eba3d1aab34c4c3ac38d7d2d186671',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLDocument &) override'],['../classtinyxml2_1_1_x_m_l_printer.html#a5cab997d51b0387c21e2274bd1147755',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLElement &element, const XMLAttribute *attribute) override']]], + ['visitexit_3',['VisitExit',['../classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086',1,'tinyxml2::XMLVisitor::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6',1,'tinyxml2::XMLVisitor::VisitExit(const XMLElement &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a261a24986e3507258a74405a7dc08cbf',1,'tinyxml2::XMLPrinter::VisitExit(const XMLDocument &) override'],['../classtinyxml2_1_1_x_m_l_printer.html#a9a397f4c809a4de7ba27902b3ae1bbf7',1,'tinyxml2::XMLPrinter::VisitExit(const XMLElement &element) override']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/all_14.js b/Engine/lib/tinyxml2/docs/search/all_14.js new file mode 100644 index 000000000..5ada783a4 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_14.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['xml_0',['Get information out of XML',['../_example_3.html',1,'']]], + ['xml_20file_1',['Load an XML File',['../_example_1.html',1,'']]], + ['xml_20from_20char_20buffer_2',['Parse an XML from char buffer',['../_example_2.html',1,'']]], + ['xmlattribute_3',['XMLAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html',1,'tinyxml2']]], + ['xmlcomment_4',['XMLComment',['../classtinyxml2_1_1_x_m_l_comment.html',1,'tinyxml2']]], + ['xmlconsthandle_5',['XMLConstHandle',['../classtinyxml2_1_1_x_m_l_const_handle.html',1,'tinyxml2']]], + ['xmldeclaration_6',['XMLDeclaration',['../classtinyxml2_1_1_x_m_l_declaration.html',1,'tinyxml2']]], + ['xmldocument_7',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html',1,'tinyxml2::XMLDocument'],['../classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70',1,'tinyxml2::XMLDocument::XMLDocument()']]], + ['xmlelement_8',['XMLElement',['../classtinyxml2_1_1_x_m_l_element.html',1,'tinyxml2']]], + ['xmlhandle_9',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html',1,'tinyxml2::XMLHandle'],['../classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode *node)'],['../classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode &node)'],['../classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa',1,'tinyxml2::XMLHandle::XMLHandle(const XMLHandle &ref)']]], + ['xmlnode_10',['XMLNode',['../classtinyxml2_1_1_x_m_l_node.html',1,'tinyxml2']]], + ['xmlprinter_11',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html',1,'tinyxml2::XMLPrinter'],['../classtinyxml2_1_1_x_m_l_printer.html#aa6d3841c069085f5b8a27bc7103c04f7',1,'tinyxml2::XMLPrinter::XMLPrinter()']]], + ['xmltext_12',['XMLText',['../classtinyxml2_1_1_x_m_l_text.html',1,'tinyxml2']]], + ['xmlunknown_13',['XMLUnknown',['../classtinyxml2_1_1_x_m_l_unknown.html',1,'tinyxml2']]], + ['xmlvisitor_14',['XMLVisitor',['../classtinyxml2_1_1_x_m_l_visitor.html',1,'tinyxml2']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_2.html b/Engine/lib/tinyxml2/docs/search/all_2.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_2.html rename to Engine/lib/tinyxml2/docs/search/all_2.html diff --git a/Engine/lib/tinyxml2/docs/search/all_2.js b/Engine/lib/tinyxml2/docs/search/all_2.js new file mode 100644 index 000000000..afeff4b90 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['boolattribute_0',['BoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a53eda26131e1ad1031ef8ec8adb51bd8',1,'tinyxml2::XMLElement']]], + ['booltext_1',['BoolText',['../classtinyxml2_1_1_x_m_l_element.html#a68569f59f6382bcea7f5013ec59736d2',1,'tinyxml2::XMLElement']]], + ['boolvalue_2',['BoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff',1,'tinyxml2::XMLAttribute']]], + ['buffer_3',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_3.html b/Engine/lib/tinyxml2/docs/search/all_3.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_3.html rename to Engine/lib/tinyxml2/docs/search/all_3.html diff --git a/Engine/lib/tinyxml2/docs/search/all_3.js b/Engine/lib/tinyxml2/docs/search/all_3.js new file mode 100644 index 000000000..7565a6218 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_3.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['cdata_0',['CData',['../classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b',1,'tinyxml2::XMLText']]], + ['char_20buffer_1',['Parse an XML from char buffer',['../_example_2.html',1,'']]], + ['clear_2',['Clear',['../classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf',1,'tinyxml2::XMLDocument']]], + ['clearbuffer_3',['ClearBuffer',['../classtinyxml2_1_1_x_m_l_printer.html#a690cb140ba98b7339734ff865f56b0b3',1,'tinyxml2::XMLPrinter']]], + ['clearerror_4',['ClearError',['../classtinyxml2_1_1_x_m_l_document.html#a4085d9c52f1d93214311459d6d1fcf17',1,'tinyxml2::XMLDocument']]], + ['closeelement_5',['CloseElement',['../classtinyxml2_1_1_x_m_l_printer.html#ad04d29562b46fcdb23ab320f8b664240',1,'tinyxml2::XMLPrinter']]], + ['cstr_6',['CStr',['../classtinyxml2_1_1_x_m_l_printer.html#abfa772366c44a17cdeb8aea294d57f78',1,'tinyxml2::XMLPrinter']]], + ['cstrsize_7',['CStrSize',['../classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c',1,'tinyxml2::XMLPrinter']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_4.html b/Engine/lib/tinyxml2/docs/search/all_4.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_4.html rename to Engine/lib/tinyxml2/docs/search/all_4.html diff --git a/Engine/lib/tinyxml2/docs/search/all_4.js b/Engine/lib/tinyxml2/docs/search/all_4.js new file mode 100644 index 000000000..389526f01 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_4.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['deepclone_0',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a3bb369fd733f1989b751d99a9417adab',1,'tinyxml2::XMLNode']]], + ['deepcopy_1',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45',1,'tinyxml2::XMLDocument']]], + ['deleteattribute_2',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]], + ['deletechild_3',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]], + ['deletechildren_4',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]], + ['deletenode_5',['DeleteNode',['../classtinyxml2_1_1_x_m_l_document.html#ac1d6e2c7fcc1a660624ac4f68e96380d',1,'tinyxml2::XMLDocument']]], + ['doubleattribute_6',['DoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a10a90c505aea716bf073eea1c97f33b5',1,'tinyxml2::XMLElement']]], + ['doubletext_7',['DoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a81b1ff0cf2f2cd09be8badc08b39a2b7',1,'tinyxml2::XMLElement']]], + ['doublevalue_8',['DoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f',1,'tinyxml2::XMLAttribute']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_5.html b/Engine/lib/tinyxml2/docs/search/all_5.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_5.html rename to Engine/lib/tinyxml2/docs/search/all_5.html diff --git a/Engine/lib/tinyxml2/docs/search/all_5.js b/Engine/lib/tinyxml2/docs/search/all_5.js new file mode 100644 index 000000000..45f017ad8 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_5.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['error_0',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]], + ['errorid_1',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]], + ['errorlinenum_2',['ErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76',1,'tinyxml2::XMLDocument']]], + ['errorstr_3',['ErrorStr',['../classtinyxml2_1_1_x_m_l_document.html#ae97fff2402a0d01e0509c430b37996b3',1,'tinyxml2::XMLDocument']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_6.html b/Engine/lib/tinyxml2/docs/search/all_6.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_6.html rename to Engine/lib/tinyxml2/docs/search/all_6.html diff --git a/Engine/lib/tinyxml2/docs/search/all_6.js b/Engine/lib/tinyxml2/docs/search/all_6.js new file mode 100644 index 000000000..c0f7a60de --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_6.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['file_0',['Load an XML File',['../_example_1.html',1,'']]], + ['findattribute_1',['FindAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a157750dac8037a316fd1af1a973dfa2c',1,'tinyxml2::XMLElement']]], + ['firstattribute_2',['FirstAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a4a7c4392658833bb8138c474d15a805a',1,'tinyxml2::XMLElement']]], + ['firstchild_3',['FirstChild',['../classtinyxml2_1_1_x_m_l_node.html#abcc2e572dce329539689b426a0840661',1,'tinyxml2::XMLNode::FirstChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae',1,'tinyxml2::XMLHandle::FirstChild()']]], + ['firstchildelement_4',['FirstChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a1bec132dcf085284e0a10755f2cf0d57',1,'tinyxml2::XMLNode::FirstChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3',1,'tinyxml2::XMLHandle::FirstChildElement()']]], + ['floatattribute_5',['FloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#ab1f4be2332e27dc640e9b6abd01d64dd',1,'tinyxml2::XMLElement']]], + ['floattext_6',['FloatText',['../classtinyxml2_1_1_x_m_l_element.html#a45444eb21f99ca46101545992dc2e927',1,'tinyxml2::XMLElement']]], + ['floatvalue_7',['FloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801',1,'tinyxml2::XMLAttribute']]], + ['from_20char_20buffer_8',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_7.html b/Engine/lib/tinyxml2/docs/search/all_7.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_7.html rename to Engine/lib/tinyxml2/docs/search/all_7.html diff --git a/Engine/lib/tinyxml2/docs/search/all_7.js b/Engine/lib/tinyxml2/docs/search/all_7.js new file mode 100644 index 000000000..43a46e024 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['get_20information_20out_20of_20xml_0',['Get information out of XML',['../_example_3.html',1,'']]], + ['getdocument_1',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a6ce3bbe80357f5a4dc5db31a66f2bb18',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#a48d1695f7c834129e072548957a50501',1,'tinyxml2::XMLNode::GetDocument()']]], + ['getlinenum_2',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]], + ['gettext_3',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a0fa5bea0a4daf3ddd503dcabb823eba6',1,'tinyxml2::XMLElement']]], + ['getuserdata_4',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a18cc02ebd0b06f6bf5db7ef87653e00e',1,'tinyxml2::XMLNode']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_8.html b/Engine/lib/tinyxml2/docs/search/all_8.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_8.html rename to Engine/lib/tinyxml2/docs/search/all_8.html diff --git a/Engine/lib/tinyxml2/docs/search/all_8.js b/Engine/lib/tinyxml2/docs/search/all_8.js new file mode 100644 index 000000000..ad1874591 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hasbom_0',['HasBOM',['../classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd',1,'tinyxml2::XMLDocument']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_9.html b/Engine/lib/tinyxml2/docs/search/all_9.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_9.html rename to Engine/lib/tinyxml2/docs/search/all_9.html diff --git a/Engine/lib/tinyxml2/docs/search/all_9.js b/Engine/lib/tinyxml2/docs/search/all_9.js new file mode 100644 index 000000000..d5de6ebc0 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_9.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['information_0',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['information_20out_20of_20xml_1',['Get information out of XML',['../_example_3.html',1,'']]], + ['insertafterchild_2',['InsertAfterChild',['../classtinyxml2_1_1_x_m_l_node.html#a9275138a1b8dd5d8e2c26789bdc23ac8',1,'tinyxml2::XMLNode']]], + ['insertendchild_3',['InsertEndChild',['../classtinyxml2_1_1_x_m_l_node.html#ae3b422e98914d6002ca99bb1d2837103',1,'tinyxml2::XMLNode']]], + ['insertfirstchild_4',['InsertFirstChild',['../classtinyxml2_1_1_x_m_l_node.html#ac609a8f3ea949027f439280c640bbaf2',1,'tinyxml2::XMLNode']]], + ['insertnewchildelement_5',['InsertNewChildElement',['../classtinyxml2_1_1_x_m_l_element.html#abf01fdeb702165fddbc97bcc8af8a1ad',1,'tinyxml2::XMLElement']]], + ['insertnewcomment_6',['InsertNewComment',['../classtinyxml2_1_1_x_m_l_element.html#aaed36d3a8082b083ec4f1de55ee68cc2',1,'tinyxml2::XMLElement']]], + ['insertnewdeclaration_7',['InsertNewDeclaration',['../classtinyxml2_1_1_x_m_l_element.html#a7f11671a928649add7e3e18de7adf84a',1,'tinyxml2::XMLElement']]], + ['insertnewtext_8',['InsertNewText',['../classtinyxml2_1_1_x_m_l_element.html#ac30367a5e25ff30e178b56e0e1456d23',1,'tinyxml2::XMLElement']]], + ['insertnewunknown_9',['InsertNewUnknown',['../classtinyxml2_1_1_x_m_l_element.html#afe6cfefb48f8fbcb29a790f2042b55a4',1,'tinyxml2::XMLElement']]], + ['int64attribute_10',['Int64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a66d96972adecd816194191f13cc4a0a0',1,'tinyxml2::XMLElement']]], + ['int64text_11',['Int64Text',['../classtinyxml2_1_1_x_m_l_element.html#aab6151f7e3b4c2c0a8234e262d7b6b8a',1,'tinyxml2::XMLElement']]], + ['intattribute_12',['IntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a95a89b13bb14a2d4655e2b5b406c00d4',1,'tinyxml2::XMLElement']]], + ['intvalue_13',['IntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80',1,'tinyxml2::XMLAttribute']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_a.html b/Engine/lib/tinyxml2/docs/search/all_a.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_a.html rename to Engine/lib/tinyxml2/docs/search/all_a.html diff --git a/Engine/lib/tinyxml2/docs/search/all_a.js b/Engine/lib/tinyxml2/docs/search/all_a.js new file mode 100644 index 000000000..474fb7174 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['lastchild_0',['LastChild',['../classtinyxml2_1_1_x_m_l_node.html#a69a29bb8263ff5e9815be180bf27e7af',1,'tinyxml2::XMLNode::LastChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b',1,'tinyxml2::XMLHandle::LastChild()']]], + ['lastchildelement_1',['LastChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a609e02f02044f39b928d1a3e0de9f532',1,'tinyxml2::XMLNode::LastChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c',1,'tinyxml2::XMLHandle::LastChildElement()']]], + ['load_20an_20xml_20file_2',['Load an XML File',['../_example_1.html',1,'']]], + ['loadfile_3',['LoadFile',['../classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a',1,'tinyxml2::XMLDocument::LoadFile(const char *filename)'],['../classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2',1,'tinyxml2::XMLDocument::LoadFile(FILE *)']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_b.html b/Engine/lib/tinyxml2/docs/search/all_b.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_b.html rename to Engine/lib/tinyxml2/docs/search/all_b.html diff --git a/Engine/lib/tinyxml2/docs/search/all_b.js b/Engine/lib/tinyxml2/docs/search/all_b.js new file mode 100644 index 000000000..acaea4fd4 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_b.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['name_0',['Name',['../classtinyxml2_1_1_x_m_l_attribute.html#a5a5c135d24cce7abda6f17301c6274d8',1,'tinyxml2::XMLAttribute::Name()'],['../classtinyxml2_1_1_x_m_l_element.html#abd36e34e4428a8eeeffbe87eab0b124d',1,'tinyxml2::XMLElement::Name()']]], + ['newcomment_1',['NewComment',['../classtinyxml2_1_1_x_m_l_document.html#a386df0befd06aadb5e0cd21381aa955a',1,'tinyxml2::XMLDocument']]], + ['newdeclaration_2',['NewDeclaration',['../classtinyxml2_1_1_x_m_l_document.html#ae519030c0262fa2daff8993681990e16',1,'tinyxml2::XMLDocument']]], + ['newelement_3',['NewElement',['../classtinyxml2_1_1_x_m_l_document.html#a3c335a700a43d7c363a393142a23f234',1,'tinyxml2::XMLDocument']]], + ['newtext_4',['NewText',['../classtinyxml2_1_1_x_m_l_document.html#acece5de77a0819f2341b08c1e1ed9987',1,'tinyxml2::XMLDocument']]], + ['newunknown_5',['NewUnknown',['../classtinyxml2_1_1_x_m_l_document.html#a4954f502c5fd7f49de54c3c0c99bb73d',1,'tinyxml2::XMLDocument']]], + ['next_6',['Next',['../classtinyxml2_1_1_x_m_l_attribute.html#aa8c7cf4c94a636ae75046658e551614e',1,'tinyxml2::XMLAttribute']]], + ['nextsibling_7',['NextSibling',['../classtinyxml2_1_1_x_m_l_node.html#af986c568061b020cf6232bec091388c0',1,'tinyxml2::XMLNode::NextSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5',1,'tinyxml2::XMLHandle::NextSibling()']]], + ['nextsiblingelement_8',['NextSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a14ea560df31110ff07a9f566171bf797',1,'tinyxml2::XMLNode::NextSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5',1,'tinyxml2::XMLHandle::NextSiblingElement()']]], + ['nochildren_9',['NoChildren',['../classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4',1,'tinyxml2::XMLNode']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_c.html b/Engine/lib/tinyxml2/docs/search/all_c.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_c.html rename to Engine/lib/tinyxml2/docs/search/all_c.html diff --git a/Engine/lib/tinyxml2/docs/search/all_c.js b/Engine/lib/tinyxml2/docs/search/all_c.js new file mode 100644 index 000000000..6f24aaf10 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['of_20xml_0',['Get information out of XML',['../_example_3.html',1,'']]], + ['openelement_1',['OpenElement',['../classtinyxml2_1_1_x_m_l_printer.html#a20fb06c83bd13e5140d7dd13af06c010',1,'tinyxml2::XMLPrinter']]], + ['operator_3d_2',['operator=',['../classtinyxml2_1_1_x_m_l_handle.html#aa07c9a53f78d7b2dc1018668641521d8',1,'tinyxml2::XMLHandle']]], + ['out_20of_20xml_3',['Get information out of XML',['../_example_3.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_d.html b/Engine/lib/tinyxml2/docs/search/all_d.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_d.html rename to Engine/lib/tinyxml2/docs/search/all_d.html diff --git a/Engine/lib/tinyxml2/docs/search/all_d.js b/Engine/lib/tinyxml2/docs/search/all_d.js new file mode 100644 index 000000000..32d019a7e --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['parent_0',['Parent',['../classtinyxml2_1_1_x_m_l_node.html#a4d76b30d1bf4b166d3e4fa3419d51595',1,'tinyxml2::XMLNode']]], + ['parse_1',['Parse',['../classtinyxml2_1_1_x_m_l_document.html#af2b616169e6517182f6725f2498e9a01',1,'tinyxml2::XMLDocument']]], + ['parse_20an_20xml_20from_20char_20buffer_2',['Parse an XML from char buffer',['../_example_2.html',1,'']]], + ['previoussibling_3',['PreviousSibling',['../classtinyxml2_1_1_x_m_l_node.html#a92ee96b0d8628bc609f1d34e56d69dfa',1,'tinyxml2::XMLNode::PreviousSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c',1,'tinyxml2::XMLHandle::PreviousSibling()']]], + ['previoussiblingelement_4',['PreviousSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a9453cda5e970375a7b1b2099f8a7c40a',1,'tinyxml2::XMLNode::PreviousSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e',1,'tinyxml2::XMLHandle::PreviousSiblingElement()']]], + ['print_5',['Print',['../classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083',1,'tinyxml2::XMLDocument']]], + ['printerror_6',['PrintError',['../classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552',1,'tinyxml2::XMLDocument']]], + ['printspace_7',['PrintSpace',['../classtinyxml2_1_1_x_m_l_printer.html#a01148e2ebe6776e38c5a3e41bc5feb74',1,'tinyxml2::XMLPrinter']]], + ['pushattribute_8',['PushAttribute',['../classtinyxml2_1_1_x_m_l_printer.html#a9a4e2c9348b42e147629d5a99f4af3f0',1,'tinyxml2::XMLPrinter']]], + ['pushcomment_9',['PushComment',['../classtinyxml2_1_1_x_m_l_printer.html#afc8416814219591c2fd5656e0c233140',1,'tinyxml2::XMLPrinter']]], + ['pushheader_10',['PushHeader',['../classtinyxml2_1_1_x_m_l_printer.html#a178c608ce8476043d5d6513819cde903',1,'tinyxml2::XMLPrinter']]], + ['pushtext_11',['PushText',['../classtinyxml2_1_1_x_m_l_printer.html#a1cc16a9362df4332012cb13cff6441b3',1,'tinyxml2::XMLPrinter::PushText(const char *text, bool cdata=false)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3e0d4d78de25d4cf081009e1431cea7e',1,'tinyxml2::XMLPrinter::PushText(int value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a661fb50e7e0a4918d2d259cb0fae647e',1,'tinyxml2::XMLPrinter::PushText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a96b0a0bfe105154a0a6c37d725258f0a',1,'tinyxml2::XMLPrinter::PushText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a60b0a4cf57371ff8679c2c7556ccb708',1,'tinyxml2::XMLPrinter::PushText(uint64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a4390e5fa1ed05189a8686647345ab29f',1,'tinyxml2::XMLPrinter::PushText(bool value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a1dbb1390e829d0673af66b9cd1928bd7',1,'tinyxml2::XMLPrinter::PushText(float value)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa715302dfc09473c77c853cbd5431965',1,'tinyxml2::XMLPrinter::PushText(double value)']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_e.html b/Engine/lib/tinyxml2/docs/search/all_e.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_e.html rename to Engine/lib/tinyxml2/docs/search/all_e.html diff --git a/Engine/lib/tinyxml2/docs/search/all_e.js b/Engine/lib/tinyxml2/docs/search/all_e.js new file mode 100644 index 000000000..c090f7a16 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_e.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['queryattribute_0',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]], + ['queryboolattribute_1',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]], + ['querybooltext_2',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]], + ['queryboolvalue_3',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]], + ['querydoubleattribute_4',['QueryDoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c',1,'tinyxml2::XMLElement']]], + ['querydoubletext_5',['QueryDoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a684679c99bb036a25652744cec6c4d96',1,'tinyxml2::XMLElement']]], + ['querydoublevalue_6',['QueryDoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9',1,'tinyxml2::XMLAttribute']]], + ['queryfloatattribute_7',['QueryFloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5',1,'tinyxml2::XMLElement']]], + ['queryfloattext_8',['QueryFloatText',['../classtinyxml2_1_1_x_m_l_element.html#afa332afedd93210daa6d44b88eb11e29',1,'tinyxml2::XMLElement']]], + ['queryfloatvalue_9',['QueryFloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607',1,'tinyxml2::XMLAttribute']]], + ['queryint64attribute_10',['QueryInt64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8',1,'tinyxml2::XMLElement']]], + ['queryint64text_11',['QueryInt64Text',['../classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8',1,'tinyxml2::XMLElement']]], + ['queryint64value_12',['QueryInt64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2',1,'tinyxml2::XMLAttribute']]], + ['queryintattribute_13',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]], + ['queryinttext_14',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]], + ['queryintvalue_15',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]], + ['querystringattribute_16',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]], + ['queryunsigned64attribute_17',['QueryUnsigned64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a13dd590b5d3958ce2ed79844aacd9405',1,'tinyxml2::XMLElement']]], + ['queryunsigned64text_18',['QueryUnsigned64Text',['../classtinyxml2_1_1_x_m_l_element.html#ac2239b3bd172ad8f5b78d04d4236144b',1,'tinyxml2::XMLElement']]], + ['queryunsigned64value_19',['QueryUnsigned64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#af793c695e7ee65cf20b8010d38b1d157',1,'tinyxml2::XMLAttribute']]], + ['queryunsignedattribute_20',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]], + ['queryunsignedtext_21',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]], + ['queryunsignedvalue_22',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/all_f.html b/Engine/lib/tinyxml2/docs/search/all_f.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/all_f.html rename to Engine/lib/tinyxml2/docs/search/all_f.html diff --git a/Engine/lib/tinyxml2/docs/search/all_f.js b/Engine/lib/tinyxml2/docs/search/all_f.js new file mode 100644 index 000000000..404f651c5 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/all_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['read_20attributes_20and_20text_20information_0',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['rootelement_1',['RootElement',['../classtinyxml2_1_1_x_m_l_document.html#a0e6855771cbe87d839fb301d3646f5b8',1,'tinyxml2::XMLDocument']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/classes_0.html b/Engine/lib/tinyxml2/docs/search/classes_0.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/classes_0.html rename to Engine/lib/tinyxml2/docs/search/classes_0.html diff --git a/Engine/lib/tinyxml2/docs/search/classes_0.js b/Engine/lib/tinyxml2/docs/search/classes_0.js new file mode 100644 index 000000000..a377ed4e5 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/classes_0.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['xmlattribute_0',['XMLAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html',1,'tinyxml2']]], + ['xmlcomment_1',['XMLComment',['../classtinyxml2_1_1_x_m_l_comment.html',1,'tinyxml2']]], + ['xmlconsthandle_2',['XMLConstHandle',['../classtinyxml2_1_1_x_m_l_const_handle.html',1,'tinyxml2']]], + ['xmldeclaration_3',['XMLDeclaration',['../classtinyxml2_1_1_x_m_l_declaration.html',1,'tinyxml2']]], + ['xmldocument_4',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html',1,'tinyxml2']]], + ['xmlelement_5',['XMLElement',['../classtinyxml2_1_1_x_m_l_element.html',1,'tinyxml2']]], + ['xmlhandle_6',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html',1,'tinyxml2']]], + ['xmlnode_7',['XMLNode',['../classtinyxml2_1_1_x_m_l_node.html',1,'tinyxml2']]], + ['xmlprinter_8',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html',1,'tinyxml2']]], + ['xmltext_9',['XMLText',['../classtinyxml2_1_1_x_m_l_text.html',1,'tinyxml2']]], + ['xmlunknown_10',['XMLUnknown',['../classtinyxml2_1_1_x_m_l_unknown.html',1,'tinyxml2']]], + ['xmlvisitor_11',['XMLVisitor',['../classtinyxml2_1_1_x_m_l_visitor.html',1,'tinyxml2']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/close.png b/Engine/lib/tinyxml2/docs/search/close.png similarity index 100% rename from Engine/lib/tinyxml/docs/search/close.png rename to Engine/lib/tinyxml2/docs/search/close.png diff --git a/Engine/lib/tinyxml/docs/search/close.svg b/Engine/lib/tinyxml2/docs/search/close.svg similarity index 62% rename from Engine/lib/tinyxml/docs/search/close.svg rename to Engine/lib/tinyxml2/docs/search/close.svg index a933eea1a..337d6cc13 100644 --- a/Engine/lib/tinyxml/docs/search/close.svg +++ b/Engine/lib/tinyxml2/docs/search/close.svg @@ -1,27 +1,14 @@ + - - - - image/svg+xml - - - - - + + + + + + diff --git a/Engine/lib/tinyxml2/docs/search/mag_d.svg b/Engine/lib/tinyxml2/docs/search/mag_d.svg new file mode 100644 index 000000000..4122773f9 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/Engine/lib/tinyxml/docs/search/mag_sel.png b/Engine/lib/tinyxml2/docs/search/mag_sel.png similarity index 100% rename from Engine/lib/tinyxml/docs/search/mag_sel.png rename to Engine/lib/tinyxml2/docs/search/mag_sel.png diff --git a/Engine/lib/tinyxml2/docs/search/mag_sel.svg b/Engine/lib/tinyxml2/docs/search/mag_sel.svg new file mode 100644 index 000000000..553dba877 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/Engine/lib/tinyxml2/docs/search/mag_seld.svg b/Engine/lib/tinyxml2/docs/search/mag_seld.svg new file mode 100644 index 000000000..c906f84c8 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/Engine/lib/tinyxml/docs/search/nomatches.html b/Engine/lib/tinyxml2/docs/search/nomatches.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/nomatches.html rename to Engine/lib/tinyxml2/docs/search/nomatches.html diff --git a/Engine/lib/tinyxml/docs/search/pages_0.html b/Engine/lib/tinyxml2/docs/search/pages_0.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/pages_0.html rename to Engine/lib/tinyxml2/docs/search/pages_0.html diff --git a/Engine/lib/tinyxml2/docs/search/pages_0.js b/Engine/lib/tinyxml2/docs/search/pages_0.js new file mode 100644 index 000000000..5da8a5542 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['2_0',['TinyXML-2',['../index.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/pages_1.html b/Engine/lib/tinyxml2/docs/search/pages_1.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/pages_1.html rename to Engine/lib/tinyxml2/docs/search/pages_1.html diff --git a/Engine/lib/tinyxml2/docs/search/pages_1.js b/Engine/lib/tinyxml2/docs/search/pages_1.js new file mode 100644 index 000000000..f9619a20c --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['an_20xml_20file_0',['Load an XML File',['../_example_1.html',1,'']]], + ['an_20xml_20from_20char_20buffer_1',['Parse an XML from char buffer',['../_example_2.html',1,'']]], + ['and_20text_20information_2',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['attributes_20and_20text_20information_3',['Read attributes and text information.',['../_example_4.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/pages_2.html b/Engine/lib/tinyxml2/docs/search/pages_2.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/pages_2.html rename to Engine/lib/tinyxml2/docs/search/pages_2.html diff --git a/Engine/lib/tinyxml2/docs/search/pages_2.js b/Engine/lib/tinyxml2/docs/search/pages_2.js new file mode 100644 index 000000000..d3e9de97d --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['buffer_0',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/pages_3.html b/Engine/lib/tinyxml2/docs/search/pages_3.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/pages_3.html rename to Engine/lib/tinyxml2/docs/search/pages_3.html diff --git a/Engine/lib/tinyxml2/docs/search/pages_3.js b/Engine/lib/tinyxml2/docs/search/pages_3.js new file mode 100644 index 000000000..9a095ad24 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['char_20buffer_0',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/pages_4.html b/Engine/lib/tinyxml2/docs/search/pages_4.html similarity index 100% rename from Engine/lib/tinyxml/docs/search/pages_4.html rename to Engine/lib/tinyxml2/docs/search/pages_4.html diff --git a/Engine/lib/tinyxml2/docs/search/pages_4.js b/Engine/lib/tinyxml2/docs/search/pages_4.js new file mode 100644 index 000000000..568316d07 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['file_0',['Load an XML File',['../_example_1.html',1,'']]], + ['from_20char_20buffer_1',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_5.js b/Engine/lib/tinyxml2/docs/search/pages_5.js new file mode 100644 index 000000000..098aa655e --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['get_20information_20out_20of_20xml_0',['Get information out of XML',['../_example_3.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_6.js b/Engine/lib/tinyxml2/docs/search/pages_6.js new file mode 100644 index 000000000..ad78bd85c --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['information_0',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['information_20out_20of_20xml_1',['Get information out of XML',['../_example_3.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_7.js b/Engine/lib/tinyxml2/docs/search/pages_7.js new file mode 100644 index 000000000..8bd34d134 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['load_20an_20xml_20file_0',['Load an XML File',['../_example_1.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_8.js b/Engine/lib/tinyxml2/docs/search/pages_8.js new file mode 100644 index 000000000..9271697ac --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['of_20xml_0',['Get information out of XML',['../_example_3.html',1,'']]], + ['out_20of_20xml_1',['Get information out of XML',['../_example_3.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_9.js b/Engine/lib/tinyxml2/docs/search/pages_9.js new file mode 100644 index 000000000..e74d27f36 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parse_20an_20xml_20from_20char_20buffer_0',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_a.js b/Engine/lib/tinyxml2/docs/search/pages_a.js new file mode 100644 index 000000000..a65967821 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['read_20attributes_20and_20text_20information_0',['Read attributes and text information.',['../_example_4.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_b.js b/Engine/lib/tinyxml2/docs/search/pages_b.js new file mode 100644 index 000000000..e7e3775d9 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['text_20information_0',['Read attributes and text information.',['../_example_4.html',1,'']]], + ['tinyxml_202_1',['TinyXML-2',['../index.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml2/docs/search/pages_c.js b/Engine/lib/tinyxml2/docs/search/pages_c.js new file mode 100644 index 000000000..e0ed4f36b --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/pages_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['xml_0',['Get information out of XML',['../_example_3.html',1,'']]], + ['xml_20file_1',['Load an XML File',['../_example_1.html',1,'']]], + ['xml_20from_20char_20buffer_2',['Parse an XML from char buffer',['../_example_2.html',1,'']]] +]; diff --git a/Engine/lib/tinyxml/docs/search/search.css b/Engine/lib/tinyxml2/docs/search/search.css similarity index 63% rename from Engine/lib/tinyxml/docs/search/search.css rename to Engine/lib/tinyxml2/docs/search/search.css index 9074198f8..19f76f9d5 100644 --- a/Engine/lib/tinyxml/docs/search/search.css +++ b/Engine/lib/tinyxml2/docs/search/search.css @@ -1,10 +1,33 @@ -/*---------------- Search Box */ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} #MSearchBox { + display: inline-block; white-space : nowrap; - background: white; + background: var(--search-background-color); border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; + box-shadow: var(--search-box-shadow); z-index: 102; } @@ -17,28 +40,47 @@ #MSearchSelect { display: inline-block; vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; } +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + #MSearchField { display: inline-block; vertical-align: middle; width: 7.5em; - height: 1.1em; + height: 19px; margin: 0 0.15em; padding: 0; line-height: 1em; border:none; - color: #909090; + color: var(--search-foreground-color); outline: none; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); -webkit-border-radius: 0px; border-radius: 0px; background: none; } +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} #MSearchBox .right { display: inline-block; @@ -59,23 +101,15 @@ } #MSearchCloseImg { - height: 1.4em; padding: 0.3em; margin: 0; } .MSearchBoxActive #MSearchField { - color: #000000; + color: var(--search-active-color); } -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} + /*---------------- Search filter selection */ @@ -83,8 +117,8 @@ display: none; position: absolute; left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); z-index: 10001; padding-top: 4px; padding-bottom: 4px; @@ -97,7 +131,7 @@ } .SelectItem { - font: 8pt Arial, Verdana, sans-serif; + font: 8pt var(--font-family-search); padding-left: 2px; padding-right: 12px; border: 0px; @@ -105,7 +139,7 @@ span.SelectionMark { margin-right: 4px; - font-family: monospace; + font-family: var(--font-family-monospace); outline-style: none; text-decoration: none; } @@ -113,7 +147,7 @@ span.SelectionMark { a.SelectItem { display: block; outline-style: none; - color: #000000; + color: var(--search-filter-foreground-color); text-decoration: none; padding-left: 6px; padding-right: 12px; @@ -121,14 +155,14 @@ a.SelectItem { a.SelectItem:focus, a.SelectItem:active { - color: #000000; + color: var(--search-filter-foreground-color); outline-style: none; text-decoration: none; } a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); outline-style: none; text-decoration: none; cursor: pointer; @@ -138,7 +172,7 @@ a.SelectItem:hover { /*---------------- Search results window */ iframe#MSearchResults { - width: 60ex; + /*width: 60ex;*/ height: 15em; } @@ -146,9 +180,12 @@ iframe#MSearchResults { display: none; position: absolute; left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); z-index:10000; + width: 300px; + height: 400px; + overflow: auto; } /* ----------------------------------- */ @@ -156,7 +193,6 @@ iframe#MSearchResults { #SRIndex { clear:both; - padding-bottom: 15px; } .SREntry { @@ -169,8 +205,9 @@ iframe#MSearchResults { padding: 1px 5px; } -body.SRPage { +div.SRPage { margin: 5px 2px; + background-color: var(--search-results-background-color); } .SRChildren { @@ -182,17 +219,18 @@ body.SRPage { } .SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); text-decoration: none; outline: none; } a.SRScope { display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; text-decoration: none; outline: none; } @@ -204,14 +242,14 @@ a.SRScope:focus, a.SRScope:active { span.SRScope { padding-left: 4px; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); } .SRPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); } .SRResult { @@ -225,14 +263,10 @@ div.searchresults { /*---------------- External search page results */ -.searchresult { - background-color: #F0F3F8; -} - .pages b { color: white; padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); + background-image: var(--nav-gradient-active-image-parent); background-repeat: repeat-x; text-shadow: 0 1px 1px #000000; } diff --git a/Engine/lib/tinyxml2/docs/search/search.js b/Engine/lib/tinyxml2/docs/search/search.js new file mode 100644 index 000000000..666af01e5 --- /dev/null +++ b/Engine/lib/tinyxml2/docs/search/search.js @@ -0,0 +1,694 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; cli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/Engine/lib/tinyxml2/docs/tinyxml2_8h_source.html b/Engine/lib/tinyxml2/docs/tinyxml2_8h_source.html new file mode 100644 index 000000000..553613e6e --- /dev/null +++ b/Engine/lib/tinyxml2/docs/tinyxml2_8h_source.html @@ -0,0 +1,2166 @@ + + + + + + + +TinyXML-2: tinyxml2.h Source File + + + + + + + + + + + +
    +
    + + + + + + +
    +
    TinyXML-2 10.0.0 +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tinyxml2.h
    +
    +
    +
    1/*
    +
    2Original code by Lee Thomason (www.grinninglizard.com)
    +
    3
    +
    4This software is provided 'as-is', without any express or implied
    +
    5warranty. In no event will the authors be held liable for any
    +
    6damages arising from the use of this software.
    +
    7
    +
    8Permission is granted to anyone to use this software for any
    +
    9purpose, including commercial applications, and to alter it and
    +
    10redistribute it freely, subject to the following restrictions:
    +
    11
    +
    121. The origin of this software must not be misrepresented; you must
    +
    13not claim that you wrote the original software. If you use this
    +
    14software in a product, an acknowledgment in the product documentation
    +
    15would be appreciated but is not required.
    +
    16
    +
    172. Altered source versions must be plainly marked as such, and
    +
    18must not be misrepresented as being the original software.
    +
    19
    +
    203. This notice may not be removed or altered from any source
    +
    21distribution.
    +
    22*/
    +
    23
    +
    24#ifndef TINYXML2_INCLUDED
    +
    25#define TINYXML2_INCLUDED
    +
    26
    +
    27#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)
    +
    28# include <ctype.h>
    +
    29# include <limits.h>
    +
    30# include <stdio.h>
    +
    31# include <stdlib.h>
    +
    32# include <string.h>
    +
    33# if defined(__PS3__)
    +
    34# include <stddef.h>
    +
    35# endif
    +
    36#else
    +
    37# include <cctype>
    +
    38# include <climits>
    +
    39# include <cstdio>
    +
    40# include <cstdlib>
    +
    41# include <cstring>
    +
    42#endif
    +
    43#include <stdint.h>
    +
    44
    +
    45/*
    +
    46 gcc:
    +
    47 g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
    +
    48
    +
    49 Formatting, Artistic Style:
    +
    50 AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h
    +
    51*/
    +
    52
    +
    53#if defined( _DEBUG ) || defined (__DEBUG__)
    +
    54# ifndef TINYXML2_DEBUG
    +
    55# define TINYXML2_DEBUG
    +
    56# endif
    +
    57#endif
    +
    58
    +
    59#ifdef _MSC_VER
    +
    60# pragma warning(push)
    +
    61# pragma warning(disable: 4251)
    +
    62#endif
    +
    63
    +
    64#ifdef _MSC_VER
    +
    65# ifdef TINYXML2_EXPORT
    +
    66# define TINYXML2_LIB __declspec(dllexport)
    +
    67# elif defined(TINYXML2_IMPORT)
    +
    68# define TINYXML2_LIB __declspec(dllimport)
    +
    69# else
    +
    70# define TINYXML2_LIB
    +
    71# endif
    +
    72#elif __GNUC__ >= 4
    +
    73# define TINYXML2_LIB __attribute__((visibility("default")))
    +
    74#else
    +
    75# define TINYXML2_LIB
    +
    76#endif
    +
    77
    +
    78
    +
    79#if !defined(TIXMLASSERT)
    +
    80#if defined(TINYXML2_DEBUG)
    +
    81# if defined(_MSC_VER)
    +
    82# // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like
    +
    83# define TIXMLASSERT( x ) do { if ( !((void)0,(x))) { __debugbreak(); } } while(false)
    +
    84# elif defined (ANDROID_NDK)
    +
    85# include <android/log.h>
    +
    86# define TIXMLASSERT( x ) do { if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); } } while(false)
    +
    87# else
    +
    88# include <assert.h>
    +
    89# define TIXMLASSERT assert
    +
    90# endif
    +
    91#else
    +
    92# define TIXMLASSERT( x ) do {} while(false)
    +
    93#endif
    +
    94#endif
    +
    95
    +
    96/* Versioning, past 1.0.14:
    +
    97 http://semver.org/
    +
    98*/
    +
    99static const int TIXML2_MAJOR_VERSION = 10;
    +
    100static const int TIXML2_MINOR_VERSION = 0;
    +
    101static const int TIXML2_PATCH_VERSION = 0;
    +
    102
    +
    103#define TINYXML2_MAJOR_VERSION 10
    +
    104#define TINYXML2_MINOR_VERSION 0
    +
    105#define TINYXML2_PATCH_VERSION 0
    +
    106
    +
    107// A fixed element depth limit is problematic. There needs to be a
    +
    108// limit to avoid a stack overflow. However, that limit varies per
    +
    109// system, and the capacity of the stack. On the other hand, it's a trivial
    +
    110// attack that can result from ill, malicious, or even correctly formed XML,
    +
    111// so there needs to be a limit in place.
    +
    112static const int TINYXML2_MAX_ELEMENT_DEPTH = 500;
    +
    113
    +
    114namespace tinyxml2
    +
    115{
    +
    116class XMLDocument;
    +
    117class XMLElement;
    +
    118class XMLAttribute;
    +
    119class XMLComment;
    +
    120class XMLText;
    +
    121class XMLDeclaration;
    +
    122class XMLUnknown;
    +
    123class XMLPrinter;
    +
    124
    +
    125/*
    +
    126 A class that wraps strings. Normally stores the start and end
    +
    127 pointers into the XML file itself, and will apply normalization
    +
    128 and entity translation if actually read. Can also store (and memory
    +
    129 manage) a traditional char[]
    +
    130
    +
    131 Isn't clear why TINYXML2_LIB is needed; but seems to fix #719
    +
    132*/
    +
    133class TINYXML2_LIB StrPair
    +
    134{
    +
    135public:
    +
    136 enum Mode {
    +
    137 NEEDS_ENTITY_PROCESSING = 0x01,
    +
    138 NEEDS_NEWLINE_NORMALIZATION = 0x02,
    +
    139 NEEDS_WHITESPACE_COLLAPSING = 0x04,
    +
    140
    +
    141 TEXT_ELEMENT = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,
    +
    142 TEXT_ELEMENT_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,
    +
    143 ATTRIBUTE_NAME = 0,
    +
    144 ATTRIBUTE_VALUE = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,
    +
    145 ATTRIBUTE_VALUE_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,
    +
    146 COMMENT = NEEDS_NEWLINE_NORMALIZATION
    +
    147 };
    +
    148
    +
    149 StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}
    +
    150 ~StrPair();
    +
    151
    +
    152 void Set( char* start, char* end, int flags ) {
    +
    153 TIXMLASSERT( start );
    +
    154 TIXMLASSERT( end );
    +
    155 Reset();
    +
    156 _start = start;
    +
    157 _end = end;
    +
    158 _flags = flags | NEEDS_FLUSH;
    +
    159 }
    +
    160
    +
    161 const char* GetStr();
    +
    162
    +
    163 bool Empty() const {
    +
    164 return _start == _end;
    +
    165 }
    +
    166
    +
    167 void SetInternedStr( const char* str ) {
    +
    168 Reset();
    +
    169 _start = const_cast<char*>(str);
    +
    170 }
    +
    171
    +
    172 void SetStr( const char* str, int flags=0 );
    +
    173
    +
    174 char* ParseText( char* in, const char* endTag, int strFlags, int* curLineNumPtr );
    +
    175 char* ParseName( char* in );
    +
    176
    +
    177 void TransferTo( StrPair* other );
    +
    178 void Reset();
    +
    179
    +
    180private:
    +
    181 void CollapseWhitespace();
    +
    182
    +
    183 enum {
    +
    184 NEEDS_FLUSH = 0x100,
    +
    185 NEEDS_DELETE = 0x200
    +
    186 };
    +
    187
    +
    188 int _flags;
    +
    189 char* _start;
    +
    190 char* _end;
    +
    191
    +
    192 StrPair( const StrPair& other ); // not supported
    +
    193 void operator=( const StrPair& other ); // not supported, use TransferTo()
    +
    194};
    +
    195
    +
    196
    +
    197/*
    +
    198 A dynamic array of Plain Old Data. Doesn't support constructors, etc.
    +
    199 Has a small initial memory pool, so that low or no usage will not
    +
    200 cause a call to new/delete
    +
    201*/
    +
    202template <class T, int INITIAL_SIZE>
    +
    203class DynArray
    +
    204{
    +
    205public:
    +
    206 DynArray() :
    +
    207 _mem( _pool ),
    +
    208 _allocated( INITIAL_SIZE ),
    +
    209 _size( 0 )
    +
    210 {
    +
    211 }
    +
    212
    +
    213 ~DynArray() {
    +
    214 if ( _mem != _pool ) {
    +
    215 delete [] _mem;
    +
    216 }
    +
    217 }
    +
    218
    +
    219 void Clear() {
    +
    220 _size = 0;
    +
    221 }
    +
    222
    +
    223 void Push( T t ) {
    +
    224 TIXMLASSERT( _size < INT_MAX );
    +
    225 EnsureCapacity( _size+1 );
    +
    226 _mem[_size] = t;
    +
    227 ++_size;
    +
    228 }
    +
    229
    +
    230 T* PushArr( int count ) {
    +
    231 TIXMLASSERT( count >= 0 );
    +
    232 TIXMLASSERT( _size <= INT_MAX - count );
    +
    233 EnsureCapacity( _size+count );
    +
    234 T* ret = &_mem[_size];
    +
    235 _size += count;
    +
    236 return ret;
    +
    237 }
    +
    238
    +
    239 T Pop() {
    +
    240 TIXMLASSERT( _size > 0 );
    +
    241 --_size;
    +
    242 return _mem[_size];
    +
    243 }
    +
    244
    +
    245 void PopArr( int count ) {
    +
    246 TIXMLASSERT( _size >= count );
    +
    247 _size -= count;
    +
    248 }
    +
    249
    +
    250 bool Empty() const {
    +
    251 return _size == 0;
    +
    252 }
    +
    253
    +
    254 T& operator[](int i) {
    +
    255 TIXMLASSERT( i>= 0 && i < _size );
    +
    256 return _mem[i];
    +
    257 }
    +
    258
    +
    259 const T& operator[](int i) const {
    +
    260 TIXMLASSERT( i>= 0 && i < _size );
    +
    261 return _mem[i];
    +
    262 }
    +
    263
    +
    264 const T& PeekTop() const {
    +
    265 TIXMLASSERT( _size > 0 );
    +
    266 return _mem[ _size - 1];
    +
    267 }
    +
    268
    +
    269 int Size() const {
    +
    270 TIXMLASSERT( _size >= 0 );
    +
    271 return _size;
    +
    272 }
    +
    273
    +
    274 int Capacity() const {
    +
    275 TIXMLASSERT( _allocated >= INITIAL_SIZE );
    +
    276 return _allocated;
    +
    277 }
    +
    278
    +
    279 void SwapRemove(int i) {
    +
    280 TIXMLASSERT(i >= 0 && i < _size);
    +
    281 TIXMLASSERT(_size > 0);
    +
    282 _mem[i] = _mem[_size - 1];
    +
    283 --_size;
    +
    284 }
    +
    285
    +
    286 const T* Mem() const {
    +
    287 TIXMLASSERT( _mem );
    +
    288 return _mem;
    +
    289 }
    +
    290
    +
    291 T* Mem() {
    +
    292 TIXMLASSERT( _mem );
    +
    293 return _mem;
    +
    294 }
    +
    295
    +
    296private:
    +
    297 DynArray( const DynArray& ); // not supported
    +
    298 void operator=( const DynArray& ); // not supported
    +
    299
    +
    300 void EnsureCapacity( int cap ) {
    +
    301 TIXMLASSERT( cap > 0 );
    +
    302 if ( cap > _allocated ) {
    +
    303 TIXMLASSERT( cap <= INT_MAX / 2 );
    +
    304 const int newAllocated = cap * 2;
    +
    305 T* newMem = new T[static_cast<unsigned int>(newAllocated)];
    +
    306 TIXMLASSERT( newAllocated >= _size );
    +
    307 memcpy( newMem, _mem, sizeof(T)*static_cast<size_t>(_size) ); // warning: not using constructors, only works for PODs
    +
    308 if ( _mem != _pool ) {
    +
    309 delete [] _mem;
    +
    310 }
    +
    311 _mem = newMem;
    +
    312 _allocated = newAllocated;
    +
    313 }
    +
    314 }
    +
    315
    +
    316 T* _mem;
    +
    317 T _pool[static_cast<size_t>(INITIAL_SIZE)];
    +
    318 int _allocated; // objects allocated
    +
    319 int _size; // number objects in use
    +
    320};
    +
    321
    +
    322
    +
    323/*
    +
    324 Parent virtual class of a pool for fast allocation
    +
    325 and deallocation of objects.
    +
    326*/
    +
    327class MemPool
    +
    328{
    +
    329public:
    +
    330 MemPool() {}
    +
    331 virtual ~MemPool() {}
    +
    332
    +
    333 virtual int ItemSize() const = 0;
    +
    334 virtual void* Alloc() = 0;
    +
    335 virtual void Free( void* ) = 0;
    +
    336 virtual void SetTracked() = 0;
    +
    337};
    +
    338
    +
    339
    +
    340/*
    +
    341 Template child class to create pools of the correct type.
    +
    342*/
    +
    343template< int ITEM_SIZE >
    +
    344class MemPoolT : public MemPool
    +
    345{
    +
    346public:
    +
    347 MemPoolT() : _blockPtrs(), _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0) {}
    +
    348 ~MemPoolT() {
    +
    349 MemPoolT< ITEM_SIZE >::Clear();
    +
    350 }
    +
    351
    +
    352 void Clear() {
    +
    353 // Delete the blocks.
    +
    354 while( !_blockPtrs.Empty()) {
    +
    355 Block* lastBlock = _blockPtrs.Pop();
    +
    356 delete lastBlock;
    +
    357 }
    +
    358 _root = 0;
    +
    359 _currentAllocs = 0;
    +
    360 _nAllocs = 0;
    +
    361 _maxAllocs = 0;
    +
    362 _nUntracked = 0;
    +
    363 }
    +
    364
    +
    365 virtual int ItemSize() const override{
    +
    366 return ITEM_SIZE;
    +
    367 }
    +
    368 int CurrentAllocs() const {
    +
    369 return _currentAllocs;
    +
    370 }
    +
    371
    +
    372 virtual void* Alloc() override{
    +
    373 if ( !_root ) {
    +
    374 // Need a new block.
    +
    375 Block* block = new Block;
    +
    376 _blockPtrs.Push( block );
    +
    377
    +
    378 Item* blockItems = block->items;
    +
    379 for( int i = 0; i < ITEMS_PER_BLOCK - 1; ++i ) {
    +
    380 blockItems[i].next = &(blockItems[i + 1]);
    +
    381 }
    +
    382 blockItems[ITEMS_PER_BLOCK - 1].next = 0;
    +
    383 _root = blockItems;
    +
    384 }
    +
    385 Item* const result = _root;
    +
    386 TIXMLASSERT( result != 0 );
    +
    387 _root = _root->next;
    +
    388
    +
    389 ++_currentAllocs;
    +
    390 if ( _currentAllocs > _maxAllocs ) {
    +
    391 _maxAllocs = _currentAllocs;
    +
    392 }
    +
    393 ++_nAllocs;
    +
    394 ++_nUntracked;
    +
    395 return result;
    +
    396 }
    +
    397
    +
    398 virtual void Free( void* mem ) override {
    +
    399 if ( !mem ) {
    +
    400 return;
    +
    401 }
    +
    402 --_currentAllocs;
    +
    403 Item* item = static_cast<Item*>( mem );
    +
    404#ifdef TINYXML2_DEBUG
    +
    405 memset( item, 0xfe, sizeof( *item ) );
    +
    406#endif
    +
    407 item->next = _root;
    +
    408 _root = item;
    +
    409 }
    +
    410 void Trace( const char* name ) {
    +
    411 printf( "Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n",
    +
    412 name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,
    +
    413 ITEM_SIZE, _nAllocs, _blockPtrs.Size() );
    +
    414 }
    +
    415
    +
    416 void SetTracked() override {
    +
    417 --_nUntracked;
    +
    418 }
    +
    419
    +
    420 int Untracked() const {
    +
    421 return _nUntracked;
    +
    422 }
    +
    423
    +
    424 // This number is perf sensitive. 4k seems like a good tradeoff on my machine.
    +
    425 // The test file is large, 170k.
    +
    426 // Release: VS2010 gcc(no opt)
    +
    427 // 1k: 4000
    +
    428 // 2k: 4000
    +
    429 // 4k: 3900 21000
    +
    430 // 16k: 5200
    +
    431 // 32k: 4300
    +
    432 // 64k: 4000 21000
    +
    433 // Declared public because some compilers do not accept to use ITEMS_PER_BLOCK
    +
    434 // in private part if ITEMS_PER_BLOCK is private
    +
    435 enum { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };
    +
    436
    +
    437private:
    +
    438 MemPoolT( const MemPoolT& ); // not supported
    +
    439 void operator=( const MemPoolT& ); // not supported
    +
    440
    +
    441 union Item {
    +
    442 Item* next;
    +
    443 char itemData[static_cast<size_t>(ITEM_SIZE)];
    +
    444 };
    +
    445 struct Block {
    +
    446 Item items[ITEMS_PER_BLOCK];
    +
    447 };
    +
    448 DynArray< Block*, 10 > _blockPtrs;
    +
    449 Item* _root;
    +
    450
    +
    451 int _currentAllocs;
    +
    452 int _nAllocs;
    +
    453 int _maxAllocs;
    +
    454 int _nUntracked;
    +
    455};
    +
    456
    +
    457
    +
    458
    +
    +
    478class TINYXML2_LIB XMLVisitor
    +
    479{
    +
    480public:
    +
    481 virtual ~XMLVisitor() {}
    +
    482
    +
    +
    484 virtual bool VisitEnter( const XMLDocument& /*doc*/ ) {
    +
    485 return true;
    +
    486 }
    +
    +
    +
    488 virtual bool VisitExit( const XMLDocument& /*doc*/ ) {
    +
    489 return true;
    +
    490 }
    +
    +
    491
    +
    +
    493 virtual bool VisitEnter( const XMLElement& /*element*/, const XMLAttribute* /*firstAttribute*/ ) {
    +
    494 return true;
    +
    495 }
    +
    +
    +
    497 virtual bool VisitExit( const XMLElement& /*element*/ ) {
    +
    498 return true;
    +
    499 }
    +
    +
    500
    +
    +
    502 virtual bool Visit( const XMLDeclaration& /*declaration*/ ) {
    +
    503 return true;
    +
    504 }
    +
    +
    +
    506 virtual bool Visit( const XMLText& /*text*/ ) {
    +
    507 return true;
    +
    508 }
    +
    +
    +
    510 virtual bool Visit( const XMLComment& /*comment*/ ) {
    +
    511 return true;
    +
    512 }
    +
    +
    +
    514 virtual bool Visit( const XMLUnknown& /*unknown*/ ) {
    +
    515 return true;
    +
    516 }
    +
    +
    517};
    +
    +
    518
    +
    519// WARNING: must match XMLDocument::_errorNames[]
    +
    520enum XMLError {
    +
    521 XML_SUCCESS = 0,
    +
    522 XML_NO_ATTRIBUTE,
    +
    523 XML_WRONG_ATTRIBUTE_TYPE,
    +
    524 XML_ERROR_FILE_NOT_FOUND,
    +
    525 XML_ERROR_FILE_COULD_NOT_BE_OPENED,
    +
    526 XML_ERROR_FILE_READ_ERROR,
    +
    527 XML_ERROR_PARSING_ELEMENT,
    +
    528 XML_ERROR_PARSING_ATTRIBUTE,
    +
    529 XML_ERROR_PARSING_TEXT,
    +
    530 XML_ERROR_PARSING_CDATA,
    +
    531 XML_ERROR_PARSING_COMMENT,
    +
    532 XML_ERROR_PARSING_DECLARATION,
    +
    533 XML_ERROR_PARSING_UNKNOWN,
    +
    534 XML_ERROR_EMPTY_DOCUMENT,
    +
    535 XML_ERROR_MISMATCHED_ELEMENT,
    +
    536 XML_ERROR_PARSING,
    +
    537 XML_CAN_NOT_CONVERT_TEXT,
    +
    538 XML_NO_TEXT_NODE,
    +
    539 XML_ELEMENT_DEPTH_EXCEEDED,
    +
    540
    +
    541 XML_ERROR_COUNT
    +
    542};
    +
    543
    +
    544
    +
    545/*
    +
    546 Utility functionality.
    +
    547*/
    +
    548class TINYXML2_LIB XMLUtil
    +
    549{
    +
    550public:
    +
    551 static const char* SkipWhiteSpace( const char* p, int* curLineNumPtr ) {
    +
    552 TIXMLASSERT( p );
    +
    553
    +
    554 while( IsWhiteSpace(*p) ) {
    +
    555 if (curLineNumPtr && *p == '\n') {
    +
    556 ++(*curLineNumPtr);
    +
    557 }
    +
    558 ++p;
    +
    559 }
    +
    560 TIXMLASSERT( p );
    +
    561 return p;
    +
    562 }
    +
    563 static char* SkipWhiteSpace( char* const p, int* curLineNumPtr ) {
    +
    564 return const_cast<char*>( SkipWhiteSpace( const_cast<const char*>(p), curLineNumPtr ) );
    +
    565 }
    +
    566
    +
    567 // Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't
    +
    568 // correct, but simple, and usually works.
    +
    569 static bool IsWhiteSpace( char p ) {
    +
    570 return !IsUTF8Continuation(p) && isspace( static_cast<unsigned char>(p) );
    +
    571 }
    +
    572
    +
    573 inline static bool IsNameStartChar( unsigned char ch ) {
    +
    574 if ( ch >= 128 ) {
    +
    575 // This is a heuristic guess in attempt to not implement Unicode-aware isalpha()
    +
    576 return true;
    +
    577 }
    +
    578 if ( isalpha( ch ) ) {
    +
    579 return true;
    +
    580 }
    +
    581 return ch == ':' || ch == '_';
    +
    582 }
    +
    583
    +
    584 inline static bool IsNameChar( unsigned char ch ) {
    +
    585 return IsNameStartChar( ch )
    +
    586 || isdigit( ch )
    +
    587 || ch == '.'
    +
    588 || ch == '-';
    +
    589 }
    +
    590
    +
    591 inline static bool IsPrefixHex( const char* p) {
    +
    592 p = SkipWhiteSpace(p, 0);
    +
    593 return p && *p == '0' && ( *(p + 1) == 'x' || *(p + 1) == 'X');
    +
    594 }
    +
    595
    +
    596 inline static bool StringEqual( const char* p, const char* q, int nChar=INT_MAX ) {
    +
    597 if ( p == q ) {
    +
    598 return true;
    +
    599 }
    +
    600 TIXMLASSERT( p );
    +
    601 TIXMLASSERT( q );
    +
    602 TIXMLASSERT( nChar >= 0 );
    +
    603 return strncmp( p, q, static_cast<size_t>(nChar) ) == 0;
    +
    604 }
    +
    605
    +
    606 inline static bool IsUTF8Continuation( const char p ) {
    +
    607 return ( p & 0x80 ) != 0;
    +
    608 }
    +
    609
    +
    610 static const char* ReadBOM( const char* p, bool* hasBOM );
    +
    611 // p is the starting location,
    +
    612 // the UTF-8 value of the entity will be placed in value, and length filled in.
    +
    613 static const char* GetCharacterRef( const char* p, char* value, int* length );
    +
    614 static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length );
    +
    615
    +
    616 // converts primitive types to strings
    +
    617 static void ToStr( int v, char* buffer, int bufferSize );
    +
    618 static void ToStr( unsigned v, char* buffer, int bufferSize );
    +
    619 static void ToStr( bool v, char* buffer, int bufferSize );
    +
    620 static void ToStr( float v, char* buffer, int bufferSize );
    +
    621 static void ToStr( double v, char* buffer, int bufferSize );
    +
    622 static void ToStr(int64_t v, char* buffer, int bufferSize);
    +
    623 static void ToStr(uint64_t v, char* buffer, int bufferSize);
    +
    624
    +
    625 // converts strings to primitive types
    +
    626 static bool ToInt( const char* str, int* value );
    +
    627 static bool ToUnsigned( const char* str, unsigned* value );
    +
    628 static bool ToBool( const char* str, bool* value );
    +
    629 static bool ToFloat( const char* str, float* value );
    +
    630 static bool ToDouble( const char* str, double* value );
    +
    631 static bool ToInt64(const char* str, int64_t* value);
    +
    632 static bool ToUnsigned64(const char* str, uint64_t* value);
    +
    633 // Changes what is serialized for a boolean value.
    +
    634 // Default to "true" and "false". Shouldn't be changed
    +
    635 // unless you have a special testing or compatibility need.
    +
    636 // Be careful: static, global, & not thread safe.
    +
    637 // Be sure to set static const memory as parameters.
    +
    638 static void SetBoolSerialization(const char* writeTrue, const char* writeFalse);
    +
    639
    +
    640private:
    +
    641 static const char* writeBoolTrue;
    +
    642 static const char* writeBoolFalse;
    +
    643};
    +
    644
    +
    645
    +
    +
    671class TINYXML2_LIB XMLNode
    +
    672{
    +
    673 friend class XMLDocument;
    +
    674 friend class XMLElement;
    +
    675public:
    +
    676
    +
    +
    678 const XMLDocument* GetDocument() const {
    +
    679 TIXMLASSERT( _document );
    +
    680 return _document;
    +
    681 }
    +
    +
    + +
    684 TIXMLASSERT( _document );
    +
    685 return _document;
    +
    686 }
    +
    +
    687
    +
    + +
    690 return 0;
    +
    691 }
    +
    +
    +
    693 virtual XMLText* ToText() {
    +
    694 return 0;
    +
    695 }
    +
    +
    + +
    698 return 0;
    +
    699 }
    +
    +
    + +
    702 return 0;
    +
    703 }
    +
    +
    + +
    706 return 0;
    +
    707 }
    +
    +
    + +
    710 return 0;
    +
    711 }
    +
    +
    712
    +
    713 virtual const XMLElement* ToElement() const {
    +
    714 return 0;
    +
    715 }
    +
    716 virtual const XMLText* ToText() const {
    +
    717 return 0;
    +
    718 }
    +
    719 virtual const XMLComment* ToComment() const {
    +
    720 return 0;
    +
    721 }
    +
    722 virtual const XMLDocument* ToDocument() const {
    +
    723 return 0;
    +
    724 }
    +
    725 virtual const XMLDeclaration* ToDeclaration() const {
    +
    726 return 0;
    +
    727 }
    +
    728 virtual const XMLUnknown* ToUnknown() const {
    +
    729 return 0;
    +
    730 }
    +
    731
    +
    732 // ChildElementCount was originally suggested by msteiger on the sourceforge page for TinyXML and modified by KB1SPH for TinyXML-2.
    +
    733
    +
    734 int ChildElementCount(const char *value) const;
    +
    735
    +
    736 int ChildElementCount() const;
    +
    737
    +
    747 const char* Value() const;
    +
    748
    +
    752 void SetValue( const char* val, bool staticMem=false );
    +
    753
    +
    755 int GetLineNum() const { return _parseLineNum; }
    +
    756
    +
    +
    758 const XMLNode* Parent() const {
    +
    759 return _parent;
    +
    760 }
    +
    +
    761
    +
    762 XMLNode* Parent() {
    +
    763 return _parent;
    +
    764 }
    +
    765
    +
    +
    767 bool NoChildren() const {
    +
    768 return !_firstChild;
    +
    769 }
    +
    +
    770
    +
    +
    772 const XMLNode* FirstChild() const {
    +
    773 return _firstChild;
    +
    774 }
    +
    +
    775
    +
    776 XMLNode* FirstChild() {
    +
    777 return _firstChild;
    +
    778 }
    +
    779
    +
    783 const XMLElement* FirstChildElement( const char* name = 0 ) const;
    +
    784
    +
    785 XMLElement* FirstChildElement( const char* name = 0 ) {
    +
    786 return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->FirstChildElement( name ));
    +
    787 }
    +
    788
    +
    +
    790 const XMLNode* LastChild() const {
    +
    791 return _lastChild;
    +
    792 }
    +
    +
    793
    +
    794 XMLNode* LastChild() {
    +
    795 return _lastChild;
    +
    796 }
    +
    797
    +
    801 const XMLElement* LastChildElement( const char* name = 0 ) const;
    +
    802
    +
    803 XMLElement* LastChildElement( const char* name = 0 ) {
    +
    804 return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->LastChildElement(name) );
    +
    805 }
    +
    806
    +
    +
    808 const XMLNode* PreviousSibling() const {
    +
    809 return _prev;
    +
    810 }
    +
    +
    811
    +
    812 XMLNode* PreviousSibling() {
    +
    813 return _prev;
    +
    814 }
    +
    815
    +
    817 const XMLElement* PreviousSiblingElement( const char* name = 0 ) const ;
    +
    818
    +
    819 XMLElement* PreviousSiblingElement( const char* name = 0 ) {
    +
    820 return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->PreviousSiblingElement( name ) );
    +
    821 }
    +
    822
    +
    +
    824 const XMLNode* NextSibling() const {
    +
    825 return _next;
    +
    826 }
    +
    +
    827
    +
    828 XMLNode* NextSibling() {
    +
    829 return _next;
    +
    830 }
    +
    831
    +
    833 const XMLElement* NextSiblingElement( const char* name = 0 ) const;
    +
    834
    +
    835 XMLElement* NextSiblingElement( const char* name = 0 ) {
    +
    836 return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->NextSiblingElement( name ) );
    +
    837 }
    +
    838
    + +
    847
    +
    848 XMLNode* LinkEndChild( XMLNode* addThis ) {
    +
    849 return InsertEndChild( addThis );
    +
    850 }
    + +
    867 XMLNode* InsertAfterChild( XMLNode* afterThis, XMLNode* addThis );
    +
    868
    + +
    873
    +
    877 void DeleteChild( XMLNode* node );
    +
    878
    +
    888 virtual XMLNode* ShallowClone( XMLDocument* document ) const = 0;
    +
    889
    +
    903 XMLNode* DeepClone( XMLDocument* target ) const;
    +
    904
    +
    911 virtual bool ShallowEqual( const XMLNode* compare ) const = 0;
    +
    912
    +
    935 virtual bool Accept( XMLVisitor* visitor ) const = 0;
    +
    936
    +
    942 void SetUserData(void* userData) { _userData = userData; }
    +
    943
    +
    949 void* GetUserData() const { return _userData; }
    +
    950
    +
    951protected:
    +
    952 explicit XMLNode( XMLDocument* );
    +
    953 virtual ~XMLNode();
    +
    954
    +
    955 virtual char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr);
    +
    956
    +
    957 XMLDocument* _document;
    +
    958 XMLNode* _parent;
    +
    959 mutable StrPair _value;
    +
    960 int _parseLineNum;
    +
    961
    +
    962 XMLNode* _firstChild;
    +
    963 XMLNode* _lastChild;
    +
    964
    +
    965 XMLNode* _prev;
    +
    966 XMLNode* _next;
    +
    967
    +
    968 void* _userData;
    +
    969
    +
    970private:
    +
    971 MemPool* _memPool;
    +
    972 void Unlink( XMLNode* child );
    +
    973 static void DeleteNode( XMLNode* node );
    +
    974 void InsertChildPreamble( XMLNode* insertThis ) const;
    +
    975 const XMLElement* ToElementWithName( const char* name ) const;
    +
    976
    +
    977 XMLNode( const XMLNode& ); // not supported
    +
    978 XMLNode& operator=( const XMLNode& ); // not supported
    +
    979};
    +
    +
    980
    +
    981
    +
    +
    994class TINYXML2_LIB XMLText : public XMLNode
    +
    995{
    +
    996 friend class XMLDocument;
    +
    997public:
    +
    998 virtual bool Accept( XMLVisitor* visitor ) const override;
    +
    999
    +
    +
    1000 virtual XMLText* ToText() override {
    +
    1001 return this;
    +
    1002 }
    +
    +
    1003 virtual const XMLText* ToText() const override {
    +
    1004 return this;
    +
    1005 }
    +
    1006
    +
    +
    1008 void SetCData( bool isCData ) {
    +
    1009 _isCData = isCData;
    +
    1010 }
    +
    +
    +
    1012 bool CData() const {
    +
    1013 return _isCData;
    +
    1014 }
    +
    +
    1015
    +
    1016 virtual XMLNode* ShallowClone( XMLDocument* document ) const override;
    +
    1017 virtual bool ShallowEqual( const XMLNode* compare ) const override;
    +
    1018
    +
    1019protected:
    +
    1020 explicit XMLText( XMLDocument* doc ) : XMLNode( doc ), _isCData( false ) {}
    +
    1021 virtual ~XMLText() {}
    +
    1022
    +
    1023 char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr ) override;
    +
    1024
    +
    1025private:
    +
    1026 bool _isCData;
    +
    1027
    +
    1028 XMLText( const XMLText& ); // not supported
    +
    1029 XMLText& operator=( const XMLText& ); // not supported
    +
    1030};
    +
    +
    1031
    +
    1032
    +
    +
    1034class TINYXML2_LIB XMLComment : public XMLNode
    +
    1035{
    +
    1036 friend class XMLDocument;
    +
    1037public:
    +
    +
    1038 virtual XMLComment* ToComment() override {
    +
    1039 return this;
    +
    1040 }
    +
    +
    1041 virtual const XMLComment* ToComment() const override {
    +
    1042 return this;
    +
    1043 }
    +
    1044
    +
    1045 virtual bool Accept( XMLVisitor* visitor ) const override;
    +
    1046
    +
    1047 virtual XMLNode* ShallowClone( XMLDocument* document ) const override;
    +
    1048 virtual bool ShallowEqual( const XMLNode* compare ) const override;
    +
    1049
    +
    1050protected:
    +
    1051 explicit XMLComment( XMLDocument* doc );
    +
    1052 virtual ~XMLComment();
    +
    1053
    +
    1054 char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr) override;
    +
    1055
    +
    1056private:
    +
    1057 XMLComment( const XMLComment& ); // not supported
    +
    1058 XMLComment& operator=( const XMLComment& ); // not supported
    +
    1059};
    +
    +
    1060
    +
    1061
    +
    +
    1073class TINYXML2_LIB XMLDeclaration : public XMLNode
    +
    1074{
    +
    1075 friend class XMLDocument;
    +
    1076public:
    +
    +
    1077 virtual XMLDeclaration* ToDeclaration() override {
    +
    1078 return this;
    +
    1079 }
    +
    +
    1080 virtual const XMLDeclaration* ToDeclaration() const override {
    +
    1081 return this;
    +
    1082 }
    +
    1083
    +
    1084 virtual bool Accept( XMLVisitor* visitor ) const override;
    +
    1085
    +
    1086 virtual XMLNode* ShallowClone( XMLDocument* document ) const override;
    +
    1087 virtual bool ShallowEqual( const XMLNode* compare ) const override;
    +
    1088
    +
    1089protected:
    +
    1090 explicit XMLDeclaration( XMLDocument* doc );
    +
    1091 virtual ~XMLDeclaration();
    +
    1092
    +
    1093 char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr ) override;
    +
    1094
    +
    1095private:
    +
    1096 XMLDeclaration( const XMLDeclaration& ); // not supported
    +
    1097 XMLDeclaration& operator=( const XMLDeclaration& ); // not supported
    +
    1098};
    +
    +
    1099
    +
    1100
    +
    +
    1108class TINYXML2_LIB XMLUnknown : public XMLNode
    +
    1109{
    +
    1110 friend class XMLDocument;
    +
    1111public:
    +
    +
    1112 virtual XMLUnknown* ToUnknown() override {
    +
    1113 return this;
    +
    1114 }
    +
    +
    1115 virtual const XMLUnknown* ToUnknown() const override {
    +
    1116 return this;
    +
    1117 }
    +
    1118
    +
    1119 virtual bool Accept( XMLVisitor* visitor ) const override;
    +
    1120
    +
    1121 virtual XMLNode* ShallowClone( XMLDocument* document ) const override;
    +
    1122 virtual bool ShallowEqual( const XMLNode* compare ) const override;
    +
    1123
    +
    1124protected:
    +
    1125 explicit XMLUnknown( XMLDocument* doc );
    +
    1126 virtual ~XMLUnknown();
    +
    1127
    +
    1128 char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr ) override;
    +
    1129
    +
    1130private:
    +
    1131 XMLUnknown( const XMLUnknown& ); // not supported
    +
    1132 XMLUnknown& operator=( const XMLUnknown& ); // not supported
    +
    1133};
    +
    +
    1134
    +
    1135
    +
    1136
    +
    +
    1143class TINYXML2_LIB XMLAttribute
    +
    1144{
    +
    1145 friend class XMLElement;
    +
    1146public:
    +
    1148 const char* Name() const;
    +
    1149
    +
    1151 const char* Value() const;
    +
    1152
    +
    1154 int GetLineNum() const { return _parseLineNum; }
    +
    1155
    +
    +
    1157 const XMLAttribute* Next() const {
    +
    1158 return _next;
    +
    1159 }
    +
    +
    1160
    +
    +
    1165 int IntValue() const {
    +
    1166 int i = 0;
    +
    1167 QueryIntValue(&i);
    +
    1168 return i;
    +
    1169 }
    +
    +
    1170
    +
    1171 int64_t Int64Value() const {
    +
    1172 int64_t i = 0;
    +
    1173 QueryInt64Value(&i);
    +
    1174 return i;
    +
    1175 }
    +
    1176
    +
    1177 uint64_t Unsigned64Value() const {
    +
    1178 uint64_t i = 0;
    +
    1179 QueryUnsigned64Value(&i);
    +
    1180 return i;
    +
    1181 }
    +
    1182
    +
    +
    1184 unsigned UnsignedValue() const {
    +
    1185 unsigned i=0;
    +
    1186 QueryUnsignedValue( &i );
    +
    1187 return i;
    +
    1188 }
    +
    +
    +
    1190 bool BoolValue() const {
    +
    1191 bool b=false;
    +
    1192 QueryBoolValue( &b );
    +
    1193 return b;
    +
    1194 }
    +
    +
    +
    1196 double DoubleValue() const {
    +
    1197 double d=0;
    +
    1198 QueryDoubleValue( &d );
    +
    1199 return d;
    +
    1200 }
    +
    +
    +
    1202 float FloatValue() const {
    +
    1203 float f=0;
    +
    1204 QueryFloatValue( &f );
    +
    1205 return f;
    +
    1206 }
    +
    +
    1207
    +
    1212 XMLError QueryIntValue( int* value ) const;
    +
    1214 XMLError QueryUnsignedValue( unsigned int* value ) const;
    +
    1216 XMLError QueryInt64Value(int64_t* value) const;
    +
    1218 XMLError QueryUnsigned64Value(uint64_t* value) const;
    +
    1220 XMLError QueryBoolValue( bool* value ) const;
    +
    1222 XMLError QueryDoubleValue( double* value ) const;
    +
    1224 XMLError QueryFloatValue( float* value ) const;
    +
    1225
    +
    1227 void SetAttribute( const char* value );
    +
    1229 void SetAttribute( int value );
    +
    1231 void SetAttribute( unsigned value );
    +
    1233 void SetAttribute(int64_t value);
    +
    1235 void SetAttribute(uint64_t value);
    +
    1237 void SetAttribute( bool value );
    +
    1239 void SetAttribute( double value );
    +
    1241 void SetAttribute( float value );
    +
    1242
    +
    1243private:
    +
    1244 enum { BUF_SIZE = 200 };
    +
    1245
    +
    1246 XMLAttribute() : _name(), _value(),_parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}
    +
    1247 virtual ~XMLAttribute() {}
    +
    1248
    +
    1249 XMLAttribute( const XMLAttribute& ); // not supported
    +
    1250 void operator=( const XMLAttribute& ); // not supported
    +
    1251 void SetName( const char* name );
    +
    1252
    +
    1253 char* ParseDeep( char* p, bool processEntities, int* curLineNumPtr );
    +
    1254
    +
    1255 mutable StrPair _name;
    +
    1256 mutable StrPair _value;
    +
    1257 int _parseLineNum;
    +
    1258 XMLAttribute* _next;
    +
    1259 MemPool* _memPool;
    +
    1260};
    +
    +
    1261
    +
    1262
    +
    +
    1267class TINYXML2_LIB XMLElement : public XMLNode
    +
    1268{
    +
    1269 friend class XMLDocument;
    +
    1270public:
    +
    +
    1272 const char* Name() const {
    +
    1273 return Value();
    +
    1274 }
    +
    +
    +
    1276 void SetName( const char* str, bool staticMem=false ) {
    +
    1277 SetValue( str, staticMem );
    +
    1278 }
    +
    +
    1279
    +
    +
    1280 virtual XMLElement* ToElement() override {
    +
    1281 return this;
    +
    1282 }
    +
    +
    1283 virtual const XMLElement* ToElement() const override {
    +
    1284 return this;
    +
    1285 }
    +
    1286 virtual bool Accept( XMLVisitor* visitor ) const override;
    +
    1287
    +
    1311 const char* Attribute( const char* name, const char* value=0 ) const;
    +
    1312
    +
    1319 int IntAttribute(const char* name, int defaultValue = 0) const;
    +
    1321 unsigned UnsignedAttribute(const char* name, unsigned defaultValue = 0) const;
    +
    1323 int64_t Int64Attribute(const char* name, int64_t defaultValue = 0) const;
    +
    1325 uint64_t Unsigned64Attribute(const char* name, uint64_t defaultValue = 0) const;
    +
    1327 bool BoolAttribute(const char* name, bool defaultValue = false) const;
    +
    1329 double DoubleAttribute(const char* name, double defaultValue = 0) const;
    +
    1331 float FloatAttribute(const char* name, float defaultValue = 0) const;
    +
    1332
    +
    +
    1346 XMLError QueryIntAttribute( const char* name, int* value ) const {
    +
    1347 const XMLAttribute* a = FindAttribute( name );
    +
    1348 if ( !a ) {
    +
    1349 return XML_NO_ATTRIBUTE;
    +
    1350 }
    +
    1351 return a->QueryIntValue( value );
    +
    1352 }
    +
    +
    1353
    +
    +
    1355 XMLError QueryUnsignedAttribute( const char* name, unsigned int* value ) const {
    +
    1356 const XMLAttribute* a = FindAttribute( name );
    +
    1357 if ( !a ) {
    +
    1358 return XML_NO_ATTRIBUTE;
    +
    1359 }
    +
    1360 return a->QueryUnsignedValue( value );
    +
    1361 }
    +
    +
    1362
    +
    +
    1364 XMLError QueryInt64Attribute(const char* name, int64_t* value) const {
    +
    1365 const XMLAttribute* a = FindAttribute(name);
    +
    1366 if (!a) {
    +
    1367 return XML_NO_ATTRIBUTE;
    +
    1368 }
    +
    1369 return a->QueryInt64Value(value);
    +
    1370 }
    +
    +
    1371
    +
    +
    1373 XMLError QueryUnsigned64Attribute(const char* name, uint64_t* value) const {
    +
    1374 const XMLAttribute* a = FindAttribute(name);
    +
    1375 if(!a) {
    +
    1376 return XML_NO_ATTRIBUTE;
    +
    1377 }
    +
    1378 return a->QueryUnsigned64Value(value);
    +
    1379 }
    +
    +
    1380
    +
    +
    1382 XMLError QueryBoolAttribute( const char* name, bool* value ) const {
    +
    1383 const XMLAttribute* a = FindAttribute( name );
    +
    1384 if ( !a ) {
    +
    1385 return XML_NO_ATTRIBUTE;
    +
    1386 }
    +
    1387 return a->QueryBoolValue( value );
    +
    1388 }
    +
    +
    +
    1390 XMLError QueryDoubleAttribute( const char* name, double* value ) const {
    +
    1391 const XMLAttribute* a = FindAttribute( name );
    +
    1392 if ( !a ) {
    +
    1393 return XML_NO_ATTRIBUTE;
    +
    1394 }
    +
    1395 return a->QueryDoubleValue( value );
    +
    1396 }
    +
    +
    +
    1398 XMLError QueryFloatAttribute( const char* name, float* value ) const {
    +
    1399 const XMLAttribute* a = FindAttribute( name );
    +
    1400 if ( !a ) {
    +
    1401 return XML_NO_ATTRIBUTE;
    +
    1402 }
    +
    1403 return a->QueryFloatValue( value );
    +
    1404 }
    +
    +
    1405
    +
    +
    1407 XMLError QueryStringAttribute(const char* name, const char** value) const {
    +
    1408 const XMLAttribute* a = FindAttribute(name);
    +
    1409 if (!a) {
    +
    1410 return XML_NO_ATTRIBUTE;
    +
    1411 }
    +
    1412 *value = a->Value();
    +
    1413 return XML_SUCCESS;
    +
    1414 }
    +
    +
    1415
    +
    1416
    +
    1417
    +
    +
    1435 XMLError QueryAttribute( const char* name, int* value ) const {
    +
    1436 return QueryIntAttribute( name, value );
    +
    1437 }
    +
    +
    1438
    +
    1439 XMLError QueryAttribute( const char* name, unsigned int* value ) const {
    +
    1440 return QueryUnsignedAttribute( name, value );
    +
    1441 }
    +
    1442
    +
    1443 XMLError QueryAttribute(const char* name, int64_t* value) const {
    +
    1444 return QueryInt64Attribute(name, value);
    +
    1445 }
    +
    1446
    +
    1447 XMLError QueryAttribute(const char* name, uint64_t* value) const {
    +
    1448 return QueryUnsigned64Attribute(name, value);
    +
    1449 }
    +
    1450
    +
    1451 XMLError QueryAttribute( const char* name, bool* value ) const {
    +
    1452 return QueryBoolAttribute( name, value );
    +
    1453 }
    +
    1454
    +
    1455 XMLError QueryAttribute( const char* name, double* value ) const {
    +
    1456 return QueryDoubleAttribute( name, value );
    +
    1457 }
    +
    1458
    +
    1459 XMLError QueryAttribute( const char* name, float* value ) const {
    +
    1460 return QueryFloatAttribute( name, value );
    +
    1461 }
    +
    1462
    +
    1463 XMLError QueryAttribute(const char* name, const char** value) const {
    +
    1464 return QueryStringAttribute(name, value);
    +
    1465 }
    +
    1466
    +
    +
    1468 void SetAttribute( const char* name, const char* value ) {
    +
    1469 XMLAttribute* a = FindOrCreateAttribute( name );
    +
    1470 a->SetAttribute( value );
    +
    1471 }
    +
    +
    +
    1473 void SetAttribute( const char* name, int value ) {
    +
    1474 XMLAttribute* a = FindOrCreateAttribute( name );
    +
    1475 a->SetAttribute( value );
    +
    1476 }
    +
    +
    +
    1478 void SetAttribute( const char* name, unsigned value ) {
    +
    1479 XMLAttribute* a = FindOrCreateAttribute( name );
    +
    1480 a->SetAttribute( value );
    +
    1481 }
    +
    +
    1482
    +
    +
    1484 void SetAttribute(const char* name, int64_t value) {
    +
    1485 XMLAttribute* a = FindOrCreateAttribute(name);
    +
    1486 a->SetAttribute(value);
    +
    1487 }
    +
    +
    1488
    +
    +
    1490 void SetAttribute(const char* name, uint64_t value) {
    +
    1491 XMLAttribute* a = FindOrCreateAttribute(name);
    +
    1492 a->SetAttribute(value);
    +
    1493 }
    +
    +
    1494
    +
    +
    1496 void SetAttribute( const char* name, bool value ) {
    +
    1497 XMLAttribute* a = FindOrCreateAttribute( name );
    +
    1498 a->SetAttribute( value );
    +
    1499 }
    +
    +
    +
    1501 void SetAttribute( const char* name, double value ) {
    +
    1502 XMLAttribute* a = FindOrCreateAttribute( name );
    +
    1503 a->SetAttribute( value );
    +
    1504 }
    +
    +
    +
    1506 void SetAttribute( const char* name, float value ) {
    +
    1507 XMLAttribute* a = FindOrCreateAttribute( name );
    +
    1508 a->SetAttribute( value );
    +
    1509 }
    +
    +
    1510
    +
    1514 void DeleteAttribute( const char* name );
    +
    1515
    +
    + +
    1518 return _rootAttribute;
    +
    1519 }
    +
    +
    1521 const XMLAttribute* FindAttribute( const char* name ) const;
    +
    1522
    +
    1551 const char* GetText() const;
    +
    1552
    +
    1587 void SetText( const char* inText );
    +
    1589 void SetText( int value );
    +
    1591 void SetText( unsigned value );
    +
    1593 void SetText(int64_t value);
    +
    1595 void SetText(uint64_t value);
    +
    1597 void SetText( bool value );
    +
    1599 void SetText( double value );
    +
    1601 void SetText( float value );
    +
    1602
    +
    1629 XMLError QueryIntText( int* ival ) const;
    +
    1631 XMLError QueryUnsignedText( unsigned* uval ) const;
    +
    1633 XMLError QueryInt64Text(int64_t* uval) const;
    +
    1635 XMLError QueryUnsigned64Text(uint64_t* uval) const;
    +
    1637 XMLError QueryBoolText( bool* bval ) const;
    +
    1639 XMLError QueryDoubleText( double* dval ) const;
    +
    1641 XMLError QueryFloatText( float* fval ) const;
    +
    1642
    +
    1643 int IntText(int defaultValue = 0) const;
    +
    1644
    +
    1646 unsigned UnsignedText(unsigned defaultValue = 0) const;
    +
    1648 int64_t Int64Text(int64_t defaultValue = 0) const;
    +
    1650 uint64_t Unsigned64Text(uint64_t defaultValue = 0) const;
    +
    1652 bool BoolText(bool defaultValue = false) const;
    +
    1654 double DoubleText(double defaultValue = 0) const;
    +
    1656 float FloatText(float defaultValue = 0) const;
    +
    1657
    + +
    1664 XMLComment* InsertNewComment(const char* comment);
    +
    1666 XMLText* InsertNewText(const char* text);
    + +
    1670 XMLUnknown* InsertNewUnknown(const char* text);
    +
    1671
    +
    1672
    +
    1673 // internal:
    +
    1674 enum ElementClosingType {
    +
    1675 OPEN, // <foo>
    +
    1676 CLOSED, // <foo/>
    +
    1677 CLOSING // </foo>
    +
    1678 };
    +
    1679 ElementClosingType ClosingType() const {
    +
    1680 return _closingType;
    +
    1681 }
    +
    1682 virtual XMLNode* ShallowClone( XMLDocument* document ) const override;
    +
    1683 virtual bool ShallowEqual( const XMLNode* compare ) const override;
    +
    1684
    +
    1685protected:
    +
    1686 char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr ) override;
    +
    1687
    +
    1688private:
    +
    1689 XMLElement( XMLDocument* doc );
    +
    1690 virtual ~XMLElement();
    +
    1691 XMLElement( const XMLElement& ); // not supported
    +
    1692 void operator=( const XMLElement& ); // not supported
    +
    1693
    +
    1694 XMLAttribute* FindOrCreateAttribute( const char* name );
    +
    1695 char* ParseAttributes( char* p, int* curLineNumPtr );
    +
    1696 static void DeleteAttribute( XMLAttribute* attribute );
    +
    1697 XMLAttribute* CreateAttribute();
    +
    1698
    +
    1699 enum { BUF_SIZE = 200 };
    +
    1700 ElementClosingType _closingType;
    +
    1701 // The attribute list is ordered; there is no 'lastAttribute'
    +
    1702 // because the list needs to be scanned for dupes before adding
    +
    1703 // a new attribute.
    +
    1704 XMLAttribute* _rootAttribute;
    +
    1705};
    +
    +
    1706
    +
    1707
    +
    1708enum Whitespace {
    +
    1709 PRESERVE_WHITESPACE,
    +
    1710 COLLAPSE_WHITESPACE,
    +
    1711 PEDANTIC_WHITESPACE
    +
    1712};
    +
    1713
    +
    1714
    +
    +
    1720class TINYXML2_LIB XMLDocument : public XMLNode
    +
    1721{
    +
    1722 friend class XMLElement;
    +
    1723 // Gives access to SetError and Push/PopDepth, but over-access for everything else.
    +
    1724 // Wishing C++ had "internal" scope.
    +
    1725 friend class XMLNode;
    +
    1726 friend class XMLText;
    +
    1727 friend class XMLComment;
    +
    1728 friend class XMLDeclaration;
    +
    1729 friend class XMLUnknown;
    +
    1730public:
    +
    1732 XMLDocument( bool processEntities = true, Whitespace whitespaceMode = PRESERVE_WHITESPACE );
    +
    1733 ~XMLDocument();
    +
    1734
    +
    +
    1735 virtual XMLDocument* ToDocument() override {
    +
    1736 TIXMLASSERT( this == _document );
    +
    1737 return this;
    +
    1738 }
    +
    +
    1739 virtual const XMLDocument* ToDocument() const override {
    +
    1740 TIXMLASSERT( this == _document );
    +
    1741 return this;
    +
    1742 }
    +
    1743
    +
    1754 XMLError Parse( const char* xml, size_t nBytes=static_cast<size_t>(-1) );
    +
    1755
    +
    1761 XMLError LoadFile( const char* filename );
    +
    1762
    +
    1774 XMLError LoadFile( FILE* );
    +
    1775
    +
    1781 XMLError SaveFile( const char* filename, bool compact = false );
    +
    1782
    +
    1790 XMLError SaveFile( FILE* fp, bool compact = false );
    +
    1791
    +
    1792 bool ProcessEntities() const {
    +
    1793 return _processEntities;
    +
    1794 }
    +
    1795 Whitespace WhitespaceMode() const {
    +
    1796 return _whitespaceMode;
    +
    1797 }
    +
    1798
    +
    +
    1802 bool HasBOM() const {
    +
    1803 return _writeBOM;
    +
    1804 }
    +
    +
    +
    1807 void SetBOM( bool useBOM ) {
    +
    1808 _writeBOM = useBOM;
    +
    1809 }
    +
    +
    1810
    +
    + +
    1815 return FirstChildElement();
    +
    1816 }
    +
    +
    1817 const XMLElement* RootElement() const {
    +
    1818 return FirstChildElement();
    +
    1819 }
    +
    1820
    +
    1835 void Print( XMLPrinter* streamer=0 ) const;
    +
    1836 virtual bool Accept( XMLVisitor* visitor ) const override;
    +
    1837
    +
    1843 XMLElement* NewElement( const char* name );
    +
    1849 XMLComment* NewComment( const char* comment );
    +
    1855 XMLText* NewText( const char* text );
    +
    1867 XMLDeclaration* NewDeclaration( const char* text=0 );
    +
    1873 XMLUnknown* NewUnknown( const char* text );
    +
    1874
    +
    1879 void DeleteNode( XMLNode* node );
    +
    1880
    + +
    1883
    +
    +
    1885 bool Error() const {
    +
    1886 return _errorID != XML_SUCCESS;
    +
    1887 }
    +
    +
    +
    1889 XMLError ErrorID() const {
    +
    1890 return _errorID;
    +
    1891 }
    +
    +
    1892 const char* ErrorName() const;
    +
    1893 static const char* ErrorIDToName(XMLError errorID);
    +
    1894
    +
    1898 const char* ErrorStr() const;
    +
    1899
    +
    1901 void PrintError() const;
    +
    1902
    +
    +
    1904 int ErrorLineNum() const
    +
    1905 {
    +
    1906 return _errorLineNum;
    +
    1907 }
    +
    +
    1908
    +
    1910 void Clear();
    +
    1911
    +
    1919 void DeepCopy(XMLDocument* target) const;
    +
    1920
    +
    1921 // internal
    +
    1922 char* Identify( char* p, XMLNode** node, bool first );
    +
    1923
    +
    1924 // internal
    +
    1925 void MarkInUse(const XMLNode* const);
    +
    1926
    +
    +
    1927 virtual XMLNode* ShallowClone( XMLDocument* /*document*/ ) const override{
    +
    1928 return 0;
    +
    1929 }
    +
    +
    +
    1930 virtual bool ShallowEqual( const XMLNode* /*compare*/ ) const override{
    +
    1931 return false;
    +
    1932 }
    +
    +
    1933
    +
    1934private:
    +
    1935 XMLDocument( const XMLDocument& ); // not supported
    +
    1936 void operator=( const XMLDocument& ); // not supported
    +
    1937
    +
    1938 bool _writeBOM;
    +
    1939 bool _processEntities;
    +
    1940 XMLError _errorID;
    +
    1941 Whitespace _whitespaceMode;
    +
    1942 mutable StrPair _errorStr;
    +
    1943 int _errorLineNum;
    +
    1944 char* _charBuffer;
    +
    1945 int _parseCurLineNum;
    +
    1946 int _parsingDepth;
    +
    1947 // Memory tracking does add some overhead.
    +
    1948 // However, the code assumes that you don't
    +
    1949 // have a bunch of unlinked nodes around.
    +
    1950 // Therefore it takes less memory to track
    +
    1951 // in the document vs. a linked list in the XMLNode,
    +
    1952 // and the performance is the same.
    +
    1953 DynArray<XMLNode*, 10> _unlinked;
    +
    1954
    +
    1955 MemPoolT< sizeof(XMLElement) > _elementPool;
    +
    1956 MemPoolT< sizeof(XMLAttribute) > _attributePool;
    +
    1957 MemPoolT< sizeof(XMLText) > _textPool;
    +
    1958 MemPoolT< sizeof(XMLComment) > _commentPool;
    +
    1959
    +
    1960 static const char* _errorNames[XML_ERROR_COUNT];
    +
    1961
    +
    1962 void Parse();
    +
    1963
    +
    1964 void SetError( XMLError error, int lineNum, const char* format, ... );
    +
    1965
    +
    1966 // Something of an obvious security hole, once it was discovered.
    +
    1967 // Either an ill-formed XML or an excessively deep one can overflow
    +
    1968 // the stack. Track stack depth, and error out if needed.
    +
    1969 class DepthTracker {
    +
    1970 public:
    +
    1971 explicit DepthTracker(XMLDocument * document) {
    +
    1972 this->_document = document;
    +
    1973 document->PushDepth();
    +
    1974 }
    +
    1975 ~DepthTracker() {
    +
    1976 _document->PopDepth();
    +
    1977 }
    +
    1978 private:
    +
    1979 XMLDocument * _document;
    +
    1980 };
    +
    1981 void PushDepth();
    +
    1982 void PopDepth();
    +
    1983
    +
    1984 template<class NodeType, int PoolElementSize>
    +
    1985 NodeType* CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool );
    +
    1986};
    +
    +
    1987
    +
    1988template<class NodeType, int PoolElementSize>
    +
    1989inline NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool )
    +
    1990{
    +
    1991 TIXMLASSERT( sizeof( NodeType ) == PoolElementSize );
    +
    1992 TIXMLASSERT( sizeof( NodeType ) == pool.ItemSize() );
    +
    1993 NodeType* returnNode = new (pool.Alloc()) NodeType( this );
    +
    1994 TIXMLASSERT( returnNode );
    +
    1995 returnNode->_memPool = &pool;
    +
    1996
    +
    1997 _unlinked.Push(returnNode);
    +
    1998 return returnNode;
    +
    1999}
    +
    2000
    +
    +
    2056class TINYXML2_LIB XMLHandle
    +
    2057{
    +
    2058public:
    +
    +
    2060 explicit XMLHandle( XMLNode* node ) : _node( node ) {
    +
    2061 }
    +
    +
    +
    2063 explicit XMLHandle( XMLNode& node ) : _node( &node ) {
    +
    2064 }
    +
    +
    +
    2066 XMLHandle( const XMLHandle& ref ) : _node( ref._node ) {
    +
    2067 }
    +
    +
    + +
    2070 _node = ref._node;
    +
    2071 return *this;
    +
    2072 }
    +
    +
    2073
    +
    + +
    2076 return XMLHandle( _node ? _node->FirstChild() : 0 );
    +
    2077 }
    +
    +
    +
    2079 XMLHandle FirstChildElement( const char* name = 0 ) {
    +
    2080 return XMLHandle( _node ? _node->FirstChildElement( name ) : 0 );
    +
    2081 }
    +
    +
    + +
    2084 return XMLHandle( _node ? _node->LastChild() : 0 );
    +
    2085 }
    +
    +
    +
    2087 XMLHandle LastChildElement( const char* name = 0 ) {
    +
    2088 return XMLHandle( _node ? _node->LastChildElement( name ) : 0 );
    +
    2089 }
    +
    +
    + +
    2092 return XMLHandle( _node ? _node->PreviousSibling() : 0 );
    +
    2093 }
    +
    +
    +
    2095 XMLHandle PreviousSiblingElement( const char* name = 0 ) {
    +
    2096 return XMLHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );
    +
    2097 }
    +
    +
    + +
    2100 return XMLHandle( _node ? _node->NextSibling() : 0 );
    +
    2101 }
    +
    +
    +
    2103 XMLHandle NextSiblingElement( const char* name = 0 ) {
    +
    2104 return XMLHandle( _node ? _node->NextSiblingElement( name ) : 0 );
    +
    2105 }
    +
    +
    2106
    +
    + +
    2109 return _node;
    +
    2110 }
    +
    +
    + +
    2113 return ( _node ? _node->ToElement() : 0 );
    +
    2114 }
    +
    +
    + +
    2117 return ( _node ? _node->ToText() : 0 );
    +
    2118 }
    +
    +
    + +
    2121 return ( _node ? _node->ToUnknown() : 0 );
    +
    2122 }
    +
    +
    + +
    2125 return ( _node ? _node->ToDeclaration() : 0 );
    +
    2126 }
    +
    +
    2127
    +
    2128private:
    +
    2129 XMLNode* _node;
    +
    2130};
    +
    +
    2131
    +
    2132
    +
    +
    2137class TINYXML2_LIB XMLConstHandle
    +
    2138{
    +
    2139public:
    +
    2140 explicit XMLConstHandle( const XMLNode* node ) : _node( node ) {
    +
    2141 }
    +
    2142 explicit XMLConstHandle( const XMLNode& node ) : _node( &node ) {
    +
    2143 }
    +
    2144 XMLConstHandle( const XMLConstHandle& ref ) : _node( ref._node ) {
    +
    2145 }
    +
    2146
    +
    2147 XMLConstHandle& operator=( const XMLConstHandle& ref ) {
    +
    2148 _node = ref._node;
    +
    2149 return *this;
    +
    2150 }
    +
    2151
    +
    2152 const XMLConstHandle FirstChild() const {
    +
    2153 return XMLConstHandle( _node ? _node->FirstChild() : 0 );
    +
    2154 }
    +
    2155 const XMLConstHandle FirstChildElement( const char* name = 0 ) const {
    +
    2156 return XMLConstHandle( _node ? _node->FirstChildElement( name ) : 0 );
    +
    2157 }
    +
    2158 const XMLConstHandle LastChild() const {
    +
    2159 return XMLConstHandle( _node ? _node->LastChild() : 0 );
    +
    2160 }
    +
    2161 const XMLConstHandle LastChildElement( const char* name = 0 ) const {
    +
    2162 return XMLConstHandle( _node ? _node->LastChildElement( name ) : 0 );
    +
    2163 }
    +
    2164 const XMLConstHandle PreviousSibling() const {
    +
    2165 return XMLConstHandle( _node ? _node->PreviousSibling() : 0 );
    +
    2166 }
    +
    2167 const XMLConstHandle PreviousSiblingElement( const char* name = 0 ) const {
    +
    2168 return XMLConstHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );
    +
    2169 }
    +
    2170 const XMLConstHandle NextSibling() const {
    +
    2171 return XMLConstHandle( _node ? _node->NextSibling() : 0 );
    +
    2172 }
    +
    2173 const XMLConstHandle NextSiblingElement( const char* name = 0 ) const {
    +
    2174 return XMLConstHandle( _node ? _node->NextSiblingElement( name ) : 0 );
    +
    2175 }
    +
    2176
    +
    2177
    +
    2178 const XMLNode* ToNode() const {
    +
    2179 return _node;
    +
    2180 }
    +
    2181 const XMLElement* ToElement() const {
    +
    2182 return ( _node ? _node->ToElement() : 0 );
    +
    2183 }
    +
    2184 const XMLText* ToText() const {
    +
    2185 return ( _node ? _node->ToText() : 0 );
    +
    2186 }
    +
    2187 const XMLUnknown* ToUnknown() const {
    +
    2188 return ( _node ? _node->ToUnknown() : 0 );
    +
    2189 }
    +
    2190 const XMLDeclaration* ToDeclaration() const {
    +
    2191 return ( _node ? _node->ToDeclaration() : 0 );
    +
    2192 }
    +
    2193
    +
    2194private:
    +
    2195 const XMLNode* _node;
    +
    2196};
    +
    +
    2197
    +
    2198
    +
    +
    2241class TINYXML2_LIB XMLPrinter : public XMLVisitor
    +
    2242{
    +
    2243public:
    +
    2250 XMLPrinter( FILE* file=0, bool compact = false, int depth = 0 );
    +
    2251 virtual ~XMLPrinter() {}
    +
    2252
    +
    2254 void PushHeader( bool writeBOM, bool writeDeclaration );
    +
    2258 void OpenElement( const char* name, bool compactMode=false );
    +
    2260 void PushAttribute( const char* name, const char* value );
    +
    2261 void PushAttribute( const char* name, int value );
    +
    2262 void PushAttribute( const char* name, unsigned value );
    +
    2263 void PushAttribute( const char* name, int64_t value );
    +
    2264 void PushAttribute( const char* name, uint64_t value );
    +
    2265 void PushAttribute( const char* name, bool value );
    +
    2266 void PushAttribute( const char* name, double value );
    +
    2268 virtual void CloseElement( bool compactMode=false );
    +
    2269
    +
    2271 void PushText( const char* text, bool cdata=false );
    +
    2273 void PushText( int value );
    +
    2275 void PushText( unsigned value );
    +
    2277 void PushText( int64_t value );
    +
    2279 void PushText( uint64_t value );
    +
    2281 void PushText( bool value );
    +
    2283 void PushText( float value );
    +
    2285 void PushText( double value );
    +
    2286
    +
    2288 void PushComment( const char* comment );
    +
    2289
    +
    2290 void PushDeclaration( const char* value );
    +
    2291 void PushUnknown( const char* value );
    +
    2292
    +
    2293 virtual bool VisitEnter( const XMLDocument& /*doc*/ ) override;
    +
    +
    2294 virtual bool VisitExit( const XMLDocument& /*doc*/ ) override {
    +
    2295 return true;
    +
    2296 }
    +
    +
    2297
    +
    2298 virtual bool VisitEnter( const XMLElement& element, const XMLAttribute* attribute ) override;
    +
    2299 virtual bool VisitExit( const XMLElement& element ) override;
    +
    2300
    +
    2301 virtual bool Visit( const XMLText& text ) override;
    +
    2302 virtual bool Visit( const XMLComment& comment ) override;
    +
    2303 virtual bool Visit( const XMLDeclaration& declaration ) override;
    +
    2304 virtual bool Visit( const XMLUnknown& unknown ) override;
    +
    2305
    +
    +
    2310 const char* CStr() const {
    +
    2311 return _buffer.Mem();
    +
    2312 }
    +
    +
    +
    2318 int CStrSize() const {
    +
    2319 return _buffer.Size();
    +
    2320 }
    +
    +
    +
    2325 void ClearBuffer( bool resetToFirstElement = true ) {
    +
    2326 _buffer.Clear();
    +
    2327 _buffer.Push(0);
    +
    2328 _firstElement = resetToFirstElement;
    +
    2329 }
    +
    +
    2330
    +
    2331protected:
    +
    2332 virtual bool CompactMode( const XMLElement& ) { return _compactMode; }
    +
    2333
    +
    2337 virtual void PrintSpace( int depth );
    +
    2338 virtual void Print( const char* format, ... );
    +
    2339 virtual void Write( const char* data, size_t size );
    +
    2340 virtual void Putc( char ch );
    +
    2341
    +
    2342 inline void Write(const char* data) { Write(data, strlen(data)); }
    +
    2343
    +
    2344 void SealElementIfJustOpened();
    +
    2345 bool _elementJustOpened;
    +
    2346 DynArray< const char*, 10 > _stack;
    +
    2347
    +
    2348private:
    +
    2353 void PrepareForNewNode( bool compactMode );
    +
    2354 void PrintString( const char*, bool restrictedEntitySet ); // prints out, after detecting entities.
    +
    2355
    +
    2356 bool _firstElement;
    +
    2357 FILE* _fp;
    +
    2358 int _depth;
    +
    2359 int _textDepth;
    +
    2360 bool _processEntities;
    +
    2361 bool _compactMode;
    +
    2362
    +
    2363 enum {
    +
    2364 ENTITY_RANGE = 64,
    +
    2365 BUF_SIZE = 200
    +
    2366 };
    +
    2367 bool _entityFlag[ENTITY_RANGE];
    +
    2368 bool _restrictedEntityFlag[ENTITY_RANGE];
    +
    2369
    +
    2370 DynArray< char, 20 > _buffer;
    +
    2371
    +
    2372 // Prohibit cloning, intentionally not implemented
    +
    2373 XMLPrinter( const XMLPrinter& );
    +
    2374 XMLPrinter& operator=( const XMLPrinter& );
    +
    2375};
    +
    +
    2376
    +
    2377
    +
    2378} // tinyxml2
    +
    2379
    +
    2380#if defined(_MSC_VER)
    +
    2381# pragma warning(pop)
    +
    2382#endif
    +
    2383
    +
    2384#endif // TINYXML2_INCLUDED
    +
    Definition tinyxml2.h:1144
    +
    int GetLineNum() const
    Gets the line number the attribute is in, if the document was parsed from a file.
    Definition tinyxml2.h:1154
    +
    XMLError QueryFloatValue(float *value) const
    See QueryIntValue.
    +
    unsigned UnsignedValue() const
    Query as an unsigned integer. See IntValue()
    Definition tinyxml2.h:1184
    +
    void SetAttribute(uint64_t value)
    Set the attribute to value.
    +
    float FloatValue() const
    Query as a float. See IntValue()
    Definition tinyxml2.h:1202
    +
    XMLError QueryDoubleValue(double *value) const
    See QueryIntValue.
    +
    void SetAttribute(const char *value)
    Set the attribute to a string value.
    +
    XMLError QueryUnsignedValue(unsigned int *value) const
    See QueryIntValue.
    +
    double DoubleValue() const
    Query as a double. See IntValue()
    Definition tinyxml2.h:1196
    +
    XMLError QueryInt64Value(int64_t *value) const
    See QueryIntValue.
    +
    const char * Name() const
    The name of the attribute.
    +
    XMLError QueryBoolValue(bool *value) const
    See QueryIntValue.
    +
    XMLError QueryIntValue(int *value) const
    +
    void SetAttribute(int64_t value)
    Set the attribute to value.
    +
    bool BoolValue() const
    Query as a boolean. See IntValue()
    Definition tinyxml2.h:1190
    +
    void SetAttribute(double value)
    Set the attribute to value.
    +
    const XMLAttribute * Next() const
    The next attribute in the list.
    Definition tinyxml2.h:1157
    +
    const char * Value() const
    The value of the attribute.
    +
    void SetAttribute(bool value)
    Set the attribute to value.
    +
    void SetAttribute(int value)
    Set the attribute to value.
    +
    int IntValue() const
    Definition tinyxml2.h:1165
    +
    void SetAttribute(unsigned value)
    Set the attribute to value.
    +
    void SetAttribute(float value)
    Set the attribute to value.
    +
    XMLError QueryUnsigned64Value(uint64_t *value) const
    See QueryIntValue.
    +
    Definition tinyxml2.h:1035
    +
    virtual bool Accept(XMLVisitor *visitor) const override
    +
    virtual XMLNode * ShallowClone(XMLDocument *document) const override
    +
    virtual bool ShallowEqual(const XMLNode *compare) const override
    +
    virtual XMLComment * ToComment() override
    Safely cast to a Comment, or null.
    Definition tinyxml2.h:1038
    +
    Definition tinyxml2.h:2138
    +
    Definition tinyxml2.h:1074
    +
    virtual XMLNode * ShallowClone(XMLDocument *document) const override
    +
    virtual bool ShallowEqual(const XMLNode *compare) const override
    +
    virtual XMLDeclaration * ToDeclaration() override
    Safely cast to a Declaration, or null.
    Definition tinyxml2.h:1077
    +
    virtual bool Accept(XMLVisitor *visitor) const override
    +
    Definition tinyxml2.h:1721
    +
    virtual XMLNode * ShallowClone(XMLDocument *) const override
    Definition tinyxml2.h:1927
    +
    XMLElement * RootElement()
    Definition tinyxml2.h:1814
    +
    void SetBOM(bool useBOM)
    Definition tinyxml2.h:1807
    +
    void PrintError() const
    A (trivial) utility function that prints the ErrorStr() to stdout.
    +
    virtual XMLDocument * ToDocument() override
    Safely cast to a Document, or null.
    Definition tinyxml2.h:1735
    +
    XMLError LoadFile(const char *filename)
    +
    bool HasBOM() const
    Definition tinyxml2.h:1802
    +
    bool Error() const
    Return true if there was an error parsing the document.
    Definition tinyxml2.h:1885
    +
    XMLComment * NewComment(const char *comment)
    +
    XMLElement * NewElement(const char *name)
    +
    void ClearError()
    Clears the error flags.
    +
    XMLUnknown * NewUnknown(const char *text)
    +
    int ErrorLineNum() const
    Return the line where the error occurred, or zero if unknown.
    Definition tinyxml2.h:1904
    +
    XMLDocument(bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)
    constructor
    +
    XMLError LoadFile(FILE *)
    +
    void Clear()
    Clear the document, resetting it to the initial state.
    +
    XMLError SaveFile(const char *filename, bool compact=false)
    +
    virtual bool Accept(XMLVisitor *visitor) const override
    +
    void Print(XMLPrinter *streamer=0) const
    +
    XMLError SaveFile(FILE *fp, bool compact=false)
    +
    void DeleteNode(XMLNode *node)
    +
    virtual bool ShallowEqual(const XMLNode *) const override
    Definition tinyxml2.h:1930
    +
    XMLText * NewText(const char *text)
    +
    XMLDeclaration * NewDeclaration(const char *text=0)
    +
    const char * ErrorStr() const
    +
    XMLError Parse(const char *xml, size_t nBytes=static_cast< size_t >(-1))
    +
    void DeepCopy(XMLDocument *target) const
    +
    XMLError ErrorID() const
    Return the errorID.
    Definition tinyxml2.h:1889
    +
    Definition tinyxml2.h:1268
    +
    const char * GetText() const
    +
    double DoubleAttribute(const char *name, double defaultValue=0) const
    See IntAttribute()
    +
    void SetAttribute(const char *name, const char *value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1468
    +
    XMLError QueryInt64Text(int64_t *uval) const
    See QueryIntText()
    +
    XMLError QueryUnsigned64Attribute(const char *name, uint64_t *value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1373
    +
    XMLError QueryBoolAttribute(const char *name, bool *value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1382
    +
    XMLError QueryUnsignedText(unsigned *uval) const
    See QueryIntText()
    +
    const XMLAttribute * FindAttribute(const char *name) const
    Query a specific attribute in the list.
    +
    void SetText(const char *inText)
    +
    uint64_t Unsigned64Attribute(const char *name, uint64_t defaultValue=0) const
    See IntAttribute()
    +
    void SetAttribute(const char *name, double value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1501
    +
    XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1355
    +
    XMLError QueryBoolText(bool *bval) const
    See QueryIntText()
    +
    float FloatText(float defaultValue=0) const
    See QueryIntText()
    +
    const char * Attribute(const char *name, const char *value=0) const
    +
    unsigned UnsignedText(unsigned defaultValue=0) const
    See QueryIntText()
    +
    const XMLAttribute * FirstAttribute() const
    Return the first attribute in the list.
    Definition tinyxml2.h:1517
    +
    void SetText(float value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    bool BoolAttribute(const char *name, bool defaultValue=false) const
    See IntAttribute()
    +
    void SetAttribute(const char *name, float value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1506
    +
    XMLError QueryAttribute(const char *name, int *value) const
    Definition tinyxml2.h:1435
    +
    XMLError QueryDoubleAttribute(const char *name, double *value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1390
    +
    int64_t Int64Attribute(const char *name, int64_t defaultValue=0) const
    See IntAttribute()
    +
    void SetText(double value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    XMLError QueryDoubleText(double *dval) const
    See QueryIntText()
    +
    bool BoolText(bool defaultValue=false) const
    See QueryIntText()
    +
    virtual XMLNode * ShallowClone(XMLDocument *document) const override
    +
    void SetText(uint64_t value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    void SetText(int64_t value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    void SetText(unsigned value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    XMLError QueryInt64Attribute(const char *name, int64_t *value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1364
    +
    XMLDeclaration * InsertNewDeclaration(const char *text)
    See InsertNewChildElement()
    +
    double DoubleText(double defaultValue=0) const
    See QueryIntText()
    +
    virtual XMLElement * ToElement() override
    Safely cast to an Element, or null.
    Definition tinyxml2.h:1280
    +
    XMLError QueryIntAttribute(const char *name, int *value) const
    Definition tinyxml2.h:1346
    +
    XMLError QueryIntText(int *ival) const
    +
    int IntAttribute(const char *name, int defaultValue=0) const
    +
    void SetName(const char *str, bool staticMem=false)
    Set the name of the element.
    Definition tinyxml2.h:1276
    +
    void SetAttribute(const char *name, bool value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1496
    +
    int64_t Int64Text(int64_t defaultValue=0) const
    See QueryIntText()
    +
    virtual bool ShallowEqual(const XMLNode *compare) const override
    +
    void SetAttribute(const char *name, int value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1473
    +
    XMLComment * InsertNewComment(const char *comment)
    See InsertNewChildElement()
    +
    void SetAttribute(const char *name, int64_t value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1484
    +
    float FloatAttribute(const char *name, float defaultValue=0) const
    See IntAttribute()
    +
    const char * Name() const
    Get the name of an element (which is the Value() of the node.)
    Definition tinyxml2.h:1272
    +
    XMLElement * InsertNewChildElement(const char *name)
    +
    XMLError QueryUnsigned64Text(uint64_t *uval) const
    See QueryIntText()
    +
    XMLText * InsertNewText(const char *text)
    See InsertNewChildElement()
    +
    virtual bool Accept(XMLVisitor *visitor) const override
    +
    XMLError QueryFloatAttribute(const char *name, float *value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1398
    +
    void SetAttribute(const char *name, uint64_t value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1490
    +
    XMLError QueryStringAttribute(const char *name, const char **value) const
    See QueryIntAttribute()
    Definition tinyxml2.h:1407
    +
    void SetAttribute(const char *name, unsigned value)
    Sets the named attribute to value.
    Definition tinyxml2.h:1478
    +
    void SetText(bool value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    void SetText(int value)
    Convenience method for setting text inside an element. See SetText() for important limitations.
    +
    void DeleteAttribute(const char *name)
    +
    uint64_t Unsigned64Text(uint64_t defaultValue=0) const
    See QueryIntText()
    +
    XMLError QueryFloatText(float *fval) const
    See QueryIntText()
    +
    XMLUnknown * InsertNewUnknown(const char *text)
    See InsertNewChildElement()
    +
    unsigned UnsignedAttribute(const char *name, unsigned defaultValue=0) const
    See IntAttribute()
    +
    Definition tinyxml2.h:2057
    +
    XMLHandle PreviousSibling()
    Get the previous sibling of this handle.
    Definition tinyxml2.h:2091
    +
    XMLHandle LastChildElement(const char *name=0)
    Get the last child element of this handle.
    Definition tinyxml2.h:2087
    +
    XMLHandle FirstChild()
    Get the first child of this handle.
    Definition tinyxml2.h:2075
    +
    XMLNode * ToNode()
    Safe cast to XMLNode. This can return null.
    Definition tinyxml2.h:2108
    +
    XMLHandle FirstChildElement(const char *name=0)
    Get the first child element of this handle.
    Definition tinyxml2.h:2079
    +
    XMLHandle PreviousSiblingElement(const char *name=0)
    Get the previous sibling element of this handle.
    Definition tinyxml2.h:2095
    +
    XMLDeclaration * ToDeclaration()
    Safe cast to XMLDeclaration. This can return null.
    Definition tinyxml2.h:2124
    +
    XMLHandle(XMLNode *node)
    Create a handle from any node (at any depth of the tree.) This can be a null pointer.
    Definition tinyxml2.h:2060
    +
    XMLHandle LastChild()
    Get the last child of this handle.
    Definition tinyxml2.h:2083
    +
    XMLHandle & operator=(const XMLHandle &ref)
    Assignment.
    Definition tinyxml2.h:2069
    +
    XMLHandle(XMLNode &node)
    Create a handle from a node.
    Definition tinyxml2.h:2063
    +
    XMLHandle NextSibling()
    Get the next sibling of this handle.
    Definition tinyxml2.h:2099
    +
    XMLElement * ToElement()
    Safe cast to XMLElement. This can return null.
    Definition tinyxml2.h:2112
    +
    XMLText * ToText()
    Safe cast to XMLText. This can return null.
    Definition tinyxml2.h:2116
    +
    XMLUnknown * ToUnknown()
    Safe cast to XMLUnknown. This can return null.
    Definition tinyxml2.h:2120
    +
    XMLHandle NextSiblingElement(const char *name=0)
    Get the next sibling element of this handle.
    Definition tinyxml2.h:2103
    +
    XMLHandle(const XMLHandle &ref)
    Copy constructor.
    Definition tinyxml2.h:2066
    +
    Definition tinyxml2.h:672
    +
    void SetUserData(void *userData)
    Definition tinyxml2.h:942
    + +
    const char * Value() const
    +
    void SetValue(const char *val, bool staticMem=false)
    +
    virtual XMLText * ToText()
    Safely cast to Text, or null.
    Definition tinyxml2.h:693
    +
    virtual XMLDeclaration * ToDeclaration()
    Safely cast to a Declaration, or null.
    Definition tinyxml2.h:705
    +
    const XMLElement * NextSiblingElement(const char *name=0) const
    Get the next (right) sibling element of this node, with an optionally supplied name.
    +
    void * GetUserData() const
    Definition tinyxml2.h:949
    +
    const XMLElement * FirstChildElement(const char *name=0) const
    +
    void DeleteChild(XMLNode *node)
    +
    XMLNode * DeepClone(XMLDocument *target) const
    +
    XMLDocument * GetDocument()
    Get the XMLDocument that owns this XMLNode.
    Definition tinyxml2.h:683
    +
    const XMLNode * Parent() const
    Get the parent of this node on the DOM.
    Definition tinyxml2.h:758
    +
    virtual XMLComment * ToComment()
    Safely cast to a Comment, or null.
    Definition tinyxml2.h:697
    +
    const XMLElement * LastChildElement(const char *name=0) const
    +
    virtual XMLDocument * ToDocument()
    Safely cast to a Document, or null.
    Definition tinyxml2.h:701
    +
    const XMLNode * LastChild() const
    Get the last child node, or null if none exists.
    Definition tinyxml2.h:790
    +
    const XMLDocument * GetDocument() const
    Get the XMLDocument that owns this XMLNode.
    Definition tinyxml2.h:678
    +
    virtual bool ShallowEqual(const XMLNode *compare) const =0
    +
    virtual bool Accept(XMLVisitor *visitor) const =0
    +
    virtual XMLNode * ShallowClone(XMLDocument *document) const =0
    +
    XMLNode * InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)
    +
    const XMLNode * PreviousSibling() const
    Get the previous (left) sibling node of this node.
    Definition tinyxml2.h:808
    +
    virtual XMLElement * ToElement()
    Safely cast to an Element, or null.
    Definition tinyxml2.h:689
    +
    const XMLElement * PreviousSiblingElement(const char *name=0) const
    Get the previous (left) sibling element of this node, with an optionally supplied name.
    +
    int GetLineNum() const
    Gets the line number the node is in, if the document was parsed from a file.
    Definition tinyxml2.h:755
    +
    virtual XMLUnknown * ToUnknown()
    Safely cast to an Unknown, or null.
    Definition tinyxml2.h:709
    +
    const XMLNode * FirstChild() const
    Get the first child node, or null if none exists.
    Definition tinyxml2.h:772
    +
    bool NoChildren() const
    Returns true if this node has no children.
    Definition tinyxml2.h:767
    +
    XMLNode * InsertFirstChild(XMLNode *addThis)
    +
    XMLNode * InsertEndChild(XMLNode *addThis)
    +
    const XMLNode * NextSibling() const
    Get the next (right) sibling node of this node.
    Definition tinyxml2.h:824
    +
    Definition tinyxml2.h:2242
    +
    virtual void PrintSpace(int depth)
    +
    void PushHeader(bool writeBOM, bool writeDeclaration)
    +
    void PushText(const char *text, bool cdata=false)
    Add a text node.
    +
    void PushText(float value)
    Add a text node from a float.
    +
    void OpenElement(const char *name, bool compactMode=false)
    +
    virtual bool VisitExit(const XMLDocument &) override
    Visit a document.
    Definition tinyxml2.h:2294
    +
    virtual bool Visit(const XMLUnknown &unknown) override
    Visit an unknown node.
    +
    int CStrSize() const
    Definition tinyxml2.h:2318
    +
    void PushText(int value)
    Add a text node from an integer.
    +
    void PushText(bool value)
    Add a text node from a bool.
    +
    virtual bool VisitEnter(const XMLElement &element, const XMLAttribute *attribute) override
    Visit an element.
    +
    void PushText(uint64_t value)
    Add a text node from an unsigned 64bit integer.
    +
    virtual bool Visit(const XMLDeclaration &declaration) override
    Visit a declaration.
    +
    void PushText(unsigned value)
    Add a text node from an unsigned.
    +
    void ClearBuffer(bool resetToFirstElement=true)
    Definition tinyxml2.h:2325
    +
    virtual bool VisitEnter(const XMLDocument &) override
    Visit a document.
    +
    virtual bool Visit(const XMLComment &comment) override
    Visit a comment node.
    +
    void PushText(int64_t value)
    Add a text node from a signed 64bit integer.
    +
    virtual bool VisitExit(const XMLElement &element) override
    Visit an element.
    +
    void PushAttribute(const char *name, const char *value)
    If streaming, add an attribute to an open element.
    +
    XMLPrinter(FILE *file=0, bool compact=false, int depth=0)
    +
    void PushText(double value)
    Add a text node from a double.
    +
    const char * CStr() const
    Definition tinyxml2.h:2310
    +
    virtual void CloseElement(bool compactMode=false)
    If streaming, close the Element.
    +
    virtual bool Visit(const XMLText &text) override
    Visit a text node.
    +
    void PushComment(const char *comment)
    Add a comment.
    +
    Definition tinyxml2.h:995
    +
    virtual bool ShallowEqual(const XMLNode *compare) const override
    +
    virtual XMLText * ToText() override
    Safely cast to Text, or null.
    Definition tinyxml2.h:1000
    +
    virtual XMLNode * ShallowClone(XMLDocument *document) const override
    +
    virtual bool Accept(XMLVisitor *visitor) const override
    +
    bool CData() const
    Returns true if this is a CDATA text element.
    Definition tinyxml2.h:1012
    +
    void SetCData(bool isCData)
    Declare whether this should be CDATA or standard text.
    Definition tinyxml2.h:1008
    +
    Definition tinyxml2.h:1109
    +
    virtual bool ShallowEqual(const XMLNode *compare) const override
    +
    virtual XMLNode * ShallowClone(XMLDocument *document) const override
    +
    virtual XMLUnknown * ToUnknown() override
    Safely cast to an Unknown, or null.
    Definition tinyxml2.h:1112
    +
    virtual bool Accept(XMLVisitor *visitor) const override
    +
    Definition tinyxml2.h:479
    +
    virtual bool Visit(const XMLUnknown &)
    Visit an unknown node.
    Definition tinyxml2.h:514
    +
    virtual bool VisitExit(const XMLDocument &)
    Visit a document.
    Definition tinyxml2.h:488
    +
    virtual bool VisitExit(const XMLElement &)
    Visit an element.
    Definition tinyxml2.h:497
    +
    virtual bool VisitEnter(const XMLDocument &)
    Visit a document.
    Definition tinyxml2.h:484
    +
    virtual bool Visit(const XMLComment &)
    Visit a comment node.
    Definition tinyxml2.h:510
    +
    virtual bool Visit(const XMLDeclaration &)
    Visit a declaration.
    Definition tinyxml2.h:502
    +
    virtual bool Visit(const XMLText &)
    Visit a text node.
    Definition tinyxml2.h:506
    +
    virtual bool VisitEnter(const XMLElement &, const XMLAttribute *)
    Visit an element.
    Definition tinyxml2.h:493
    +
    + + + + diff --git a/Engine/lib/tinyxml2/dox b/Engine/lib/tinyxml2/dox new file mode 100644 index 000000000..a3c30672b --- /dev/null +++ b/Engine/lib/tinyxml2/dox @@ -0,0 +1,2441 @@ +# Doxyfile 1.8.13 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "TinyXML-2" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 10.0.0 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 0. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 0 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = NO + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = tinyxml2.h \ + xmltest.cpp \ + readme.md + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = . + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = readme.md + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse-libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = docs + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = YES + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /