Package com.jme3.bullet.collision.shapes
Class ConicalFrustum
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.ConicalFrustum
- All Implemented Interfaces:
Comparable<NativePhysicsObject>
A collision shape for a conical frustum with uniform density, based on
btConvexInternalShape. By convention, the local Y axis is the height
axis, with the "A" base having y<0 and the "B" base having y>0.
This is an imprecise shape; margin always expands the shape.
-
Field Summary
FieldsFields inherited from class com.jme3.bullet.collision.shapes.ConvexShape
loggerXFields inherited from class com.jme3.bullet.collision.shapes.CollisionShape
enableContactFilter, logger, margin, scaleFields inherited from class com.jme3.bullet.NativePhysicsObject
loggerN -
Constructor Summary
ConstructorsConstructorDescriptionConicalFrustum(float a, float b, float height) Instantiate a conical frustum with the specified dimensions. -
Method Summary
Modifier and TypeMethodDescriptionfloataRadius()Return the radius of the "A" base.floatbRadius()Return the radius of the "B" base.booleanTest whether the specified scale factors can be applied to the shape.floatheight()Return the height of the frustum.floatCalculate how far the scaled shape extends from its center of mass, including collision margin.floatEstimate the volume of the collision shape, including scale and margin.Methods inherited from class com.jme3.bullet.collision.shapes.ConvexShape
isConcave, isConvex, toHullShape, toSplittableShapeMethods 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, userIndex2Methods 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
-
ConicalFrustum
public ConicalFrustum(float a, float b, float height) Instantiate a conical frustum with the specified dimensions.- Parameters:
a- the desired radius of the "A" base for scale=(1,1,1) (>0)b- the desired radius of the "B" base for scale=(1,1,1) (>0)height- the desired height for scale=(1,1,1) (>0)
-
-
Method Details
-
aRadius
public float aRadius()Return the radius of the "A" base.- Returns:
- the unscaled radius (>0)
-
bRadius
public float bRadius()Return the radius of the "B" base.- Returns:
- the unscaled radius (>0)
-
height
public float height()Return the height of the frustum.- Returns:
- the unscaled height (>0)
-
canScale
Test whether the specified scale factors can be applied to the shape. For a conical frustum, scaling must preserve the circular cross section.- Overrides:
canScalein 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:
maxRadiusin 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:
scaledVolumein classConvexShape- Returns:
- the estimated volume (in physics-space units cubed, ≥0)
-