ReactPhysics3D  v0.10.1
C++ Physics engine library
reactphysics3d::HingeJoint Class Reference

This class represents a hinge joint that allows arbitrary rotation between two bodies around a single axis. More...

#include <include/reactphysics3d/constraint/HingeJoint.h>

Inheritance diagram for reactphysics3d::HingeJoint:
reactphysics3d::Joint

Public Member Functions

 HingeJoint (Entity entity, PhysicsWorld &world, const HingeJointInfo &jointInfo)
 Constructor.
 
virtual ~HingeJoint () override=default
 Destructor.
 
 HingeJoint (const HingeJoint &constraint)=delete
 Deleted copy-constructor.
 
HingeJointoperator= (const HingeJoint &constraint)=delete
 Deleted assignment operator.
 
bool isLimitEnabled () const
 Return true if the limits or the joint are enabled. More...
 
bool isMotorEnabled () const
 Return true if the motor of the joint is enabled. More...
 
void enableLimit (bool isLimitEnabled)
 Enable/Disable the limits of the joint. More...
 
void enableMotor (bool isMotorEnabled)
 Enable/Disable the motor of the joint. More...
 
decimal getMinAngleLimit () const
 Return the minimum angle limit. More...
 
void setMinAngleLimit (decimal lowerLimit)
 Set the minimum angle limit. More...
 
decimal getMaxAngleLimit () const
 Return the maximum angle limit. More...
 
void setMaxAngleLimit (decimal upperLimit)
 Set the maximum angle limit. More...
 
decimal getMotorSpeed () const
 Return the motor speed. More...
 
void setMotorSpeed (decimal motorSpeed)
 Set the motor speed. More...
 
decimal getMaxMotorTorque () const
 Return the maximum motor torque. More...
 
void setMaxMotorTorque (decimal maxMotorTorque)
 Set the maximum motor torque. More...
 
decimal getMotorTorque (decimal timeStep) const
 Return the intensity of the current torque applied for the joint motor. More...
 
decimal getAngle () const
 Return the current hinge angle (in radians) More...
 
virtual Vector3 getReactionForce (decimal timeStep) const override
 Return the force (in Newtons) on body 2 required to satisfy the joint constraint in world-space. More...
 
virtual Vector3 getReactionTorque (decimal timeStep) const override
 Return the torque (in Newtons * meters) on body 2 required to satisfy the joint constraint in world-space. More...
 
virtual std::string to_string () const override
 Return a string representation.
 
- Public Member Functions inherited from reactphysics3d::Joint
 Joint (Entity entity, PhysicsWorld &world)
 Constructor.
 
virtual ~Joint ()=default
 Destructor.
 
 Joint (const Joint &constraint)=delete
 Deleted copy-constructor.
 
Jointoperator= (const Joint &constraint)=delete
 Deleted assignment operator.
 
RigidBodygetBody1 () const
 Return the reference to the body 1. More...
 
RigidBodygetBody2 () const
 Return the reference to the body 2. More...
 
JointType getType () const
 Return the type of the constraint. More...
 
bool isCollisionEnabled () const
 Return true if the collision between the two bodies of the joint is enabled. More...
 
Entity getEntity () const
 Return the entity id of the joint. More...
 

Detailed Description

This class represents a hinge joint that allows arbitrary rotation between two bodies around a single axis.

This joint has one degree of freedom. It can be useful to simulate doors or pendulumns.

Member Function Documentation

◆ enableLimit()

void HingeJoint::enableLimit ( bool  isLimitEnabled)

Enable/Disable the limits of the joint.

Parameters
isLimitEnabledTrue if you want to enable the limits of the joint and false otherwise

◆ enableMotor()

void HingeJoint::enableMotor ( bool  isMotorEnabled)

Enable/Disable the motor of the joint.

Parameters
isMotorEnabledTrue if you want to enable the motor of the joint and false otherwise

◆ getAngle()

decimal HingeJoint::getAngle ( ) const

Return the current hinge angle (in radians)

Returns
The current hinge angle (in radians) in the range [-pi; pi]

◆ getMaxAngleLimit()

decimal HingeJoint::getMaxAngleLimit ( ) const

Return the maximum angle limit.

Returns
The maximum limit angle of the joint (in radian)

◆ getMaxMotorTorque()

decimal HingeJoint::getMaxMotorTorque ( ) const

Return the maximum motor torque.

Returns
The maximum torque of the joint motor (in Newtons)

◆ getMinAngleLimit()

decimal HingeJoint::getMinAngleLimit ( ) const

Return the minimum angle limit.

Returns
The minimum limit angle of the joint (in radian)

◆ getMotorSpeed()

decimal HingeJoint::getMotorSpeed ( ) const

Return the motor speed.

Returns
The current speed of the joint motor (in radian per second)

◆ getMotorTorque()

decimal HingeJoint::getMotorTorque ( decimal  timeStep) const

Return the intensity of the current torque applied for the joint motor.

Parameters
timeStepThe current time step (in seconds)
Returns
The intensity of the current torque (in Newtons) of the joint motor

◆ getReactionForce()

Vector3 HingeJoint::getReactionForce ( decimal  timeStep) const
overridevirtual

Return the force (in Newtons) on body 2 required to satisfy the joint constraint in world-space.

Returns
The current force (in Newtons) applied on body 2

Implements reactphysics3d::Joint.

◆ getReactionTorque()

Vector3 HingeJoint::getReactionTorque ( decimal  timeStep) const
overridevirtual

Return the torque (in Newtons * meters) on body 2 required to satisfy the joint constraint in world-space.

Returns
The current torque (in Newtons * meters) applied on body 2

Implements reactphysics3d::Joint.

◆ isLimitEnabled()

bool HingeJoint::isLimitEnabled ( ) const

Return true if the limits or the joint are enabled.

Returns
True if the limits of the joint are enabled and false otherwise

◆ isMotorEnabled()

bool HingeJoint::isMotorEnabled ( ) const

Return true if the motor of the joint is enabled.

Returns
True if the motor of joint is enabled and false otherwise

◆ setMaxAngleLimit()

void HingeJoint::setMaxAngleLimit ( decimal  upperLimit)

Set the maximum angle limit.

Parameters
upperLimitThe maximum limit angle of the joint (in radian)

◆ setMaxMotorTorque()

void HingeJoint::setMaxMotorTorque ( decimal  maxMotorTorque)

Set the maximum motor torque.

Parameters
maxMotorTorqueThe maximum torque (in Newtons) of the joint motor

◆ setMinAngleLimit()

void HingeJoint::setMinAngleLimit ( decimal  lowerLimit)

Set the minimum angle limit.

Parameters
lowerLimitThe minimum limit angle of the joint (in radian)

◆ setMotorSpeed()

void HingeJoint::setMotorSpeed ( decimal  motorSpeed)

Set the motor speed.

Parameters
motorSpeedThe speed of the motor

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