Constrains two points on two rigid bodies to remain at a fixed distance from each other. More...
#include <DistanceJoint.h>
Public Types | |
using | Ptr = std::shared_ptr< Joint > |
using | BodyPtr = std::shared_ptr< Body > |
Public Member Functions | |
std::string | getClassName () const override |
Get the name of this class. More... | |
float | setRestLength (float length) |
Set the rest length. More... | |
float | getRestLength () const |
Get the rest length. More... | |
float | setMinimumLength (float minLength) |
Set the minimum length. More... | |
float | getMinimumLength () const |
Get the minimum length. More... | |
float | setMaxLength (float maxLength) |
Set the maximum length. More... | |
float | getMaximumLength () const |
Get the maximum length. More... | |
float | getCurrentLength () const |
Get the current length. More... | |
Vector2f | getBodyALocalAnchorPoint () const |
Get the anchor point on body A in local coordinates. More... | |
Vector2f | getBodyAWorldAnchorPoint () const override |
Get the anchor point on body A in world coordinates. More... | |
Vector2f | getBodyBLocalAnchorPoint () const |
Get the anchor point on body B in local coordinates. More... | |
Vector2f | getBodyBWorldAnchorPoint () const override |
Get the anchor point on body B in world coordinates. More... | |
JointType | getType () const override |
Get the type of the joint. More... | |
BodyPtr | getBodyA () override |
Get the first body attached to ths joint. More... | |
BodyPtr | getBodyB () override |
Get the second body attached to ths joint. More... | |
Vector2f | getReactionForce (float fpsLimit) const override |
Get the reaction force on body B at the joint anchor. More... | |
float | getReactionTorque (float fpsLimit) const override |
Get the reaction torque on body B. More... | |
PropertyContainer & | getUserData () override |
Get the application specific Joint data. More... | |
const PropertyContainer & | getUserData () const override |
bool | canBodiesCollide () const override |
Check if the joint bodies can collide with each other or not. More... | |
b2Joint * | getInternalJoint () override |
const b2Joint * | getInternalJoint () const override |
~DistanceJoint () override | |
Destructor. More... | |
std::string | getClassType () const override |
Get the name of this class. More... | |
void | setTag (const std::string &tag) |
Assign the object an alias. More... | |
const std::string & | getTag () const |
Get the alias of the object. More... | |
unsigned int | getObjectId () const |
Get the id of the object. More... | |
int | onPropertyChange (const std::string &property, const Callback< Property > &callback) |
Add an event listener to a specific property change event. More... | |
void | onPropertyChange (const Callback< Property > &callback) |
Add an event listener to a property change event. More... | |
int | onEvent (const std::string &event, const Callback<> &callback) |
Add an event listener to an event. More... | |
bool | unsubscribe (const std::string &event, int id) |
Remove an event listener from an event. More... | |
int | onDestruction (const Callback<> &callback) |
Add a destruction listener. More... | |
bool | removeDestructionListener (int id) |
Remove a destruction listener form the object. More... | |
bool | operator== (const Object &rhs) const |
Check if two objects are the same object or not. More... | |
bool | operator!= (const Object &rhs) const |
Check if two objects are not the same object. More... | |
Protected Member Functions | |
void | emitChange (const Property &property) |
Dispatch a property change event. More... | |
void | emit (const std::string &event) |
Dispatch an action event. More... | |
Friends | |
class | World |
Needs access to constructor. More... | |
Constrains two points on two rigid bodies to remain at a fixed distance from each other.
When you specify a distance joint the two bodies should already be in place. Then you specify the two anchor points in world coordinates. The first anchor point is connected to body 1, and the second anchor point is connected to body 2. These points imply the length of the distance constraint
Definition at line 81 of file DistanceJoint.h.
|
override |
Destructor.
|
overridevirtual |
Check if the joint bodies can collide with each other or not.
Implements ime::Joint.
|
protectedinherited |
Dispatch an action event.
event | The name of the event to be dispatched |
This function will invoke all event listeners of the specified event. The function should be used for events that represent an action, rather than those that represent a property change (Use emitChange for that)
|
protectedinherited |
Dispatch a property change event.
property | The property that changed |
This function will invoke all the event listeners of the specified property
|
overridevirtual |
Get the first body attached to ths joint.
Implements ime::Joint.
Vector2f ime::DistanceJoint::getBodyALocalAnchorPoint | ( | ) | const |
Get the anchor point on body A in local coordinates.
|
overridevirtual |
Get the anchor point on body A in world coordinates.
Implements ime::Joint.
|
overridevirtual |
Get the second body attached to ths joint.
Implements ime::Joint.
Vector2f ime::DistanceJoint::getBodyBLocalAnchorPoint | ( | ) | const |
Get the anchor point on body B in local coordinates.
|
overridevirtual |
Get the anchor point on body B in world coordinates.
Implements ime::Joint.
|
overridevirtual |
|
overridevirtualinherited |
Get the name of this class.
Note that this function is only implemented by child classes of Object which also serve as a base class for other classes
Reimplemented from ime::Object.
float ime::DistanceJoint::getCurrentLength | ( | ) | const |
Get the current length.
float ime::DistanceJoint::getMaximumLength | ( | ) | const |
Get the maximum length.
By default the maximum length is
float ime::DistanceJoint::getMinimumLength | ( | ) | const |
Get the minimum length.
By default, the maximum length is the maximum float value on your computer (Very large number)
|
inherited |
Get the id of the object.
Each object has a unique id
|
overridevirtual |
Get the reaction force on body B at the joint anchor.
fpsLimit | The games Frames Per Second limit |
Implements ime::Joint.
|
overridevirtual |
Get the reaction torque on body B.
fpsLimit | The games Frames Per Second limit |
Implements ime::Joint.
float ime::DistanceJoint::getRestLength | ( | ) | const |
Get the rest length.
|
inherited |
|
overridevirtual |
|
overridevirtual |
Get the application specific Joint data.
This data is extracted from the JointDefinition
Implements ime::Joint.
|
inherited |
Add a destruction listener.
callback | Function to be executed when the object is destroyed |
Note that an object may have more than one destruction listeners, however, you have to keep the returned id if you may want to remove the callback at a later time
|
inherited |
Add an event listener to an event.
event | The name of the event to add an an event listener to |
callback | The function to be executed when the event takes place |
Unlike onPropertyChange, this function registers event listeners to events that occur when something happens to the object, or when the object does something (action events). Usually the name of the event/action is the name of the function:
Add an event listener to a property change event.
callback | The function to be executed when the property changes |
Note that only one callback function may be registered with this function. This means that adding a new event listener overwrites the previous event listener. To remove the callback, pass a nullptr as an argument. The function may be useful if you want to write the logic for property changes in one function.
|
inherited |
Add an event listener to a specific property change event.
property | The name of the property to listen for |
callback | The function to be executed when the property changes |
A property change event is triggered by any function that begins with set, where the the text after set is the name of the property. For example, for the setTag function, the property that the function modifies is Tag.
Note that when adding a property change event listener, the name of the property must be in lowercase:
Unlike onPropertyChange(const Callback&) you can add multiple event listeners to the same property using this function. However you must store the unique id of the event listener if you wish to remove it at a later time
|
inherited |
Check if two objects are not the same object.
rhs | Object to compare against this object |
Two objects are different from each other if they have different object id's
|
inherited |
Check if two objects are the same object or not.
rhs | Object to compare against this object |
Two objects are the same object if they have the same object id. Recall that each object instance has a unique id
|
inherited |
Remove a destruction listener form the object.
The | id of the destruction listener to be removed |
float ime::DistanceJoint::setMaxLength | ( | float | maxLength | ) |
Set the maximum length.
maxLength | The new maximum length |
float ime::DistanceJoint::setMinimumLength | ( | float | minLength | ) |
Set the minimum length.
minLength | The new minimum length |
By default the minimum length is 0.0f
float ime::DistanceJoint::setRestLength | ( | float | length | ) |
Set the rest length.
length | The rest length to set |
|
inherited |
Assign the object an alias.
name | The alias of the object |
This function is useful if you want to refer to the object by tag instead of its id. Unlike an object id, multiple objects may have the same tag.
By default, the tag is an empty string
|
inherited |
Remove an event listener from an event.
event | The name of the event to remove event listener from |
id | The unique id of the event listener to be removed |
|
friend |
Needs access to constructor.
Definition at line 251 of file DistanceJoint.h.