22 #include <Box2D/Common/b2Math.h>    24 #include <Box2D/Collision/Shapes/b2Shape.h>    25 #include <Box2D/Dynamics/b2Fixture.h>    37 inline float32 b2MixFriction(float32 friction1, float32 friction2)
    39     return b2Sqrt(friction1 * friction2);
    44 inline float32 b2MixRestitution(float32 restitution1, float32 restitution2)
    46     return restitution1 > restitution2 ? restitution1 : restitution2;
    56     b2ContactCreateFcn* createFcn;
    57     b2ContactDestroyFcn* destroyFcn;
    90     bool IsTouching() 
const;
    95     void SetEnabled(
bool flag);
    98     bool IsEnabled() 
const;
   109     int32 GetChildIndexA() 
const;
   116     int32 GetChildIndexB() 
const;
   120     void SetFriction(float32 friction);
   123     float32 GetFriction() 
const;
   126     void ResetFriction();
   130     void SetRestitution(float32 restitution);
   133     float32 GetRestitution() 
const;
   136     void ResetRestitution();
   139     void SetTangentSpeed(float32 speed);
   142     float32 GetTangentSpeed() 
const;
   158         e_islandFlag        = 0x0001,
   161         e_touchingFlag      = 0x0002,
   164         e_enabledFlag       = 0x0004,
   167         e_filterFlag        = 0x0008,
   170         e_bulletHitFlag     = 0x0010,
   177     void FlagForFiltering();
   179     static void AddType(b2ContactCreateFcn* createFcn, b2ContactDestroyFcn* destroyFcn,
   180                         b2Shape::Type typeA, b2Shape::Type typeB);
   181     static void InitializeRegisters();
   186     b2Contact() : m_fixtureA(NULL), m_fixtureB(NULL) {}
   192     static b2ContactRegister s_registers[b2Shape::e_typeCount][b2Shape::e_typeCount];
   193     static bool s_initialized;
   217     float32 m_restitution;
   219     float32 m_tangentSpeed;
   234     const b2Body* bodyA = m_fixtureA->GetBody();
   235     const b2Body* bodyB = m_fixtureB->GetBody();
   236     const b2Shape* shapeA = m_fixtureA->GetShape();
   237     const b2Shape* shapeB = m_fixtureB->GetShape();
   246         m_flags |= e_enabledFlag;
   250         m_flags &= ~e_enabledFlag;
   256     return (m_flags & e_enabledFlag) == e_enabledFlag;
   261     return (m_flags & e_touchingFlag) == e_touchingFlag;
   306     m_flags |= e_filterFlag;
   311     m_friction = friction;
   321     m_friction = b2MixFriction(m_fixtureA->m_friction, m_fixtureB->m_friction);
   326     m_restitution = restitution;
   331     return m_restitution;
   336     m_restitution = b2MixRestitution(m_fixtureA->m_restitution, m_fixtureB->m_restitution);
   341     m_tangentSpeed = speed;
   346     return m_tangentSpeed;
 
This is used to compute the current state of a contact manifold. 
Definition: b2Collision.h:110
Definition: b2StackAllocator.h:37
void Initialize(const b2Manifold *manifold, const b2Transform &xfA, float32 radiusA, const b2Transform &xfB, float32 radiusB)
Definition: b2Collision.cpp:22
Definition: b2BlockAllocator.h:35
A rigid body. These are created via b2World::CreateBody. 
Definition: b2Body.h:126
Definition: b2Collision.h:93
const b2Transform & GetTransform() const 
Definition: b2Body.h:474
Definition: b2Fixture.h:107