# b2Fixture Class Reference

`#include <b2Fixture.h>`

List of all members.

## Public Member Functions
b2Shape::Type | GetType () const
b2Shape * | GetShape ()
const b2Shape * | GetShape () const
void | SetSensor (bool sensor)
| Set if this fixture is a sensor.
bool | IsSensor () const
void | SetFilterData (const b2Filter &filter)
const b2Filter & | GetFilterData () const
| Get the contact filtering data.
b2Body * | GetBody ()
const b2Body * | GetBody () const
b2Fixture * | GetNext ()
const b2Fixture * | GetNext () const
void * | GetUserData () const
void | SetUserData (void *data)
| Set the user data. Use this to store your application specific data.
bool | TestPoint (const b2Vec2 &p) const
bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input) const
void | GetMassData (b2MassData *massData) const
void | SetDensity (float32 density)
float32 | GetDensity () const
| Get the density of this fixture.
float32 | GetFriction () const
| Get the coefficient of friction.
void | SetFriction (float32 friction)
| Set the coefficient of friction.
float32 | GetRestitution () const
| Get the coefficient of restitution.
void | SetRestitution (float32 restitution)
| Set the coefficient of restitution.
const b2AABB & | GetAABB () const
## Protected Member Functions
| b2Fixture ()
| ~b2Fixture ()
void | Create (b2BlockAllocator *allocator, b2Body *body, const b2FixtureDef *def)
void | Destroy (b2BlockAllocator *allocator)
void | CreateProxy (b2BroadPhase *broadPhase, const b2Transform &xf)
void | DestroyProxy (b2BroadPhase *broadPhase)
void | Synchronize (b2BroadPhase *broadPhase, const b2Transform &xf1, const b2Transform &xf2)
## Protected Attributes
b2AABB | m_aabb
float32 | m_density
b2Fixture * | m_next
b2Body * | m_body
b2Shape * | m_shape
float32 | m_friction
float32 | m_restitution
int32 | m_proxyId
b2Filter | m_filter
bool | m_isSensor
void * | m_userData
## Friends
class | b2Body
class | b2World
class | b2Contact
class | b2ContactManager

## Detailed Description

A fixture is used to attach a shape to a body for collision detection. A fixture inherits its transform from its parent. Fixtures hold additional non-geometric data such as friction, collision filters, etc. Fixtures are created via b2Body::CreateFixture.

Warning:
  you cannot reuse fixtures.

## Constructor & Destructor Documentation

b2Fixture::b2Fixture | ( |  | ) | `[protected]`

b2Fixture::~b2Fixture | ( |  | ) | `[protected]`

## Member Function Documentation

void b2Fixture::Create | ( | b2BlockAllocator * | allocator,
|  | b2Body * | body,
|  | const b2FixtureDef * | def |
| ) |  |  | `[protected]`

void b2Fixture::CreateProxy | ( | b2BroadPhase * | broadPhase,
|  | const b2Transform & | xf |
| ) |  |  | `[protected]`

void b2Fixture::Destroy | ( | b2BlockAllocator * | allocator | ) | `[protected]`

void b2Fixture::DestroyProxy | ( | b2BroadPhase * | broadPhase | ) | `[protected]`

const b2AABB & b2Fixture::GetAABB | ( |  | ) | const`[inline]`

Get the fixture's AABB. This AABB may be enlarge and/or stale. If you need a more accurate AABB, compute it using the shape and the body transform.

const b2Body * b2Fixture::GetBody | ( |  | ) | const`[inline]`

b2Body * b2Fixture::GetBody | ( |  | ) | `[inline]`

Get the parent body of this fixture. This is NULL if the fixture is not attached.

Returns:
  the parent body.

float32 b2Fixture::GetDensity | ( |  | ) | const`[inline]`

Get the density of this fixture.

const b2Filter & b2Fixture::GetFilterData | ( |  | ) | const`[inline]`

Get the contact filtering data.

float32 b2Fixture::GetFriction | ( |  | ) | const`[inline]`

Get the coefficient of friction.

