Package com.jme3.bullet.collision.shapes
Class BoxCollisionShape
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.BoxCollisionShape
- All Implemented Interfaces:
Comparable<NativePhysicsObject>
An axis-aligned, rectangular-solid collision shape based on Bullet's
btBoxShape
. For a rectangle, use Box2dShape
.-
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
ConstructorDescriptionBoxCollisionShape
(float halfExtent) Instantiate a cube shape with the specified half extent.BoxCollisionShape
(float xHalfExtent, float yHalfExtent, float zHalfExtent) Instantiate a box with the specified half extents.BoxCollisionShape
(Vector3f halfExtents) Instantiate a box with the specified half extents.BoxCollisionShape
(FloatBuffer buffer, int startPosition, int endPosition) Instantiate a box shape that encloses the sample locations in the specified FloatBuffer range. -
Method Summary
Modifier and TypeMethodDescriptiongetHalfExtents
(Vector3f storeResult) Copy the half extents of the box.float
Calculate how far the scaled shape extends from its center.float
Estimate the volume of the collision shape, including scale and margin.Approximate this shape with a HullCollisionShape.float
Return the unscaled volume of the box.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, canScale, 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
-
BoxCollisionShape
public BoxCollisionShape(float halfExtent) Instantiate a cube shape with the specified half extent.- Parameters:
halfExtent
- the desired half extent on each local axis, before scaling and excluding margin (≥0)
-
BoxCollisionShape
public BoxCollisionShape(float xHalfExtent, float yHalfExtent, float zHalfExtent) Instantiate a box with the specified half extents.- Parameters:
xHalfExtent
- the desired half extent on the local X axis, before scaling and excluding margin (≥0)yHalfExtent
- the desired half extent on the local Y axis, before scaling and excluding margin (≥0)zHalfExtent
- the desired half extent on the local Z axis, before scaling and excluding margin (≥0)
-
BoxCollisionShape
Instantiate a box 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)
-
BoxCollisionShape
Instantiate a box with the specified half extents.- Parameters:
halfExtents
- the desired half extents on each local axis, before scaling and excluding margin (not null, all components ≥0, unaffected)
-
-
Method Details
-
getHalfExtents
Copy the half extents of the box.- Parameters:
storeResult
- storage for the result (modified if not null)- Returns:
- the unscaled half extent for each local axis (either storeResult or a new vector, not null, all components ≥0)
-
unscaledVolume
public float unscaledVolume()Return the unscaled volume of the box.- Returns:
- the volume (in shape units cubed, ≥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 the collision shape, including scale and margin.- Overrides:
scaledVolume
in classConvexShape
- Returns:
- the estimated volume (in physics-space units cubed, ≥0)
-
toHullShape
Approximate this shape with a HullCollisionShape.- Overrides:
toHullShape
in classConvexShape
- Returns:
- a new shape
-