JointPath Class
The scope of applications for UnigineScript is limited to implementing materials-related logic (material expressions, scriptable materials, brush materials). Do not use UnigineScript as a language for application logic, please consider C#/C++ instead, as these APIs are the preferred ones. Availability of new Engine features in UnigineScript (beyond its scope of applications) is not guaranteed, as the current level of support assumes only fixing critical issues.
Inherits from: | 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 UnigineScript API samples located in the <UnigineSDK>/data/samples/ folder:
- physics/train_00
- joints/path_00
Example#
The following code illustrates connection of a rigid body (b0) and a path body (b1) using a path joint.
JointPath joint = class_remove(new JointPath(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 JointPath ( ) #
Constructor. Creates a path joint with an anchor at the origin of the world coordinates.static JointPath ( Body body0, 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
- Body body0 - BodyRigid to be connected with the joint.
- Body body1 - BodyPath to be connected with the joint.
static JointPath ( Body body0, Body body1, Vec3 anchor ) #
Constructor. Creates a path joint connecting two given bodies with an anchor placed at specified coordinates.Arguments
- Body body0 - BodyRigid to be connected with the joint.
- Body body1 - BodyPath to be connected with the joint.
- Vec3 anchor - Anchor coordinates.
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 ( mat3 rotation0 ) #
Sets a rotation matrix of the anchor point in a system of coordinates of the connected rigid body.Arguments
- mat3 rotation0 - Rotation matrix in the body-space coordinates.
mat3 getRotation0 ( ) #
Gets a rotation matrix of the anchor point in a system of coordinates of the connected rigid body.Return value
Returns a rotation matrix of the anchor point in a system of coordinates of the connected rigid body.void setWorldRotation ( mat3 rotation ) #
Sets a rotation matrix of the anchor point in the world coordinates.Arguments
- mat3 rotation - Rotation matrix in the world-space coordinates.
mat3 getWorldRotation ( ) #
Returns rotation matrix of the anchor point in the world coordinates.Return value
Rotation matrix in the world-space coordinates.Last update:
2021-12-13
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)