:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/ConeTwistJoint3D.xml. .. _class_ConeTwistJoint3D: ConeTwistJoint3D ================ **Inherits:** :ref:`Joint3D` **<** :ref:`Node3D` **<** :ref:`Node` **<** :ref:`Object` A physics joint that connects two 3D physics bodies in a way that simulates a ball-and-socket joint. .. rst-class:: classref-introduction-group Description ----------- A physics joint that connects two 3D physics bodies in a way that simulates a ball-and-socket joint. The twist axis is initiated as the X axis of the **ConeTwistJoint3D**. Once the physics bodies swing, the twist axis is calculated as the middle of the X axes of the joint in the local space of the two physics bodies. Useful for limbs like shoulders and hips, lamps hanging off a ceiling, etc. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +---------------------------+---------------------------------------------------------------+---------------+ | :ref:`float` | :ref:`bias` | ``0.3`` | +---------------------------+---------------------------------------------------------------+---------------+ | :ref:`float` | :ref:`relaxation` | ``1.0`` | +---------------------------+---------------------------------------------------------------+---------------+ | :ref:`float` | :ref:`softness` | ``0.8`` | +---------------------------+---------------------------------------------------------------+---------------+ | :ref:`float` | :ref:`swing_span` | ``0.7853982`` | +---------------------------+---------------------------------------------------------------+---------------+ | :ref:`float` | :ref:`twist_span` | ``3.1415927`` | +---------------------------+---------------------------------------------------------------+---------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_param`\ (\ param\: :ref:`Param`\ ) |const| | +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_param`\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) | +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_ConeTwistJoint3D_Param: .. rst-class:: classref-enumeration enum **Param**: :ref:`🔗` .. _class_ConeTwistJoint3D_constant_PARAM_SWING_SPAN: .. rst-class:: classref-enumeration-constant :ref:`Param` **PARAM_SWING_SPAN** = ``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 along the swing axis. Could be defined as looseness in the **ConeTwistJoint3D**. If below 0.05, this behavior is locked. .. _class_ConeTwistJoint3D_constant_PARAM_TWIST_SPAN: .. rst-class:: classref-enumeration-constant :ref:`Param` **PARAM_TWIST_SPAN** = ``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. .. _class_ConeTwistJoint3D_constant_PARAM_BIAS: .. rst-class:: classref-enumeration-constant :ref:`Param` **PARAM_BIAS** = ``2`` The speed with which the swing or twist will take place. The higher, the faster. .. _class_ConeTwistJoint3D_constant_PARAM_SOFTNESS: .. rst-class:: classref-enumeration-constant :ref:`Param` **PARAM_SOFTNESS** = ``3`` The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint. .. _class_ConeTwistJoint3D_constant_PARAM_RELAXATION: .. rst-class:: classref-enumeration-constant :ref:`Param` **PARAM_RELAXATION** = ``4`` Defines, how fast the swing- and twist-speed-difference on both sides gets synced. .. _class_ConeTwistJoint3D_constant_PARAM_MAX: .. rst-class:: classref-enumeration-constant :ref:`Param` **PARAM_MAX** = ``5`` Represents the size of the :ref:`Param` enum. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_ConeTwistJoint3D_property_bias: .. rst-class:: classref-property :ref:`float` **bias** = ``0.3`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_param**\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) - :ref:`float` **get_param**\ (\ param\: :ref:`Param`\ ) |const| The speed with which the swing or twist will take place. The higher, the faster. .. rst-class:: classref-item-separator ---- .. _class_ConeTwistJoint3D_property_relaxation: .. rst-class:: classref-property :ref:`float` **relaxation** = ``1.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_param**\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) - :ref:`float` **get_param**\ (\ param\: :ref:`Param`\ ) |const| Defines, how fast the swing- and twist-speed-difference on both sides gets synced. .. rst-class:: classref-item-separator ---- .. _class_ConeTwistJoint3D_property_softness: .. rst-class:: classref-property :ref:`float` **softness** = ``0.8`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_param**\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) - :ref:`float` **get_param**\ (\ param\: :ref:`Param`\ ) |const| The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint. .. rst-class:: classref-item-separator ---- .. _class_ConeTwistJoint3D_property_swing_span: .. rst-class:: classref-property :ref:`float` **swing_span** = ``0.7853982`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_param**\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) - :ref:`float` **get_param**\ (\ param\: :ref:`Param`\ ) |const| 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 along the swing axis. Could be defined as looseness in the **ConeTwistJoint3D**. If below 0.05, this behavior is locked. .. rst-class:: classref-item-separator ---- .. _class_ConeTwistJoint3D_property_twist_span: .. rst-class:: classref-property :ref:`float` **twist_span** = ``3.1415927`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_param**\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) - :ref:`float` **get_param**\ (\ param\: :ref:`Param`\ ) |const| Twist is the rotation around the twist axis, this value defined how far the joint can twist. Twist is locked if below 0.05. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_ConeTwistJoint3D_method_get_param: .. rst-class:: classref-method :ref:`float` **get_param**\ (\ param\: :ref:`Param`\ ) |const| :ref:`🔗` Returns the value of the specified parameter. .. rst-class:: classref-item-separator ---- .. _class_ConeTwistJoint3D_method_set_param: .. rst-class:: classref-method |void| **set_param**\ (\ param\: :ref:`Param`, value\: :ref:`float`\ ) :ref:`🔗` Sets the value of the specified parameter. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`