public BoundingVolumeHierarchy(IPrimitive nodeA, IPrimitive nodeB, int splittingPlane) { this.splittingPlane = splittingPlane; this.nodeA = nodeA; this.nodeB = nodeB; this.Aabb = nodeA.GetAxisAlignedBoundingBox() + nodeB.GetAxisAlignedBoundingBox(); // we can cache this because it is not allowed to change. }
public AxisAlignedBoundingBox GetAxisAlignedBoundingBox() { Vector3 localOrigin = Origin; AxisAlignedBoundingBox localBounds = child.GetAxisAlignedBoundingBox(); AxisAlignedBoundingBox bounds = localBounds.NewTransformed(AxisToWorld); return(bounds); }
public AxisAlignedBoundingBox GetAxisAlignedBoundingBox() { return(primary.GetAxisAlignedBoundingBox()); }
public BoundingVolumeHierarchy(IPrimitive nodeA, IPrimitive nodeB, int splitingPlane) { this.splitingPlane = splitingPlane; this.nodeA = nodeA; this.nodeB = nodeB; this.Aabb = nodeA.GetAxisAlignedBoundingBox() + nodeB.GetAxisAlignedBoundingBox(); // we can cache this because it is not allowed to change. }