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:
com.jme3.export.Savable
,com.jme3.util.clone.JmeCloneable
,Cloneable
,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
ModifierConstructorDescriptionprotected
No-argument constructor needed by SavableClassUtil.BoxCollisionShape
(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
(com.jme3.math.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 TypeMethodDescriptionvoid
cloneFields
(com.jme3.util.clone.Cloner cloner, Object original) Callback fromCloner
to convert this shallow-cloned shape into a deep-cloned one, using the specified Cloner and original to resolve copied fields.com.jme3.math.Vector3f
getHalfExtents
(com.jme3.math.Vector3f storeResult) Copy the half extents of the box.float
Calculate how far the scaled shape extends from its center.void
read
(com.jme3.export.JmeImporter importer) De-serialize the shape from the specified importer, for example when loading from a J3O file.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.void
write
(com.jme3.export.JmeExporter exporter) Serialize the shape to the specified exporter, for example when saving to a J3O file.Methods inherited from class com.jme3.bullet.collision.shapes.ConvexShape
isConcave, isConvex, toSplittableShape
Methods inherited from class com.jme3.bullet.collision.shapes.CollisionShape
aabbCenter, aabbScaledVolume, boundingBox, boundingBox, canScale, canSplit, copyShapeProperties, getDefaultMargin, getMargin, getScale, getScaleDp, getShapeType, getShapeType, isContactFilterEnabled, isInfinite, isNonMoving, isPolyhedral, jmeClone, nativeMargin, readShapeProperties, 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
protected BoxCollisionShape()No-argument constructor needed by SavableClassUtil. -
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
public BoxCollisionShape(com.jme3.math.Vector3f halfExtents) 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
public com.jme3.math.Vector3f getHalfExtents(com.jme3.math.Vector3f storeResult) 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)
-
cloneFields
Callback fromCloner
to convert this shallow-cloned shape into a deep-cloned one, using the specified Cloner and original to resolve copied fields.- Specified by:
cloneFields
in interfacecom.jme3.util.clone.JmeCloneable
- Overrides:
cloneFields
in classCollisionShape
- Parameters:
cloner
- the Cloner that's cloning this shape (not null)original
- the instance from which this shape was shallow-cloned (not null, unaffected)
-
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)
-
read
De-serialize the shape from the specified importer, for example when loading from a J3O file.- Specified by:
read
in interfacecom.jme3.export.Savable
- Overrides:
read
in classCollisionShape
- Parameters:
importer
- (not null)- Throws:
IOException
- from the importer
-
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
-
write
Serialize the shape to the specified exporter, for example when saving to a J3O file.- Specified by:
write
in interfacecom.jme3.export.Savable
- Overrides:
write
in classCollisionShape
- Parameters:
exporter
- (not null)- Throws:
IOException
- from the exporter
-