#pragma once #include #include #include namespace tinyxml2 { class XMLElement; } namespace osmp { class INode; class IWay; class IRelation; typedef std::shared_ptr Node; typedef std::shared_ptr Way; typedef std::shared_ptr Relation; typedef std::vector Nodes; typedef std::vector Ways; typedef std::vector Relations; typedef struct sBounds { double minlat, minlon, maxlat, maxlon; } Bounds; [[nodiscard]] std::string GetSafeAttributeString(const tinyxml2::XMLElement* elem, const std::string& name); [[nodiscard]] double GetSafeAttributeFloat(const tinyxml2::XMLElement* elem, const std::string& name); [[nodiscard]] uint64_t GetSafeAttributeUint64(const tinyxml2::XMLElement* elem, const std::string& name); [[nodiscard]] bool GetSafeAttributeBool(const tinyxml2::XMLElement* elem, const std::string& name); }