lib/Manifold.js
function Manifold() {
  this.type;
  this.localNormal = Vec2.zero();
  this.localPoint = Vec2.zero();
  this.points = [ new ManifoldPoint(), new ManifoldPoint() ];
  this.pointCount = 0;
}
function Manifold() {
  this.type;
  this.localNormal = Vec2.zero();
  this.localPoint = Vec2.zero();
  this.points = [ new ManifoldPoint(), new ManifoldPoint() ];
  this.pointCount = 0;
}
function Manifold ( ) { this . type ; this . localNormal = Vec2 . zero ( ) ; this . localPoint = Vec2 . zero ( ) ; this . points = [ new ManifoldPoint ( ) , new ManifoldPoint ( ) ] ; this . pointCount = 0 ; }
A manifold for two touching convex shapes. Manifolds are created in `evaluate`
method of Contact subclasses.

Supported manifold types are e_faceA or e_faceB for clip point versus plane
with radius and e_circles point versus point with radius.

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.

@prop type e_circle, e_faceA, e_faceB
@prop localPoint Usage depends on manifold type:<br>
e_circles: the local center of circleA <br>
e_faceA: the center of faceA <br>
e_faceB: the center of faceB
@prop localNormal Usage depends on manifold type:<br>
e_circles: not used <br>
e_faceA: the normal on polygonA <br>
e_faceB: the normal on polygonB
@prop points The points of contact {ManifoldPoint[]}
@prop pointCount The number of manifold points
A manifold for two touching convex shapes . Manifolds are created in evaluate method of Contact subclasses .