Class MinkowskiSum

All Implemented Interfaces:
com.jme3.export.Savable, com.jme3.util.clone.JmeCloneable, Cloneable, Comparable<NativePhysicsObject>

public class MinkowskiSum extends ConvexShape
A convex collision shape to represent the Minkowki sum of 2 convex shapes, based on Bullet's btMinkowskiSumShape.
  • Field Details

    • logger2

      public static final Logger logger2
      message logger for this class
  • Constructor Details

    • MinkowskiSum

      protected MinkowskiSum()
      No-argument constructor needed by SavableClassUtil.
    • MinkowskiSum

      public MinkowskiSum(ConvexShape shapeA, ConvexShape shapeB)
      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

      public ConvexShape getShapeA()
      Access the first base shape.
      Returns:
      the pre-existing shape (not null)
    • getShapeB

      public ConvexShape 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 class CollisionShape
      Parameters:
      scale - the desired scale factor for each local axis (may be null, unaffected)
      Returns:
      true if applicable, otherwise false
    • cloneFields

      public void cloneFields(com.jme3.util.clone.Cloner cloner, Object original)
      Callback from Cloner 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 interface com.jme3.util.clone.JmeCloneable
      Overrides:
      cloneFields in class CollisionShape
      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 class CollisionShape
      Returns:
      the margin thickness (in physics-space units, ≥0)
    • read

      public void read(com.jme3.export.JmeImporter importer) throws IOException
      De-serialize the shape from the specified importer, for example when loading from a J3O file.
      Specified by:
      read in interface com.jme3.export.Savable
      Overrides:
      read in class CollisionShape
      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 class CollisionShape
      Parameters:
      margin - the desired margin thickness (in physics-space units)
    • write

      public void write(com.jme3.export.JmeExporter exporter) throws IOException
      Serialize this shape to the specified exporter, for example when saving to a J3O file.
      Specified by:
      write in interface com.jme3.export.Savable
      Overrides:
      write in class CollisionShape
      Parameters:
      exporter - (not null)
      Throws:
      IOException - from the exporter