public class Manifold

  1. Object
  2. Manifold

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 types

enum Manifold.ManifoldType

Fields

public final ManifoldPoint[] pointsThe points of contact.
public final Vec2 localNormalnot use for Type::e_points
public final Vec2 localPointusage depends on manifold type
public Manifold.ManifoldType type
public int pointCountThe number of manifold points.

Constructors

public Manifold()creates a manifold with 0 points, with it’s points array full of instantiated ManifoldPoints.
public Manifold(Manifold other)Creates this manifold as a copy of the other

Methods

public void set(Manifold cp)copies this manifold from the given one

Inherited methods

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

Method details

set

public void set(Manifold cp)
copies this manifold from the given one

Parameters

cp Manifold
manifold to copy from