class_softbody.rst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the SoftBody.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_SoftBody:
  5. SoftBody
  6. ========
  7. **Inherits:** :ref:`MeshInstance<class_MeshInstance>` **<** :ref:`GeometryInstance<class_GeometryInstance>` **<** :ref:`VisualInstance<class_VisualInstance>` **<** :ref:`Spatial<class_Spatial>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. A soft mesh physics body.
  12. Properties
  13. ----------
  14. +---------------------------------+-------------------------------------------------------------------------------------+
  15. | :ref:`float<class_float>` | :ref:`areaAngular_stiffness<class_SoftBody_property_areaAngular_stiffness>` |
  16. +---------------------------------+-------------------------------------------------------------------------------------+
  17. | :ref:`int<class_int>` | :ref:`collision_layer<class_SoftBody_property_collision_layer>` |
  18. +---------------------------------+-------------------------------------------------------------------------------------+
  19. | :ref:`int<class_int>` | :ref:`collision_mask<class_SoftBody_property_collision_mask>` |
  20. +---------------------------------+-------------------------------------------------------------------------------------+
  21. | :ref:`float<class_float>` | :ref:`damping_coefficient<class_SoftBody_property_damping_coefficient>` |
  22. +---------------------------------+-------------------------------------------------------------------------------------+
  23. | :ref:`float<class_float>` | :ref:`drag_coefficient<class_SoftBody_property_drag_coefficient>` |
  24. +---------------------------------+-------------------------------------------------------------------------------------+
  25. | :ref:`float<class_float>` | :ref:`linear_stiffness<class_SoftBody_property_linear_stiffness>` |
  26. +---------------------------------+-------------------------------------------------------------------------------------+
  27. | :ref:`NodePath<class_NodePath>` | :ref:`parent_collision_ignore<class_SoftBody_property_parent_collision_ignore>` |
  28. +---------------------------------+-------------------------------------------------------------------------------------+
  29. | :ref:`float<class_float>` | :ref:`pose_matching_coefficient<class_SoftBody_property_pose_matching_coefficient>` |
  30. +---------------------------------+-------------------------------------------------------------------------------------+
  31. | :ref:`float<class_float>` | :ref:`pressure_coefficient<class_SoftBody_property_pressure_coefficient>` |
  32. +---------------------------------+-------------------------------------------------------------------------------------+
  33. | :ref:`int<class_int>` | :ref:`simulation_precision<class_SoftBody_property_simulation_precision>` |
  34. +---------------------------------+-------------------------------------------------------------------------------------+
  35. | :ref:`float<class_float>` | :ref:`total_mass<class_SoftBody_property_total_mass>` |
  36. +---------------------------------+-------------------------------------------------------------------------------------+
  37. | :ref:`float<class_float>` | :ref:`volume_stiffness<class_SoftBody_property_volume_stiffness>` |
  38. +---------------------------------+-------------------------------------------------------------------------------------+
  39. Methods
  40. -------
  41. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | void | :ref:`add_collision_exception_with<class_SoftBody_method_add_collision_exception_with>` **(** :ref:`Node<class_Node>` body **)** |
  43. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`Array<class_Array>` | :ref:`get_collision_exceptions<class_SoftBody_method_get_collision_exceptions>` **(** **)** |
  45. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`bool<class_bool>` | :ref:`get_collision_layer_bit<class_SoftBody_method_get_collision_layer_bit>` **(** :ref:`int<class_int>` bit **)** const |
  47. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`bool<class_bool>` | :ref:`get_collision_mask_bit<class_SoftBody_method_get_collision_mask_bit>` **(** :ref:`int<class_int>` bit **)** const |
  49. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`bool<class_bool>` | :ref:`is_ray_pickable<class_SoftBody_method_is_ray_pickable>` **(** **)** const |
  51. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | void | :ref:`remove_collision_exception_with<class_SoftBody_method_remove_collision_exception_with>` **(** :ref:`Node<class_Node>` body **)** |
  53. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | void | :ref:`set_collision_layer_bit<class_SoftBody_method_set_collision_layer_bit>` **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)** |
  55. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | void | :ref:`set_collision_mask_bit<class_SoftBody_method_set_collision_mask_bit>` **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)** |
  57. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | void | :ref:`set_ray_pickable<class_SoftBody_method_set_ray_pickable>` **(** :ref:`bool<class_bool>` ray_pickable **)** |
  59. +---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
  60. Description
  61. -----------
  62. A deformable physics body. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials.
  63. Property Descriptions
  64. ---------------------
  65. .. _class_SoftBody_property_areaAngular_stiffness:
  66. - :ref:`float<class_float>` **areaAngular_stiffness**
  67. +----------+----------------------------------+
  68. | *Setter* | set_areaAngular_stiffness(value) |
  69. +----------+----------------------------------+
  70. | *Getter* | get_areaAngular_stiffness() |
  71. +----------+----------------------------------+
  72. .. _class_SoftBody_property_collision_layer:
  73. - :ref:`int<class_int>` **collision_layer**
  74. +----------+----------------------------+
  75. | *Setter* | set_collision_layer(value) |
  76. +----------+----------------------------+
  77. | *Getter* | get_collision_layer() |
  78. +----------+----------------------------+
  79. The physics layers this area is in.
  80. Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.
  81. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A.
  82. .. _class_SoftBody_property_collision_mask:
  83. - :ref:`int<class_int>` **collision_mask**
  84. +----------+---------------------------+
  85. | *Setter* | set_collision_mask(value) |
  86. +----------+---------------------------+
  87. | *Getter* | get_collision_mask() |
  88. +----------+---------------------------+
  89. The physics layers this area scans for collisions.
  90. .. _class_SoftBody_property_damping_coefficient:
  91. - :ref:`float<class_float>` **damping_coefficient**
  92. +----------+--------------------------------+
  93. | *Setter* | set_damping_coefficient(value) |
  94. +----------+--------------------------------+
  95. | *Getter* | get_damping_coefficient() |
  96. +----------+--------------------------------+
  97. .. _class_SoftBody_property_drag_coefficient:
  98. - :ref:`float<class_float>` **drag_coefficient**
  99. +----------+-----------------------------+
  100. | *Setter* | set_drag_coefficient(value) |
  101. +----------+-----------------------------+
  102. | *Getter* | get_drag_coefficient() |
  103. +----------+-----------------------------+
  104. .. _class_SoftBody_property_linear_stiffness:
  105. - :ref:`float<class_float>` **linear_stiffness**
  106. +----------+-----------------------------+
  107. | *Setter* | set_linear_stiffness(value) |
  108. +----------+-----------------------------+
  109. | *Getter* | get_linear_stiffness() |
  110. +----------+-----------------------------+
  111. .. _class_SoftBody_property_parent_collision_ignore:
  112. - :ref:`NodePath<class_NodePath>` **parent_collision_ignore**
  113. +----------+------------------------------------+
  114. | *Setter* | set_parent_collision_ignore(value) |
  115. +----------+------------------------------------+
  116. | *Getter* | get_parent_collision_ignore() |
  117. +----------+------------------------------------+
  118. .. _class_SoftBody_property_pose_matching_coefficient:
  119. - :ref:`float<class_float>` **pose_matching_coefficient**
  120. +----------+--------------------------------------+
  121. | *Setter* | set_pose_matching_coefficient(value) |
  122. +----------+--------------------------------------+
  123. | *Getter* | get_pose_matching_coefficient() |
  124. +----------+--------------------------------------+
  125. .. _class_SoftBody_property_pressure_coefficient:
  126. - :ref:`float<class_float>` **pressure_coefficient**
  127. +----------+---------------------------------+
  128. | *Setter* | set_pressure_coefficient(value) |
  129. +----------+---------------------------------+
  130. | *Getter* | get_pressure_coefficient() |
  131. +----------+---------------------------------+
  132. .. _class_SoftBody_property_simulation_precision:
  133. - :ref:`int<class_int>` **simulation_precision**
  134. +----------+---------------------------------+
  135. | *Setter* | set_simulation_precision(value) |
  136. +----------+---------------------------------+
  137. | *Getter* | get_simulation_precision() |
  138. +----------+---------------------------------+
  139. Increasing this value will improve the resulting simulation, but can affect performance. Use with care.
  140. .. _class_SoftBody_property_total_mass:
  141. - :ref:`float<class_float>` **total_mass**
  142. +----------+-----------------------+
  143. | *Setter* | set_total_mass(value) |
  144. +----------+-----------------------+
  145. | *Getter* | get_total_mass() |
  146. +----------+-----------------------+
  147. .. _class_SoftBody_property_volume_stiffness:
  148. - :ref:`float<class_float>` **volume_stiffness**
  149. +----------+-----------------------------+
  150. | *Setter* | set_volume_stiffness(value) |
  151. +----------+-----------------------------+
  152. | *Getter* | get_volume_stiffness() |
  153. +----------+-----------------------------+
  154. Method Descriptions
  155. -------------------
  156. .. _class_SoftBody_method_add_collision_exception_with:
  157. - void **add_collision_exception_with** **(** :ref:`Node<class_Node>` body **)**
  158. Adds a body to the list of bodies that this body can't collide with.
  159. .. _class_SoftBody_method_get_collision_exceptions:
  160. - :ref:`Array<class_Array>` **get_collision_exceptions** **(** **)**
  161. Returns an array of nodes that were added as collision exceptions for this body.
  162. .. _class_SoftBody_method_get_collision_layer_bit:
  163. - :ref:`bool<class_bool>` **get_collision_layer_bit** **(** :ref:`int<class_int>` bit **)** const
  164. Returns an individual bit on the collision mask.
  165. .. _class_SoftBody_method_get_collision_mask_bit:
  166. - :ref:`bool<class_bool>` **get_collision_mask_bit** **(** :ref:`int<class_int>` bit **)** const
  167. Returns an individual bit on the collision mask.
  168. .. _class_SoftBody_method_is_ray_pickable:
  169. - :ref:`bool<class_bool>` **is_ray_pickable** **(** **)** const
  170. .. _class_SoftBody_method_remove_collision_exception_with:
  171. - void **remove_collision_exception_with** **(** :ref:`Node<class_Node>` body **)**
  172. Removes a body from the list of bodies that this body can't collide with.
  173. .. _class_SoftBody_method_set_collision_layer_bit:
  174. - void **set_collision_layer_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
  175. Sets individual bits on the layer mask. Use this if you only need to change one layer's value.
  176. .. _class_SoftBody_method_set_collision_mask_bit:
  177. - void **set_collision_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
  178. Sets individual bits on the collision mask. Use this if you only need to change one layer's value.
  179. .. _class_SoftBody_method_set_ray_pickable:
  180. - void **set_ray_pickable** **(** :ref:`bool<class_bool>` ray_pickable **)**