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 checkplane 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, waitcollideWithprotected int checkPlane
protected Vector3f center
public BoundingVolume()
public BoundingVolume(Vector3f center)
public int getCheckPlane()
public final void setCheckPlane(int value)
value - public 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.Objectpublic void write(JmeExporter e) throws java.io.IOException
public void read(JmeImporter e) throws java.io.IOException
public int collideWith(Collidable other)