LiquidFun
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Types | Public Member Functions | Public Attributes | List of all members
b2Shape Class Referenceabstract

#include <b2Shape.h>

Inherited by b2ChainShape, b2CircleShape, b2EdgeShape, and b2PolygonShape.

Public Types

enum  Type {
  e_circle = 0, e_edge = 1, e_polygon = 2, e_chain = 3,
  e_typeCount = 4
}
 

Public Member Functions

virtual b2ShapeClone (b2BlockAllocator *allocator) const =0
 Clone the concrete shape using the provided allocator.
 
Type GetType () const
 
virtual int32 GetChildCount () const =0
 Get the number of child primitives.
 
virtual bool TestPoint (const b2Transform &xf, const b2Vec2 &p) const =0
 
virtual void ComputeDistance (const b2Transform &xf, const b2Vec2 &p, float32 *distance, b2Vec2 *normal, int32 childIndex) const =0
 
virtual bool RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const =0
 
virtual void ComputeAABB (b2AABB *aabb, const b2Transform &xf, int32 childIndex) const =0
 
virtual void ComputeMass (b2MassData *massData, float32 density) const =0
 

Public Attributes

Type m_type
 
float32 m_radius
 

Detailed Description

A shape is used for collision detection. You can create a shape however you like. Shapes used for simulation in b2World are created automatically when a b2Fixture is created. Shapes may encapsulate a one or more child shapes.

Member Function Documentation

virtual void b2Shape::ComputeAABB ( b2AABB aabb,
const b2Transform xf,
int32  childIndex 
) const
pure virtual

Given a transform, compute the associated axis aligned bounding box for a child shape.

Parameters
aabbreturns the axis aligned box.
xfthe world transform of the shape.
childIndexthe child shape

Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.

virtual void b2Shape::ComputeDistance ( const b2Transform xf,
const b2Vec2 p,
float32 *  distance,
b2Vec2 normal,
int32  childIndex 
) const
pure virtual

Compute the distance from the current shape to the specified point. This only works for convex shapes.

Parameters
xfthe shape world transform.
pa point in world coordinates.
distancereturns the distance from the current shape.
normalreturns the direction in which the distance increases.

Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.

virtual void b2Shape::ComputeMass ( b2MassData massData,
float32  density 
) const
pure virtual

Compute the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin.

Parameters
massDatareturns the mass data for this shape.
densitythe density in kilograms per meter squared.

Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.

b2Shape::Type b2Shape::GetType ( ) const
inline

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

Returns
the shape type.
virtual bool b2Shape::RayCast ( b2RayCastOutput output,
const b2RayCastInput input,
const b2Transform transform,
int32  childIndex 
) const
pure virtual

Cast a ray against a child shape.

Parameters
outputthe ray-cast results.
inputthe ray-cast input parameters.
transformthe transform to be applied to the shape.
childIndexthe child shape index

Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.

virtual bool b2Shape::TestPoint ( const b2Transform xf,
const b2Vec2 p 
) const
pure virtual

Test a point for containment in this shape. This only works for convex shapes.

Parameters
xfthe shape world transform.
pa point in world coordinates.

Implemented in b2ChainShape, b2PolygonShape, b2EdgeShape, and b2CircleShape.


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