From c41b04db9be8880f812ad0c364c1b614662910e4 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sat, 6 Jul 2024 14:08:20 +0200 Subject: [PATCH] Remove copy method from drawable --- openVulkanoCpp/Scene/Drawable.hpp | 2 -- openVulkanoCpp/Scene/Node.cpp | 5 ++--- openVulkanoCpp/Scene/Prefabs/GridDrawable.hpp | 2 -- openVulkanoCpp/Scene/SimpleDrawable.hpp | 2 -- 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/openVulkanoCpp/Scene/Drawable.hpp b/openVulkanoCpp/Scene/Drawable.hpp index 5dced77..5f58614 100644 --- a/openVulkanoCpp/Scene/Drawable.hpp +++ b/openVulkanoCpp/Scene/Drawable.hpp @@ -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; } diff --git a/openVulkanoCpp/Scene/Node.cpp b/openVulkanoCpp/Scene/Node.cpp index 60c71c0..78e43f6 100644 --- a/openVulkanoCpp/Scene/Node.cpp +++ b/openVulkanoCpp/Scene/Node.cpp @@ -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); } diff --git a/openVulkanoCpp/Scene/Prefabs/GridDrawable.hpp b/openVulkanoCpp/Scene/Prefabs/GridDrawable.hpp index a19b1c4..829fb40 100644 --- a/openVulkanoCpp/Scene/Prefabs/GridDrawable.hpp +++ b/openVulkanoCpp/Scene/Prefabs/GridDrawable.hpp @@ -19,7 +19,5 @@ namespace OpenVulkano::Scene GridDrawable(); [[nodiscard]] Shader& GetShader() { return m_shader; } - - [[nodiscard]] Drawable* Copy() override { return new GridDrawable(); } }; } \ No newline at end of file diff --git a/openVulkanoCpp/Scene/SimpleDrawable.hpp b/openVulkanoCpp/Scene/SimpleDrawable.hpp index 9babb32..49908d2 100644 --- a/openVulkanoCpp/Scene/SimpleDrawable.hpp +++ b/openVulkanoCpp/Scene/SimpleDrawable.hpp @@ -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; }