Added documentation for 3D Joints, the 2D Pin Joint, and the Physicsservers, also a minor bugfix in the 3D Pinjoint.

This commit is contained in:
Grosskopf 2017-10-14 12:19:03 +02:00
parent abe47eaa63
commit f8c7d32987
12 changed files with 521 additions and 94 deletions

View file

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ConeTwistJoint" inherits="Joint" category="Core" version="3.0.alpha.custom_build">
<brief_description>
A twist joint between two 3D bodies
</brief_description>
<description>
The joint can rotate the bodies across an axis defined by the local x-axes of the [Joint].
The twist axis is initiated as the x-axis of the [Joint].
Once the Bodies swing, the twist axis is calculated as the middle of the x-axes of the Joint in the local space of the two Bodies.
</description>
<tutorials>
</tutorials>
@ -30,28 +34,49 @@
</methods>
<members>
<member name="bias" type="float" setter="set_param" getter="get_param">
The speed with which the swing or twist will take place.
The higher, the faster.
</member>
<member name="relaxation" type="float" setter="set_param" getter="get_param">
Defines, how fast the swing- and twist-speed-difference on both sides gets synced.
</member>
<member name="softness" type="float" setter="set_param" getter="get_param">
The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint.
</member>
<member name="swing_span" type="float" setter="_set_swing_span" getter="_get_swing_span">
Swing is rotation from side to side, around the axis perpendicular to the twist axis.
The swing span defines, how much rotation will not get corrected allong the swing axis.
Could be defined as looseness in the [ConeTwistJoint].
If below 0.05, this behaviour is locked. Default value: [code]PI/4[/code].
</member>
<member name="twist_span" type="float" setter="_set_twist_span" getter="_get_twist_span">
Twist is the rotation around the twist axis, this value defined how far the joint can twist.
Twist is locked if below 0.05.
</member>
</members>
<constants>
<constant name="PARAM_SWING_SPAN" value="0">
Swing is rotation from side to side, around the axis perpendicular to the twist axis.
The swing span defines, how much rotation will not get corrected allong the swing axis.
Could be defined as looseness in the [ConeTwistJoint].
If below 0.05, this behaviour is locked. Default value: [code]PI/4[/code].
</constant>
<constant name="PARAM_TWIST_SPAN" value="1">
Twist is the rotation around the twist axis, this value defined how far the joint can twist.
Twist is locked if below 0.05.
</constant>
<constant name="PARAM_BIAS" value="2">
The speed with which the swing or twist will take place.
The higher, the faster.
</constant>
<constant name="PARAM_SOFTNESS" value="3">
The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint.
</constant>
<constant name="PARAM_RELAXATION" value="4">
Defines, how fast the swing- and twist-speed-difference on both sides gets synced.
</constant>
<constant name="PARAM_MAX" value="5">
End flag of PARAM_* constants, used internally.
</constant>
</constants>
</class>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Generic6DOFJoint" inherits="Joint" category="Core" version="3.0.alpha.custom_build">
<brief_description>
The generic 6 degrees of freedom joint can implement a variety of joint-types by locking certain axes' rotation or translation.
</brief_description>
<description>
The first 3 dof axes are linear axes, which represent translation of Bodies, and the latter 3 dof axes represent the angular motion. Each axis can be either locked, or limited.
</description>
<tutorials>
</tutorials>
@ -120,146 +122,217 @@
</methods>
<members>
<member name="angular_limit_x/damping" type="float" setter="set_param_x" getter="get_param_x">
The amount of rotational damping across the x-axis.
The lower, the longer an impulse from one side takes to travel to the other side.
</member>
<member name="angular_limit_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
If [code]true[/code] rotation across the x-axis is enabled.
</member>
<member name="angular_limit_x/erp" type="float" setter="set_param_x" getter="get_param_x">
When rotating across x-axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
</member>
<member name="angular_limit_x/force_limit" type="float" setter="set_param_x" getter="get_param_x">
The maximum amount of force that can occur, when rotating arround x-axis.
</member>
<member name="angular_limit_x/lower_angle" type="float" setter="_set_angular_lo_limit_x" getter="_get_angular_lo_limit_x">
The minimum rotation in negative direction to break loose and rotate arround the x-axis.
</member>
<member name="angular_limit_x/restitution" type="float" setter="set_param_x" getter="get_param_x">
The amount of rotational restitution across the x-axis. The lower, the more restitution occurs.
</member>
<member name="angular_limit_x/softness" type="float" setter="set_param_x" getter="get_param_x">
The speed of all rotations across the x-axis.
</member>
<member name="angular_limit_x/upper_angle" type="float" setter="_set_angular_hi_limit_x" getter="_get_angular_hi_limit_x">
The minimum rotation in positive direction to break loose and rotate arround the x-axis.
</member>
<member name="angular_limit_y/damping" type="float" setter="set_param_y" getter="get_param_y">
The amount of rotational damping across the y-axis. The lower, the more dampening occurs.
</member>
<member name="angular_limit_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
If [code]true[/code] rotation across the y-axis is enabled.
</member>
<member name="angular_limit_y/erp" type="float" setter="set_param_y" getter="get_param_y">
When rotating across y-axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
</member>
<member name="angular_limit_y/force_limit" type="float" setter="set_param_y" getter="get_param_y">
The maximum amount of force that can occur, when rotating arround y-axis.
</member>
<member name="angular_limit_y/lower_angle" type="float" setter="_set_angular_lo_limit_y" getter="_get_angular_lo_limit_y">
The minimum rotation in negative direction to break loose and rotate arround the y-axis.
</member>
<member name="angular_limit_y/restitution" type="float" setter="set_param_y" getter="get_param_y">
The amount of rotational restitution across the y-axis. The lower, the more restitution occurs.
</member>
<member name="angular_limit_y/softness" type="float" setter="set_param_y" getter="get_param_y">
The speed of all rotations across the y-axis.
</member>
<member name="angular_limit_y/upper_angle" type="float" setter="_set_angular_hi_limit_y" getter="_get_angular_hi_limit_y">
The minimum rotation in positive direction to break loose and rotate arround the y-axis.
</member>
<member name="angular_limit_z/damping" type="float" setter="set_param_z" getter="get_param_z">
The amount of rotational damping across the z-axis. The lower, the more dampening occurs.
</member>
<member name="angular_limit_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
If [code]true[/code] rotation across the z-axis is enabled.
</member>
<member name="angular_limit_z/erp" type="float" setter="set_param_z" getter="get_param_z">
When rotating across z-axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
</member>
<member name="angular_limit_z/force_limit" type="float" setter="set_param_z" getter="get_param_z">
The maximum amount of force that can occur, when rotating arround z-axis.
</member>
<member name="angular_limit_z/lower_angle" type="float" setter="_set_angular_lo_limit_z" getter="_get_angular_lo_limit_z">
The minimum rotation in negative direction to break loose and rotate arround the z-axis.
</member>
<member name="angular_limit_z/restitution" type="float" setter="set_param_z" getter="get_param_z">
The amount of rotational restitution across the z-axis. The lower, the more restitution occurs.
</member>
<member name="angular_limit_z/softness" type="float" setter="set_param_z" getter="get_param_z">
The speed of all rotations across the z-axis.
</member>
<member name="angular_limit_z/upper_angle" type="float" setter="_set_angular_hi_limit_z" getter="_get_angular_hi_limit_z">
The minimum rotation in positive direction to break loose and rotate arround the z-axis.
</member>
<member name="angular_motor_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
If [code]true[/code] a rotating motor at the x-axis is enabled.
</member>
<member name="angular_motor_x/force_limit" type="float" setter="set_param_x" getter="get_param_x">
Maximum acceleration for the motor at the x-axis.
</member>
<member name="angular_motor_x/target_velocity" type="float" setter="set_param_x" getter="get_param_x">
Target speed for the motor at the x-axis.
</member>
<member name="angular_motor_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
If [code]true[/code] a rotating motor at the y-axis is enabled.
</member>
<member name="angular_motor_y/force_limit" type="float" setter="set_param_y" getter="get_param_y">
Maximum acceleration for the motor at the y-axis.
</member>
<member name="angular_motor_y/target_velocity" type="float" setter="set_param_y" getter="get_param_y">
Target speed for the motor at the y-axis.
</member>
<member name="angular_motor_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
If [code]true[/code] a rotating motor at the z-axis is enabled.
</member>
<member name="angular_motor_z/force_limit" type="float" setter="set_param_z" getter="get_param_z">
Maximum acceleration for the motor at the z-axis.
</member>
<member name="angular_motor_z/target_velocity" type="float" setter="set_param_z" getter="get_param_z">
Target speed for the motor at the z-axis.
</member>
<member name="linear_limit_x/damping" type="float" setter="set_param_x" getter="get_param_x">
The amount of damping that happens at the x-motion.
</member>
<member name="linear_limit_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
If [code]true[/code] the linear motion across the x-axis is enabled.
</member>
<member name="linear_limit_x/lower_distance" type="float" setter="set_param_x" getter="get_param_x">
The minimum difference between the pivot points' x-axis.
</member>
<member name="linear_limit_x/restitution" type="float" setter="set_param_x" getter="get_param_x">
The amount of restitution on the x-axis movement The lower, the more momentum gets lost.
</member>
<member name="linear_limit_x/softness" type="float" setter="set_param_x" getter="get_param_x">
A factor applied to the movement across the x-axis The lower, the slower the movement.
</member>
<member name="linear_limit_x/upper_distance" type="float" setter="set_param_x" getter="get_param_x">
The maximum difference between the pivot points' x-axis.
</member>
<member name="linear_limit_y/damping" type="float" setter="set_param_y" getter="get_param_y">
The amount of damping that happens at the y-motion.
</member>
<member name="linear_limit_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
If [code]true[/code] the linear motion across the y-axis is enabled.
</member>
<member name="linear_limit_y/lower_distance" type="float" setter="set_param_y" getter="get_param_y">
The minimum difference between the pivot points' y-axis.
</member>
<member name="linear_limit_y/restitution" type="float" setter="set_param_y" getter="get_param_y">
The amount of restitution on the y-axis movement The lower, the more momentum gets lost.
</member>
<member name="linear_limit_y/softness" type="float" setter="set_param_y" getter="get_param_y">
A factor applied to the movement across the y-axis The lower, the slower the movement.
</member>
<member name="linear_limit_y/upper_distance" type="float" setter="set_param_y" getter="get_param_y">
The maximum difference between the pivot points' y-axis.
</member>
<member name="linear_limit_z/damping" type="float" setter="set_param_z" getter="get_param_z">
The amount of damping that happens at the z-motion.
</member>
<member name="linear_limit_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
If [code]true[/code] the linear motion across the z-axis is enabled.
</member>
<member name="linear_limit_z/lower_distance" type="float" setter="set_param_z" getter="get_param_z">
The minimum difference between the pivot points' z-axis.
</member>
<member name="linear_limit_z/restitution" type="float" setter="set_param_z" getter="get_param_z">
The amount of restitution on the z-axis movement The lower, the more momentum gets lost.
</member>
<member name="linear_limit_z/softness" type="float" setter="set_param_z" getter="get_param_z">
A factor applied to the movement across the z-axis The lower, the slower the movement.
</member>
<member name="linear_limit_z/upper_distance" type="float" setter="set_param_z" getter="get_param_z">
The maximum difference between the pivot points' z-axis.
</member>
</members>
<constants>
<constant name="PARAM_LINEAR_LOWER_LIMIT" value="0">
The minimum difference between the pivot points' axes.
</constant>
<constant name="PARAM_LINEAR_UPPER_LIMIT" value="1">
The maximum difference between the pivot points' axes.
</constant>
<constant name="PARAM_LINEAR_LIMIT_SOFTNESS" value="2">
A factor applied to the movement across the axes The lower, the slower the movement.
</constant>
<constant name="PARAM_LINEAR_RESTITUTION" value="3">
The amount of restitution on the axes movement The lower, the more momentum gets lost.
</constant>
<constant name="PARAM_LINEAR_DAMPING" value="4">
The amount of damping that happens at the linear motion across the axes.
</constant>
<constant name="PARAM_ANGULAR_LOWER_LIMIT" value="5">
The minimum rotation in negative direction to break loose and rotate arround the axes.
</constant>
<constant name="PARAM_ANGULAR_UPPER_LIMIT" value="6">
The minimum rotation in positive direction to break loose and rotate arround the axes.
</constant>
<constant name="PARAM_ANGULAR_LIMIT_SOFTNESS" value="7">
The speed of all rotations across the axes.
</constant>
<constant name="PARAM_ANGULAR_DAMPING" value="8">
The amount of rotational damping across the axes. The lower, the more dampening occurs.
</constant>
<constant name="PARAM_ANGULAR_RESTITUTION" value="9">
The amount of rotational restitution across the axes. The lower, the more restitution occurs.
</constant>
<constant name="PARAM_ANGULAR_FORCE_LIMIT" value="10">
The maximum amount of force that can occur, when rotating arround the axes.
</constant>
<constant name="PARAM_ANGULAR_ERP" value="11">
When rotating across the axes, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
</constant>
<constant name="PARAM_ANGULAR_MOTOR_TARGET_VELOCITY" value="12">
Target speed for the motor at the axes.
</constant>
<constant name="PARAM_ANGULAR_MOTOR_FORCE_LIMIT" value="13">
Maximum acceleration for the motor at the axes.
</constant>
<constant name="PARAM_MAX" value="14">
End flag of PARAM_* constants, used internally.
</constant>
<constant name="FLAG_ENABLE_LINEAR_LIMIT" value="0">
If [code]set[/code] there is linear motion possible within the given limits.
</constant>
<constant name="FLAG_ENABLE_ANGULAR_LIMIT" value="1">
If [code]set[/code] there is rotational motion possible.
</constant>
<constant name="FLAG_ENABLE_MOTOR" value="2">
If [code]set[/code] there is a rotational motor across these axes.
</constant>
<constant name="FLAG_MAX" value="3">
End flag of FLAG_* constants, used internally.
</constant>
</constants>
</class>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="HingeJoint" inherits="Joint" category="Core" version="3.0.alpha.custom_build">
<brief_description>
A hinge between two 3D bodies.
</brief_description>
<description>
Normaly uses the z-axis of body A as the hinge axis, another axis can be specified when adding it manually though.
</description>
<tutorials>
</tutorials>
@ -48,50 +50,70 @@
</methods>
<members>
<member name="angular_limit/bias" type="float" setter="set_param" getter="get_param">
The speed with which the rotation across the axis perpendicular to the hinge gets corrected.
</member>
<member name="angular_limit/enable" type="bool" setter="set_flag" getter="get_flag">
If [code]true[/code] the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.
</member>
<member name="angular_limit/lower" type="float" setter="_set_lower_limit" getter="_get_lower_limit">
The minimum rotation. only active if [member angular_limit/enable] is [code]true[/code].
</member>
<member name="angular_limit/relaxation" type="float" setter="set_param" getter="get_param">
The lower this value, the more the rotation gets slowed down.
</member>
<member name="angular_limit/softness" type="float" setter="set_param" getter="get_param">
</member>
<member name="angular_limit/upper" type="float" setter="_set_upper_limit" getter="_get_upper_limit">
The maximum rotation. only active if [member angular_limit/enable] is [code]true[/code].
</member>
<member name="motor/enable" type="bool" setter="set_flag" getter="get_flag">
When activated, a motor turns the hinge.
</member>
<member name="motor/max_impulse" type="float" setter="set_param" getter="get_param">
Maximum acceleration for the motor.
</member>
<member name="motor/target_velocity" type="float" setter="set_param" getter="get_param">
Target speed for the motor.
</member>
<member name="params/bias" type="float" setter="set_param" getter="get_param">
The speed with wich the two bodies get pulled together when they move in different directions.
</member>
</members>
<constants>
<constant name="PARAM_BIAS" value="0">
The speed with wich the two bodies get pulled together when they move in different directions.
</constant>
<constant name="PARAM_LIMIT_UPPER" value="1">
The maximum rotation. only active if [member angular_limit/enable] is [code]true[/code].
</constant>
<constant name="PARAM_LIMIT_LOWER" value="2">
The minimum rotation. only active if [member angular_limit/enable] is [code]true[/code].
</constant>
<constant name="PARAM_LIMIT_BIAS" value="3">
The speed with which the rotation across the axis perpendicular to the hinge gets corrected.
</constant>
<constant name="PARAM_LIMIT_SOFTNESS" value="4">
</constant>
<constant name="PARAM_LIMIT_RELAXATION" value="5">
The lower this value, the more the rotation gets slowed down.
</constant>
<constant name="PARAM_MOTOR_TARGET_VELOCITY" value="6">
Target speed for the motor.
</constant>
<constant name="PARAM_MOTOR_MAX_IMPULSE" value="7">
Maximum acceleration for the motor.
</constant>
<constant name="PARAM_MAX" value="8">
End flag of PARAM_* constants, used internally.
</constant>
<constant name="FLAG_USE_LIMIT" value="0">
If [code]true[/code] the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.
</constant>
<constant name="FLAG_ENABLE_MOTOR" value="1">
When activated, a motor turns the hinge.
</constant>
<constant name="FLAG_MAX" value="2">
End flag of FLAG_* constants, used internally.
</constant>
</constants>
</class>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Joint" inherits="Spatial" category="Core" version="3.0.alpha.custom_build">
<brief_description>
Base class for all 3D joints
</brief_description>
<description>
All 3D joints link two nodes, has a priority, and can decide if the two bodies of the nodes should be able to collide with each other
</description>
<tutorials>
</tutorials>
@ -68,12 +70,16 @@
</methods>
<members>
<member name="collision/exclude_nodes" type="bool" setter="set_exclude_nodes_from_collision" getter="get_exclude_nodes_from_collision">
If [code]true[/code] the two bodies of the nodes are not able to collide with each other.
</member>
<member name="nodes/node_a" type="NodePath" setter="set_node_a" getter="get_node_a">
The [Node], the first side of the Joint attaches to.
</member>
<member name="nodes/node_b" type="NodePath" setter="set_node_b" getter="get_node_b">
The [Node], the second side of the Joint attaches to.
</member>
<member name="solver/priority" type="int" setter="set_solver_priority" getter="get_solver_priority">
The order in wich the solver is executed compared to the other [Joints], the lower, the earlier.
</member>
</members>
<constants>

