SDK/GraphicsComponent: Fix AABB miscalculation
(may occur with 2D objects when depth is zero)
This commit is contained in:
@@ -297,6 +297,9 @@ namespace Ndk
|
|||||||
RenderSystem& renderSystem = m_entity->GetWorld()->GetSystem<RenderSystem>();
|
RenderSystem& renderSystem = m_entity->GetWorld()->GetSystem<RenderSystem>();
|
||||||
|
|
||||||
m_aabb.Set(-1.f, -1.f, -1.f);
|
m_aabb.Set(-1.f, -1.f, -1.f);
|
||||||
|
|
||||||
|
bool isAabbSet = false;
|
||||||
|
|
||||||
for (const Renderable& r : m_renderables)
|
for (const Renderable& r : m_renderables)
|
||||||
{
|
{
|
||||||
r.boundingVolume = r.renderable->GetBoundingVolume();
|
r.boundingVolume = r.renderable->GetBoundingVolume();
|
||||||
@@ -305,10 +308,13 @@ namespace Ndk
|
|||||||
{
|
{
|
||||||
r.boundingVolume.Update(r.data.transformMatrix);
|
r.boundingVolume.Update(r.data.transformMatrix);
|
||||||
|
|
||||||
if (m_aabb.IsValid())
|
if (isAabbSet)
|
||||||
m_aabb.ExtendTo(r.boundingVolume.aabb);
|
m_aabb.ExtendTo(r.boundingVolume.aabb);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
m_aabb.Set(r.boundingVolume.aabb);
|
m_aabb.Set(r.boundingVolume.aabb);
|
||||||
|
isAabbSet = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user