void b2Fixture::GetMassData | ( | b2MassData * | massData | ) | const`[inline]`

Get the mass data for this fixture. The mass data is based on the density and the shape. The rotational inertia is about the shape's origin. This operation may be expensive.

const b2Fixture * b2Fixture::GetNext | ( |  | ) | const`[inline]`

b2Fixture * b2Fixture::GetNext | ( |  | ) | `[inline]`

Get the next fixture in the parent body's fixture list.

Returns:
  the next shape.

float32 b2Fixture::GetRestitution | ( |  | ) | const`[inline]`

Get the coefficient of restitution.

const b2Shape * b2Fixture::GetShape | ( |  | ) | const`[inline]`

b2Shape * b2Fixture::GetShape | ( |  | ) | `[inline]`

Get the child shape. You can modify the child shape, however you should not change the number of vertices because this will crash some collision caching mechanisms. Manipulating the shape may lead to non-physical behavior.

b2Shape::Type b2Fixture::GetType | ( |  | ) | const`[inline]`

Get the type of the child shape. You can use this to down cast to the concrete shape.

Returns:
  the shape type.

void * b2Fixture::GetUserData | ( |  | ) | const`[inline]`

Get the user data that was assigned in the fixture definition. Use this to store your application specific data.

bool b2Fixture::IsSensor | ( |  | ) | const`[inline]`

Is this fixture a sensor (non-solid)?

Returns:
  the true if the shape is a sensor.

bool b2Fixture::RayCast | ( | b2RayCastOutput * | output,
|  | const b2RayCastInput & | input |
| ) |  |  | const`[inline]`

Cast a ray against this shape.

Parameters:

  | output | the ray-cast results.
  | input | the ray-cast input parameters.

void b2Fixture::SetDensity | ( | float32 | density | ) | `[inline]`

Set the density of this fixture. This will _not_ automatically adjust the mass of the body. You must call b2Body::ResetMassData to update the body's mass.

void b2Fixture::SetFilterData | ( | const b2Filter & | filter | ) |

Set the contact filtering data. This will not update contacts until the next time step when either parent body is active and awake.

void b2Fixture::SetFriction | ( | float32 | friction | ) | `[inline]`

Set the coefficient of friction.

void b2Fixture::SetRestitution | ( | float32 | restitution | ) | `[inline]`

Set the coefficient of restitution.

void b2Fixture::SetSensor | ( | bool | sensor | ) |

Set if this fixture is a sensor.

void b2Fixture::SetUserData | ( | void * | data | ) | `[inline]`

Set the user data. Use this to store your application specific data.

void b2Fixture::Synchronize | ( | b2BroadPhase * | broadPhase,
|  | const b2Transform & | xf1,
|  | const b2Transform & | xf2 |
| ) |  |  | `[protected]`

bool b2Fixture::TestPoint | ( | const b2Vec2 & | p | ) | const`[inline]`

Test a point for containment in this fixture.

Parameters:

  | xf | the shape world transform.
  | p | a point in world coordinates.

## Friends And Related Function Documentation

friend class b2Body`[friend]`

friend class b2Contact`[friend]`

friend class b2ContactManager`[friend]`

friend class b2World`[friend]`

## Member Data Documentation

b2AABB b2Fixture::m_aabb`[protected]`

b2Body* b2Fixture::m_body`[protected]`

float32 b2Fixture::m_density`[protected]`

b2Filter b2Fixture::m_filter`[protected]`

float32 b2Fixture::m_friction`[protected]`

bool b2Fixture::m_isSensor`[protected]`

b2Fixture* b2Fixture::m_next`[protected]`

int32 b2Fixture::m_proxyId`[protected]`

float32 b2Fixture::m_restitution`[protected]`

b2Shape* b2Fixture::m_shape`[protected]`

void* b2Fixture::m_userData`[protected]`

The documentation for this class was generated from the following files:

- Box2D/Box2D/Dynamics/b2Fixture.h
- Box2D/Box2D/Dynamics/b2Fixture.cpp