:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the Node3D.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_Node3D: Node3D ====== **Inherits:** :ref:`Node` **<** :ref:`Object` **Inherited By:** :ref:`AudioListener3D`, :ref:`AudioStreamPlayer3D`, :ref:`BoneAttachment3D`, :ref:`Camera3D`, :ref:`CollisionObject3D`, :ref:`CollisionPolygon3D`, :ref:`CollisionShape3D`, :ref:`GridMap`, :ref:`ImporterMeshInstance3D`, :ref:`Joint3D`, :ref:`LightmapProbe`, :ref:`NavigationRegion3D`, :ref:`OccluderInstance3D`, :ref:`Path3D`, :ref:`PathFollow3D`, :ref:`Position3D`, :ref:`RayCast3D`, :ref:`RemoteTransform3D`, :ref:`Skeleton3D`, :ref:`SpringArm3D`, :ref:`VehicleWheel3D`, :ref:`VisualInstance3D`, :ref:`XRNode3D`, :ref:`XROrigin3D` Most basic 3D game object, parent of all 3D-related nodes. Description ----------- Most basic 3D game object, with a 3D :ref:`Transform3D` and visibility settings. All other 3D game objects inherit from Node3D. Use ``Node3D`` as a parent node to move, scale, rotate and show/hide children in a 3D project. Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the ``Node3D`` object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the ``Node3D``'s transform. The word local below refers to this coordinate system. The coordinate system that is attached to the ``Node3D`` object itself is referred to as object-local coordinate system. \ **Note:** Unless otherwise specified, all methods that have angle parameters must have angles specified as *radians*. To convert degrees to radians, use :ref:`@GlobalScope.deg2rad`. Tutorials --------- - :doc:`Introduction to 3D <../tutorials/3d/introduction_to_3d>` - `All 3D Demos `__ Properties ---------- +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Basis` | :ref:`basis` | | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Transform3D` | :ref:`global_transform` | | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`position` | ``Vector3(0, 0, 0)`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Quaternion` | :ref:`quaternion` | | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`rotation` | ``Vector3(0, 0, 0)`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`RotationEditMode` | :ref:`rotation_edit_mode` | ``0`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`RotationOrder` | :ref:`rotation_order` | ``2`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`scale` | ``Vector3(1, 1, 1)`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`bool` | :ref:`top_level` | ``false`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Transform3D` | :ref:`transform` | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`NodePath` | :ref:`visibility_parent` | ``NodePath("")`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`bool` | :ref:`visible` | ``true`` | +-------------------------------------------------------+---------------------------------------------------------------------+-----------------------------------------------------+ Methods ------- +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_gizmo` **(** :ref:`Node3DGizmo` gizmo **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`clear_gizmos` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`clear_subgizmo_selection` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`force_update_transform` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_gizmos` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Node3D` | :ref:`get_parent_node_3d` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`World3D` | :ref:`get_world_3d` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`global_rotate` **(** :ref:`Vector3` axis, :ref:`float` angle **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`global_scale` **(** :ref:`Vector3` scale **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`global_translate` **(** :ref:`Vector3` offset **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`hide` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_local_transform_notification_enabled` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_scale_disabled` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_transform_notification_enabled` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_visible_in_tree` **(** **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`look_at` **(** :ref:`Vector3` target, :ref:`Vector3` up=Vector3(0, 1, 0) **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`look_at_from_position` **(** :ref:`Vector3` position, :ref:`Vector3` target, :ref:`Vector3` up=Vector3(0, 1, 0) **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`orthonormalize` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`property_can_revert` **(** :ref:`String` name **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`property_get_revert` **(** :ref:`String` name **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rotate` **(** :ref:`Vector3` axis, :ref:`float` angle **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rotate_object_local` **(** :ref:`Vector3` axis, :ref:`float` angle **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rotate_x` **(** :ref:`float` angle **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rotate_y` **(** :ref:`float` angle **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rotate_z` **(** :ref:`float` angle **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`scale_object_local` **(** :ref:`Vector3` scale **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_disable_scale` **(** :ref:`bool` disable **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_identity` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_ignore_transform_notification` **(** :ref:`bool` enabled **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_notify_local_transform` **(** :ref:`bool` enable **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_notify_transform` **(** :ref:`bool` enable **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_subgizmo_selection` **(** :ref:`Node3DGizmo` gizmo, :ref:`int` id, :ref:`Transform3D` transform **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`show` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`to_global` **(** :ref:`Vector3` local_point **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`to_local` **(** :ref:`Vector3` global_point **)** |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`translate` **(** :ref:`Vector3` offset **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`translate_object_local` **(** :ref:`Vector3` offset **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`update_gizmos` **(** **)** | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Signals ------- .. _class_Node3D_signal_visibility_changed: - **visibility_changed** **(** **)** Emitted when node visibility changes. Enumerations ------------ .. _enum_Node3D_RotationEditMode: .. _class_Node3D_constant_ROTATION_EDIT_MODE_EULER: .. _class_Node3D_constant_ROTATION_EDIT_MODE_QUATERNION: .. _class_Node3D_constant_ROTATION_EDIT_MODE_BASIS: enum **RotationEditMode**: - **ROTATION_EDIT_MODE_EULER** = **0** - **ROTATION_EDIT_MODE_QUATERNION** = **1** - **ROTATION_EDIT_MODE_BASIS** = **2** ---- .. _enum_Node3D_RotationOrder: .. _class_Node3D_constant_ROTATION_ORDER_XYZ: .. _class_Node3D_constant_ROTATION_ORDER_XZY: .. _class_Node3D_constant_ROTATION_ORDER_YXZ: .. _class_Node3D_constant_ROTATION_ORDER_YZX: .. _class_Node3D_constant_ROTATION_ORDER_ZXY: .. _class_Node3D_constant_ROTATION_ORDER_ZYX: enum **RotationOrder**: - **ROTATION_ORDER_XYZ** = **0** - **ROTATION_ORDER_XZY** = **1** - **ROTATION_ORDER_YXZ** = **2** - **ROTATION_ORDER_YZX** = **3** - **ROTATION_ORDER_ZXY** = **4** - **ROTATION_ORDER_ZYX** = **5** Constants --------- .. _class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED: .. _class_Node3D_constant_NOTIFICATION_ENTER_WORLD: .. _class_Node3D_constant_NOTIFICATION_EXIT_WORLD: .. _class_Node3D_constant_NOTIFICATION_VISIBILITY_CHANGED: - **NOTIFICATION_TRANSFORM_CHANGED** = **2000** --- Node3D nodes receives this notification when their global transform changes. This means that either the current or a parent node changed its transform. In order for :ref:`NOTIFICATION_TRANSFORM_CHANGED` to work, users first need to ask for it, with :ref:`set_notify_transform`. The notification is also sent if the node is in the editor context and it has at least one valid gizmo. - **NOTIFICATION_ENTER_WORLD** = **41** --- Node3D nodes receives this notification when they are registered to new :ref:`World3D` resource. - **NOTIFICATION_EXIT_WORLD** = **42** --- Node3D nodes receives this notification when they are unregistered from current :ref:`World3D` resource. - **NOTIFICATION_VISIBILITY_CHANGED** = **43** --- Node3D nodes receives this notification when their visibility changes. Property Descriptions --------------------- .. _class_Node3D_property_basis: - :ref:`Basis` **basis** +----------+------------------+ | *Setter* | set_basis(value) | +----------+------------------+ | *Getter* | get_basis() | +----------+------------------+ Direct access to the 3x3 basis of the :ref:`Transform3D` property. ---- .. _class_Node3D_property_global_transform: - :ref:`Transform3D` **global_transform** +----------+-----------------------------+ | *Setter* | set_global_transform(value) | +----------+-----------------------------+ | *Getter* | get_global_transform() | +----------+-----------------------------+ World3D space (global) :ref:`Transform3D` of this node. ---- .. _class_Node3D_property_position: - :ref:`Vector3` **position** +-----------+----------------------+ | *Default* | ``Vector3(0, 0, 0)`` | +-----------+----------------------+ | *Setter* | set_position(value) | +-----------+----------------------+ | *Getter* | get_position() | +-----------+----------------------+ Local position or translation of this node relative to the parent. This is equivalent to ``transform.origin``. ---- .. _class_Node3D_property_quaternion: - :ref:`Quaternion` **quaternion** +----------+-----------------------+ | *Setter* | set_quaternion(value) | +----------+-----------------------+ | *Getter* | get_quaternion() | +----------+-----------------------+ Access to the node rotation as a :ref:`Quaternion`. This property is ideal for tweening complex rotations. ---- .. _class_Node3D_property_rotation: - :ref:`Vector3` **rotation** +-----------+----------------------+ | *Default* | ``Vector3(0, 0, 0)`` | +-----------+----------------------+ | *Setter* | set_rotation(value) | +-----------+----------------------+ | *Getter* | get_rotation() | +-----------+----------------------+ Rotation part of the local transformation in radians, specified in terms of Euler angles. The angles construct a rotaton in the order specified by the :ref:`rotation_order` property. \ **Note:** In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a :ref:`Vector3` data structure not because the rotation is a vector, but only because :ref:`Vector3` exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful. ---- .. _class_Node3D_property_rotation_edit_mode: - :ref:`RotationEditMode` **rotation_edit_mode** +-----------+-------------------------------+ | *Default* | ``0`` | +-----------+-------------------------------+ | *Setter* | set_rotation_edit_mode(value) | +-----------+-------------------------------+ | *Getter* | get_rotation_edit_mode() | +-----------+-------------------------------+ Specify how rotation (and scale) will be presented in the editor. ---- .. _class_Node3D_property_rotation_order: - :ref:`RotationOrder` **rotation_order** +-----------+---------------------------+ | *Default* | ``2`` | +-----------+---------------------------+ | *Setter* | set_rotation_order(value) | +-----------+---------------------------+ | *Getter* | get_rotation_order() | +-----------+---------------------------+ Specify the axis rotation order of the :ref:`rotation` property. The final orientation is constructed by rotating the Euler angles in the order specified by this property. ---- .. _class_Node3D_property_scale: - :ref:`Vector3` **scale** +-----------+----------------------+ | *Default* | ``Vector3(1, 1, 1)`` | +-----------+----------------------+ | *Setter* | set_scale(value) | +-----------+----------------------+ | *Getter* | get_scale() | +-----------+----------------------+ Scale part of the local transformation. ---- .. _class_Node3D_property_top_level: - :ref:`bool` **top_level** +-----------+-------------------------+ | *Default* | ``false`` | +-----------+-------------------------+ | *Setter* | set_as_top_level(value) | +-----------+-------------------------+ | *Getter* | is_set_as_top_level() | +-----------+-------------------------+ If ``true``, the node will not inherit its transformations from its parent. Node transformations are only in global space. ---- .. _class_Node3D_property_transform: - :ref:`Transform3D` **transform** +-----------+-----------------------------------------------------+ | *Default* | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +-----------+-----------------------------------------------------+ | *Setter* | set_transform(value) | +-----------+-----------------------------------------------------+ | *Getter* | get_transform() | +-----------+-----------------------------------------------------+ Local space :ref:`Transform3D` of this node, with respect to the parent node. ---- .. _class_Node3D_property_visibility_parent: - :ref:`NodePath` **visibility_parent** +-----------+------------------------------+ | *Default* | ``NodePath("")`` | +-----------+------------------------------+ | *Setter* | set_visibility_parent(value) | +-----------+------------------------------+ | *Getter* | get_visibility_parent() | +-----------+------------------------------+ Defines the visibility range parent for this node and its subtree. The visibility parent must be a GeometryInstance3D. Any visual instance will only be visible if the visibility parent (and all of its visibility ancestors) is hidden by being closer to the camera than its own :ref:`GeometryInstance3D.visibility_range_begin`. Nodes hidden via the :ref:`visible` property are essentially removed from the visibility dependency tree, so dependent instances will not take the hidden node or its ancestors into account. ---- .. _class_Node3D_property_visible: - :ref:`bool` **visible** +-----------+--------------------+ | *Default* | ``true`` | +-----------+--------------------+ | *Setter* | set_visible(value) | +-----------+--------------------+ | *Getter* | is_visible() | +-----------+--------------------+ If ``true``, this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, :ref:`is_visible_in_tree` must return ``true``). Method Descriptions ------------------- .. _class_Node3D_method_add_gizmo: - void **add_gizmo** **(** :ref:`Node3DGizmo` gizmo **)** Attach a gizmo to this ``Node3D``. ---- .. _class_Node3D_method_clear_gizmos: - void **clear_gizmos** **(** **)** Clear all gizmos attached to this ``Node3D``. ---- .. _class_Node3D_method_clear_subgizmo_selection: - void **clear_subgizmo_selection** **(** **)** Clears subgizmo selection for this node in the editor. Useful when subgizmo IDs become invalid after a property change. ---- .. _class_Node3D_method_force_update_transform: - void **force_update_transform** **(** **)** Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. ---- .. _class_Node3D_method_get_gizmos: - :ref:`Array` **get_gizmos** **(** **)** |const| Returns all the gizmos attached to this ``Node3D``. ---- .. _class_Node3D_method_get_parent_node_3d: - :ref:`Node3D` **get_parent_node_3d** **(** **)** |const| Returns the parent ``Node3D``, or an empty :ref:`Object` if no parent exists or parent is not of type ``Node3D``. ---- .. _class_Node3D_method_get_world_3d: - :ref:`World3D` **get_world_3d** **(** **)** |const| Returns the current :ref:`World3D` resource this ``Node3D`` node is registered to. ---- .. _class_Node3D_method_global_rotate: - void **global_rotate** **(** :ref:`Vector3` axis, :ref:`float` angle **)** Rotates the global (world) transformation around axis, a unit :ref:`Vector3`, by specified angle in radians. The rotation axis is in global coordinate system. ---- .. _class_Node3D_method_global_scale: - void **global_scale** **(** :ref:`Vector3` scale **)** Scales the global (world) transformation by the given :ref:`Vector3` scale factors. ---- .. _class_Node3D_method_global_translate: - void **global_translate** **(** :ref:`Vector3` offset **)** Moves the global (world) transformation by :ref:`Vector3` offset. The offset is in global coordinate system. ---- .. _class_Node3D_method_hide: - void **hide** **(** **)** Disables rendering of this node. Changes :ref:`visible` to ``false``. ---- .. _class_Node3D_method_is_local_transform_notification_enabled: - :ref:`bool` **is_local_transform_notification_enabled** **(** **)** |const| Returns whether node notifies about its local transformation changes. ``Node3D`` will not propagate this by default. ---- .. _class_Node3D_method_is_scale_disabled: - :ref:`bool` **is_scale_disabled** **(** **)** |const| Returns whether this node uses a scale of ``(1, 1, 1)`` or its local transformation scale. ---- .. _class_Node3D_method_is_transform_notification_enabled: - :ref:`bool` **is_transform_notification_enabled** **(** **)** |const| Returns whether the node notifies about its global and local transformation changes. ``Node3D`` will not propagate this by default. ---- .. _class_Node3D_method_is_visible_in_tree: - :ref:`bool` **is_visible_in_tree** **(** **)** |const| Returns ``true`` if the node is present in the :ref:`SceneTree`, its :ref:`visible` property is ``true`` and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree. ---- .. _class_Node3D_method_look_at: - void **look_at** **(** :ref:`Vector3` target, :ref:`Vector3` up=Vector3(0, 1, 0) **)** Rotates the node so that the local forward axis (-Z) points toward the ``target`` position. The local up axis (+Y) points as close to the ``up`` vector as possible while staying perpendicular to the local forward axis. The resulting transform is orthogonal, and the scale is preserved. Non-uniform scaling may not work correctly. The ``target`` position cannot be the same as the node's position, the ``up`` vector cannot be zero, and the direction from the node's position to the ``target`` vector cannot be parallel to the ``up`` vector. Operations take place in global space. ---- .. _class_Node3D_method_look_at_from_position: - void **look_at_from_position** **(** :ref:`Vector3` position, :ref:`Vector3` target, :ref:`Vector3` up=Vector3(0, 1, 0) **)** Moves the node to the specified ``position``, and then rotates the node to point toward the ``target`` as per :ref:`look_at`. Operations take place in global space. ---- .. _class_Node3D_method_orthonormalize: - void **orthonormalize** **(** **)** Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's :ref:`Transform3D`. ---- .. _class_Node3D_method_property_can_revert: - :ref:`bool` **property_can_revert** **(** :ref:`String` name **)** Returns ``true`` if the property identified by ``name`` can be reverted to a default value. ---- .. _class_Node3D_method_property_get_revert: - :ref:`Variant` **property_get_revert** **(** :ref:`String` name **)** Returns the default value of the Node3D property with given ``name``. ---- .. _class_Node3D_method_rotate: - void **rotate** **(** :ref:`Vector3` axis, :ref:`float` angle **)** Rotates the local transformation around axis, a unit :ref:`Vector3`, by specified angle in radians. ---- .. _class_Node3D_method_rotate_object_local: - void **rotate_object_local** **(** :ref:`Vector3` axis, :ref:`float` angle **)** Rotates the local transformation around axis, a unit :ref:`Vector3`, by specified angle in radians. The rotation axis is in object-local coordinate system. ---- .. _class_Node3D_method_rotate_x: - void **rotate_x** **(** :ref:`float` angle **)** Rotates the local transformation around the X axis by angle in radians. ---- .. _class_Node3D_method_rotate_y: - void **rotate_y** **(** :ref:`float` angle **)** Rotates the local transformation around the Y axis by angle in radians. ---- .. _class_Node3D_method_rotate_z: - void **rotate_z** **(** :ref:`float` angle **)** Rotates the local transformation around the Z axis by angle in radians. ---- .. _class_Node3D_method_scale_object_local: - void **scale_object_local** **(** :ref:`Vector3` scale **)** Scales the local transformation by given 3D scale factors in object-local coordinate system. ---- .. _class_Node3D_method_set_disable_scale: - void **set_disable_scale** **(** :ref:`bool` disable **)** Sets whether the node uses a scale of ``(1, 1, 1)`` or its local transformation scale. Changes to the local transformation scale are preserved. ---- .. _class_Node3D_method_set_identity: - void **set_identity** **(** **)** Reset all transformations for this node (sets its :ref:`Transform3D` to the identity matrix). ---- .. _class_Node3D_method_set_ignore_transform_notification: - void **set_ignore_transform_notification** **(** :ref:`bool` enabled **)** Sets whether the node ignores notification that its transformation (global or local) changed. ---- .. _class_Node3D_method_set_notify_local_transform: - void **set_notify_local_transform** **(** :ref:`bool` enable **)** Sets whether the node notifies about its local transformation changes. ``Node3D`` will not propagate this by default. ---- .. _class_Node3D_method_set_notify_transform: - void **set_notify_transform** **(** :ref:`bool` enable **)** Sets whether the node notifies about its global and local transformation changes. ``Node3D`` will not propagate this by default, unless it is in the editor context and it has a valid gizmo. ---- .. _class_Node3D_method_set_subgizmo_selection: - void **set_subgizmo_selection** **(** :ref:`Node3DGizmo` gizmo, :ref:`int` id, :ref:`Transform3D` transform **)** Set subgizmo selection for this node in the editor. ---- .. _class_Node3D_method_show: - void **show** **(** **)** Enables rendering of this node. Changes :ref:`visible` to ``true``. ---- .. _class_Node3D_method_to_global: - :ref:`Vector3` **to_global** **(** :ref:`Vector3` local_point **)** |const| Transforms ``local_point`` from this node's local space to world space. ---- .. _class_Node3D_method_to_local: - :ref:`Vector3` **to_local** **(** :ref:`Vector3` global_point **)** |const| Transforms ``global_point`` from world space to this node's local space. ---- .. _class_Node3D_method_translate: - void **translate** **(** :ref:`Vector3` offset **)** Changes the node's position by the given offset :ref:`Vector3`. Note that the translation ``offset`` is affected by the node's scale, so if scaled by e.g. ``(10, 1, 1)``, a translation by an offset of ``(2, 0, 0)`` would actually add 20 (``2 * 10``) to the X coordinate. ---- .. _class_Node3D_method_translate_object_local: - void **translate_object_local** **(** :ref:`Vector3` offset **)** Changes the node's position by the given offset :ref:`Vector3` in local space. ---- .. _class_Node3D_method_update_gizmos: - void **update_gizmos** **(** **)** Updates all the :ref:`Node3DGizmo`\ s attached to this node. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |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.)`