com.jme3.bounding
クラス BoundingSphere

java.lang.Object
  上位を拡張 com.jme3.bounding.BoundingVolume
      上位を拡張 com.jme3.bounding.BoundingSphere
すべての実装されたインタフェース:
Collidable, Savable, java.lang.Cloneable

public class BoundingSphere
extends BoundingVolume

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.


入れ子のクラスの概要
 
クラス com.jme3.bounding.BoundingVolume から継承された入れ子のクラス/インタフェース
BoundingVolume.Type
 
コンストラクタの概要
BoundingSphere()
          Default contstructor instantiates a new BoundingSphere object.
BoundingSphere(float r, Vector3f c)
          Constructor instantiates a new BoundingSphere object.
 
メソッドの概要
 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.
 int collideWith(Collidable other, CollisionResults results)
          Check collision with another Collidable.
 int collideWithRay(Ray ray, CollisionResults results)
           
 void computeFromPoints(java.nio.FloatBuffer points)
          computeFromPoints creates a new Bounding Sphere from a given set of points.
 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 intersects(Vector3f point)
          Determines if a given point intersects (touches or is inside) this bounding volume.
 boolean intersectsBoundingBox(BoundingBox bb)
          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.
 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(Matrix4f trans, BoundingVolume store)
           
 BoundingVolume transform(Transform trans, 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)
           
 
クラス com.jme3.bounding.BoundingVolume から継承されたメソッド
clone, distanceSquaredTo, distanceTo, getCenter, getCenter, getCheckPlane, setCenter, setCheckPlane, transform
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

BoundingSphere

public BoundingSphere()
Default contstructor instantiates a new BoundingSphere object.


BoundingSphere

public BoundingSphere(float r,
                      Vector3f c)
Constructor instantiates a new BoundingSphere object.

パラメータ:
r - the radius of the sphere.
c - the center of the sphere.
メソッドの詳細

getType

public BoundingVolume.Type getType()
クラス BoundingVolume の記述:
getType returns the type of bounding volume this is.

定義:
クラス BoundingVolume 内の getType

getRadius

public float getRadius()
getRadius returns the radius of the bounding sphere.

戻り値:
the radius of the bounding sphere.

setRadius

public void setRadius(float radius)
setRadius sets the radius of this bounding sphere.

パラメータ:
radius - the new radius of the bounding sphere.

computeFromPoints

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.

定義:
クラス BoundingVolume 内の computeFromPoints
パラメータ:
points - the points to contain.

computeFromTris

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.

パラメータ:
tris -
start -
end -

calcWelzl

public void calcWelzl(java.nio.FloatBuffer points)
Calculates a minimum bounding sphere for the set of points. The algorithm was originally found at http://www.flipcode.com/cgi-bin/msg.cgi?showThread=COTD-SmallestEnclosingSpheres&forum=cotd&id=-1 in C++ and translated to java by Cep21

パラメータ:
points - The points to calculate the minimum bounds from.

averagePoints

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.

transform

public BoundingVolume transform(Transform trans,
                                BoundingVolume store)
transform modifies the center of the sphere to reflect the change made via a rotation, translation and scale.

定義:
クラス BoundingVolume 内の transform
パラメータ:
trans - the transform to apply
store - sphere to store result in
戻り値:
BoundingVolume

transform

public BoundingVolume transform(Matrix4f trans,
                                BoundingVolume store)
定義:
クラス BoundingVolume 内の transform

whichSide

public Plane.Side whichSide(Plane plane)
whichSide takes a plane (typically provided by a view frustum) to determine which side this bound is on.

定義:
クラス BoundingVolume 内の whichSide
パラメータ:
plane - the plane to check against.
戻り値:
side

merge

public BoundingVolume merge(BoundingVolume volume)
merge combines this sphere with a second bounding sphere. This new sphere contains both bounding spheres and is returned.

定義:
クラス BoundingVolume 内の merge
パラメータ:
volume - the sphere to combine with this sphere.
戻り値:
a new sphere

