Public Member Functions | Public Attributes | List of all members
b2PolygonShape Class Reference

#include <b2_polygon_shape.h>

Inheritance diagram for b2PolygonShape:
Inheritance graph
[legend]

Public Member Functions

 b2PolygonShape ()
 
b2ShapeClone (b2BlockAllocator *allocator) const override
 Implement b2Shape. More...
 
void ComputeAABB (b2AABB *aabb, const b2Transform &transform, int32 childIndex) const override
 
void ComputeMass (b2MassData *massData, float density) const override
 
int32 GetChildCount () const override
 
bool RayCast (b2RayCastOutput *output, const b2RayCastInput &input, const b2Transform &transform, int32 childIndex) const override
 
void Set (const b2Vec2 *points, int32 count)
 
void SetAsBox (float hx, float hy)
 
void SetAsBox (float hx, float hy, const b2Vec2 &center, float angle)
 
bool TestPoint (const b2Transform &transform, const b2Vec2 &p) const override
 
bool Validate () const
 
- Public Member Functions inherited from b2Shape
Type GetType () const
 
virtual ~b2Shape ()
 

Public Attributes

b2Vec2 m_centroid
 
int32 m_count
 
b2Vec2 m_normals [b2_maxPolygonVertices]
 
b2Vec2 m_vertices [b2_maxPolygonVertices]
 
- Public Attributes inherited from b2Shape
float m_radius
 
Type m_type
 

Additional Inherited Members

- Public Types inherited from b2Shape
enum  Type {
  e_circle = 0, e_edge = 1, e_polygon = 2, e_chain = 3,
  e_typeCount = 4
}
 

Detailed Description

A solid convex polygon. It is assumed that the interior of the polygon is to the left of each edge. Polygons have a maximum number of vertices equal to b2_maxPolygonVertices. In most cases you should not need many vertices for a convex polygon.

Definition at line 32 of file b2_polygon_shape.h.

Constructor & Destructor Documentation

◆ b2PolygonShape()

b2PolygonShape::b2PolygonShape ( )
inline

Definition at line 87 of file b2_polygon_shape.h.

Member Function Documentation

◆ Clone()

b2Shape * b2PolygonShape::Clone ( b2BlockAllocator allocator) const
overridevirtual

Implement b2Shape.

Implements b2Shape.

Definition at line 28 of file b2_polygon_shape.cpp.

◆ ComputeAABB()

void b2PolygonShape::ComputeAABB ( b2AABB aabb,
const b2Transform transform,
int32  childIndex 
) const
overridevirtual
See also
b2Shape::ComputeAABB

Implements b2Shape.

Definition at line 338 of file b2_polygon_shape.cpp.

◆ ComputeMass()

void b2PolygonShape::ComputeMass ( b2MassData massData,
float  density 
) const
overridevirtual
See also
b2Shape::ComputeMass

Implements b2Shape.

Definition at line 357 of file b2_polygon_shape.cpp.

◆ GetChildCount()

int32 b2PolygonShape::GetChildCount ( ) const
overridevirtual
See also
b2Shape::GetChildCount

Implements b2Shape.

Definition at line 75 of file b2_polygon_shape.cpp.

◆ RayCast()

bool b2PolygonShape::RayCast ( b2RayCastOutput output,
const b2RayCastInput input,
const b2Transform transform,
int32  childIndex 
) const
overridevirtual

Implement b2Shape.

Note
because the polygon is solid, rays that start inside do not hit because the normal is not defined.

Implements b2Shape.

Definition at line 266 of file b2_polygon_shape.cpp.

◆ Set()

void b2PolygonShape::Set ( const b2Vec2 points,
int32  count 
)

Create a convex hull from the given array of local points. The count must be in the range [3, b2_maxPolygonVertices].

Warning
the points may be re-ordered, even if they form a convex polygon
collinear points are handled but not removed. Collinear points may lead to poor stacking behavior.

Definition at line 118 of file b2_polygon_shape.cpp.

◆ SetAsBox() [1/2]

void b2PolygonShape::SetAsBox ( float  hx,
float  hy 
)

Build vertices to represent an axis-aligned box centered on the local origin.

Parameters
hxthe half-width.
hythe half-height.

Definition at line 36 of file b2_polygon_shape.cpp.

◆ SetAsBox() [2/2]

void b2PolygonShape::SetAsBox ( float  hx,
float  hy,
const b2Vec2 center,
float  angle 
)

Build vertices to represent an oriented box.

Parameters
hxthe half-width.
hythe half-height.
centerthe center of the box in local coordinates.
anglethe rotation of the box in local coordinates.

Definition at line 50 of file b2_polygon_shape.cpp.

◆ TestPoint()

bool b2PolygonShape::TestPoint ( const b2Transform transform,
const b2Vec2 p 
) const
overridevirtual
See also
b2Shape::TestPoint

Implements b2Shape.

Definition at line 250 of file b2_polygon_shape.cpp.

◆ Validate()

bool b2PolygonShape::Validate ( ) const

Validate convexity. This is a very time consuming operation.

Returns
true if valid

Definition at line 433 of file b2_polygon_shape.cpp.

Member Data Documentation

◆ m_centroid

b2Vec2 b2PolygonShape::m_centroid

Definition at line 81 of file b2_polygon_shape.h.

◆ m_count

int32 b2PolygonShape::m_count

Definition at line 84 of file b2_polygon_shape.h.

◆ m_normals

b2Vec2 b2PolygonShape::m_normals[b2_maxPolygonVertices]

Definition at line 83 of file b2_polygon_shape.h.

◆ m_vertices

b2Vec2 b2PolygonShape::m_vertices[b2_maxPolygonVertices]

Definition at line 82 of file b2_polygon_shape.h.


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


mvsim
Author(s):
autogenerated on Tue Jul 4 2023 03:08:22