Class Manifold

java.lang.Object
org.jbox2d.collision.Manifold

public class Manifold extends java.lang.Object
A manifold for two touching convex shapes. Box2D supports multiple types of contact:
  • clip point versus plane with radius
  • point versus point with radius (circles)
The local point usage depends on the manifold type:
  • e_circles: the local center of circleA
  • e_faceA: the center of faceA
  • e_faceB: the center of faceB
Similarly the local normal usage:
  • e_circles: not used
  • e_faceA: the normal on polygonA
  • e_faceB: the normal on polygonB
We store contacts in this way so that position correction can account for movement, which is critical for continuous physics. All contact scenarios must be expressed in one of these types. This structure is stored across time steps, so we keep it small.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final Vec2
    not use for Type::e_points
    final Vec2
    usage depends on manifold type
    int
    The number of manifold points.
    The points of contact.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    creates a manifold with 0 points, with it's points array full of instantiated ManifoldPoints.
    Creates this manifold as a copy of the other
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    copies this manifold from the given one

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • points

      public final ManifoldPoint[] points
      The points of contact.
    • localNormal

      public final Vec2 localNormal
      not use for Type::e_points
    • localPoint

      public final Vec2 localPoint
      usage depends on manifold type
    • type

      public Manifold.ManifoldType type
    • pointCount

      public int pointCount
      The number of manifold points.
  • Constructor Details

    • Manifold

      public Manifold()
      creates a manifold with 0 points, with it's points array full of instantiated ManifoldPoints.
    • Manifold

      public Manifold(Manifold other)
      Creates this manifold as a copy of the other
      Parameters:
      other -
  • Method Details

    • set

      public void set(Manifold cp)
      copies this manifold from the given one
      Parameters:
      cp - manifold to copy from