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
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
ConstructorsModifierConstructorDescriptionprotectedNo-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 TypeMethodDescriptionvoidcloneFields(com.jme3.util.clone.Cloner cloner, Object original) Callback fromClonerto convert this shallow-cloned shape into a deep-cloned one, using the specified Cloner and original to resolve copied fields.com.jme3.math.Vector3fgetHalfExtents(com.jme3.math.Vector3f storeResult) Copy the half extents of the box.floatCalculate how far the scaled shape extends from its center.voidread(com.jme3.export.JmeImporter importer) De-serialize the shape from the specified importer, for example when loading from a J3O file.floatEstimate the volume of the collision shape, including scale and margin.Approximate this shape with a HullCollisionShape.floatReturn the unscaled volume of the box.voidwrite(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, toSplittableShapeMethods 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, 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
-
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 fromClonerto convert this shallow-cloned shape into a deep-cloned one, using the specified Cloner and original to resolve copied fields.- Specified by:
cloneFieldsin interfacecom.jme3.util.clone.JmeCloneable- Overrides:
cloneFieldsin 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:
maxRadiusin 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:
readin interfacecom.jme3.export.Savable- Overrides:
readin 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:
scaledVolumein classConvexShape- Returns:
- the estimated volume (in physics-space units cubed, ≥0)
-
toHullShape
Approximate this shape with a HullCollisionShape.- Overrides:
toHullShapein classConvexShape- Returns:
- a new shape
-
write
Serialize the shape to the specified exporter, for example when saving to a J3O file.- Specified by:
writein interfacecom.jme3.export.Savable- Overrides:
writein classCollisionShape- Parameters:
exporter- (not null)- Throws:
IOException- from the exporter
-