classref: Sync with latest 4.0-dev

This commit is contained in:
Rémi Verschelde
2021-10-05 16:09:21 +02:00
parent 6952796767
commit f6f6c1bf19
958 changed files with 113054 additions and 52009 deletions

583
classes/class_node3d.rst Normal file
View File

@@ -0,0 +1,583 @@
:github_url: hide
.. Generated automatically by doc/tools/makerst.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/<name>/doc_classes.
.. _class_Node3D:
Node3D
======
**Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
**Inherited By:** :ref:`AudioListener3D<class_AudioListener3D>`, :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>`, :ref:`BoneAttachment3D<class_BoneAttachment3D>`, :ref:`Camera3D<class_Camera3D>`, :ref:`CollisionObject3D<class_CollisionObject3D>`, :ref:`CollisionPolygon3D<class_CollisionPolygon3D>`, :ref:`CollisionShape3D<class_CollisionShape3D>`, :ref:`GridMap<class_GridMap>`, :ref:`ImporterMeshInstance3D<class_ImporterMeshInstance3D>`, :ref:`Joint3D<class_Joint3D>`, :ref:`LightmapProbe<class_LightmapProbe>`, :ref:`NavigationRegion3D<class_NavigationRegion3D>`, :ref:`OccluderInstance3D<class_OccluderInstance3D>`, :ref:`Path3D<class_Path3D>`, :ref:`PathFollow3D<class_PathFollow3D>`, :ref:`Position3D<class_Position3D>`, :ref:`ProximityGroup3D<class_ProximityGroup3D>`, :ref:`RayCast3D<class_RayCast3D>`, :ref:`RemoteTransform3D<class_RemoteTransform3D>`, :ref:`Skeleton3D<class_Skeleton3D>`, :ref:`SpringArm3D<class_SpringArm3D>`, :ref:`VehicleWheel3D<class_VehicleWheel3D>`, :ref:`VisualInstance3D<class_VisualInstance3D>`, :ref:`XRAnchor3D<class_XRAnchor3D>`, :ref:`XRController3D<class_XRController3D>`, :ref:`XROrigin3D<class_XROrigin3D>`
Most basic 3D game object, parent of all 3D-related nodes.
Description
-----------
Most basic 3D game object, with a 3D :ref:`Transform3D<class_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<class_@GlobalScope_method_deg2rad>`.
Tutorials
---------
- :doc:`../tutorials/3d/introduction_to_3d`
- `All 3D Demos <https://github.com/godotengine/godot-demo-projects/tree/master/3d>`__
Properties
----------
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`global_transform<class_Node3D_property_global_transform>` | |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`position<class_Node3D_property_position>` | ``Vector3(0, 0, 0)`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`rotation<class_Node3D_property_rotation>` | ``Vector3(0, 0, 0)`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`scale<class_Node3D_property_scale>` | ``Vector3(1, 1, 1)`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`top_level<class_Node3D_property_top_level>` | ``false`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`transform<class_Node3D_property_transform>` | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`visibility_parent<class_Node3D_property_visibility_parent>` | ``NodePath("")`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`visible<class_Node3D_property_visible>` | ``true`` |
+---------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+
Methods
-------
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`add_gizmo<class_Node3D_method_add_gizmo>` **(** :ref:`Node3DGizmo<class_Node3DGizmo>` gizmo **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`clear_gizmos<class_Node3D_method_clear_gizmos>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`clear_subgizmo_selection<class_Node3D_method_clear_subgizmo_selection>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`force_update_transform<class_Node3D_method_force_update_transform>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`get_gizmos<class_Node3D_method_get_gizmos>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Node3D<class_Node3D>` | :ref:`get_parent_node_3d<class_Node3D_method_get_parent_node_3d>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`World3D<class_World3D>` | :ref:`get_world_3d<class_Node3D_method_get_world_3d>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`global_rotate<class_Node3D_method_global_rotate>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`global_scale<class_Node3D_method_global_scale>` **(** :ref:`Vector3<class_Vector3>` scale **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`global_translate<class_Node3D_method_global_translate>` **(** :ref:`Vector3<class_Vector3>` offset **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`hide<class_Node3D_method_hide>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_local_transform_notification_enabled<class_Node3D_method_is_local_transform_notification_enabled>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_scale_disabled<class_Node3D_method_is_scale_disabled>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_transform_notification_enabled<class_Node3D_method_is_transform_notification_enabled>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_visible_in_tree<class_Node3D_method_is_visible_in_tree>` **(** **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`look_at<class_Node3D_method_look_at>` **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`look_at_from_position<class_Node3D_method_look_at_from_position>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`orthonormalize<class_Node3D_method_orthonormalize>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`rotate<class_Node3D_method_rotate>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`rotate_object_local<class_Node3D_method_rotate_object_local>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`rotate_x<class_Node3D_method_rotate_x>` **(** :ref:`float<class_float>` angle **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`rotate_y<class_Node3D_method_rotate_y>` **(** :ref:`float<class_float>` angle **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`rotate_z<class_Node3D_method_rotate_z>` **(** :ref:`float<class_float>` angle **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`scale_object_local<class_Node3D_method_scale_object_local>` **(** :ref:`Vector3<class_Vector3>` scale **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_disable_scale<class_Node3D_method_set_disable_scale>` **(** :ref:`bool<class_bool>` disable **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_identity<class_Node3D_method_set_identity>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_ignore_transform_notification<class_Node3D_method_set_ignore_transform_notification>` **(** :ref:`bool<class_bool>` enabled **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_notify_local_transform<class_Node3D_method_set_notify_local_transform>` **(** :ref:`bool<class_bool>` enable **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_notify_transform<class_Node3D_method_set_notify_transform>` **(** :ref:`bool<class_bool>` enable **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`show<class_Node3D_method_show>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`to_global<class_Node3D_method_to_global>` **(** :ref:`Vector3<class_Vector3>` local_point **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`to_local<class_Node3D_method_to_local>` **(** :ref:`Vector3<class_Vector3>` global_point **)** |const| |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`translate<class_Node3D_method_translate>` **(** :ref:`Vector3<class_Vector3>` offset **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`translate_object_local<class_Node3D_method_translate_object_local>` **(** :ref:`Vector3<class_Vector3>` offset **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`update_gizmos<class_Node3D_method_update_gizmos>` **(** **)** |
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Signals
-------
.. _class_Node3D_signal_visibility_changed:
- **visibility_changed** **(** **)**
Emitted when node visibility changes.
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<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>` to work, users first need to ask for it, with :ref:`set_notify_transform<class_Node3D_method_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<class_World3D>` resource.
- **NOTIFICATION_EXIT_WORLD** = **42** --- Node3D nodes receives this notification when they are unregistered from current :ref:`World3D<class_World3D>` resource.
- **NOTIFICATION_VISIBILITY_CHANGED** = **43** --- Node3D nodes receives this notification when their visibility changes.
Property Descriptions
---------------------
.. _class_Node3D_property_global_transform:
- :ref:`Transform3D<class_Transform3D>` **global_transform**
+----------+-----------------------------+
| *Setter* | set_global_transform(value) |
+----------+-----------------------------+
| *Getter* | get_global_transform() |
+----------+-----------------------------+
World3D space (global) :ref:`Transform3D<class_Transform3D>` of this node.
----
.. _class_Node3D_property_position:
- :ref:`Vector3<class_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_rotation:
- :ref:`Vector3<class_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 YXZ-Euler angles in the format (X angle, Y angle, Z angle).
**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<class_Vector3>` data structure not because the rotation is a vector, but only because :ref:`Vector3<class_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_scale:
- :ref:`Vector3<class_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<class_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<class_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<class_Transform3D>` of this node, with respect to the parent node.
----
.. _class_Node3D_property_visibility_parent:
- :ref:`NodePath<class_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<class_GeometryInstance3D_property_visibility_range_begin>`. Nodes hidden via the :ref:`visible<class_Node3D_property_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<class_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<class_Node3D_method_is_visible_in_tree>` must return ``true``).
Method Descriptions
-------------------
.. _class_Node3D_method_add_gizmo:
- void **add_gizmo** **(** :ref:`Node3DGizmo<class_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<class_Array>` **get_gizmos** **(** **)** |const|
Returns all the gizmos attached to this ``Node3D``.
----
.. _class_Node3D_method_get_parent_node_3d:
- :ref:`Node3D<class_Node3D>` **get_parent_node_3d** **(** **)** |const|
Returns the parent ``Node3D``, or an empty :ref:`Object<class_Object>` if no parent exists or parent is not of type ``Node3D``.
----
.. _class_Node3D_method_get_world_3d:
- :ref:`World3D<class_World3D>` **get_world_3d** **(** **)** |const|
Returns the current :ref:`World3D<class_World3D>` resource this ``Node3D`` node is registered to.
----
.. _class_Node3D_method_global_rotate:
- void **global_rotate** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
Rotates the global (world) transformation around axis, a unit :ref:`Vector3<class_Vector3>`, by specified angle in radians. The rotation axis is in global coordinate system.
----
.. _class_Node3D_method_global_scale:
- void **global_scale** **(** :ref:`Vector3<class_Vector3>` scale **)**
Scales the global (world) transformation by the given :ref:`Vector3<class_Vector3>` scale factors.
----
.. _class_Node3D_method_global_translate:
- void **global_translate** **(** :ref:`Vector3<class_Vector3>` offset **)**
Moves the global (world) transformation by :ref:`Vector3<class_Vector3>` offset. The offset is in global coordinate system.
----
.. _class_Node3D_method_hide:
- void **hide** **(** **)**
Disables rendering of this node. Changes :ref:`visible<class_Node3D_property_visible>` to ``false``.
----
.. _class_Node3D_method_is_local_transform_notification_enabled:
- :ref:`bool<class_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<class_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<class_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<class_bool>` **is_visible_in_tree** **(** **)** |const|
Returns ``true`` if the node is present in the :ref:`SceneTree<class_SceneTree>`, its :ref:`visible<class_Node3D_property_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<class_Vector3>` target, :ref:`Vector3<class_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<class_Vector3>` position, :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_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<class_Node3D_method_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_Transform3D>`.
----
.. _class_Node3D_method_rotate:
- void **rotate** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
Rotates the local transformation around axis, a unit :ref:`Vector3<class_Vector3>`, by specified angle in radians.
----
.. _class_Node3D_method_rotate_object_local:
- void **rotate_object_local** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
Rotates the local transformation around axis, a unit :ref:`Vector3<class_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<class_float>` angle **)**
Rotates the local transformation around the X axis by angle in radians.
----
.. _class_Node3D_method_rotate_y:
- void **rotate_y** **(** :ref:`float<class_float>` angle **)**
Rotates the local transformation around the Y axis by angle in radians.
----
.. _class_Node3D_method_rotate_z:
- void **rotate_z** **(** :ref:`float<class_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<class_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<class_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<class_Transform3D>` to the identity matrix).
----
.. _class_Node3D_method_set_ignore_transform_notification:
- void **set_ignore_transform_notification** **(** :ref:`bool<class_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<class_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<class_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_show:
- void **show** **(** **)**
Enables rendering of this node. Changes :ref:`visible<class_Node3D_property_visible>` to ``true``.
----
.. _class_Node3D_method_to_global:
- :ref:`Vector3<class_Vector3>` **to_global** **(** :ref:`Vector3<class_Vector3>` local_point **)** |const|
Transforms ``local_point`` from this node's local space to world space.
----
.. _class_Node3D_method_to_local:
- :ref:`Vector3<class_Vector3>` **to_local** **(** :ref:`Vector3<class_Vector3>` global_point **)** |const|
Transforms ``global_point`` from world space to this node's local space.
----
.. _class_Node3D_method_translate:
- void **translate** **(** :ref:`Vector3<class_Vector3>` offset **)**
Changes the node's position by the given offset :ref:`Vector3<class_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<class_Vector3>` offset **)**
Changes the node's position by the given offset :ref:`Vector3<class_Vector3>` in local space.
----
.. _class_Node3D_method_update_gizmos:
- void **update_gizmos** **(** **)**
Updates all the :ref:`Node3DGizmo<class_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.)`