 |
Box2D
2.4.0
A 2D physics engine for games
|
28 #include "b2_fixture.h"
42 inline float b2MixFriction(
float friction1,
float friction2)
44 return b2Sqrt(friction1 * friction2);
49 inline float b2MixRestitution(
float restitution1,
float restitution2)
51 return restitution1 > restitution2 ? restitution1 : restitution2;
61 b2ContactCreateFcn* createFcn;
62 b2ContactDestroyFcn* destroyFcn;
95 bool IsTouching()
const;
100 void SetEnabled(
bool flag);
103 bool IsEnabled()
const;
114 int32 GetChildIndexA()
const;
121 int32 GetChildIndexB()
const;
125 void SetFriction(
float friction);
128 float GetFriction()
const;
131 void ResetFriction();
135 void SetRestitution(
float restitution);
138 float GetRestitution()
const;
141 void ResetRestitution();
144 void SetTangentSpeed(
float speed);
147 float GetTangentSpeed()
const;
155 friend class b2ContactSolver;
163 e_islandFlag = 0x0001,
166 e_touchingFlag = 0x0002,
169 e_enabledFlag = 0x0004,
172 e_filterFlag = 0x0008,
175 e_bulletHitFlag = 0x0010,
182 void FlagForFiltering();
184 static void AddType(b2ContactCreateFcn* createFcn, b2ContactDestroyFcn* destroyFcn,
185 b2Shape::Type typeA, b2Shape::Type typeB);
186 static void InitializeRegisters();
191 b2Contact() : m_fixtureA(nullptr), m_fixtureB(nullptr) {}
197 static b2ContactRegister s_registers[b2Shape::e_typeCount][b2Shape::e_typeCount];
198 static bool s_initialized;
224 float m_tangentSpeed;
251 m_flags |= e_enabledFlag;
255 m_flags &= ~e_enabledFlag;
261 return (m_flags & e_enabledFlag) == e_enabledFlag;
266 return (m_flags & e_touchingFlag) == e_touchingFlag;
311 m_flags |= e_filterFlag;
316 m_friction = friction;
326 m_friction = b2MixFriction(m_fixtureA->m_friction, m_fixtureB->m_friction);
331 m_restitution = restitution;
336 return m_restitution;
341 m_restitution = b2MixRestitution(m_fixtureA->m_restitution, m_fixtureB->m_restitution);
346 m_tangentSpeed = speed;
351 return m_tangentSpeed;
355 extern B2_API
bool g_blockSolve;
A rigid body. These are created via b2World::CreateBody.
Definition: b2_body.h:133
b2Body * GetBody()
Definition: b2_fixture.h:279
const b2Transform & GetTransform() const
Definition: b2_body.h:483
Definition: b2_collision.h:100
Definition: b2_stack_allocator.h:43
float m_radius
Definition: b2_shape.h:102
This is used to compute the current state of a contact manifold.
Definition: b2_collision.h:117
Definition: b2_fixture.h:113
Definition: b2_block_allocator.h:38
Definition: b2_world.h:47
void Initialize(const b2Manifold *manifold, const b2Transform &xfA, float radiusA, const b2Transform &xfB, float radiusB)
Definition: b2_shape.h:49
b2Shape * GetShape()
Definition: b2_fixture.h:249