X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FOctree.cc;h=9bb04e81d56e887882c2a59d152cdbcb012c2610;hp=300dbcdea7a9f2537d0499667374f22d777c2cb3;hb=fe9614821670d9affcb68fb3e45723b9d40d0b7e;hpb=3cba2347188d70f5ee6e401774b8f86acfd1a3b9 diff --git a/src/Moof/Octree.cc b/src/Moof/Octree.cc index 300dbcd..9bb04e8 100644 --- a/src/Moof/Octree.cc +++ b/src/Moof/Octree.cc @@ -66,31 +66,34 @@ OctreeNodeP Octree::insert(EntityP entity, OctreeNodeP node) entity->getAabb().max[2] < node->getAabb().max[2] && entity->getAabb().min[2] > node->getAabb().min[2])) { + // TODO this check is only needed for the root node, if we're inside the + // volume of the root node, we'll be fully inside the child as + // determined by trying to insert the parent node goto done; } - halfspace = xy.intersectsSphere(entity->getSphere()); + halfspace = xy.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = xy.intersectsAabb(entity->getAabb()); + halfspace = xy.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) { Plane xz = node->getAabb().getPlaneXZ(); - halfspace = xz.intersectsSphere(entity->getSphere()); + halfspace = xz.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = xz.intersectsAabb(entity->getAabb()); + halfspace = xz.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) { Plane yz = node->getAabb().getPlaneYZ(); - halfspace = yz.intersectsSphere(entity->getSphere()); + halfspace = yz.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = yz.intersectsAabb(entity->getAabb()); + halfspace = yz.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) @@ -105,10 +108,10 @@ OctreeNodeP Octree::insert(EntityP entity, OctreeNodeP node) else if (halfspace == Plane::NEGATIVE) { Plane yz = node->getAabb().getPlaneYZ(); - halfspace = yz.intersectsSphere(entity->getSphere()); + halfspace = yz.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = yz.intersectsAabb(entity->getAabb()); + halfspace = yz.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) @@ -124,19 +127,19 @@ OctreeNodeP Octree::insert(EntityP entity, OctreeNodeP node) else if (halfspace == Plane::NEGATIVE) { Plane xz = node->getAabb().getPlaneXZ(); - halfspace = xz.intersectsSphere(entity->getSphere()); + halfspace = xz.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = xz.intersectsAabb(entity->getAabb()); + halfspace = xz.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) { Plane yz = node->getAabb().getPlaneYZ(); - halfspace = yz.intersectsSphere(entity->getSphere()); + halfspace = yz.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = yz.intersectsAabb(entity->getAabb()); + halfspace = yz.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) @@ -151,10 +154,10 @@ OctreeNodeP Octree::insert(EntityP entity, OctreeNodeP node) else if (halfspace == Plane::NEGATIVE) { Plane yz = node->getAabb().getPlaneYZ(); - halfspace = yz.intersectsSphere(entity->getSphere()); + halfspace = yz.intersects(entity->getSphere()); if (halfspace == Plane::INTERSECT) { - halfspace = yz.intersectsAabb(entity->getAabb()); + halfspace = yz.intersects(entity->getAabb()); } if (halfspace == Plane::POSITIVE) @@ -241,11 +244,11 @@ void Octree::drawIfVisible(Scalar alpha, const Camera& cam, OctreeNodeP node) // try to cull by sphere Frustum::Collision collision = - cam.getFrustum().containsSphere(node->getSphere()); + cam.getFrustum().contains(node->getSphere()); if (collision == Frustum::OUTSIDE) return; // try to cull by aabb - collision = cam.getFrustum().containsAabb(node->getAabb()); + collision = cam.getFrustum().contains(node->getAabb()); if (collision == Frustum::OUTSIDE) return;