#pragma once #include "Transformable.hpp" #include "Types.hpp" #include "interfaces/IRenderer.hpp" #include #include "interfaces/IIdentifyable.hpp" namespace TSE { class Layer : public IIdentifyable { private: string name; std::vector objectsToRender; bool nonVisual = false; public: Layer(const string& name); void Render(IRenderer& rnd) const; void AddTransformable(Transformable* t); bool HasTransformable(const Transformable* t) const; void RemoveTransformable(const Transformable* t); void RemoveTransformable(const uuids::uuid id); string GetName() const; void SetName(const string& name); std::vector& GetAllObjects(); void Update(); void SetNonVisual(bool v); bool IsVisual(); }; } // namespace TSE