Box2D
3.0.0
A Real-Time-Oriented 2-D Physics Engine
|
A rope joint enforces a maximum distance between two points on two bodies. It has no other effect. Warning: if you attempt to change the maximum length during the simulation you will get some non-physical behavior. A model that would allow you to dynamically modify the length would have some sponginess, so I chose not to implement it that way. See DistanceJoint if you want to dynamically control length. More...
#include <RopeJoint.hpp>
Public Member Functions | |
RopeJoint (const RopeJointDef &data) | |
Length2D | GetAnchorA () const override |
Get the anchor point on bodyA in world coordinates. More... | |
Length2D | GetAnchorB () const override |
Get the anchor point on bodyB in world coordinates. More... | |
Force2D | GetReactionForce (Frequency inv_dt) const override |
Get the reaction force on bodyB at the joint anchor in Newtons. More... | |
Torque | GetReactionTorque (Frequency inv_dt) const override |
Get the reaction torque on bodyB in N*m. More... | |
Length2D | GetLocalAnchorA () const |
The local anchor point relative to bodyA's origin. More... | |
Length2D | GetLocalAnchorB () const |
The local anchor point relative to bodyB's origin. More... | |
void | SetMaxLength (Length length) |
Set/Get the maximum length of the rope. More... | |
Length | GetMaxLength () const |
LimitState | GetLimitState () const |
![]() | |
JointType | GetType () const noexcept |
Get the type of the concrete joint. More... | |
Body * | GetBodyA () noexcept |
Get the first body attached to this joint. More... | |
Body * | GetBodyB () noexcept |
Get the second body attached to this joint. More... | |
const Body * | GetBodyA () const noexcept |
Get the first body attached to this joint. More... | |
const Body * | GetBodyB () const noexcept |
Get the second body attached to this joint. More... | |
void * | GetUserData () const noexcept |
Get the user data pointer. More... | |
void | SetUserData (void *data) noexcept |
Set the user data pointer. More... | |
bool | GetCollideConnected () const noexcept |
Get collide connected. Note: modifying the collide connect flag won't work correctly because the flag is only checked when fixture AABBs begin to overlap. More... | |
virtual void | ShiftOrigin (const Length2D newOrigin) |
Shift the origin for any points stored in world coordinates. More... | |
Additional Inherited Members | |
![]() | |
enum | LimitState { e_inactiveLimit, e_atLowerLimit, e_atUpperLimit, e_equalLimits } |
using | index_t = size_t |
![]() | |
static bool | IsOkay (const JointDef &def) noexcept |
![]() | |
Joint (const JointDef &def) | |
virtual | ~Joint () noexcept |
void | SetBodyA (Body *value) noexcept |
void | SetBodyB (Body *value) noexcept |
A rope joint enforces a maximum distance between two points on two bodies. It has no other effect. Warning: if you attempt to change the maximum length during the simulation you will get some non-physical behavior. A model that would allow you to dynamically modify the length would have some sponginess, so I chose not to implement it that way. See DistanceJoint if you want to dynamically control length.
RopeJoint::RopeJoint | ( | const RopeJointDef & | data | ) |
|
overridevirtual |
Get the anchor point on bodyA in world coordinates.
Implements box2d::Joint.
|
overridevirtual |
Get the anchor point on bodyB in world coordinates.
Implements box2d::Joint.
Joint::LimitState RopeJoint::GetLimitState | ( | ) | const |
|
inline |
The local anchor point relative to bodyA's origin.
|
inline |
The local anchor point relative to bodyB's origin.
Length RopeJoint::GetMaxLength | ( | ) | const |
Get the reaction force on bodyB at the joint anchor in Newtons.
Implements box2d::Joint.
Get the reaction torque on bodyB in N*m.
Implements box2d::Joint.
|
inline |
Set/Get the maximum length of the rope.