Package com.jme3.bullet.collision.shapes
Class SphereCollisionShape
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.SphereCollisionShape
- All Implemented Interfaces:
Comparable<NativePhysicsObject>
A spherical collision shape based on Bullet's
btSphereShape
. These
shapes have no margin and can only be scaled uniformly.- See Also:
-
Field Summary
Fields inherited from class com.jme3.bullet.collision.shapes.ConvexShape
loggerX
Fields inherited from class com.jme3.bullet.collision.shapes.CollisionShape
enableContactFilter, logger, margin, scale
Fields inherited from class com.jme3.bullet.NativePhysicsObject
loggerN
-
Constructor Summary
ConstructorDescriptionSphereCollisionShape
(float radius) Instantiate a sphere shape with the specified radius.SphereCollisionShape
(FloatBuffer buffer, int startPosition, int endPosition) Instantiate a sphere shape that encloses the sample locations in the specified FloatBuffer range. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Test whether the specified scale factors can be applied to the shape.float
Return the collision margin of the shape.float
Return the radius of the sphere.float
Calculate how far the scaled shape extends from its center.float
Estimate the volume of this shape, including scale and margin.void
setMargin
(float margin) Alter the collision margin of this shape.Approximate this shape with a HullCollisionShape.float
Return the unscaled volume of the sphere.Methods inherited from class com.jme3.bullet.collision.shapes.ConvexShape
isConcave, isConvex, toSplittableShape
Methods inherited from class com.jme3.bullet.collision.shapes.CollisionShape
aabbCenter, boundingBox, boundingBox, canSplit, getDefaultMargin, getScale, getScaleDp, getShapeType, getShapeType, isContactFilterEnabled, isInfinite, isNonMoving, isPolyhedral, nativeMargin, recalculateAabb, setContactFilterEnabled, setDefaultMargin, setNativeId, setScale, setScale, setUserIndex, setUserIndex2, toString, updateScale, userIndex, userIndex2
Methods inherited from class com.jme3.bullet.NativePhysicsObject
compareTo, countTrackers, dumpTrackers, equals, freeUnusedObjects, hasAssignedNativeObject, hashCode, nativeId, reassignNativeId, setNativeIdNotTracked, unassignNativeObject
-
Field Details
-
logger2
message logger for this class
-
-
Constructor Details
-
SphereCollisionShape
Instantiate a sphere shape that encloses the sample locations in the specified FloatBuffer range.- Parameters:
buffer
- the buffer that contains the sample locations (not null, unaffected)startPosition
- the position at which the sample locations start (≥0, ≤endPosition)endPosition
- the position at which the sample locations end (≥startPosition, ≤capacity)
-
SphereCollisionShape
public SphereCollisionShape(float radius) Instantiate a sphere shape with the specified radius.- Parameters:
radius
- the desired unscaled radius (in shape units, ≥0)
-
-
Method Details
-
getRadius
public float getRadius()Return the radius of the sphere.- Returns:
- the unscaled radius (in shape units, ≥0)
-
unscaledVolume
public float unscaledVolume()Return the unscaled volume of the sphere.- Returns:
- the volume (in shape units cubed, ≥0)
-
canScale
Test whether the specified scale factors can be applied to the shape. For sphere shapes, scaling must be uniform.- Overrides:
canScale
in classCollisionShape
- Parameters:
scale
- the desired scale factor for each local axis (may be null, unaffected)- Returns:
- true if applicable, otherwise false
-
getMargin
public float getMargin()Return the collision margin of the shape.- Overrides:
getMargin
in classCollisionShape
- Returns:
- 0
-
maxRadius
public float maxRadius()Calculate how far the scaled shape extends from its center.- Overrides:
maxRadius
in classCollisionShape
- Returns:
- the distance (in physics-space units, ≥0)
-
scaledVolume
public float scaledVolume()Estimate the volume of this shape, including scale and margin.- Overrides:
scaledVolume
in classConvexShape
- Returns:
- the volume (in physics-space units cubed, ≥0)
-
setMargin
public void setMargin(float margin) Alter the collision margin of this shape. This feature is disabled for sphere shapes.- Overrides:
setMargin
in classCollisionShape
- Parameters:
margin
- the desired margin thickness (in physics-space units)
-
toHullShape
Approximate this shape with a HullCollisionShape.- Overrides:
toHullShape
in classConvexShape
- Returns:
- a new shape
-