From 3beb2c71d47cc7705a6481cb3740fe85ad673bd3 Mon Sep 17 00:00:00 2001 From: Paul Lemire Date: Tue, 10 Nov 2015 12:34:27 +0100 Subject: UpdateBoundingVolumeJob: slightly updated Change-Id: Id327e4eb6bd78618a62bc75ef0cdabc8b2111aa7 Reviewed-by: Andy Nichols --- src/render/jobs/updateboundingvolumejob.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/render/jobs') diff --git a/src/render/jobs/updateboundingvolumejob.cpp b/src/render/jobs/updateboundingvolumejob.cpp index b31b7e85f..1a46ee2bc 100644 --- a/src/render/jobs/updateboundingvolumejob.cpp +++ b/src/render/jobs/updateboundingvolumejob.cpp @@ -56,13 +56,12 @@ void expandWorldBoundingVolume(Qt3DRender::Render::Entity *node) Q_FOREACH (Entity *c, node->children()) expandWorldBoundingVolume(c); - // Then traverse to root + // Then traverse back from leaf to root // Initialize parent bounding volume to be equal to that of the first child - Qt3DRender::Render::Entity *parentNode = node->parent(); - if (parentNode) { - Qt3DRender::Render::Sphere *parentBoundingVolume = parentNode->worldBoundingVolumeWithChildren(); - Qt3DRender::Render::Sphere *nodeBoundingVolume = node->worldBoundingVolumeWithChildren(); - parentBoundingVolume->expandToContain(*nodeBoundingVolume); + if (node->hasChildren()) { + Qt3DRender::Render::Sphere *parentBoundingVolume = node->worldBoundingVolumeWithChildren(); + Q_FOREACH (Entity *c, node->children()) + parentBoundingVolume->expandToContain(*c->worldBoundingVolumeWithChildren()); } } -- cgit v1.2.3