/******************************************************************/ /* This file is part of the homework assignments for CSCI-427/527 */ /* at The College of William & Mary and authored by Pieter Peers. */ /* No part of this file, whether altered or in original form, can */ /* be distributed or used outside the context of CSCI-427/527 */ /* without consent of either the College of William & Mary or */ /* Pieter Peers. */ /******************************************************************/ #ifndef _SCENEIO_XML_H_ #define _SCENEIO_XML_H_ #include #include #include "tinyxml2.h" class XMLNode { public: ///////////////// // Constructor // ///////////////// XMLNode(const std::string& filename); XMLNode(const tinyxml2::XMLElement* element, const std::shared_ptr& xml); XMLNode(const XMLNode& node); ///////////// // Methods // ///////////// XMLNode firstChild(void) const; XMLNode findChild(const std::string& name) const; bool isValid(void) const; std::string name(void) const; std::string attribute(const std::string& attribute) const; /////////////// // Operators // /////////////// XMLNode& operator++(void); XMLNode& operator++(int); XMLNode& operator=(const XMLNode& src); protected: ////////////////// // Data Members // ////////////////// const tinyxml2::XMLElement* _element; std::shared_ptr _xml; }; #endif /* _SCENEIO_XML_H_ */