Chain shape configuration. More...
#include <playrho/d2/ChainShapeConf.hpp>
Classes | |
class | VerticesWithNormals |
Public Member Functions | |
ChainShapeConf & | Add (const Length2 &vertex) |
Adds the given vertex. | |
DistanceProxy | GetChild (ChildCounter index) const |
Gets the "child" shape at the given index. | |
ChildCounter | GetChildCount () const noexcept |
Gets the "child" shape count. | |
MassData | GetMassData () const |
Gets the mass data. | |
UnitVec | GetNormal (ChildCounter index) const |
Gets the normal at the given index. | |
Length2 | GetVertex (ChildCounter index) const |
Gets a vertex by index. | |
ChildCounter | GetVertexCount () const noexcept |
Gets the vertex count. | |
ChainShapeConf & | Rotate (const UnitVec &value) |
Rotates the vertices by the given amount. More... | |
ChainShapeConf & | Scale (const Vec2 &value) |
Scales the vertices by the given amount. More... | |
ChainShapeConf & | Set (std::vector< Length2 > vertices) |
Sets the configuration up for representing a chain of vertices as given. More... | |
ChainShapeConf & | Translate (const Length2 &value) |
Translates the vertices by the given amount. More... | |
ChainShapeConf & | UseVertexRadius (NonNegative< Length > value) noexcept |
Uses the given vertex radius. | |
Public Member Functions inherited from playrho::d2::ShapeBuilder< ChainShapeConf > | |
constexpr ChainShapeConf & | UseDensity (NonNegative< AreaDensity > value) noexcept |
Uses the given density. | |
constexpr ChainShapeConf & | UseFilter (Filter value) noexcept |
Uses the given filter. | |
constexpr ChainShapeConf & | UseFriction (NonNegative< Real > value) noexcept |
Uses the given friction. | |
constexpr ChainShapeConf & | UseIsSensor (bool value) noexcept |
Uses the given is-sensor value. | |
constexpr ChainShapeConf & | UseRestitution (Finite< Real > value) noexcept |
Uses the given restitution. | |
Static Public Member Functions | |
static constexpr NonNegative< Length > | GetDefaultVertexRadius () noexcept |
Gets the default vertex radius. More... | |
Public Attributes | |
VerticesWithNormals | segments |
Vertex & normals data. | |
NonNegative< Length > | vertexRadius = GetDefaultVertexRadius() |
Vertex radius. More... | |
Public Attributes inherited from playrho::d2::BaseShapeConf | |
NonNegative< AreaDensity > | density = DefaultDensity |
Area density of the associated shape. More... | |
Filter | filter = DefaultFilter |
Filtering data for contacts. | |
NonNegative< Real > | friction = DefaultFriction |
Friction coefficient. More... | |
bool | isSensor = DefaultIsSensor |
A sensor shape collects contact information but never generates a collision response. | |
Finite< Real > | restitution = DefaultRestitution |
Restitution (elasticity) of the associated shape. More... | |
Static Public Attributes | |
static constexpr auto | DefaultVertexRadius = NonNegative<Length>{DefaultLinearSlop * Real{2}} |
Default vertex radius. | |
Static Public Attributes inherited from playrho::d2::BaseShapeConf | |
static constexpr auto | DefaultDensity = NonNegative<AreaDensity>{0_kgpm2} |
Default density value. | |
static constexpr auto | DefaultFilter = Filter{} |
Default filter value. | |
static constexpr auto | DefaultFriction = NonNegative<Real>{Real{2} / Real{10}} |
Default friction value. | |
static constexpr auto | DefaultIsSensor = false |
Default is-sensor value. | |
static const auto | DefaultRestitution = Finite<Real>{} |
Default restitution value. | |
Friends | |
bool | operator!= (const ChainShapeConf &lhs, const ChainShapeConf &rhs) noexcept |
Inequality operator. | |
bool | operator== (const ChainShapeConf &lhs, const ChainShapeConf &rhs) noexcept |
Equality operator. | |
Additional Inherited Members | |
Related Functions inherited from playrho::d2::BaseShapeConf | |
constexpr NonNegative< AreaDensity > | GetDensity (const BaseShapeConf &arg) noexcept |
Gets the density of the given shape configuration. | |
constexpr Filter | GetFilter (const BaseShapeConf &arg) noexcept |
Gets the filter of the given shape configuration. | |
constexpr NonNegativeFF< Real > | GetFriction (const BaseShapeConf &arg) noexcept |
Gets the friction of the given shape. | |
constexpr Finite< Real > | GetRestitution (const BaseShapeConf &arg) noexcept |
Gets the restitution of the given shape. | |
constexpr bool | IsSensor (const BaseShapeConf &arg) noexcept |
Gets the is-sensor state of the given shape configuration. | |
void | SetDensity (BaseShapeConf &arg, NonNegative< AreaDensity > value) |
Sets the density of the given shape configuration. | |
void | SetFilter (BaseShapeConf &arg, Filter value) |
Sets the filter of the given shape configuration. | |
void | SetFriction (BaseShapeConf &arg, NonNegative< Real > value) |
Sets the friction of the given shape. | |
void | SetRestitution (BaseShapeConf &arg, Real value) noexcept |
Sets the restitution of the given shape. | |
void | SetSensor (BaseShapeConf &arg, bool value) |
Sets the is-sensor state of the given shape configuration. | |
Chain shape configuration.
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 on the memory heap.
|
inlinestaticconstexprnoexcept |
Gets the default vertex radius.
DefaultVertexRadius
directly. DefaultVertexRadius
. ChainShapeConf & playrho::d2::ChainShapeConf::Rotate | ( | const UnitVec & | value | ) |
Rotates the vertices by the given amount.
Referenced by playrho::d2::Rotate().
ChainShapeConf & playrho::d2::ChainShapeConf::Scale | ( | const Vec2 & | value | ) |
Scales the vertices by the given amount.
Referenced by playrho::d2::Scale().
ChainShapeConf & playrho::d2::ChainShapeConf::Set | ( | std::vector< Length2 > | vertices | ) |
Sets the configuration up for representing a chain of vertices as given.
InvalidArgument | if the number of vertices given is greater than MaxChildCount . |
GetVertices()
returns the vertices given. GetVertexCount()
returns the number of vertices given. GetVertex(i)
returns the vertex vertices[i]
for all valid indices. ChainShapeConf & playrho::d2::ChainShapeConf::Translate | ( | const Length2 & | value | ) |
Translates the vertices by the given amount.
Referenced by playrho::d2::Translate().
NonNegative<Length> playrho::d2::ChainShapeConf::vertexRadius = GetDefaultVertexRadius() |
Vertex radius.
This is the radius from the vertex that the shape's "skin" should extend outward by. While any edges — line segments between multiple vertices — are straight, corners between them (the vertices) are rounded and treated as rounded. Shapes with larger vertex radiuses compared to edge lengths therefore will be more prone to rolling or having other shapes more prone to roll off of them.
Referenced by GetChild(), and GetMassData().