View file

@ -21,7 +21,7 @@
<argument index="2" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
</argument>
<description>
Add a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
</description>
</method>
<method name="area_attach_object_instance_id">
@ -32,7 +32,7 @@
<argument index="1" name="id" type="int">
</argument>
<description>
Assign the area to a descendant of [Object], so it can exist in the node tree.
Assigns the area to a descendant of [Object], so it can exist in the node tree.
</description>
</method>
<method name="area_clear_shapes">
@ -41,14 +41,14 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
Remove all shapes from an area. It does not delete the shapes, so they can be reassigned later.
Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later.
</description>
</method>
<method name="area_create">
<return type="RID">
</return>
<description>
Create an [Area2D].
Creates an [Area2D].
</description>
</method>
<method name="area_get_object_instance_id" qualifiers="const">
@ -57,7 +57,7 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
Get the instance ID of the object the area is assigned to.
Gets the instance ID of the object the area is assigned to.
</description>
</method>
<method name="area_get_param" qualifiers="const">
@ -68,7 +68,7 @@
<argument index="1" name="param" type="int" enum="Physics2DServer.AreaParameter">
</argument>
<description>
Return an area parameter value.
Returns an area parameter value. A list of available parameters is on the AREA_PARAM_* constants.
</description>
</method>
<method name="area_get_shape" qualifiers="const">
@ -79,7 +79,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Return the [RID] of the nth shape of an area.
Returns the [RID] of the nth shape of an area.
</description>
</method>
<method name="area_get_shape_count" qualifiers="const">
@ -88,7 +88,7 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
Return the number of shapes assigned to an area.
Returns the number of shapes assigned to an area.
</description>
</method>
<method name="area_get_shape_transform" qualifiers="const">
@ -99,7 +99,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Return the transform matrix of a shape within an area.
Returns the transform matrix of a shape within an area.
</description>
</method>
<method name="area_get_space" qualifiers="const">
@ -108,7 +108,7 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
Return the space assigned to the area.
Returns the space assigned to the area.
</description>
</method>
<method name="area_get_space_override_mode" qualifiers="const">
@ -117,7 +117,7 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
Return the space override mode for the area.
Returns the space override mode for the area.
</description>
</method>
<method name="area_get_transform" qualifiers="const">
@ -126,7 +126,7 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
Return the transform matrix for an area.
Returns the transform matrix for an area.
</description>
</method>
<method name="area_remove_shape">
@ -137,7 +137,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Remove a shape from an area. It does not delete the shape, so it can be reassigned later.
Removes a shape from an area. It does not delete the shape, so it can be reassigned later.
</description>
</method>
<method name="area_set_collision_layer">
@ -148,7 +148,7 @@
<argument index="1" name="layer" type="int">
</argument>
<description>
Assign the area to one or many physics layers.
Assigns the area to one or many physics layers.
</description>
</method>
<method name="area_set_collision_mask">
@ -159,7 +159,7 @@
<argument index="1" name="mask" type="int">
</argument>
<description>
Set which physics layers the area will monitor.
Sets which physics layers the area will monitor.
</description>
</method>
<method name="area_set_monitor_callback">
@ -172,7 +172,7 @@
<argument index="2" name="method" type="String">
</argument>
<description>
Set the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:
Sets the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:
1: AREA_BODY_ADDED or AREA_BODY_REMOVED, depending on whether the object entered or exited the area.
2: [RID] of the object that entered/exited the area.
3: Instance ID of the object that entered/exited the area.
@ -190,7 +190,7 @@
<argument index="2" name="value" type="Variant">
</argument>
<description>
Set the value for an area parameter. A list of available parameters is on the AREA_PARAM_* constants.
Sets the value for an area parameter. A list of available parameters is on the AREA_PARAM_* constants.
</description>
</method>
<method name="area_set_shape">
@ -203,7 +203,7 @@
<argument index="2" name="shape" type="RID">
</argument>
<description>
Substitute a given area shape by another. The old shape is selected by its index, the new one by its [RID].
Substitutes a given area shape by another. The old shape is selected by its index, the new one by its [RID].
</description>
</method>
<method name="area_set_shape_disabled">
@ -216,6 +216,7 @@
<argument index="2" name="disable" type="bool">
</argument>
<description>
Disables a given shape in this area if [code]disable is true[/code]
</description>
</method>
<method name="area_set_shape_transform">
@ -228,7 +229,7 @@
<argument index="2" name="transform" type="Transform2D">
</argument>
<description>
Set the transform matrix for an area shape.
Sets the transform matrix for an area shape.
</description>
</method>
<method name="area_set_space">
@ -239,7 +240,7 @@
<argument index="1" name="space" type="RID">
</argument>
<description>
Assign a space to the area.
Assigns a space to the area.
</description>
</method>
<method name="area_set_space_override_mode">
@ -250,7 +251,7 @@
<argument index="1" name="mode" type="int" enum="Physics2DServer.AreaSpaceOverrideMode">
</argument>
<description>
Set the space override mode for the area. The modes are described in the constants AREA_SPACE_OVERRIDE_*.
Sets the space override mode for the area. The modes are described in the constants AREA_SPACE_OVERRIDE_*.
</description>
</method>
<method name="area_set_transform">
@ -261,7 +262,7 @@
<argument index="1" name="transform" type="Transform2D">
</argument>
<description>
Set the transform matrix for an area.
Sets the transform matrix for an area.
</description>
</method>
<method name="body_add_collision_exception">
@ -272,7 +273,7 @@
<argument index="1" name="excepted_body" type="RID">
</argument>
<description>
Add a body to the list of bodies exempt from collisions.
Adds a body to the list of bodies exempt from collisions.
</description>
</method>
<method name="body_add_force">
@ -285,7 +286,7 @@
<argument index="2" name="force" type="Vector2">
</argument>
<description>
Add a positioned force to the applied force and torque. As with [method body_apply_impulse], both the force and the offset from the body origin are in global coordinates. A force differs from an impulse in that, while the two are forces, the impulse clears itself after being applied.
Adds a positioned force to the applied force and torque. As with [method body_apply_impulse], both the force and the offset from the body origin are in global coordinates. A force differs from an impulse in that, while the two are forces, the impulse clears itself after being applied.
</description>
</method>
<method name="body_add_shape">
@ -298,7 +299,7 @@
<argument index="2" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
</argument>
<description>
Add a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
</description>
</method>
<method name="body_apply_impulse">
@ -311,7 +312,7 @@
<argument index="2" name="impulse" type="Vector2">
</argument>
<description>
Add a positioned impulse to the applied force and torque. Both the force and the offset from the body origin are in global coordinates.
Adds a positioned impulse to the applied force and torque. Both the force and the offset from the body origin are in global coordinates.
</description>
</method>
<method name="body_attach_object_instance_id">
@ -322,7 +323,7 @@
<argument index="1" name="id" type="int">
</argument>
<description>
Assign the area to a descendant of [Object], so it can exist in the node tree.
Assigns the area to a descendant of [Object], so it can exist in the node tree.
</description>
</method>
<method name="body_clear_shapes">
@ -331,7 +332,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Remove all shapes from a body.
Removes all shapes from a body.
</description>
</method>
<method name="body_create">
@ -342,7 +343,7 @@
<argument index="1" name="init_sleeping" type="bool" default="false">
</argument>
<description>
Create a physics body. The first parameter can be any value from constants BODY_MODE*, for the type of body created. Additionally, the body can be created in sleeping state to save processing time.
Creates a physics body. The first parameter can be any value from constants BODY_MODE*, for the type of body created. Additionally, the body can be created in sleeping state to save processing time.
</description>
</method>
<method name="body_get_collision_layer" qualifiers="const">
@ -351,7 +352,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the physics layer or layers a body belongs to.
Returns the physics layer or layers a body belongs to.
</description>
</method>
<method name="body_get_collision_mask" qualifiers="const">
@ -360,7 +361,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the physics layer or layers a body can collide with.
Returns the physics layer or layers a body can collide with.
</description>
</method>
<method name="body_get_continuous_collision_detection_mode" qualifiers="const">
@ -369,7 +370,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the continuous collision detection mode.
Returns the continuous collision detection mode.
</description>
</method>
<method name="body_get_direct_state">
@ -378,6 +379,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Returns the [Physics2DDirectBodyState] of the body.
</description>
</method>
<method name="body_get_max_contacts_reported" qualifiers="const">
@ -386,7 +388,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the maximum contacts that can be reported. See [method body_set_max_contacts_reported].
Returns the maximum contacts that can be reported. See [method body_set_max_contacts_reported].
</description>
</method>
<method name="body_get_mode" qualifiers="const">
@ -395,7 +397,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the body mode.
Returns the body mode.
</description>
</method>
<method name="body_get_object_instance_id" qualifiers="const">
@ -404,7 +406,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Get the instance ID of the object the area is assigned to.
Gets the instance ID of the object the area is assigned to.
</description>
</method>
<method name="body_get_param" qualifiers="const">
@ -415,7 +417,7 @@
<argument index="1" name="param" type="int" enum="Physics2DServer.BodyParameter">
</argument>
<description>
Return the value of a body parameter.
Returns the value of a body parameter. A list of available parameters is on the BODY_PARAM_* constants.
</description>
</method>
<method name="body_get_shape" qualifiers="const">
@ -426,7 +428,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Return the [RID] of the nth shape of a body.
Returns the [RID] of the nth shape of a body.
</description>
</method>
<method name="body_get_shape_count" qualifiers="const">
@ -435,7 +437,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the number of shapes assigned to a body.
Returns the number of shapes assigned to a body.
</description>
</method>
<method name="body_get_shape_metadata" qualifiers="const">
@ -446,7 +448,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Return the metadata of a shape of a body.
Returns the metadata of a shape of a body.
</description>
</method>
<method name="body_get_shape_transform" qualifiers="const">
@ -457,7 +459,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Return the transform matrix of a body shape.
Returns the transform matrix of a body shape.
</description>
</method>
<method name="body_get_space" qualifiers="const">
@ -466,7 +468,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return the [RID] of the space assigned to a body.
Returns the [RID] of the space assigned to a body.
</description>
</method>
<method name="body_get_state" qualifiers="const">
@ -477,7 +479,7 @@
<argument index="1" name="state" type="int" enum="Physics2DServer.BodyState">
</argument>
<description>
Return a body state.
Returns a body state.
</description>
</method>
<method name="body_is_omitting_force_integration" qualifiers="const">
@ -486,7 +488,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
Return whether a body uses a callback function to calculate its own physics (see [method body_set_force_integration_callback]).
Returns whether a body uses a callback function to calculate its own physics (see [method body_set_force_integration_callback]).
</description>
</method>
<method name="body_remove_collision_exception">
@ -497,7 +499,7 @@
<argument index="1" name="excepted_body" type="RID">
</argument>
<description>
Remove a body from the list of bodies exempt from collisions.
Removes a body from the list of bodies exempt from collisions.
</description>
</method>
<method name="body_remove_shape">
@ -508,7 +510,7 @@
<argument index="1" name="shape_idx" type="int">
</argument>
<description>
Remove a shape from a body. The shape is not deleted, so it can be reused afterwards.
Removes a shape from a body. The shape is not deleted, so it can be reused afterwards.
</description>
</method>
<method name="body_set_axis_velocity">
@ -519,7 +521,7 @@
<argument index="1" name="axis_velocity" type="Vector2">
</argument>
<description>
Set an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.
Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.
</description>
</method>
<method name="body_set_collision_layer">
@ -530,7 +532,7 @@
<argument index="1" name="layer" type="int">
</argument>
<description>
Set the physics layer or layers a body belongs to.
Sets the physics layer or layers a body belongs to.
</description>
</method>
<method name="body_set_collision_mask">
@ -541,7 +543,7 @@
<argument index="1" name="mask" type="int">
</argument>
<description>
Set the physics layer or layers a body can collide with.
Sets the physics layer or layers a body can collide with.
</description>
</method>
<method name="body_set_continuous_collision_detection_mode">
@ -552,7 +554,7 @@
<argument index="1" name="mode" type="int" enum="Physics2DServer.CCDMode">
</argument>
<description>
Set the continuous collision detection mode from any of the CCD_MODE_* constants.
Sets the continuous collision detection mode from any of the CCD_MODE_* constants.
Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.
</description>
</method>
@ -568,7 +570,7 @@
<argument index="3" name="userdata" type="Variant" default="null">
</argument>
<description>
Set the function used to calculate physics for an object, if that object allows it (see [method body_set_omit_force integration]).
Sets the function used to calculate physics for an object, if that object allows it (see [method body_set_omit_force integration]).
</description>
</method>
<method name="body_set_max_contacts_reported">
@ -579,7 +581,7 @@
<argument index="1" name="amount" type="int">
</argument>
<description>
Set the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.
Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.
</description>
</method>
<method name="body_set_mode">
@ -590,7 +592,7 @@
<argument index="1" name="mode" type="int" enum="Physics2DServer.BodyMode">
</argument>
<description>
Set the body mode, from one of the constants BODY_MODE*.
Sets the body mode, from one of the constants BODY_MODE*.
</description>
</method>
<method name="body_set_omit_force_integration">
@ -601,7 +603,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
Set whether a body uses a callback function to calculate its own physics (see [method body_set_force_integration_callback]).
Sets whether a body uses a callback function to calculate its own physics (see [method body_set_force_integration_callback]).
</description>
</method>
<method name="body_set_param">
@ -614,7 +616,7 @@
<argument index="2" name="value" type="float">
</argument>
<description>
Set a body parameter (see BODY_PARAM* constants).
Sets a body parameter. A list of available parameters is on the BODY_PARAM_* constants.
</description>
</method>
<method name="body_set_shape">
@ -627,7 +629,7 @@
<argument index="2" name="shape" type="RID">
</argument>
<description>
Substitute a given body shape by another. The old shape is selected by its index, the new one by its [RID].
Substitutes a given body shape by another. The old shape is selected by its index, the new one by its [RID].
</description>
</method>
<method name="body_set_shape_as_one_way_collision">
@ -640,6 +642,7 @@
<argument index="2" name="enable" type="bool">
</argument>
<description>
Enables one way collision on body if [code]enable is true[/code].
</description>
</method>
<method name="body_set_shape_disabled">
@ -652,6 +655,7 @@
<argument index="2" name="disable" type="bool">
</argument>
<description>
Disables shape in body if [code]disable is true[/code].
</description>
</method>
<method name="body_set_shape_metadata">
@ -664,7 +668,7 @@
<argument index="2" name="metadata" type="Variant">
</argument>
<description>
Set metadata of a shape within a body. This metadata is different from [method Object.set_meta], and can be retrieved on shape queries.
Sets metadata of a shape within a body. This metadata is different from [method Object.set_meta], and can be retrieved on shape queries.
</description>
</method>
<method name="body_set_shape_transform">
@ -677,7 +681,7 @@
<argument index="2" name="transform" type="Transform2D">
</argument>
<description>
Set the transform matrix for a body shape.
Sets the transform matrix for a body shape.
</description>
</method>
<method name="body_set_space">
@ -688,7 +692,7 @@
<argument index="1" name="space" type="RID">
</argument>
<description>
Assign a space to the body (see [method create_space]).
Assigns a space to the body (see [method create_space]).
</description>
</method>
<method name="body_set_state">
@ -701,7 +705,7 @@
<argument index="2" name="value" type="Variant">
</argument>
<description>
Set a body state (see BODY_STATE* constants).
Sets a body state (see BODY_STATE* constants).
</description>
</method>
<method name="body_test_motion">
@ -718,7 +722,7 @@
<argument index="4" name="result" type="Physics2DTestMotionResult" default="null">
</argument>
<description>
Return whether a body can move from a given point in a given direction. Apart from the boolean return value, a [Physics2DTestMotionResult] can be passed to return additional information in.
Returns whether a body can move from a given point in a given direction. Apart from the boolean return value, a [Physics2DTestMotionResult] can be passed to return additional information in.
</description>
</method>
<method name="damped_spring_joint_create">
@ -733,7 +737,7 @@
<argument index="3" name="body_b" type="RID">
</argument>
<description>
Create a damped spring joint between two bodies. If not specified, the second body is assumed to be the joint itself.
Creates a damped spring joint between two bodies. If not specified, the second body is assumed to be the joint itself.
</description>
</method>
<method name="damped_string_joint_get_param" qualifiers="const">
@ -744,7 +748,7 @@
<argument index="1" name="param" type="int" enum="Physics2DServer.DampedStringParam">
</argument>
<description>
Return the value of a damped spring joint parameter.
Returns the value of a damped spring joint parameter.
</description>
</method>
<method name="damped_string_joint_set_param">
@ -757,7 +761,7 @@
<argument index="2" name="value" type="float">
</argument>
<description>
Set a damped spring joint parameter. Parameters are explained in the DAMPED_STRING* constants.
Sets a damped spring joint parameter. Parameters are explained in the DAMPED_STRING* constants.
</description>
</method>
<method name="free_rid">
@ -766,7 +770,7 @@
<argument index="0" name="rid" type="RID">
</argument>
<description>
Destroy any of the objects created by Physics2DServer. If the [RID] passed is not one of the objects that can be created by Physics2DServer, an error will be sent to the console.
Destroys any of the objects created by Physics2DServer. If the [RID] passed is not one of the objects that can be created by Physics2DServer, an error will be sent to the console.
</description>
</method>
<method name="get_process_info">
@ -775,7 +779,7 @@
<argument index="0" name="process_info" type="int" enum="Physics2DServer.ProcessInfo">
</argument>
<description>
Return information about the current state of the 2D physics engine. The states are listed under the INFO_* constants.
Returns information about the current state of the 2D physics engine. The states are listed under the INFO_* constants.
</description>
</method>
<method name="groove_joint_create">
@ -792,7 +796,7 @@
<argument index="4" name="body_b" type="RID">
</argument>
<description>
Create a groove joint between two bodies. If not specified, the bodyies are assumed to be the joint itself.
Creates a groove joint between two bodies. If not specified, the bodyies are assumed to be the joint itself.
</description>
</method>
<method name="joint_get_param" qualifiers="const">
@ -803,7 +807,7 @@
<argument index="1" name="param" type="int" enum="Physics2DServer.JointParam">
</argument>
<description>
Return the value of a joint parameter.
Returns the value of a joint parameter.
</description>
</method>
<method name="joint_get_type" qualifiers="const">
@ -812,7 +816,7 @@
<argument index="0" name="joint" type="RID">
</argument>
<description>
Return the type of a joint (see JOINT_* constants).
Returns the type of a joint (see JOINT_* constants).
</description>
</method>
<method name="joint_set_param">
@ -825,7 +829,7 @@
<argument index="2" name="value" type="float">
</argument>
<description>
Set a joint parameter. Parameters are explained in the JOINT_PARAM* constants.
Sets a joint parameter. Parameters are explained in the JOINT_PARAM* constants.
</description>
</method>
<method name="pin_joint_create">
@ -838,7 +842,7 @@
<argument index="2" name="body_b" type="RID">
</argument>
<description>
Create a pin joint between two bodies. If not specified, the second body is assumed to be the joint itself.
Creates a pin joint between two bodies. If not specified, the second body is assumed to be the joint itself.
</description>
</method>
<method name="set_active">
@ -847,7 +851,7 @@
<argument index="0" name="active" type="bool">
</argument>
<description>
Activate or deactivate the 2D physics engine.
Activates or deactivates the 2D physics engine.
</description>
</method>
<method name="shape_create">
@ -856,7 +860,7 @@
<argument index="0" name="type" type="int" enum="Physics2DServer.ShapeType">
</argument>
<description>
Create a shape of type SHAPE_*. Does not assign it to a body or an area. To do so, you must use [method area_set_shape] or [method body_set_shape].
Creates a shape of type SHAPE_*. Does not assign it to a body or an area. To do so, you must use [method area_set_shape] or [method body_set_shape].
</description>
</method>
<method name="shape_get_data" qualifiers="const">
@ -865,7 +869,7 @@
<argument index="0" name="shape" type="RID">
</argument>
<description>
Return the shape data.
Returns the shape data.
</description>
</method>
<method name="shape_get_type" qualifiers="const">
@ -874,7 +878,7 @@
<argument index="0" name="shape" type="RID">
</argument>
<description>
Return the type of shape (see SHAPE_* constants).
Returns the type of shape (see SHAPE_* constants).
</description>
</method>
<method name="shape_set_data">
@ -885,14 +889,14 @@
<argument index="1" name="data" type="Variant">
</argument>
<description>
Set the shape data that defines its shape and size. The data to be passed depends on the kind of shape created [method shape_get_type].
Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created [method shape_get_type].
</description>
</method>
<method name="space_create">
<return type="RID">
</return>
<description>
Create a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with [method area_set_space], or to a body with [method body_set_space].
Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with [method area_set_space], or to a body with [method body_set_space].
</description>
</method>
<method name="space_get_direct_state">
@ -901,7 +905,7 @@
<argument index="0" name="space" type="RID">
</argument>
<description>
Return the state of a space, a [Physics2DDirectSpaceState]. This object can be used to make collision/intersection queries.
Returns the state of a space, a [Physics2DDirectSpaceState]. This object can be used to make collision/intersection queries.
</description>
</method>
<method name="space_get_param" qualifiers="const">
@ -912,7 +916,7 @@
<argument index="1" name="param" type="int" enum="Physics2DServer.SpaceParameter">
</argument>
<description>
Return the value of a space parameter.
Returns the value of a space parameter.
</description>
</method>
<method name="space_is_active" qualifiers="const">
@ -921,7 +925,7 @@
<argument index="0" name="space" type="RID">
</argument>
<description>
Return whether the space is active.
Returns whether the space is active.
</description>
</method>
<method name="space_set_active">
@ -932,7 +936,7 @@
<argument index="1" name="active" type="bool">
</argument>
<description>
Mark a space as active. It will not have an effect, unless it is assigned to an area or body.
Marks a space as active. It will not have an effect, unless it is assigned to an area or body.
</description>
</method>
<method name="space_set_param">
@ -945,7 +949,7 @@
<argument index="2" name="value" type="float">
</argument>
<description>
Set the value for a space parameter. A list of available parameters is on the SPACE_PARAM_* constants.
Sets the value for a space parameter. A list of available parameters is on the SPACE_PARAM_* constants.
</description>
</method>
</methods>
@ -960,8 +964,10 @@
Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision.
</constant>
<constant name="SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD" value="3">
Constant to set/get the threshold linear velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given.
</constant>
<constant name="SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD" value="4">
Constant to set/get the threshold angular velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given.
</constant>
<constant name="SPACE_PARAM_BODY_TIME_TO_SLEEP" value="5">
Constant to set/get the maximum time of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after this time.
@ -985,7 +991,7 @@
This is the constant for creating capsule shapes. A capsule shape is defined by a radius and a length. It can be used for intersections and inside/outside checks.
</constant>
<constant name="SHAPE_CONVEX_POLYGON" value="6">
This is the constant for creating convex polygon shapes. A polygon is defined by a list of points. It can be used for intersections and inside/outside checks. Unlike the method [method CollisionPolygon2D.set_polygon], polygons modified with [method shape_set_data] do not verify that the points supplied form, in fact, a convex polygon.
This is the constant for creating convex polygon shapes. A polygon is defined by a list of points. It can be used for intersections and inside/outside checks. Unlike the method [method CollisionPolygon2D.set_polygon], polygons modified with [method shape_set_data] do not verify that the points supplied form is a convex polygon.
</constant>
<constant name="SHAPE_CONCAVE_POLYGON" value="7">
This is the constant for creating concave polygon shapes. A polygon is defined by a list of points. It can be used for intersections checks, but not for inside/outside checks.

