Public Member Functions |
| ~b2ChainShape () |
| The destructor frees the vertices using b2Free.
|
void | CreateLoop (const b2Vec2 *vertices, int32 count) |
void | CreateChain (const b2Vec2 *vertices, int32 count) |
void | SetPrevVertex (const b2Vec2 &prevVertex) |
void | SetNextVertex (const b2Vec2 &nextVertex) |
b2Shape * | Clone (b2BlockAllocator *allocator) const |
| Implement b2Shape. Vertices are cloned using b2Alloc.
|
int32 | GetChildCount () const |
void | GetChildEdge (b2EdgeShape *edge, int32 index) const |
| Get a child edge.
|
bool | TestPoint (const b2Transform &transform, const b2Vec2 &p) const |
bool | RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const |
| Implement b2Shape.
|
void | ComputeAABB (b2AABB *aabb, const b2Transform &transform, int32 childIndex) const |
void | ComputeMass (b2MassData *massData, float32 density) const |
Public Attributes |
b2Vec2 * | m_vertices |
| The vertices. Owned by this class.
|
int32 | m_count |
| The vertex count.
|
b2Vec2 | m_prevVertex |
b2Vec2 | m_nextVertex |
bool | m_hasPrevVertex |
bool | m_hasNextVertex |
A chain shape is a free form sequence of line segments. The chain has two-sided collision, so you can use inside and outside collision. Therefore, you may use any winding order. Since there may be many vertices, they are allocated using b2Alloc. Connectivity information is used to create smooth collisions. WARNING: The chain will not collide properly if there are self-intersections.