Files
TSE/TSE_Core/src/elements/Layer.hpp

36 lines
970 B
C++

#pragma once
#include "Transformable.hpp"
#include "Types.hpp"
#include "interfaces/IRenderer.hpp"
#include <vector>
#include "interfaces/IIdentifyable.hpp"
namespace TSE
{
class Layer : public IIdentifyable
{
private:
string name;
std::vector<Transformable*> 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<Transformable*>& GetAllObjects();
void Update();
void SetNonVisual(bool v);
bool IsVisual();
};
} // namespace TSE