Joint Class
This class is used to create joints.
Joint Class
Members
Joint clone ()
Clones the joint.Return value
Copy of the joint.vec3 getAnchor0 ()
Returns the coordinates of the anchor point in a system of coordinates of the first connected body.Return value
Coordinates of the anchor point in the body coordinate space.vec3 getAnchor1 ()
Returns the coordinates of the anchor point in a system of coordinates of the second connected body.Return value
Coordinates of the anchor point in the body coordinate space.float getAngularRestitution ()
Returns the current angular restitution (stiffness) of the joint. Angular restitution defines how fast the joint compensates for change of the angle between two bodies. When bodies are turned relative each other, restitution controls the magnitude of force which is applied to both bodies so that their anchor points to become aligned again. For example:- 1 means that the joint is to return bodies in place throughout 1 physics tick.
- 0.2 means that the joint is to return bodies in place throughout 5 physics ticks.
Return value
Angular restitution in the range [0;1].float getAngularSoftness ()
Returns the current angular softness (elasticity) of the joint. When the joint is twisted, angular softness defines whether angular velocities of the bodies are averaged out. For example:- 0 means that the joint is rigid. Angular velocities of the first and the second body are independent.
- 1 means that the joint is elastic (jelly-like). If the first body changes its velocity, velocity of the second body is equalized with it.
Return value
Angular softness in the range [0;1].Body getBody0 ()
Returns the first body connected using the joint.Return value
The first body connected with the joint.Body getBody1 ()
Returns the second body connected using the joint.Return value
The second body connected with the joint.BodyRigid getBodyRigid0 ()
Returns the first connected body as a rigid body.Return value
The first rigid body connected using the joint or NULL (0), if the body is not rigid.BodyRigid getBodyRigid1 ()
Returns the second connected body as a rigid body.Return value
The second rigid body connected using the joint or NULL (0), if the body is not rigid.int getCollision ()
Returns a value indicating if collisions between the connected bodies are enabled.Return value
Positive number if collisions between the bodies are enabled; otherwise, 0.int getID ()
Returns the unique ID of the joint.Return value
Unique ID.float getLinearRestitution ()
Returns the current linear restitution (stiffness) of the joint. Linear restitution defines how fast the joint compensates for linear coordinate change between two bodies. When bodies are dragged apart, restitution controls the magnitude of force which is applied to both bodies so that their anchor points to become aligned again. For example:- 1 means that the joint is to return bodies in place throughout 1 physics tick.
- 0.2 means that the joint is to return bodies in place throughout 5 physics ticks.
Return value
Linear restitution in the range [0;1].float getLinearSoftness ()
Returns the current linear softness (elasticity) of the joint. When the joint is stretched, linear softness defines whether linear velocities of the bodies are averaged out. For example:- 0 means that the joint is rigid. Velocities of the first and the second body are independent.
- 1 means that the joint is elastic (jelly-like). If the first body changes its velocity, velocity of the second body is equalized with it.
Return value
Linear softness value in the range [0;1].float getMaxForce ()
Returns the maximum amount of force that can be exerted on the joint. If this limit is exceeded, the joint breaks.Return value
Maximum amount of force.float getMaxTorque ()
Returns the maximum amount of torque that can be exerted on the joint. If this limit is exceeded, the joint breaks.Return value
Maximum amount of torque.string getName ()
Returns the name of the joint.Return value
Name of the joint.int getNumIterations ()
Returns the current number of iterations used to solve joints.Return value
Number of iterations.string getTypeName ()
Returns the name of the joint type.Return value
Type name.int getType ()
Returns the type of the joint.Return value
One of the JOINT_* pre-defined variables.vec3 getWorldAnchor ()
Returns the anchor point in the world coordinates.Return value
Coordinates of the anchor point in the world space.int isBroken ()
Returns a value indicating if the joint is broken or not.Return value
Positive number if the joint is broken; otherwise, 0.int isEnabledSelf ()
Returns a value indicating is the joint is enabled.Return value
1 if the joint is enabled; otherwise, 0.int isEnabled ()
Returns a value indicating if the joint calculations are enabled.Return value
1 if the joint is enabled; otherwise, 0.int isFrozen ()
Returns a value indicating if the joint is frozen or not.Return value
Positive number if the joint is frozen; otherwise, 0.void renderVisualizer (vec4 color)
Renders the joint.You should enable the engine visualizer by the show_visualizer 1 console command.
Arguments
- vec4 color - Color, in which the joint will be rendered.
int restoreState (Stream stream)
Restores the state of a given node from a binary stream.- If a node is a parent for other nodes, states of these child nodes need to be restored manually.
- To save the state into a buffer, file or a message from a socket, make sure the stream is opened. If necessary, you can set a position for writing for buffers and files.
Arguments
- Stream stream - Stream with saved node state data.
Return value
1 if node state is successfully restored; otherwise, 0.int saveState (Stream stream)
Saves the state of a given node into a binary stream.- If a node is a parent for other nodes, states of these child nodes need to be saved manually.
- To save the state from a buffer, file or a message from a socket, make sure the stream is opened. For buffers and files, you also need to set the proper position for reading.
Arguments
- Stream stream - Stream to save node state data.
Return value
1 if node state is successfully saved; otherwise, 0.void setAnchor0 (vec3 coordinates)
Sets coordinates of the anchor point in a system of coordinates of the first connected body.Arguments
- vec3 coordinates - Coordinates of the anchor point in the body coordinate space.
void setAnchor1 (vec3 coordinates)
Sets coordinates of the anchor point in a system of coordinates of the second connected body.Arguments
- vec3 coordinates - Coordinates of the anchor point in the body coordinate space.
void setAngularRestitution (float restitution)
Sets the current angular restitution (stiffness) of the joint. Angular restitution defines how fast the joint compensates for change of the angle between two bodies. When bodies are turned relative each other, restitution controls the magnitude of force which is applied to both bodies so that their anchor points to become aligned again. For example:- 1 means that the joint is to return bodies in place throughout 1 physics tick.
- 0.2 means that the joint is to return bodies in place throughout 5 physics ticks.
Arguments
- float restitution - Angular restitution. The provided value will be clamped in the range [0;1].
void setAngularSoftness (float softness)
Sets the angular softness (elasticity) of the joint. When the joint is twisted, angular softness defines whether angular velocities of the bodies are averaged out. For example:- 0 means that the joint is rigid. Angular velocities of the first and the second body are independent.
- 1 means that the joint is elastic (jelly-like). If the first body changes its velocity, velocity of the second body is equalized with it.
Arguments
- float softness - Angular softness. The provided value will be clamped in the range [0;1].
void setBody0 (Body body)
Sets the first body connected using the joint.Arguments
- Body body - The first body connected with the joint.
void setBody1 (Body body)
Sets the second body connected using the joint.Arguments
- Body body - The second body connected with the joint.
void setBrokenCallback (Joint joint, variable function = 0, variable arg0 = 0, variable arg1 = 0)
Adds a callback function that will be run when a given joint breaks.Arguments
- Joint joint - Joint that will break.
- variable function - Name of the callback function.
- variable arg0 - Argument to the function. This is an optional parameter.
- variable arg1 - Argument to the function. This is an optional parameter.
void setBroken (int mode)
Sets a value indicating if the joint is broken or not.Arguments
- int mode - Positive number to break the joint, 0 to make it intact.
void setCollision (int mode)
Sets a value indicating if collisions between the connected bodies are enabled.Arguments
- int mode - Positive number to enable collisions between the bodies, 0 to disable them.
void setEnabled (int mode)
Enables or disables joint calculations.Arguments
- int mode - Positive number to enable the joint, 0 to disable it.
void setFrozen (int mode)
Freezes or unfreezes the joint.Arguments
- int mode - Positive number to freeze the joint, 0 to unfreeze it.
int setID (int id)
Sets the unique ID for the joint.Arguments
- int id - Unique ID.
Return value
1 if the ID is set successfully; otherwise, 0.void setLinearRestitution (float restitution)
Sets the linear restitution (stiffness) of the joint. Linear restitution defines how fast the joint compensates for linear coordinate change between two bodies. When bodies are dragged apart, restitution controls the magnitude of force which is applied to both bodies so that their anchor points to become aligned again. For example:- 1 means that the joint is to return bodies in place throughout 1 physics tick.
- 0.2 means that the joint is to return bodies in place throughout 5 physics ticks.
Arguments
- float restitution - Linear restitution. The provided value will be clamped in the range [0;1].
void setLinearSoftness (float softness)
Sets the linear softness (elasticity) of the joint. When the joint is stretched, linear softness defines whether linear velocities of the bodies are averaged out. For example:- 0 means that the joint is rigid. Linear velocities of the first and the second body are independent.
- 1 means that the joint is elastic (jelly-like). If the first body changes its velocity, velocity of the second body is equalized with it.
Arguments
- float softness - Linear softness. The provided value will be clamped in the range [0;1].
void setMaxForce (float force)
Sets the maximum amount of force that can be exerted on the joint. If this limit is exceeded, the joint breaks.Arguments
- float force - Maximum amount of force.
void setMaxTorque (float torque)
Sets the maximum amount of torque that can be exerted on the joint. If this limit is exceeded, the joint breaks.Arguments
- float torque - Maximum amount of torque.
void setName (string name)
Sets the name of the joint.Arguments
- string name - Name of the joint.
void setNumIterations (int iterations)
Sets the number of iterations used to solve joints. Note that if this value is too low, the precision of calculations will suffer.Arguments
- int iterations - Number of iterations. If a non-positive value is provided, 1 will be used instead.
void setWorldAnchor (vec3 coordinates)
Sets the anchor point in the world coordinates.Arguments
- vec3 coordinates - Coordinates of the anchor point in the world space.
void swap (Joint joint)
Swaps the joints saving the pointers.Arguments
- Joint joint - A joint to swap.
int JOINT_BALL
Description
Ball joint.int JOINT_CYLINDRICAL
Description
Cylindrical joint.int JOINT_FIXED
Description
Fixed joint.int JOINT_HINGE
Description
Hinge joint.int JOINT_PARTICLES
Description
Particles joint pins BodyCloth or BodyRope (both children of BodyParticles) to BodyRigid or BodyRagdoll.int JOINT_PATH
Description
Path joint that connects BodyRigid to BodyPath. It allows a rigid body to move along the path.int JOINT_PRISMATIC
Description
Prismatic joint.int JOINT_SUSPENSION
Description
Suspension joint.int JOINT_WHEEL
Description
Wheel joint (ray car wheels).Last update: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)