// shape_loader.hpp - Carregador estàtic de formes con caché // © 2026 JailDesigner #pragma once #include #include #include #include "core/graphics/shape.hpp" namespace Graphics { // Carregador estàtic de formes con caché class ShapeLoader { public: // No instanciable (tot estàtic) ShapeLoader() = delete; // Carregar shape desde file (con caché) // Retorna punter compartit (nullptr si error) // Exemple: load("ship.shp") → busca a "data/shapes/ship.shp" static auto load(const std::string& filename) -> std::shared_ptr; // Netejar caché (útil per debug/recàrrega) static void clearCache(); // Estadístiques (debug) static auto getCacheSize() -> size_t; private: static std::unordered_map> cache; }; } // namespace Graphics