Class BoxCollisionShape

All Implemented Interfaces:
Comparable<NativePhysicsObject>

public class BoxCollisionShape extends ConvexShape
An axis-aligned, rectangular-solid collision shape based on Bullet's btBoxShape. For a rectangle, use Box2dShape.
  • Field Details

    • logger2

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

    • BoxCollisionShape

      public BoxCollisionShape(float halfExtent)
      Instantiate a cube 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

      public BoxCollisionShape(FloatBuffer buffer, int startPosition, int endPosition)
      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(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 Vector3f getHalfExtents(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)
    • maxRadius

      public float maxRadius()
      Calculate how far the scaled shape extends from its center.
      Overrides:
      maxRadius in class CollisionShape
      Returns:
      the distance (in physics-space units, ≥0)
    • scaledVolume

      public float scaledVolume()
      Estimate the volume of the collision shape, including scale and margin.
      Overrides:
      scaledVolume in class ConvexShape
      Returns:
      the estimated volume (in physics-space units cubed, ≥0)
    • toHullShape

      public HullCollisionShape toHullShape()
      Approximate this shape with a HullCollisionShape.
      Overrides:
      toHullShape in class ConvexShape
      Returns:
      a new shape