Class reference
Generic6DOFJoint3D
Inherits Joint3D
A physics joint that allows for complex movement and rotation between two 3D physics bodies.
Description
The Generic6DOFJoint3D (6 Degrees Of Freedom) joint allows for implementing custom types of joints by locking the rotation and translation of certain axes. The first 3 DOF represent the linear motion of the physics bodies and the last 3 DOF represent the angular motion of the physics bodies. Each axis can be either locked, or limited.
Properties
float angular_limit_x/damping = 1.0
float angular_limit_x/damping = 1.0The amount of rotational damping across the X axis. The lower, the longer an impulse from one side takes to travel to the other side.
bool angular_limit_x/enabled = true
bool angular_limit_x/enabled = trueIf true, rotation across the X axis is limited.
float angular_limit_x/erp = 0.5
float angular_limit_x/erp = 0.5When rotating across the X axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
float angular_limit_x/force_limit = 0.0
float angular_limit_x/force_limit = 0.0The maximum amount of force that can occur, when rotating around the X axis.
float angular_limit_x/lower_angle = 0.0
float angular_limit_x/lower_angle = 0.0The minimum rotation in negative direction to break loose and rotate around the X axis.
float angular_limit_x/restitution = 0.0
float angular_limit_x/restitution = 0.0The amount of rotational restitution across the X axis. The lower, the more restitution occurs.
float angular_limit_x/softness = 0.5
float angular_limit_x/softness = 0.5The speed of all rotations across the X axis.
float angular_limit_x/upper_angle = 0.0
float angular_limit_x/upper_angle = 0.0The minimum rotation in positive direction to break loose and rotate around the X axis.
float angular_limit_y/damping = 1.0
float angular_limit_y/damping = 1.0The amount of rotational damping across the Y axis. The lower, the more damping occurs.
bool angular_limit_y/enabled = true
bool angular_limit_y/enabled = trueIf true, rotation across the Y axis is limited.
float angular_limit_y/erp = 0.5
float angular_limit_y/erp = 0.5When rotating across the Y axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
float angular_limit_y/force_limit = 0.0
float angular_limit_y/force_limit = 0.0The maximum amount of force that can occur, when rotating around the Y axis.
float angular_limit_y/lower_angle = 0.0
float angular_limit_y/lower_angle = 0.0The minimum rotation in negative direction to break loose and rotate around the Y axis.
float angular_limit_y/restitution = 0.0
float angular_limit_y/restitution = 0.0The amount of rotational restitution across the Y axis. The lower, the more restitution occurs.
float angular_limit_y/softness = 0.5
float angular_limit_y/softness = 0.5The speed of all rotations across the Y axis.
float angular_limit_y/upper_angle = 0.0
float angular_limit_y/upper_angle = 0.0The minimum rotation in positive direction to break loose and rotate around the Y axis.
float angular_limit_z/damping = 1.0
float angular_limit_z/damping = 1.0The amount of rotational damping across the Z axis. The lower, the more damping occurs.
bool angular_limit_z/enabled = true
bool angular_limit_z/enabled = trueIf true, rotation across the Z axis is limited.
float angular_limit_z/erp = 0.5
float angular_limit_z/erp = 0.5When rotating across the Z axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
float angular_limit_z/force_limit = 0.0
float angular_limit_z/force_limit = 0.0The maximum amount of force that can occur, when rotating around the Z axis.
float angular_limit_z/lower_angle = 0.0
float angular_limit_z/lower_angle = 0.0The minimum rotation in negative direction to break loose and rotate around the Z axis.
float angular_limit_z/restitution = 0.0
float angular_limit_z/restitution = 0.0The amount of rotational restitution across the Z axis. The lower, the more restitution occurs.
float angular_limit_z/softness = 0.5
float angular_limit_z/softness = 0.5The speed of all rotations across the Z axis.
float angular_limit_z/upper_angle = 0.0
float angular_limit_z/upper_angle = 0.0The minimum rotation in positive direction to break loose and rotate around the Z axis.
bool angular_motor_x/enabled = false
bool angular_motor_x/enabled = falseIf true, a rotating motor at the X axis is enabled.
float angular_motor_x/force_limit = 300.0
float angular_motor_x/force_limit = 300.0Maximum acceleration for the motor at the X axis.
float angular_motor_x/target_velocity = 0.0
float angular_motor_x/target_velocity = 0.0Target speed for the motor at the X axis.
bool angular_motor_y/enabled = false
bool angular_motor_y/enabled = falseIf true, a rotating motor at the Y axis is enabled.
float angular_motor_y/force_limit = 300.0
float angular_motor_y/force_limit = 300.0Maximum acceleration for the motor at the Y axis.
float angular_motor_y/target_velocity = 0.0
float angular_motor_y/target_velocity = 0.0Target speed for the motor at the Y axis.
bool angular_motor_z/enabled = false
bool angular_motor_z/enabled = falseIf true, a rotating motor at the Z axis is enabled.
float angular_motor_z/force_limit = 300.0
float angular_motor_z/force_limit = 300.0Maximum acceleration for the motor at the Z axis.
float angular_motor_z/target_velocity = 0.0
float angular_motor_z/target_velocity = 0.0Target speed for the motor at the Z axis.
float angular_spring_x/damping = 0.0
float angular_spring_x/damping = 0.0bool angular_spring_x/enabled = false
bool angular_spring_x/enabled = falsefloat angular_spring_x/equilibrium_point = 0.0
float angular_spring_x/equilibrium_point = 0.0float angular_spring_x/stiffness = 0.0
float angular_spring_x/stiffness = 0.0float angular_spring_y/damping = 0.0
float angular_spring_y/damping = 0.0bool angular_spring_y/enabled = false
bool angular_spring_y/enabled = falsefloat angular_spring_y/equilibrium_point = 0.0
float angular_spring_y/equilibrium_point = 0.0float angular_spring_y/stiffness = 0.0
float angular_spring_y/stiffness = 0.0float angular_spring_z/damping = 0.0
float angular_spring_z/damping = 0.0bool angular_spring_z/enabled = false
bool angular_spring_z/enabled = falsefloat angular_spring_z/equilibrium_point = 0.0
float angular_spring_z/equilibrium_point = 0.0float angular_spring_z/stiffness = 0.0
float angular_spring_z/stiffness = 0.0float linear_limit_x/damping = 1.0
float linear_limit_x/damping = 1.0The amount of damping that happens at the X motion.
bool linear_limit_x/enabled = true
bool linear_limit_x/enabled = trueIf true, the linear motion across the X axis is limited.
float linear_limit_x/lower_distance = 0.0
float linear_limit_x/lower_distance = 0.0The minimum difference between the pivot points' X axis.
float linear_limit_x/restitution = 0.5
float linear_limit_x/restitution = 0.5The amount of restitution on the X axis movement. The lower, the more momentum gets lost.
float linear_limit_x/softness = 0.7
float linear_limit_x/softness = 0.7A factor applied to the movement across the X axis. The lower, the slower the movement.
float linear_limit_x/upper_distance = 0.0
float linear_limit_x/upper_distance = 0.0The maximum difference between the pivot points' X axis.
float linear_limit_y/damping = 1.0
float linear_limit_y/damping = 1.0The amount of damping that happens at the Y motion.
bool linear_limit_y/enabled = true
bool linear_limit_y/enabled = trueIf true, the linear motion across the Y axis is limited.
float linear_limit_y/lower_distance = 0.0
float linear_limit_y/lower_distance = 0.0The minimum difference between the pivot points' Y axis.
float linear_limit_y/restitution = 0.5
float linear_limit_y/restitution = 0.5The amount of restitution on the Y axis movement. The lower, the more momentum gets lost.
float linear_limit_y/softness = 0.7
float linear_limit_y/softness = 0.7A factor applied to the movement across the Y axis. The lower, the slower the movement.
float linear_limit_y/upper_distance = 0.0
float linear_limit_y/upper_distance = 0.0The maximum difference between the pivot points' Y axis.
float linear_limit_z/damping = 1.0
float linear_limit_z/damping = 1.0The amount of damping that happens at the Z motion.
bool linear_limit_z/enabled = true
bool linear_limit_z/enabled = trueIf true, the linear motion across the Z axis is limited.
float linear_limit_z/lower_distance = 0.0
float linear_limit_z/lower_distance = 0.0The minimum difference between the pivot points' Z axis.
float linear_limit_z/restitution = 0.5
float linear_limit_z/restitution = 0.5The amount of restitution on the Z axis movement. The lower, the more momentum gets lost.
float linear_limit_z/softness = 0.7
float linear_limit_z/softness = 0.7A factor applied to the movement across the Z axis. The lower, the slower the movement.
float linear_limit_z/upper_distance = 0.0
float linear_limit_z/upper_distance = 0.0The maximum difference between the pivot points' Z axis.
bool linear_motor_x/enabled = false
bool linear_motor_x/enabled = falseIf true, then there is a linear motor on the X axis. It will attempt to reach the target velocity while staying within the force limits.
float linear_motor_x/force_limit = 0.0
float linear_motor_x/force_limit = 0.0The maximum force the linear motor can apply on the X axis while trying to reach the target velocity.
float linear_motor_x/target_velocity = 0.0
float linear_motor_x/target_velocity = 0.0The speed that the linear motor will attempt to reach on the X axis.
bool linear_motor_y/enabled = false
bool linear_motor_y/enabled = falseIf true, then there is a linear motor on the Y axis. It will attempt to reach the target velocity while staying within the force limits.
float linear_motor_y/force_limit = 0.0
float linear_motor_y/force_limit = 0.0The maximum force the linear motor can apply on the Y axis while trying to reach the target velocity.
float linear_motor_y/target_velocity = 0.0
float linear_motor_y/target_velocity = 0.0The speed that the linear motor will attempt to reach on the Y axis.
bool linear_motor_z/enabled = false
bool linear_motor_z/enabled = falseIf true, then there is a linear motor on the Z axis. It will attempt to reach the target velocity while staying within the force limits.
float linear_motor_z/force_limit = 0.0
float linear_motor_z/force_limit = 0.0The maximum force the linear motor can apply on the Z axis while trying to reach the target velocity.
float linear_motor_z/target_velocity = 0.0
float linear_motor_z/target_velocity = 0.0The speed that the linear motor will attempt to reach on the Z axis.
float linear_spring_x/damping = 0.01
float linear_spring_x/damping = 0.01bool linear_spring_x/enabled = false
bool linear_spring_x/enabled = falsefloat linear_spring_x/equilibrium_point = 0.0
float linear_spring_x/equilibrium_point = 0.0float linear_spring_x/stiffness = 0.01
float linear_spring_x/stiffness = 0.01float linear_spring_y/damping = 0.01
float linear_spring_y/damping = 0.01bool linear_spring_y/enabled = false
bool linear_spring_y/enabled = falsefloat linear_spring_y/equilibrium_point = 0.0
float linear_spring_y/equilibrium_point = 0.0float linear_spring_y/stiffness = 0.01
float linear_spring_y/stiffness = 0.01float linear_spring_z/damping = 0.01
float linear_spring_z/damping = 0.01bool linear_spring_z/enabled = false
bool linear_spring_z/enabled = falsefloat linear_spring_z/equilibrium_point = 0.0
float linear_spring_z/equilibrium_point = 0.0float linear_spring_z/stiffness = 0.01
float linear_spring_z/stiffness = 0.01Methods
bool get_flag_x(int flag) const
bool get_flag_x(int flag) constbool get_flag_y(int flag) const
bool get_flag_y(int flag) constbool get_flag_z(int flag) const
bool get_flag_z(int flag) constfloat get_param_x(int param) const
float get_param_x(int param) constfloat get_param_y(int param) const
float get_param_y(int param) constfloat get_param_z(int param) const
float get_param_z(int param) constvoid set_flag_x(int flag, bool value)
int flag, bool value)void set_flag_y(int flag, bool value)
int flag, bool value)void set_flag_z(int flag, bool value)
int flag, bool value)void set_param_x(int param, float value)
int param, float value)void set_param_y(int param, float value)
int param, float value)void set_param_z(int param, float value)
int param, float value)Constants
PARAM_LINEAR_LOWER_LIMIT = 0
The minimum difference between the pivot points' axes.
PARAM_LINEAR_UPPER_LIMIT = 1
The maximum difference between the pivot points' axes.
PARAM_LINEAR_LIMIT_SOFTNESS = 2
A factor applied to the movement across the axes. The lower, the slower the movement.
PARAM_LINEAR_RESTITUTION = 3
The amount of restitution on the axes' movement. The lower, the more momentum gets lost.
PARAM_LINEAR_DAMPING = 4
The amount of damping that happens at the linear motion across the axes.
PARAM_LINEAR_MOTOR_TARGET_VELOCITY = 5
The velocity the linear motor will try to reach.
PARAM_LINEAR_MOTOR_FORCE_LIMIT = 6
The maximum force the linear motor will apply while trying to reach the velocity target.
PARAM_LINEAR_SPRING_STIFFNESS = 7
PARAM_LINEAR_SPRING_DAMPING = 8
PARAM_LINEAR_SPRING_EQUILIBRIUM_POINT = 9
PARAM_ANGULAR_LOWER_LIMIT = 10
The minimum rotation in negative direction to break loose and rotate around the axes.
PARAM_ANGULAR_UPPER_LIMIT = 11
The minimum rotation in positive direction to break loose and rotate around the axes.
PARAM_ANGULAR_LIMIT_SOFTNESS = 12
The speed of all rotations across the axes.
PARAM_ANGULAR_DAMPING = 13
The amount of rotational damping across the axes. The lower, the more damping occurs.
PARAM_ANGULAR_RESTITUTION = 14
The amount of rotational restitution across the axes. The lower, the more restitution occurs.
PARAM_ANGULAR_FORCE_LIMIT = 15
The maximum amount of force that can occur, when rotating around the axes.
PARAM_ANGULAR_ERP = 16
When rotating across the axes, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
PARAM_ANGULAR_MOTOR_TARGET_VELOCITY = 17
Target speed for the motor at the axes.
PARAM_ANGULAR_MOTOR_FORCE_LIMIT = 18
Maximum acceleration for the motor at the axes.
PARAM_ANGULAR_SPRING_STIFFNESS = 19
PARAM_ANGULAR_SPRING_DAMPING = 20
PARAM_ANGULAR_SPRING_EQUILIBRIUM_POINT = 21
PARAM_MAX = 22
Represents the size of the Param enum.
FLAG_ENABLE_LINEAR_LIMIT = 0
If enabled, linear motion is possible within the given limits.
FLAG_ENABLE_ANGULAR_LIMIT = 1
If enabled, rotational motion is possible within the given limits.
FLAG_ENABLE_LINEAR_SPRING = 3
FLAG_ENABLE_ANGULAR_SPRING = 2
FLAG_ENABLE_MOTOR = 4
If enabled, there is a rotational motor across these axes.
FLAG_ENABLE_LINEAR_MOTOR = 5
If enabled, there is a linear motor across these axes.
FLAG_MAX = 6
Represents the size of the Flag enum.