aboutsummaryrefslogtreecommitdiff
path: root/source/Irrlicht/CBillboardSceneNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Irrlicht/CBillboardSceneNode.cpp')
-rw-r--r--source/Irrlicht/CBillboardSceneNode.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/source/Irrlicht/CBillboardSceneNode.cpp b/source/Irrlicht/CBillboardSceneNode.cpp
index da90c3a..b61a8ea 100644
--- a/source/Irrlicht/CBillboardSceneNode.cpp
+++ b/source/Irrlicht/CBillboardSceneNode.cpp
@@ -141,7 +141,7 @@ void CBillboardSceneNode::updateMesh(const irr::scene::ICameraSceneNode* camera)
//! returns the axis aligned bounding box of this node
const core::aabbox3d<f32>& CBillboardSceneNode::getBoundingBox() const
{
- // Really wrong when scaled.
+ // Really wrong when scaled (as the node does not scale it's vertices - maybe it should?)
return BBoxSafe;
}
@@ -162,9 +162,9 @@ void CBillboardSceneNode::setSize(const core::dimension2d<f32>& size)
if (core::equals(Size.Height, 0.0f))
Size.Height = 1.0f;
- const f32 avg = (Size.Width + Size.Height)/6;
- BBoxSafe.MinEdge.set(-avg,-avg,-avg);
- BBoxSafe.MaxEdge.set(avg,avg,avg);
+ const f32 extent = 0.5f*sqrtf(Size.Width*Size.Width + Size.Height*Size.Height);
+ BBoxSafe.MinEdge.set(-extent,-extent,-extent);
+ BBoxSafe.MaxEdge.set(extent,extent,extent);
}
@@ -182,9 +182,9 @@ void CBillboardSceneNode::setSize(f32 height, f32 bottomEdgeWidth, f32 topEdgeWi
TopEdgeWidth = 1.0f;
}
- const f32 avg = (core::max_(Size.Width,TopEdgeWidth) + Size.Height)/6;
- BBoxSafe.MinEdge.set(-avg,-avg,-avg);
- BBoxSafe.MaxEdge.set(avg,avg,avg);
+ const f32 extent = 0.5f*sqrtf(Size.Width*Size.Width + Size.Height*Size.Height);
+ BBoxSafe.MinEdge.set(-extent,-extent,-extent);
+ BBoxSafe.MaxEdge.set(extent,extent,extent);
}