:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/EditorSpatialGizmoPlugin.xml. .. _class_EditorSpatialGizmoPlugin: EditorSpatialGizmoPlugin ======================== **Inherits:** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` Used by the editor to define Spatial gizmo types. .. rst-class:: classref-introduction-group Description ----------- **EditorSpatialGizmoPlugin** allows you to define a new type of Gizmo. There are two main ways to do so: extending **EditorSpatialGizmoPlugin** for the simpler gizmos, or creating a new :ref:`EditorSpatialGizmo` type. See the tutorial in the documentation for more info. To use **EditorSpatialGizmoPlugin**, register it using the :ref:`EditorPlugin.add_spatial_gizmo_plugin` method first. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`../tutorials/plugins/editor/spatial_gizmos` .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_material` **(** :ref:`String` name, :ref:`Material3D` material **)** | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`can_be_hidden` **(** **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`commit_handle` **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index, :ref:`Variant` restore, :ref:`bool` cancel=false **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`EditorSpatialGizmo` | :ref:`create_gizmo` **(** :ref:`Spatial` spatial **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`create_handle_material` **(** :ref:`String` name, :ref:`bool` billboard=false, :ref:`Texture` texture=null **)** | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`create_icon_material` **(** :ref:`String` name, :ref:`Texture` texture, :ref:`bool` on_top=false, :ref:`Color` color=Color( 1, 1, 1, 1 ) **)** | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`create_material` **(** :ref:`String` name, :ref:`Color` color, :ref:`bool` billboard=false, :ref:`bool` on_top=false, :ref:`bool` use_vertex_color=false **)** | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_handle_name` **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_handle_value` **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Material3D` | :ref:`get_material` **(** :ref:`String` name, :ref:`EditorSpatialGizmo` gizmo=null **)** | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_name` **(** **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_priority` **(** **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_gizmo` **(** :ref:`Spatial` spatial **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_handle_highlighted` **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_selectable_when_hidden` **(** **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`redraw` **(** :ref:`EditorSpatialGizmo` gizmo **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_handle` **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index, :ref:`Camera` camera, :ref:`Vector2` point **)** |virtual| | +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_EditorSpatialGizmoPlugin_method_add_material: .. rst-class:: classref-method void **add_material** **(** :ref:`String` name, :ref:`Material3D` material **)** Adds a new material to the internal material list for the plugin. It can then be accessed with :ref:`get_material`. Should not be overridden. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_can_be_hidden: .. rst-class:: classref-method :ref:`bool` **can_be_hidden** **(** **)** |virtual| Override this method to define whether the gizmo can be hidden or not. Returns ``true`` if not overridden. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_commit_handle: .. rst-class:: classref-method void **commit_handle** **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index, :ref:`Variant` restore, :ref:`bool` cancel=false **)** |virtual| Override this method to commit gizmo handles. Called for this plugin's active gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_create_gizmo: .. rst-class:: classref-method :ref:`EditorSpatialGizmo` **create_gizmo** **(** :ref:`Spatial` spatial **)** |virtual| Override this method to return a custom :ref:`EditorSpatialGizmo` for the spatial nodes of your choice, return ``null`` for the rest of nodes. See also :ref:`has_gizmo`. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_create_handle_material: .. rst-class:: classref-method void **create_handle_material** **(** :ref:`String` name, :ref:`bool` billboard=false, :ref:`Texture` texture=null **)** Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with :ref:`get_material` and used in :ref:`EditorSpatialGizmo.add_handles`. Should not be overridden. You can optionally provide a texture to use instead of the default icon. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_create_icon_material: .. rst-class:: classref-method void **create_icon_material** **(** :ref:`String` name, :ref:`Texture` texture, :ref:`bool` on_top=false, :ref:`Color` color=Color( 1, 1, 1, 1 ) **)** Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with :ref:`get_material` and used in :ref:`EditorSpatialGizmo.add_unscaled_billboard`. Should not be overridden. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_create_material: .. rst-class:: classref-method void **create_material** **(** :ref:`String` name, :ref:`Color` color, :ref:`bool` billboard=false, :ref:`bool` on_top=false, :ref:`bool` use_vertex_color=false **)** Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with :ref:`get_material` and used in :ref:`EditorSpatialGizmo.add_mesh` and :ref:`EditorSpatialGizmo.add_lines`. Should not be overridden. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_get_handle_name: .. rst-class:: classref-method :ref:`String` **get_handle_name** **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index **)** |virtual| Override this method to provide gizmo's handle names. Called for this plugin's active gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_get_handle_value: .. rst-class:: classref-method :ref:`Variant` **get_handle_value** **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index **)** |virtual| Gets actual value of a handle from gizmo. Called for this plugin's active gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_get_material: .. rst-class:: classref-method :ref:`Material3D` **get_material** **(** :ref:`String` name, :ref:`EditorSpatialGizmo` gizmo=null **)** Gets material from the internal list of materials. If an :ref:`EditorSpatialGizmo` is provided, it will try to get the corresponding variant (selected and/or editable). .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_get_name: .. rst-class:: classref-method :ref:`String` **get_name** **(** **)** |virtual| Override this method to provide the name that will appear in the gizmo visibility menu. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_get_priority: .. rst-class:: classref-method :ref:`int` **get_priority** **(** **)** |virtual| Override this method to set the gizmo's priority. Higher values correspond to higher priority. If a gizmo with higher priority conflicts with another gizmo, only the gizmo with higher priority will be used. All built-in editor gizmos return a priority of ``-1``. If not overridden, this method will return ``0``, which means custom gizmos will automatically override built-in gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_has_gizmo: .. rst-class:: classref-method :ref:`bool` **has_gizmo** **(** :ref:`Spatial` spatial **)** |virtual| Override this method to define which Spatial nodes have a gizmo from this plugin. Whenever a :ref:`Spatial` node is added to a scene this method is called, if it returns ``true`` the node gets a generic :ref:`EditorSpatialGizmo` assigned and is added to this plugin's list of active gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_is_handle_highlighted: .. rst-class:: classref-method :ref:`bool` **is_handle_highlighted** **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index **)** |virtual| Gets whether a handle is highlighted or not. Called for this plugin's active gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_is_selectable_when_hidden: .. rst-class:: classref-method :ref:`bool` **is_selectable_when_hidden** **(** **)** |virtual| Override this method to define whether a Spatial with this gizmo should be selectable even when the gizmo is hidden. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_redraw: .. rst-class:: classref-method void **redraw** **(** :ref:`EditorSpatialGizmo` gizmo **)** |virtual| Callback to redraw the provided gizmo. Called for this plugin's active gizmos. .. rst-class:: classref-item-separator ---- .. _class_EditorSpatialGizmoPlugin_method_set_handle: .. rst-class:: classref-method void **set_handle** **(** :ref:`EditorSpatialGizmo` gizmo, :ref:`int` index, :ref:`Camera` camera, :ref:`Vector2` point **)** |virtual| Update the value of a handle after it has been updated. Called for this plugin's active gizmos. .. |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.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`