diff --git a/openVulkanoCpp/Scene/Node.cpp b/openVulkanoCpp/Scene/Node.cpp index 6f60112..d21a12e 100644 --- a/openVulkanoCpp/Scene/Node.cpp +++ b/openVulkanoCpp/Scene/Node.cpp @@ -74,6 +74,12 @@ namespace OpenVulkano::Scene drawables.push_back(drawable); } + void Node::AddDrawableIfParentless(Drawable* drawable) + { + if (drawable->GetNodes().empty()) + AddDrawable(drawable); + } + void Node::RemoveDrawable(Drawable* drawable) { drawable->RemoveNode(this); diff --git a/openVulkanoCpp/Scene/Node.hpp b/openVulkanoCpp/Scene/Node.hpp index 08ab16c..3b5331a 100644 --- a/openVulkanoCpp/Scene/Node.hpp +++ b/openVulkanoCpp/Scene/Node.hpp @@ -57,6 +57,8 @@ namespace OpenVulkano::Scene void RemoveDrawable(Drawable* drawable); + void AddDrawableIfParentless(Drawable* drawable); + void SetMatrix(const Math::Matrix4f& mat); [[nodiscard]] Math::Matrix3f GetRotationMatrix() const { return static_cast(localMat); }