diff --git a/doc/classes/PhysicsServer3D.xml b/doc/classes/PhysicsServer3D.xml index 4735091f200..e40d73862b9 100644 --- a/doc/classes/PhysicsServer3D.xml +++ b/doc/classes/PhysicsServer3D.xml @@ -740,7 +740,7 @@ - Gets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants). + Returns the value of a generic 6DOF joint flag. See [enum G6DOFJointAxisFlag] for the list of available flags. @@ -749,7 +749,7 @@ - Gets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] constants). + Returns the value of a generic 6DOF joint parameter. See [enum G6DOFJointAxisParam] for the list of available parameters. @@ -759,7 +759,7 @@ - Sets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants). + Sets the value of a given generic 6DOF joint flag. See [enum G6DOFJointAxisFlag] for the list of available flags. @@ -769,7 +769,7 @@ - Sets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] constants). + Sets the value of a given generic 6DOF joint parameter. See [enum G6DOFJointAxisParam] for the list of available parameters. @@ -876,6 +876,7 @@ + Make the joint a generic six degrees of freedom (6DOF) joint. Use [method generic_6dof_joint_set_flag] and [method generic_6dof_joint_set_param] to set the joint's flags and parameters respectively. @@ -1497,6 +1498,12 @@ The maximum force that the linear motor can apply while trying to reach the target velocity. + + + + + + The minimum rotation in negative direction to break loose and rotate around the axes. @@ -1524,18 +1531,34 @@ Maximum acceleration for the motor at the axes. + + + + + + + + Represents the size of the [enum G6DOFJointAxisParam] enum. + If set, linear motion is possible within the given limits. If set, rotational motion is possible. + + + + If set, there is a rotational motor across these axes. If set, there is a linear motor on this axis that targets a specific velocity. + + Represents the size of the [enum G6DOFJointAxisFlag] enum. + The [Shape3D] is a [WorldBoundaryShape3D]. diff --git a/servers/physics_server_3d.cpp b/servers/physics_server_3d.cpp index 15d43ff5dd0..f56ef11c14f 100644 --- a/servers/physics_server_3d.cpp +++ b/servers/physics_server_3d.cpp @@ -985,6 +985,9 @@ void PhysicsServer3D::_bind_methods() { BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_DAMPING); BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY); BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_SPRING_STIFFNESS); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_SPRING_DAMPING); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT); BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_LOWER_LIMIT); BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_UPPER_LIMIT); BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS); @@ -994,11 +997,18 @@ void PhysicsServer3D::_bind_methods() { BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_ERP); BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY); BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_SPRING_DAMPING); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_MAX); BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT); BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_ANGULAR_SPRING); + BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_LINEAR_SPRING); BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_MOTOR); BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR); + BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_MAX); ClassDB::bind_method(D_METHOD("joint_get_type", "joint"), &PhysicsServer3D::joint_get_type);