Package com.jme3.bullet.collision.shapes
Class Box2dShape
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.Box2dShape
- All Implemented Interfaces:
com.jme3.export.Savable
,com.jme3.util.clone.JmeCloneable
,Cloneable
,Comparable<NativePhysicsObject>
An axis-aligned, rectangular collision shape based on Bullet's
btBox2dShape
.-
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.Box2dShape
(float halfExtent) Instantiate a square shape with the specified half extent.Box2dShape
(float xHalfExtent, float yHalfExtent) Instantiate a rectangle shape with the specified half extents.Box2dShape
(com.jme3.math.Vector2f halfExtents) Instantiate a rectangle shape with the specified half extents.Box2dShape
(com.jme3.math.Vector3f halfExtents) Instantiate a rectangle shape with the specified half extents. -
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 rectangle.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.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, scaledVolume, toHullShape, 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
-
Box2dShape
protected Box2dShape()No-argument constructor needed by SavableClassUtil. -
Box2dShape
public Box2dShape(float halfExtent) Instantiate a square shape with the specified half extent.- Parameters:
halfExtent
- the desired unscaled half extent on each local axis (not negative)
-
Box2dShape
public Box2dShape(float xHalfExtent, float yHalfExtent) Instantiate a rectangle shape with the specified half extents.- Parameters:
xHalfExtent
- the desired unscaled half extent on the local X axis (not negative)yHalfExtent
- the desired unscaled half extent on the local Y axis (not negative)
-
Box2dShape
public Box2dShape(com.jme3.math.Vector2f halfExtents) Instantiate a rectangle shape with the specified half extents.- Parameters:
halfExtents
- the desired unscaled half extents (not null, no negative component, unaffected)
-
Box2dShape
public Box2dShape(com.jme3.math.Vector3f halfExtents) Instantiate a rectangle shape with the specified half extents.- Parameters:
halfExtents
- the desired unscaled half extents (not null, no negative component, unaffected, Z component ignored)
-
-
Method Details
-
getHalfExtents
public com.jme3.math.Vector3f getHalfExtents(com.jme3.math.Vector3f storeResult) Copy the half extents of the rectangle.- 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, no negative component)
-
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
-
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
-