Box2D
3.0.0
A Real-Time-Oriented 2-D Physics Engine
|
Chain shape. More...
#include <ChainShape.hpp>
Classes | |
struct | Conf |
Public Member Functions | |
ChainShape (const Conf &conf=GetDefaultConf()) | |
ChainShape (const ChainShape &other) | |
virtual | ~ChainShape () |
The destructor frees the vertices using free. More... | |
child_count_t | GetChildCount () const noexcept override |
Gets the number of child primitives. More... | |
DistanceProxy | GetChild (child_count_t index) const noexcept override |
Gets the child for the given index. More... | |
bool | TestPoint (const Transformation &xf, const Length2D p) const noexcept override |
Tests a point for containment in this shape. More... | |
MassData | GetMassData () const noexcept override |
Computes the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin. More... | |
RayCastOutput | RayCast (const RayCastInput &input, const Transformation &xf, child_count_t childIndex) const noexcept override |
Cast a ray against a child shape. More... | |
void | Accept (Visitor &visitor) const override |
Accepts a visitor. More... | |
ChainShape & | operator= (const ChainShape &other) |
void | Clear () |
Clear all data. More... | |
void | CreateLoop (Span< const Length2D > vertices) |
Create a loop. This automatically adjusts connectivity. More... | |
void | CreateChain (Span< const Length2D > vertices) |
Create a chain with isolated end vertices. More... | |
child_count_t | GetVertexCount () const noexcept |
Get the vertex count. More... | |
Length2D | GetVertex (child_count_t index) const |
Get a vertex by index. More... | |
UnitVec2 | GetNormal (child_count_t index) const |
![]() | |
Shape ()=delete | |
Default constructor is deleted. More... | |
Shape (const Conf &conf) noexcept | |
Initializing constructor. More... | |
Shape (const Shape &)=default | |
virtual | ~Shape ()=default |
Length | GetVertexRadius () const noexcept |
Gets the vertex radius. More... | |
void | SetVertexRadius (Length vertexRadius) |
Density | GetDensity () const noexcept |
Gets the density of this fixture. More... | |
void | SetDensity (Density density) noexcept |
Sets the density of this fixture. More... | |
RealNum | GetFriction () const noexcept |
Gets the coefficient of friction. More... | |
void | SetFriction (RealNum friction) noexcept |
Sets the coefficient of friction. This will not change the friction of existing contacts. More... | |
RealNum | GetRestitution () const noexcept |
Gets the coefficient of restitution. More... | |
void | SetRestitution (RealNum restitution) noexcept |
Sets the coefficient of restitution. This will not change the restitution of existing contacts. More... | |
Static Public Member Functions | |
static constexpr Length | GetDefaultVertexRadius () noexcept |
static constexpr Conf | GetDefaultConf () noexcept |
Chain shape.
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 alloc. Connectivity information is used to create smooth collisions.
|
inline |
ChainShape::ChainShape | ( | const ChainShape & | other | ) |
|
virtual |
The destructor frees the vertices using free.
|
inlineoverridevirtual |
Accepts a visitor.
Implements box2d::Shape.
void ChainShape::Clear | ( | ) |
Clear all data.
Create a chain with isolated end vertices.
vertices | an array of vertices, these are copied |
Create a loop. This automatically adjusts connectivity.
vertices | Non-null array of vertices. These are copied. |
|
overridevirtualnoexcept |
Gets the child for the given index.
Implements box2d::Shape.
|
overridevirtualnoexcept |
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
overridevirtualnoexcept |
Computes the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin.
Implements box2d::Shape.
|
inline |
|
inline |
Get a vertex by index.
|
inlinenoexcept |
Get the vertex count.
ChainShape & ChainShape::operator= | ( | const ChainShape & | other | ) |
|
overridevirtualnoexcept |
Cast a ray against a child shape.
input | the ray-cast input parameters. |
xf | the transform to be applied to the shape. |
childIndex | the child shape index |
Implements box2d::Shape.
|
overridevirtualnoexcept |
Tests a point for containment in this shape.
xf | the shape world transform. |
p | a point in world coordinates. |
true
if point is contained in this shape, false
otherwise. Implements box2d::Shape.