mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-19 17:09:40 +00:00
Fix quad tree node child bounding box dimensions
This commit is contained in:
parent
172cb74763
commit
b2000b7642
1 changed files with 7 additions and 6 deletions
|
@ -171,20 +171,21 @@ public:
|
|||
|
||||
QuadTreeNode* addChild(QuadTreeNode* parent, ChildDirection direction, float size)
|
||||
{
|
||||
float halfSize = size/2.f;
|
||||
osg::Vec2f center;
|
||||
switch (direction)
|
||||
{
|
||||
case SW:
|
||||
center = parent->getCenter() + osg::Vec2f(-size/2.f,-size/2.f);
|
||||
center = parent->getCenter() + osg::Vec2f(-halfSize,-halfSize);
|
||||
break;
|
||||
case SE:
|
||||
center = parent->getCenter() + osg::Vec2f(size/2.f, -size/2.f);
|
||||
center = parent->getCenter() + osg::Vec2f(halfSize, -halfSize);
|
||||
break;
|
||||
case NW:
|
||||
center = parent->getCenter() + osg::Vec2f(-size/2.f, size/2.f);
|
||||
center = parent->getCenter() + osg::Vec2f(-halfSize, halfSize);
|
||||
break;
|
||||
case NE:
|
||||
center = parent->getCenter() + osg::Vec2f(size/2.f, size/2.f);
|
||||
center = parent->getCenter() + osg::Vec2f(halfSize, halfSize);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -206,8 +207,8 @@ public:
|
|||
mStorage->getMinMaxHeights(size, center, minZ, maxZ);
|
||||
|
||||
float cellWorldSize = mStorage->getCellWorldSize();
|
||||
osg::BoundingBox boundingBox(osg::Vec3f((center.x()-size)*cellWorldSize, (center.y()-size)*cellWorldSize, minZ),
|
||||
osg::Vec3f((center.x()+size)*cellWorldSize, (center.y()+size)*cellWorldSize, maxZ));
|
||||
osg::BoundingBox boundingBox(osg::Vec3f((center.x()-halfSize)*cellWorldSize, (center.y()-halfSize)*cellWorldSize, minZ),
|
||||
osg::Vec3f((center.x()+halfSize)*cellWorldSize, (center.y()+halfSize)*cellWorldSize, maxZ));
|
||||
node->setBoundingBox(boundingBox);
|
||||
|
||||
return node;
|
||||
|
|
Loading…
Reference in a new issue