|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.jme.bounding.BoundingVolume
com.jme.bounding.BoundingSphere
public class BoundingSphere
BoundingSphere defines a sphere that defines a container for a
group of vertices of a particular piece of geometry. This sphere defines a
radius and a center.
A typical usage is to allow the class define the center and radius by calling
either containAABB or averagePoints. A call to
computeFramePoint in turn calls containAABB.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class com.jme.bounding.BoundingVolume |
|---|
BoundingVolume.Type |
| Field Summary | |
|---|---|
float |
radius
|
| Fields inherited from class com.jme.bounding.BoundingVolume |
|---|
_compVect1, _compVect2, _compVect3, center, checkPlane |
| Constructor Summary | |
|---|---|
BoundingSphere()
Default contstructor instantiates a new BoundingSphere
object. |
|
BoundingSphere(float r,
Vector3f c)
Constructor instantiates a new BoundingSphere object. |
|
| Method Summary | |
|---|---|
void |
averagePoints(Vector3f[] points)
averagePoints selects the sphere center to be the average
of the points and the sphere radius to be the smallest value to enclose
all points. |
void |
calcWelzl(java.nio.FloatBuffer points)
Calculates a minimum bounding sphere for the set of points. |
BoundingVolume |
clone(BoundingVolume store)
clone creates a new BoundingSphere object containing the
same data as this one. |
void |
computeFromPoints(java.nio.FloatBuffer points)
computeFromPoints creates a new Bounding Sphere from a
given set of points. |
void |
computeFromTris(int[] indices,
TriMesh mesh,
int start,
int end)
computeFromTris creates a new Bounding Box from a given
set of triangles. |
void |
computeFromTris(Triangle[] tris,
int start,
int end)
computeFromTris creates a new Bounding Box from a given
set of triangles. |
boolean |
contains(Vector3f point)
determines if a given point is contained within this bounding volume. |
float |
distanceToEdge(Vector3f point)
Find the distance from the nearest edge of this Bounding Volume to the given point. |
float |
getRadius()
getRadius returns the radius of the bounding sphere. |
BoundingVolume.Type |
getType()
getType returns the type of bounding volume this is. |
float |
getVolume()
|
boolean |
intersects(BoundingVolume bv)
determines if this bounding volume and a second given volume are intersecting. |
boolean |
intersects(Ray ray)
determines if a ray intersects this bounding volume. |
boolean |
intersectsBoundingBox(BoundingBox bb)
determines if this bounding volume and a given bounding box are intersecting. |
boolean |
intersectsCapsule(BoundingCapsule bc)
determins if this bounding volume and a given bounding capsule are intersecting. |
boolean |
intersectsOrientedBoundingBox(OrientedBoundingBox obb)
determines if this bounding volume and a given bounding box are intersecting. |
boolean |
intersectsSphere(BoundingSphere bs)
determines if this bounding volume and a given bounding sphere are intersecting. |
IntersectionRecord |
intersectsWhere(Ray ray)
determines if a ray intersects this bounding volume and if so, where. |
BoundingVolume |
merge(BoundingVolume volume)
merge combines this sphere with a second bounding sphere. |
BoundingVolume |
mergeLocal(BoundingVolume volume)
mergeLocal combines this sphere with a second bounding
sphere locally. |
void |
read(JMEImporter e)
|
void |
setRadius(float radius)
setRadius sets the radius of this bounding sphere. |
java.lang.String |
toString()
toString returns the string representation of this object. |
BoundingVolume |
transform(Quaternion rotate,
Vector3f translate,
Vector3f scale,
BoundingVolume store)
transform modifies the center of the sphere to reflect the
change made via a rotation, translation and scale. |
Plane.Side |
whichSide(Plane plane)
whichSide takes a plane (typically provided by a view
frustum) to determine which side this bound is on. |
void |
write(JMEExporter e)
|
| Methods inherited from class com.jme.bounding.BoundingVolume |
|---|
distanceSquaredTo, distanceTo, getCenter, getCenter, getCheckPlane, getClassTag, setCenter, setCheckPlane, transform |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public float radius
| Constructor Detail |
|---|
public BoundingSphere()
BoundingSphere
object.
public BoundingSphere(float r,
Vector3f c)
BoundingSphere object.
r - the radius of the sphere.c - the center of the sphere.| Method Detail |
|---|
public BoundingVolume.Type getType()
BoundingVolume
getType in class BoundingVolumepublic float getRadius()
getRadius returns the radius of the bounding sphere.
public void setRadius(float radius)
setRadius sets the radius of this bounding sphere.
radius - the new radius of the bounding sphere.public void computeFromPoints(java.nio.FloatBuffer points)
computeFromPoints creates a new Bounding Sphere from a
given set of points. It uses the calcWelzl method as
default.
computeFromPoints in class BoundingVolumepoints - the points to contain.
public void computeFromTris(Triangle[] tris,
int start,
int end)
computeFromTris creates a new Bounding Box from a given
set of triangles. It is used in OBBTree calculations.
computeFromTris in class BoundingVolumetris - start - end -
public void computeFromTris(int[] indices,
TriMesh mesh,
int start,
int end)
computeFromTris creates a new Bounding Box from a given
set of triangles. It is used in OBBTree calculations.
computeFromTris in class BoundingVolumeindices - mesh - start - end - public void calcWelzl(java.nio.FloatBuffer points)
points - The points to calculate the minimum bounds from.public void averagePoints(Vector3f[] points)
averagePoints selects the sphere center to be the average
of the points and the sphere radius to be the smallest value to enclose
all points.
points - the list of points to contain.
public BoundingVolume transform(Quaternion rotate,
Vector3f translate,
Vector3f scale,
BoundingVolume store)
transform modifies the center of the sphere to reflect the
change made via a rotation, translation and scale.
transform in class BoundingVolumerotate - the rotation change.translate - the translation change.scale - the size change.store - sphere to store result in
public Plane.Side whichSide(Plane plane)
whichSide takes a plane (typically provided by a view
frustum) to determine which side this bound is on.
whichSide in class BoundingVolumeplane - the plane to check against.
public BoundingVolume merge(BoundingVolume volume)
merge combines this sphere with a second bounding sphere.
This new sphere contains both bounding spheres and is returned.
merge in class BoundingVolumevolume - the sphere to combine with this sphere.
public BoundingVolume mergeLocal(BoundingVolume volume)
mergeLocal combines this sphere with a second bounding
sphere locally. Altering this sphere to contain both the original and the
additional sphere volumes;
mergeLocal in class BoundingVolumevolume - the sphere to combine with this sphere.
public BoundingVolume clone(BoundingVolume store)
clone creates a new BoundingSphere object containing the
same data as this one.
clone in class BoundingVolumestore - where to store the cloned information. if null or wrong class,
a new store is created.
public java.lang.String toString()
toString returns the string representation of this object.
The form is: "Radius: RRR.SSSS Center:
toString in class java.lang.Objectpublic boolean intersects(BoundingVolume bv)
BoundingVolume
intersects in class BoundingVolumebv - the second volume to test against.
public boolean intersectsSphere(BoundingSphere bs)
BoundingVolume
intersectsSphere in class BoundingVolumebs - the bounding sphere to test against.
public boolean intersectsBoundingBox(BoundingBox bb)
BoundingVolume
intersectsBoundingBox in class BoundingVolumebb - the bounding box to test against.
public boolean intersectsOrientedBoundingBox(OrientedBoundingBox obb)
BoundingVolume
intersectsOrientedBoundingBox in class BoundingVolumeobb - the bounding box to test against.
public boolean intersectsCapsule(BoundingCapsule bc)
BoundingVolume
intersectsCapsule in class BoundingVolumebc - the bounding capsule to test against.
public boolean intersects(Ray ray)
BoundingVolume
intersects in class BoundingVolumeray - the ray to test.
public IntersectionRecord intersectsWhere(Ray ray)
BoundingVolume
intersectsWhere in class BoundingVolumeray - the ray to test.
public boolean contains(Vector3f point)
BoundingVolume
contains in class BoundingVolumepoint - the point to check
public float distanceToEdge(Vector3f point)
BoundingVolume
distanceToEdge in class BoundingVolumepoint - The point to get the distance to
public void write(JMEExporter e)
throws java.io.IOException
write in interface Savablewrite in class BoundingVolumejava.io.IOException
public void read(JMEImporter e)
throws java.io.IOException
read in interface Savableread in class BoundingVolumejava.io.IOExceptionpublic float getVolume()
getVolume in class BoundingVolume
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||