mergeLocal

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;

定義:
クラス BoundingVolume 内の mergeLocal
パラメータ:
volume - the sphere to combine with this sphere.
戻り値:
this

clone

public BoundingVolume clone(BoundingVolume store)
clone creates a new BoundingSphere object containing the same data as this one.

定義:
クラス BoundingVolume 内の clone
パラメータ:
store - where to store the cloned information. if null or wrong class, a new store is created.
戻り値:
the new BoundingSphere

toString

public java.lang.String toString()
toString returns the string representation of this object. The form is: "Radius: RRR.SSSS Center: ".

オーバーライド:
クラス java.lang.Object 内の toString
戻り値:
the string representation of this.

intersects

public boolean intersects(BoundingVolume bv)
クラス BoundingVolume の記述:
determines if this bounding volume and a second given volume are intersecting. Intersecting being: one volume contains another, one volume overlaps another or one volume touches another.

定義:
クラス BoundingVolume 内の intersects
パラメータ:
bv - the second volume to test against.
戻り値:
true if this volume intersects the given volume.

intersectsSphere

public boolean intersectsSphere(BoundingSphere bs)
クラス BoundingVolume の記述:
determines if this bounding volume and a given bounding sphere are intersecting.

定義:
クラス BoundingVolume 内の intersectsSphere
パラメータ:
bs - the bounding sphere to test against.
戻り値:
true if this volume intersects the given bounding sphere.

intersectsBoundingBox

public boolean intersectsBoundingBox(BoundingBox bb)
クラス BoundingVolume の記述:
determines if this bounding volume and a given bounding box are intersecting.

定義:
クラス BoundingVolume 内の intersectsBoundingBox
パラメータ:
bb - the bounding box to test against.
戻り値:
true if this volume intersects the given bounding box.

intersects

public boolean intersects(Ray ray)
クラス BoundingVolume の記述:
determines if a ray intersects this bounding volume.

定義:
クラス BoundingVolume 内の intersects
パラメータ:
ray - the ray to test.
戻り値:
true if this volume is intersected by a given ray.

collideWithRay

public int collideWithRay(Ray ray,
                          CollisionResults results)

collideWith

public int collideWith(Collidable other,
                       CollisionResults results)
インタフェース Collidable の記述:
Check collision with another Collidable.

パラメータ:
other - The object to check collision against
results - Will contain the list of CollisionResults.
戻り値:
how many collisions were found between this and other

contains

public boolean contains(Vector3f point)
クラス BoundingVolume の記述:
determines if a given point is contained within this bounding volume. If the point is on the edge of the bounding volume, this method will return false. Use intersects(Vector3f) to check for edge intersection.

定義:
クラス BoundingVolume 内の contains
パラメータ:
point - the point to check
戻り値:
true if the point lies within this bounding volume.

intersects

public boolean intersects(Vector3f point)
クラス BoundingVolume の記述:
Determines if a given point intersects (touches or is inside) this bounding volume.

定義:
クラス BoundingVolume 内の intersects
パラメータ:
point - the point to check
戻り値:
true if the point lies within this bounding volume.

distanceToEdge

public float distanceToEdge(Vector3f point)
クラス BoundingVolume の記述:
Find the distance from the nearest edge of this Bounding Volume to the given point.

定義:
クラス BoundingVolume 内の distanceToEdge
パラメータ:
point - The point to get the distance to
戻り値:
distance

write

public void write(JmeExporter e)
           throws java.io.IOException
定義:
インタフェース Savable 内の write
オーバーライド:
クラス BoundingVolume 内の write
例外:
java.io.IOException

read

public void read(JmeImporter e)
          throws java.io.IOException
定義:
インタフェース Savable 内の read
オーバーライド:
クラス BoundingVolume 内の read
例外:
java.io.IOException

getVolume

public float getVolume()
定義:
クラス BoundingVolume 内の getVolume