Class SphereCollisionShape

All Implemented Interfaces:
Comparable<NativePhysicsObject>

public class SphereCollisionShape extends ConvexShape
A spherical collision shape based on Bullet's btSphereShape. These shapes have no margin and can only be scaled uniformly.
See Also:
  • Field Details

    • logger2

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

    • SphereCollisionShape

      public SphereCollisionShape(FloatBuffer buffer, int startPosition, int endPosition)
      Instantiate a sphere 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)
    • SphereCollisionShape

      public SphereCollisionShape(float radius)
      Instantiate a sphere shape with the specified radius.
      Parameters:
      radius - the desired unscaled radius (in shape units, ≥0)
  • Method Details

    • getRadius

      public float getRadius()
      Return the radius of the sphere.
      Returns:
      the unscaled radius (in shape units, ≥0)
    • unscaledVolume

      public float unscaledVolume()
      Return the unscaled volume of the sphere.
      Returns:
      the volume (in shape units cubed, ≥0)
    • canScale

      public boolean canScale(Vector3f scale)
      Test whether the specified scale factors can be applied to the shape. For sphere shapes, scaling must be uniform.
      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
    • getMargin

      public float getMargin()
      Return the collision margin of the shape.
      Overrides:
      getMargin in class CollisionShape
      Returns:
      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 this shape, including scale and margin.
      Overrides:
      scaledVolume in class ConvexShape
      Returns:
      the volume (in physics-space units cubed, ≥0)
    • setMargin

      public void setMargin(float margin)
      Alter the collision margin of this shape. This feature is disabled for sphere shapes.
      Overrides:
      setMargin in class CollisionShape
      Parameters:
      margin - the desired margin thickness (in physics-space units)
    • toHullShape

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