36 lines
970 B
C++
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
|