Line data Source code
1 : #pragma once 2 : 3 : #include <color/color.hpp> 4 : #include <filesystem> 5 : #include <memory> 6 : #include <optional> 7 : #include <rapidxml.hpp> 8 : #include <string> 9 : 10 : #include "data/SUMO/SUMO.hpp" 11 : 12 : namespace SUMO::Additionals { 13 : 14 0 : class Additional { 15 : public: 16 : virtual void loadFromXMLNode(const rapidxml::xml_node<>& node) = 0; 17 : }; 18 : 19 : std::vector<std::unique_ptr<Additional>> loadFromFile(const std::filesystem::path& path); 20 : 21 : class XMLFactory { 22 : public: 23 : std::unique_ptr<Additional> create(const rapidxml::xml_node<>& node); 24 : }; 25 : 26 : } // namespace SUMO::Additionals