#pragma once #define RENDERABLE typeid(TSE::Renderable).name() #include "elements/Material.hpp" #include "interfaces/IRenderable.hpp" #include "elements/BehaviourScript.hpp" #include "Mesh.hpp" namespace TSE { class Renderable : public BehaviourScript, public IRenderable { private: Material* material = nullptr; public: Renderable(); explicit Renderable(Material* material); const Vector3* GetVertices() const override; const Vector2* GetUVs() const override; const std::vector GetIndices() const override; size_t GetVertexCount() const override; inline const char* GetName() override { return "Renderable"; } void SetMaterial(Material* material); Material* GetMaterial(); private: Mesh* GetMeshContainer() const; }; } // namespace TSE