diff --git a/include/Nazara/Graphics/Components/GraphicsComponent.hpp b/include/Nazara/Graphics/Components/GraphicsComponent.hpp index 30bb76e3e..10481cb9d 100644 --- a/include/Nazara/Graphics/Components/GraphicsComponent.hpp +++ b/include/Nazara/Graphics/Components/GraphicsComponent.hpp @@ -34,6 +34,7 @@ namespace Nz inline void DetachRenderable(const std::shared_ptr& renderable); + inline Boxf GetAABB() const; inline const Renderable& GetRenderableEntry(std::size_t renderableIndex) const; inline const std::array& GetRenderables() const; inline const Recti& GetScissorBox() const; diff --git a/include/Nazara/Graphics/Components/GraphicsComponent.inl b/include/Nazara/Graphics/Components/GraphicsComponent.inl index 95c11bf86..ea130d259 100644 --- a/include/Nazara/Graphics/Components/GraphicsComponent.inl +++ b/include/Nazara/Graphics/Components/GraphicsComponent.inl @@ -53,6 +53,18 @@ namespace Nz } } + inline Boxf GraphicsComponent::GetAABB() const + { + if (m_renderables.empty()) + return Boxf::Zero(); + + Boxf aabb = m_renderables.front().renderable->GetAABB(); + for (std::size_t i = 1; i < m_renderables.size(); ++i) + aabb.ExtendTo(m_renderables[i].renderable->GetAABB()); + + return aabb; + } + inline auto GraphicsComponent::GetRenderableEntry(std::size_t renderableIndex) const -> const Renderable& { assert(renderableIndex < m_renderables.size());