Used by the editor to define Spatial gizmo types. 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 [EditorSpatialGizmo] type. See the tutorial in the documentation for more info. https://docs.godotengine.org/en/3.3/tutorials/plugins/editor/spatial_gizmos.html Adds a new material to the internal material list for the plugin. It can then be accessed with [method get_material]. Should not be overridden. Override this method to define whether the gizmo can be hidden or not. Returns [code]true[/code] if not overridden. Override this method to commit gizmo handles. Called for this plugin's active gizmos. Override this method to return a custom [EditorSpatialGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. See also [method has_gizmo]. 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 [method get_material] and used in [method EditorSpatialGizmo.add_handles]. Should not be overridden. 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 [method get_material] and used in [method EditorSpatialGizmo.add_unscaled_billboard]. Should not be overridden. 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 [method get_material] and used in [method EditorSpatialGizmo.add_mesh] and [method EditorSpatialGizmo.add_lines]. Should not be overridden. Override this method to provide gizmo's handle names. Called for this plugin's active gizmos. Gets actual value of a handle from gizmo. Called for this plugin's active gizmos. Gets material from the internal list of materials. If an [EditorSpatialGizmo] is provided, it will try to get the corresponding variant (selected and/or editable). Override this method to provide the name that will appear in the gizmo visibility menu. 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 [code]-1[/code]. If not overridden, this method will return [code]0[/code], which means custom gizmos will automatically override built-in gizmos. Override this method to define which Spatial nodes have a gizmo from this plugin. Whenever a [Spatial] node is added to a scene this method is called, if it returns [code]true[/code] the node gets a generic [EditorSpatialGizmo] assigned and is added to this plugin's list of active gizmos. Gets whether a handle is highlighted or not. Called for this plugin's active gizmos. Override this method to define whether a Spatial with this gizmo should be selectable even when the gizmo is hidden. Callback to redraw the provided gizmo. Called for this plugin's active gizmos. Update the value of a handle after it has been updated. Called for this plugin's active gizmos.