Class 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 class  Manifold.ManifoldType  
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void set​(Manifold cp)
      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 Detail

      • 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
      • pointCount

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

      • 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 Detail

      • set

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