Box2D  2.4.0
A 2D physics engine for games
b2Manifold Struct Reference

#include <b2_collision.h>

Public Types

enum  Type { e_circles, e_faceA, e_faceB }
 

Public Attributes

b2ManifoldPoint points [b2_maxManifoldPoints]
 the points of contact
 
b2Vec2 localNormal
 not use for Type::e_points
 
b2Vec2 localPoint
 usage depends on manifold type
 
Type type
 
int32 pointCount
 the number of manifold points
 

Detailed Description

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.

The documentation for this struct was generated from the following file: