summaryrefslogtreecommitdiff
path: root/doc/classes/SoftDynamicBody3D.xml
blob: 801b25f1b0d26c2a53a8895632e9b3757c68c186 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?xml version="1.0" encoding="UTF-8" ?>
<class name="SoftDynamicBody3D" inherits="MeshInstance3D" version="4.0">
	<brief_description>
		A soft mesh physics body.
	</brief_description>
	<description>
		A deformable physics body. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials.
		[b]Note:[/b] There are many known bugs in [SoftDynamicBody3D]. Therefore, it's not recommended to use them for things that can affect gameplay (such as a player character made entirely out of soft bodies).
	</description>
	<tutorials>
		<link title="SoftBody">$DOCS_URL/tutorials/physics/soft_body.html</link>
	</tutorials>
	<methods>
		<method name="add_collision_exception_with">
			<return type="void" />
			<argument index="0" name="body" type="Node" />
			<description>
				Adds a body to the list of bodies that this body can't collide with.
			</description>
		</method>
		<method name="get_collision_exceptions">
			<return type="Array" />
			<description>
				Returns an array of nodes that were added as collision exceptions for this body.
			</description>
		</method>
		<method name="get_collision_layer_value" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="layer_number" type="int" />
			<description>
				Returns whether or not the specified layer of the [member collision_layer] is enabled, given a [code]layer_number[/code] between 1 and 32.
			</description>
		</method>
		<method name="get_collision_mask_value" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="layer_number" type="int" />
			<description>
				Returns whether or not the specified layer of the [member collision_mask] is enabled, given a [code]layer_number[/code] between 1 and 32.
			</description>
		</method>
		<method name="get_physics_rid" qualifiers="const">
			<return type="RID" />
			<description>
			</description>
		</method>
		<method name="get_point_transform">
			<return type="Vector3" />
			<argument index="0" name="point_index" type="int" />
			<description>
				Returns local translation of a vertex in the surface array.
			</description>
		</method>
		<method name="is_point_pinned" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="point_index" type="int" />
			<description>
				Returns [code]true[/code] if vertex is set to pinned.
			</description>
		</method>
		<method name="remove_collision_exception_with">
			<return type="void" />
			<argument index="0" name="body" type="Node" />
			<description>
				Removes a body from the list of bodies that this body can't collide with.
			</description>
		</method>
		<method name="set_collision_layer_value">
			<return type="void" />
			<argument index="0" name="layer_number" type="int" />
			<argument index="1" name="value" type="bool" />
			<description>
				Based on [code]value[/code], enables or disables the specified layer in the [member collision_layer], given a [code]layer_number[/code] between 1 and 32.
			</description>
		</method>
		<method name="set_collision_mask_value">
			<return type="void" />
			<argument index="0" name="layer_number" type="int" />
			<argument index="1" name="value" type="bool" />
			<description>
				Based on [code]value[/code], enables or disables the specified layer in the [member collision_mask], given a [code]layer_number[/code] between 1 and 32.
			</description>
		</method>
		<method name="set_point_pinned">
			<return type="void" />
			<argument index="0" name="point_index" type="int" />
			<argument index="1" name="pinned" type="bool" />
			<argument index="2" name="attachment_path" type="NodePath" default="NodePath(&quot;&quot;)" />
			<description>
				Sets the pinned state of a surface vertex. When set to [code]true[/code], the optional [code]attachment_path[/code] can define a [Node3D] the pinned vertex will be attached to.
			</description>
		</method>
	</methods>
	<members>
		<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
			The physics layers this SoftDynamicBody3D [b]is in[/b]. Collision objects can exist in one or more of 32 different layers. See also [member collision_mask].
			[b]Note:[/b] Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
		</member>
		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
			The physics layers this SoftDynamicBody3D [b]scans[/b]. Collision objects can scan one or more of 32 different layers. See also [member collision_layer].
			[b]Note:[/b] Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
		</member>
		<member name="damping_coefficient" type="float" setter="set_damping_coefficient" getter="get_damping_coefficient" default="0.01">
		</member>
		<member name="disable_mode" type="int" setter="set_disable_mode" getter="get_disable_mode" enum="SoftDynamicBody3D.DisableMode" default="0">
			Defines the behavior in physics when [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED]. See [enum DisableMode] for more details about the different modes.
		</member>
		<member name="drag_coefficient" type="float" setter="set_drag_coefficient" getter="get_drag_coefficient" default="0.0">
		</member>
		<member name="linear_stiffness" type="float" setter="set_linear_stiffness" getter="get_linear_stiffness" default="0.5">
		</member>
		<member name="parent_collision_ignore" type="NodePath" setter="set_parent_collision_ignore" getter="get_parent_collision_ignore" default="NodePath(&quot;&quot;)">
			[NodePath] to a [CollisionObject3D] this SoftDynamicBody3D should avoid clipping.
		</member>
		<member name="pressure_coefficient" type="float" setter="set_pressure_coefficient" getter="get_pressure_coefficient" default="0.0">
		</member>
		<member name="ray_pickable" type="bool" setter="set_ray_pickable" getter="is_ray_pickable" default="true">
			If [code]true[/code], the [SoftDynamicBody3D] will respond to [RayCast3D]s.
		</member>
		<member name="simulation_precision" type="int" setter="set_simulation_precision" getter="get_simulation_precision" default="5">
			Increasing this value will improve the resulting simulation, but can affect performance. Use with care.
		</member>
		<member name="total_mass" type="float" setter="set_total_mass" getter="get_total_mass" default="1.0">
			The SoftDynamicBody3D's mass.
		</member>
	</members>
	<constants>
		<constant name="DISABLE_MODE_REMOVE" value="0" enum="DisableMode">
			When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], remove from the physics simulation to stop all physics interactions with this [SoftDynamicBody3D].
			Automatically re-added to the physics simulation when the [Node] is processed again.
		</constant>
		<constant name="DISABLE_MODE_KEEP_ACTIVE" value="1" enum="DisableMode">
			When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], do not affect the physics simulation.
		</constant>
	</constants>
</class>