Package com.jme3.bullet.collision.shapes
Class SphericalSegment
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.SphericalSegment
- All Implemented Interfaces:
Comparable<NativePhysicsObject>
A collision shape for a spherical segment with uniform density, based on
btConvexInternalShape
. By convention, both bases are orthogonal to
the local Y axis.
This is an imprecise shape; margin always expands the shape.
-
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
ConstructorDescriptionSphericalSegment
(float radius) Instantiate a hemisphere with the specified radius.SphericalSegment
(float radius, float yMax, float yMin) Instantiate a spherical segment with the specified dimensions. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Test whether the specified scale factors can be applied to the shape.float
Return the height of the segment.float
Calculate how far the scaled shape extends from its center of mass, including collision margin.float
Estimate the volume of the collision shape, including scale and margin.float
Return the radius of the parent sphere.float
yMax()
Return the Y offset of the upper base from the center of the parent sphere.float
yMin()
Return the Y offset of the lower base from the center of the parent sphere.Methods inherited from class com.jme3.bullet.collision.shapes.ConvexShape
isConcave, isConvex, toHullShape, toSplittableShape
Methods inherited from class com.jme3.bullet.collision.shapes.CollisionShape
aabbCenter, boundingBox, boundingBox, canSplit, getDefaultMargin, getMargin, getScale, getScaleDp, getShapeType, getShapeType, isContactFilterEnabled, isInfinite, isNonMoving, isPolyhedral, nativeMargin, recalculateAabb, setContactFilterEnabled, setDefaultMargin, setMargin, 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
-
SphericalSegment
public SphericalSegment(float radius) Instantiate a hemisphere with the specified radius.- Parameters:
radius
- the desired radius, before scaling and excluding margin (>0)
-
SphericalSegment
public SphericalSegment(float radius, float yMax, float yMin) Instantiate a spherical segment with the specified dimensions.- Parameters:
radius
- the desired radius of the parent sphere, before scaling and excluding margin (>0)yMax
- the Y offset of the upper base from the center of the parent sphere, before scaling and excluding margin (≥yMin, ≤radius)yMin
- the Y offset of the lower base from the center of the parent sphere, before scaling and excluding margin (≥-radius, ≤yMax)
-
-
Method Details
-
getHeight
public float getHeight()Return the height of the segment.- Returns:
- the unscaled height (≥0)
-
sphereRadius
public float sphereRadius()Return the radius of the parent sphere.- Returns:
- the unscaled radius (>0)
-
yMax
public float yMax()Return the Y offset of the upper base from the center of the parent sphere.- Returns:
- the unscaled offset (≥-radius, ≤radius)
-
yMin
public float yMin()Return the Y offset of the lower base from the center of the parent sphere.- Returns:
- the unscaled offset (≥-radius, ≤radius)
-
canScale
Test whether the specified scale factors can be applied to the shape. For a spherical segment, 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
-
maxRadius
public float maxRadius()Calculate how far the scaled shape extends from its center of mass, including collision margin.- Overrides:
maxRadius
in classCollisionShape
- Returns:
- the distance (in physics-space units, ≥0)
-
scaledVolume
public float scaledVolume()Estimate the volume of the collision shape, including scale and margin.- Overrides:
scaledVolume
in classConvexShape
- Returns:
- the estimated volume (in physics-space units cubed, ≥0)
-