View file

@ -4,7 +4,7 @@
Software implementation of [Physics2DServer].
</brief_description>
<description>
Software implementation of [Physics2DServer]. This class exposes no new methods or properties and should not be used, as [Physics2DServer] automatically selects the best implementation available.
This class exposes no new methods or properties and should not be used, as [Physics2DServer] automatically selects the best implementation available.
</description>
<tutorials>
</tutorials>

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PhysicsServerSW" inherits="PhysicsServer" category="Core" version="3.0.alpha.custom_build">
<brief_description>
Software implementation of [PhysicsServer].
</brief_description>
<description>
This class exposes no new methods or properties and should not be used, as [PhysicsServer] automatically selects the best implementation available.
</description>
<tutorials>
</tutorials>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PinJoint" inherits="Joint" category="Core" version="3.0.alpha.custom_build">
<brief_description>
Pin Joint for 3D Shapes.
</brief_description>
<description>
Pin Joint for 3D Rigid Bodies. It pins 2 bodies (rigid or static) together.
</description>
<tutorials>
</tutorials>
@ -30,18 +32,28 @@
</methods>
<members>
<member name="params/bias" type="float" setter="set_param" getter="get_param">
The force with wich the pinned objects stay in positional relation to each other.
The higher, the stronger.
</member>
<member name="params/damping" type="float" setter="set_param" getter="get_param">
The force with wich the pinned objects stay in velocity relation to each other.
The higher, the stronger.
</member>
<member name="params/impulse_clamp" type="float" setter="set_param" getter="get_param">
If above 0, this value is the maximum value for an impulse that this Joint produces.
</member>
</members>
<constants>
<constant name="PARAM_BIAS" value="0">
The force with wich the pinned objects stay in positional relation to each other.
The higher, the stronger.
</constant>
<constant name="PARAM_DAMPING" value="1">
The force with wich the pinned objects stay in velocity relation to each other.
The higher, the stronger.
</constant>
<constant name="PARAM_IMPULSE_CLAMP" value="2">
If above 0, this value is the maximum value for an impulse that this Joint produces.
</constant>
</constants>
</class>

