Unigine::JointPath Class
Header: | #include <UniginePhysics.h> |
Inherits: | Joint |
A path joint is used with BodyPath: it attaches an arbitrary BodyRigid to move along its path.
The path is a spline along which an object can be moved.
See Also#
- A set of samples located in the data/samples/ directory, namely:
- physics/train_00.cpp
- joints/path_00.cpp
Example#
The following code illustrates connection of a rigid body (b0) and a path body (b1) using a path joint.
include <UniginePhysics.h>
/* .. */
JointPathPtr joint = JointPath::create(b0, b1);
// setting linear damping, velocity and force limits
joint->setLinearDamping(200.0f);
joint->setLinearVelocity(-100.0f);
joint->setLinearForce(1000.0f);
// setting body orientation regarding the path
joint->setRotation0(rotateZ(90.0f));
// setting number of iterations
joint->setNumIterations(4);
JointPath Class
Members
static JointPathPtr create ( )
Constructor. Creates a path joint with an anchor at the origin of the world coordinates.static JointPathPtr create ( const Ptr<Body> & body0, const Ptr<Body> & body1 )
Constructor. Creates a path joint connecting two given bodies. An anchor is placed in the center of the rigid body attached the path body.Arguments
- const Ptr<Body> & body0 - BodyRigid to be connected with the joint.
- const Ptr<Body> & body1 - BodyPath to be connected with the joint.
static JointPathPtr create ( const Ptr<Body> & body0, const Ptr<Body> & body1, const Math::Vec3 & anchor )
Constructor. Creates a path joint connecting two given bodies with an anchor placed at specified coordinates.Arguments
- const Ptr<Body> & body0 - BodyRigid to be connected with the joint.
- const Ptr<Body> & body1 - BodyPath to be connected with the joint.
- const Math::Vec3 & anchor - Anchor coordinates.
Ptr<JointPath> cast( const Ptr<Joint> & joint )
Casts a JointPath out of the Joint instance.Arguments
- const Ptr<Joint> & joint - Joint instance.
Return value
JointPath.float getCurrentLinearVelocity( )
Returns the current linear velocity of the attached motor.Return value
Current linear velocity in units per second.void setLinearDamping( float damping )
Sets damping factor of linear velocities of bodies connected by the joint.Arguments
- float damping - Linear damping to be set. If a negative value is provided, 0 will be used instead.
float getLinearDamping( )
Returns the current damping factor for linear velocities of bodies connected by the joint.Return value
Linear damping.void setLinearForce( float force )
Sets a maximum force of the attached motor. 0 means that the motor is not attached.Arguments
- float force - Maximum force to be set. If a negative value is provided, 0 will be used instead. 0 detaches the motor.
float getLinearForce( )
Returns the maximum force of the attached motor.Return value
Maximum force.void setLinearVelocity( float velocity )
Sets a target linear velocity of the attached motor.Arguments
- float velocity - Target velocity in units per second.
float getLinearVelocity( )
Returns the current linear velocity of the attached motor.Return value
Target velocity in units per second.void setRotation0( const Math::mat3 & rotation0 )
Sets a rotation matrix of the anchor point in a system of coordinates of the connected rigid body.Arguments
- const Math::mat3 & rotation0 - Rotation matrix in the body-space coordinates.
Math::mat3 getRotation0( )
void setWorldRotation( const Math::mat3 & rotation )
Sets a rotation matrix of the anchor point in the world coordinates.Arguments
- const Math::mat3 & rotation - Rotation matrix in the world-space coordinates.
Math::mat3 getWorldRotation( )
Returns rotation matrix of the anchor point in the world coordinates.Return value
Rotation matrix in the world-space coordinates.Last update:
2018-12-27
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)