Box2D  3.0.0
A Real-Time-Oriented 2-D Physics Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
box2d::RopeJoint Class Reference

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>

Inheritance diagram for box2d::RopeJoint:
box2d::Joint

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
 
- Public Member Functions inherited from box2d::Joint
JointType GetType () const noexcept
 Get the type of the concrete joint. More...
 
BodyGetBodyA () noexcept
 Get the first body attached to this joint. More...
 
BodyGetBodyB () noexcept
 Get the second body attached to this joint. More...
 
const BodyGetBodyA () const noexcept
 Get the first body attached to this joint. More...
 
const BodyGetBodyB () 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

- Public Types inherited from box2d::Joint
enum  LimitState { e_inactiveLimit, e_atLowerLimit, e_atUpperLimit, e_equalLimits }
 
using index_t = size_t
 
- Static Public Member Functions inherited from box2d::Joint
static bool IsOkay (const JointDef &def) noexcept
 
- Protected Member Functions inherited from box2d::Joint
 Joint (const JointDef &def)
 
virtual ~Joint () noexcept
 
void SetBodyA (Body *value) noexcept
 
void SetBodyB (Body *value) noexcept
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ RopeJoint()

RopeJoint::RopeJoint ( const RopeJointDef data)

Member Function Documentation

◆ GetAnchorA()

Length2D RopeJoint::GetAnchorA ( ) const
overridevirtual

Get the anchor point on bodyA in world coordinates.

Implements box2d::Joint.

◆ GetAnchorB()

Length2D RopeJoint::GetAnchorB ( ) const
overridevirtual

Get the anchor point on bodyB in world coordinates.

Implements box2d::Joint.

◆ GetLimitState()

Joint::LimitState RopeJoint::GetLimitState ( ) const

◆ GetLocalAnchorA()

Length2D box2d::RopeJoint::GetLocalAnchorA ( ) const
inline

The local anchor point relative to bodyA's origin.

◆ GetLocalAnchorB()

Length2D box2d::RopeJoint::GetLocalAnchorB ( ) const
inline

The local anchor point relative to bodyB's origin.

◆ GetMaxLength()

Length RopeJoint::GetMaxLength ( ) const

◆ GetReactionForce()

Force2D RopeJoint::GetReactionForce ( Frequency  inv_dt) const
overridevirtual

Get the reaction force on bodyB at the joint anchor in Newtons.

Implements box2d::Joint.

◆ GetReactionTorque()

Torque RopeJoint::GetReactionTorque ( Frequency  inv_dt) const
overridevirtual

Get the reaction torque on bodyB in N*m.

Implements box2d::Joint.

◆ SetMaxLength()

void box2d::RopeJoint::SetMaxLength ( Length  length)
inline

Set/Get the maximum length of the rope.


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