View file

@ -28,6 +28,7 @@
</methods>
<members>
<member name="softness" type="float" setter="set_softness" getter="get_softness">
The higher this value, the more the bond to the pinned partner can flex.
</member>
</members>
<constants>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="SliderJoint" inherits="Joint" category="Core" version="3.0.alpha.custom_build">
<brief_description>
Piston kind of slider between two bodies in 3D.
</brief_description>
<description>
Slides across the x-axis of the [Pivot] object.
</description>
<tutorials>
</tutorials>
@ -30,96 +32,144 @@
</methods>
<members>
<member name="angular_limit/damping" type="float" setter="set_param" getter="get_param">
The amount of damping of the rotation when the limit is surpassed.
A lower damping value allows a rotation initiated by body A to travel to body B slower.
</member>
<member name="angular_limit/lower_angle" type="float" setter="_set_lower_limit_angular" getter="_get_lower_limit_angular">
The lower limit of rotation in the slider.
</member>
<member name="angular_limit/restitution" type="float" setter="set_param" getter="get_param">
The amount of restitution of the rotation when the limit is surpassed.
Does not affect damping.
</member>
<member name="angular_limit/softness" type="float" setter="set_param" getter="get_param">
A factor applied to the all rotation once the limit is surpassed.
Makes all rotation slower when between 0 and 1.
</member>
<member name="angular_limit/upper_angle" type="float" setter="_set_upper_limit_angular" getter="_get_upper_limit_angular">
The upper limit of rotation in the slider.
</member>
<member name="angular_motion/damping" type="float" setter="set_param" getter="get_param">
The amount of damping of the rotation in the limits.
</member>
<member name="angular_motion/restitution" type="float" setter="set_param" getter="get_param">
The amount of restitution of the rotation in the limits.
</member>
<member name="angular_motion/softness" type="float" setter="set_param" getter="get_param">
A factor applied to the all rotation in the limits.
</member>
<member name="angular_ortho/damping" type="float" setter="set_param" getter="get_param">
The amount of damping of the rotation across axes orthogonal to the slider.
</member>
<member name="angular_ortho/restitution" type="float" setter="set_param" getter="get_param">
The amount of restitution of the rotation across axes orthogonal to the slider.
</member>
<member name="angular_ortho/softness" type="float" setter="set_param" getter="get_param">
A factor applied to the all rotation across axes orthogonal to the slider.
</member>
<member name="linear_limit/damping" type="float" setter="set_param" getter="get_param">
The amount of damping that happens once the limit defined by [member linear_limit/lower_distance] and [member linear_limit/upper_distance] is surpassed.
</member>
<member name="linear_limit/lower_distance" type="float" setter="set_param" getter="get_param">
The minimum difference between the pivot points on their x-axis before damping happens.
</member>
<member name="linear_limit/restitution" type="float" setter="set_param" getter="get_param">
The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost.
</member>
<member name="linear_limit/softness" type="float" setter="set_param" getter="get_param">
A factor applied to the movement accross the slider axis once the limits get surpassed. The lower, the slower the movement.
</member>
<member name="linear_limit/upper_distance" type="float" setter="set_param" getter="get_param">
The maximum difference between the pivot points on their x-axis before damping happens.
</member>
<member name="linear_motion/damping" type="float" setter="set_param" getter="get_param">
The amount of damping inside the slider limits.
</member>
<member name="linear_motion/restitution" type="float" setter="set_param" getter="get_param">
The amount of restitution inside the slider limits.
</member>
<member name="linear_motion/softness" type="float" setter="set_param" getter="get_param">
A factor applied to the movement accross the slider axis as long as the slider is in the limits. The lower, the slower the movement.
</member>
<member name="linear_ortho/damping" type="float" setter="set_param" getter="get_param">
The amount of damping when movement is accross axes orthogonal to the slider.
</member>
<member name="linear_ortho/restitution" type="float" setter="set_param" getter="get_param">
The amount of restitution when movement is accross axes orthogonal to the slider.
</member>
<member name="linear_ortho/softness" type="float" setter="set_param" getter="get_param">
A factor applied to the movement accross axes orthogonal to the slider.
</member>
</members>
<constants>
<constant name="PARAM_LINEAR_LIMIT_UPPER" value="0">
The maximum difference between the pivot points on their x-axis before damping happens.
</constant>
<constant name="PARAM_LINEAR_LIMIT_LOWER" value="1">
The minimum difference between the pivot points on their x-axis before damping happens.
</constant>
<constant name="PARAM_LINEAR_LIMIT_SOFTNESS" value="2">
A factor applied to the movement accross the slider axis once the limits get surpassed. The lower, the slower the movement.
</constant>
<constant name="PARAM_LINEAR_LIMIT_RESTITUTION" value="3">
The amount of restitution once the limits are surpassed. The lower, the more velocityenergy gets lost.
</constant>
<constant name="PARAM_LINEAR_LIMIT_DAMPING" value="4">
The amount of damping once the slider limits are surpassed.
</constant>
<constant name="PARAM_LINEAR_MOTION_SOFTNESS" value="5">
A factor applied to the movement accross the slider axis as long as the slider is in the limits. The lower, the slower the movement.
</constant>
<constant name="PARAM_LINEAR_MOTION_RESTITUTION" value="6">
The amount of restitution inside the slider limits.
</constant>
<constant name="PARAM_LINEAR_MOTION_DAMPING" value="7">
The amount of damping inside the slider limits.
</constant>
<constant name="PARAM_LINEAR_ORTHOGONAL_SOFTNESS" value="8">
A factor applied to the movement accross axes orthogonal to the slider.
</constant>
<constant name="PARAM_LINEAR_ORTHOGONAL_RESTITUTION" value="9">
The amount of restitution when movement is accross axes orthogonal to the slider.
</constant>
<constant name="PARAM_LINEAR_ORTHOGONAL_DAMPING" value="10">
The amount of damping when movement is accross axes orthogonal to the slider.
</constant>
<constant name="PARAM_ANGULAR_LIMIT_UPPER" value="11">
The upper limit of rotation in the slider.
</constant>
<constant name="PARAM_ANGULAR_LIMIT_LOWER" value="12">
The lower limit of rotation in the slider.
</constant>
<constant name="PARAM_ANGULAR_LIMIT_SOFTNESS" value="13">
A factor applied to the all rotation once the limit is surpassed.
</constant>
<constant name="PARAM_ANGULAR_LIMIT_RESTITUTION" value="14">
The amount of restitution of the rotation when the limit is surpassed.
</constant>
<constant name="PARAM_ANGULAR_LIMIT_DAMPING" value="15">
The amount of damping of the rotation when the limit is surpassed.
</constant>
<constant name="PARAM_ANGULAR_MOTION_SOFTNESS" value="16">
A factor applied to the all rotation in the limits.
</constant>
<constant name="PARAM_ANGULAR_MOTION_RESTITUTION" value="17">
The amount of restitution of the rotation in the limits.
</constant>
<constant name="PARAM_ANGULAR_MOTION_DAMPING" value="18">
The amount of damping of the rotation in the limits.
</constant>
<constant name="PARAM_ANGULAR_ORTHOGONAL_SOFTNESS" value="19">
A factor applied to the all rotation across axes orthogonal to the slider.
</constant>
<constant name="PARAM_ANGULAR_ORTHOGONAL_RESTITUTION" value="20">
The amount of restitution of the rotation across axes orthogonal to the slider.
</constant>
<constant name="PARAM_ANGULAR_ORTHOGONAL_DAMPING" value="21">
The amount of damping of the rotation across axes orthogonal to the slider.
</constant>
<constant name="PARAM_MAX" value="22">
End flag of PARAM_* constants, used internally.
</constant>
</constants>
</class>

View file

@ -86,8 +86,8 @@ public:
void set_pos_a(const Vector3 &p_pos) { m_pivotInA = p_pos; }
void set_pos_b(const Vector3 &p_pos) { m_pivotInB = p_pos; }
Vector3 get_position_a() { return m_pivotInB; }
Vector3 get_position_b() { return m_pivotInA; }
Vector3 get_position_a() { return m_pivotInA; }
Vector3 get_position_b() { return m_pivotInB; }
PinJointSW(BodySW *p_body_a, const Vector3 &p_pos_a, BodySW *p_body_b, const Vector3 &p_pos_b);
~PinJointSW();