public abstract class BoundingVolume extends java.lang.Object implements Savable, java.lang.Cloneable, Collidable
BoundingVolume
defines an interface for dealing with
containment of a collection of points.Modifier and Type | Class and Description |
---|---|
static class |
BoundingVolume.Type
The type of bounding volume being used.
|
Modifier and Type | Field and Description |
---|---|
protected Vector3f |
center |
protected int |
checkPlane |
Constructor and Description |
---|
BoundingVolume() |
BoundingVolume(Vector3f center) |
Modifier and Type | Method and Description |
---|---|
BoundingVolume |
clone() |
abstract BoundingVolume |
clone(BoundingVolume store)
clone creates a new BoundingVolume object containing the
same data as this one. |
int |
collideWith(Collidable other) |
abstract void |
computeFromPoints(java.nio.FloatBuffer points)
computeFromPoints generates a bounding volume that
encompasses a collection of points. |
abstract boolean |
contains(Vector3f point)
determines if a given point is contained within this bounding volume.
|
float |
distanceSquaredTo(Vector3f point)
Find the squared distance from the center of this Bounding Volume to the
given point.
|
float |
distanceTo(Vector3f point)
Find the distance from the center of this Bounding Volume to the given
point.
|
abstract float |
distanceToEdge(Vector3f point)
Find the distance from the nearest edge of this Bounding Volume to the given
point.
|
Vector3f |
getCenter() |
Vector3f |
getCenter(Vector3f store) |
int |
getCheckPlane()
Grabs the plane we should check first.
|
abstract BoundingVolume.Type |
getType()
getType returns the type of bounding volume this is.
|
abstract float |
getVolume() |
abstract boolean |
intersects(BoundingVolume bv)
determines if this bounding volume and a second given volume are
intersecting.
|
abstract boolean |
intersects(Ray ray)
determines if a ray intersects this bounding volume.
|
abstract boolean |
intersects(Vector3f point)
Determines if a given point intersects (touches or is inside) this bounding volume.
|
abstract boolean |
intersectsBoundingBox(BoundingBox bb)
determines if this bounding volume and a given bounding box are
intersecting.
|
abstract boolean |
intersectsSphere(BoundingSphere bs)
determines if this bounding volume and a given bounding sphere are
intersecting.
|
abstract BoundingVolume |
merge(BoundingVolume volume)
merge combines two bounding volumes into a single bounding
volume that contains both this bounding volume and the parameter volume. |
abstract BoundingVolume |
mergeLocal(BoundingVolume volume)
mergeLocal combines two bounding volumes into a single
bounding volume that contains both this bounding volume and the parameter
volume. |
void |
read(JmeImporter e) |
void |
setCenter(float x,
float y,
float z) |
void |
setCenter(Vector3f newCenter) |
void |
setCheckPlane(int value)
Sets the index of the plane that should be first checked during rendering.
|
abstract BoundingVolume |
transform(Matrix4f trans,
BoundingVolume store) |
BoundingVolume |
transform(Transform trans)
transform alters the location of the bounding volume by a
rotation, translation and a scalar. |
abstract BoundingVolume |
transform(Transform trans,
BoundingVolume store)
transform alters the location of the bounding volume by a
rotation, translation and a scalar. |
abstract Plane.Side |
whichSide(Plane plane)
whichSide returns the side on which the bounding volume
lies on a plane. |
void |
write(JmeExporter e) |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
collideWith
protected int checkPlane
protected Vector3f center
public BoundingVolume()
public BoundingVolume(Vector3f center)
public int getCheckPlane()
public final void setCheckPlane(int value)
value
- the index of the plane to be checked firstpublic abstract BoundingVolume.Type getType()
public final BoundingVolume transform(Transform trans)
transform
alters the location of the bounding volume by a
rotation, translation and a scalar.trans
- the transform to affect the bound.public abstract BoundingVolume transform(Transform trans, BoundingVolume store)
transform
alters the location of the bounding volume by a
rotation, translation and a scalar.trans
- the transform to affect the bound.store
- bounding volume to store result inpublic abstract BoundingVolume transform(Matrix4f trans, BoundingVolume store)
public abstract Plane.Side whichSide(Plane plane)
whichSide
returns the side on which the bounding volume
lies on a plane. Possible values are POSITIVE_SIDE, NEGATIVE_SIDE, and
NO_SIDE.plane
- the plane to check against this bounding volume.public abstract void computeFromPoints(java.nio.FloatBuffer points)
computeFromPoints
generates a bounding volume that
encompasses a collection of points.points
- the points to contain.public abstract BoundingVolume merge(BoundingVolume volume)
merge
combines two bounding volumes into a single bounding
volume that contains both this bounding volume and the parameter volume.volume
- the volume to combine.public abstract BoundingVolume mergeLocal(BoundingVolume volume)
mergeLocal
combines two bounding volumes into a single
bounding volume that contains both this bounding volume and the parameter
volume. The result is stored locally.volume
- the volume to combine.public abstract BoundingVolume clone(BoundingVolume store)
clone
creates a new BoundingVolume object containing the
same data as this one.store
- where to store the cloned information. if null or wrong class,
a new store is created.public final Vector3f getCenter()
public final void setCenter(Vector3f newCenter)
public final void setCenter(float x, float y, float z)
public final float distanceTo(Vector3f point)
point
- The point to get the distance topublic final float distanceSquaredTo(Vector3f point)
point
- The point to get the distance topublic abstract float distanceToEdge(Vector3f point)
point
- The point to get the distance topublic abstract boolean intersects(BoundingVolume bv)
bv
- the second volume to test against.public abstract boolean intersects(Ray ray)
ray
- the ray to test.public abstract boolean intersectsSphere(BoundingSphere bs)
bs
- the bounding sphere to test against.public abstract boolean intersectsBoundingBox(BoundingBox bb)
bb
- the bounding box to test against.public abstract boolean contains(Vector3f point)
point
- the point to checkpublic abstract boolean intersects(Vector3f point)
point
- the point to checkpublic abstract float getVolume()
public BoundingVolume clone()
clone
in class java.lang.Object
public void write(JmeExporter e) throws java.io.IOException
public void read(JmeImporter e) throws java.io.IOException
public int collideWith(Collidable other)