#include "LayerModelSerialization.hpp" #include "Lottie/Private/Model/Layers/PreCompLayerModel.hpp" #include "Lottie/Private/Model/Layers/SolidLayerModel.hpp" #include "Lottie/Private/Model/Layers/ImageLayerModel.hpp" #include "Lottie/Private/Model/Layers/ShapeLayerModel.hpp" #include "Lottie/Private/Model/Layers/TextLayerModel.hpp" namespace lottie { std::shared_ptr parseLayerModel(json11::Json::object const &json) noexcept(false) { LayerType layerType = parseLayerType(json, "ty"); switch (layerType) { case LayerType::Precomp: return std::make_shared(json); case LayerType::Solid: return std::make_shared(json); case LayerType::Image: return std::make_shared(json); case LayerType::Null: return std::make_shared(json); case LayerType::Shape: try { return std::make_shared(json); } catch(...) { throw LottieParsingException(); } case LayerType::Text: return std::make_shared(json); } } }