Package com.jme3.bullet.collision.shapes
Class MinkowskiSum
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.MinkowskiSum
- All Implemented Interfaces:
com.jme3.export.Savable
,com.jme3.util.clone.JmeCloneable
,Cloneable
,Comparable<NativePhysicsObject>
A convex collision shape to represent the Minkowki sum of 2 convex shapes,
based on Bullet's
btMinkowskiSumShape
.-
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.MinkowskiSum
(ConvexShape shapeA, ConvexShape shapeB) Instantiate the Minkowki sum of the specified shapes. -
Method Summary
Modifier and TypeMethodDescriptionboolean
canScale
(com.jme3.math.Vector3f scale) Test whether the specified scale factors can be applied to this shape.void
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.float
Return the collision margin of this shape.Access the first base shape.Access the 2nd base shape.void
read
(com.jme3.export.JmeImporter importer) De-serialize the shape from the specified importer, for example when loading from a J3O file.void
setMargin
(float margin) Alter the collision margin of this shape.void
write
(com.jme3.export.JmeExporter exporter) Serialize this 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, canSplit, copyShapeProperties, getDefaultMargin, getScale, getScaleDp, getShapeType, getShapeType, isContactFilterEnabled, isInfinite, isNonMoving, isPolyhedral, jmeClone, maxRadius, nativeMargin, readShapeProperties, recalculateAabb, setContactFilterEnabled, setDefaultMargin, 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
-
MinkowskiSum
protected MinkowskiSum()No-argument constructor needed by SavableClassUtil. -
MinkowskiSum
Instantiate the Minkowki sum of the specified shapes.- Parameters:
shapeA
- the first base shape (not null, convex, alias created)shapeB
- the 2nd base shape (not null, convex, alias created)
-
-
Method Details
-
getShapeA
Access the first base shape.- Returns:
- the pre-existing shape (not null)
-
getShapeB
Access the 2nd base shape.- Returns:
- the pre-existing shape (not null)
-
canScale
public boolean canScale(com.jme3.math.Vector3f scale) Test whether the specified scale factors can be applied to this shape. For MinkowskiSum shapes, scaling must be unity.- Overrides:
canScale
in classCollisionShape
- Parameters:
scale
- the desired scale factor for each local axis (may be null, unaffected)- Returns:
- true if applicable, otherwise false
-
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)
-
getMargin
public float getMargin()Return the collision margin of this shape.- Overrides:
getMargin
in classCollisionShape
- Returns:
- the margin thickness (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
-
setMargin
public void setMargin(float margin) Alter the collision margin of this shape. This feature is disabled for MinkowskiSum shapes. The margin of a MinkowskiSum is simply the sum of the (native) margins of the base shapes.- Overrides:
setMargin
in classCollisionShape
- Parameters:
margin
- the desired margin thickness (in physics-space units)
-
write
Serialize this 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
-