Remove copy method from drawable

This commit is contained in:
Georg Hagen
2024-07-06 14:08:20 +02:00
parent 7e9c568779
commit c41b04db9b
4 changed files with 2 additions and 9 deletions

View File

@@ -45,8 +45,6 @@ namespace OpenVulkano::Scene
void SetShader(Shader* shader) { m_shader = shader; }
[[nodiscard]] virtual Drawable* Copy() = 0;
[[nodiscard]] Scene* GetScene() const { return m_scene; }
[[nodiscard]] const auto& GetNodes() const { return m_nodes; }

View File

@@ -125,10 +125,9 @@ namespace OpenVulkano::Scene
for (auto& drawable : drawables)
{
Scene* drawableScene = drawable->GetScene();
if(drawableScene && drawableScene != scene)
if(drawableScene && drawableScene != scene) [[unlikely]]
{
Logger::SCENE->warn("Drawable is already associated with a scene! Creating copy.");
drawable = drawable->Copy();
throw std::runtime_error("Drawable is already associated with a scene! Creating copy.");
}
drawable->SetScene(scene);
}

View File

@@ -19,7 +19,5 @@ namespace OpenVulkano::Scene
GridDrawable();
[[nodiscard]] Shader& GetShader() { return m_shader; }
[[nodiscard]] Drawable* Copy() override { return new GridDrawable(); }
};
}

View File

@@ -39,8 +39,6 @@ namespace OpenVulkano::Scene
void Init(SimpleDrawable* drawable);
[[nodiscard]] Drawable* Copy() override { return new SimpleDrawable(this); }
[[nodiscard]] Geometry* GetMesh() const { return m_mesh; }
[[nodiscard]] Material* GetMaterial() const { return m_material; }