Graphics/GraphicsComponent: Add GetAABB method

This commit is contained in:
SirLynix 2023-04-04 08:25:30 +02:00
parent 44aec8d5a5
commit 0656b388bc
2 changed files with 13 additions and 0 deletions

View File

@ -34,6 +34,7 @@ namespace Nz
inline void DetachRenderable(const std::shared_ptr<InstancedRenderable>& renderable); inline void DetachRenderable(const std::shared_ptr<InstancedRenderable>& renderable);
inline Boxf GetAABB() const;
inline const Renderable& GetRenderableEntry(std::size_t renderableIndex) const; inline const Renderable& GetRenderableEntry(std::size_t renderableIndex) const;
inline const std::array<Renderable, MaxRenderableCount>& GetRenderables() const; inline const std::array<Renderable, MaxRenderableCount>& GetRenderables() const;
inline const Recti& GetScissorBox() const; inline const Recti& GetScissorBox() const;

View File

@ -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& inline auto GraphicsComponent::GetRenderableEntry(std::size_t renderableIndex) const -> const Renderable&
{ {
assert(renderableIndex < m_renderables.size()); assert(renderableIndex < m_renderables.size());