diff options
Diffstat (limited to 'doc/classes/EditorNode3DGizmoPlugin.xml')
-rw-r--r-- | doc/classes/EditorNode3DGizmoPlugin.xml | 233 |
1 files changed, 150 insertions, 83 deletions
diff --git a/doc/classes/EditorNode3DGizmoPlugin.xml b/doc/classes/EditorNode3DGizmoPlugin.xml index 34657a1c08..10d6bd8bc8 100644 --- a/doc/classes/EditorNode3DGizmoPlugin.xml +++ b/doc/classes/EditorNode3DGizmoPlugin.xml @@ -10,191 +10,258 @@ <link title="Spatial gizmo plugins">https://docs.godotengine.org/en/latest/tutorials/plugins/editor/spatial_gizmos.html</link> </tutorials> <methods> - <method name="add_material"> - <return type="void"> + <method name="_can_be_hidden" qualifiers="virtual"> + <return type="bool"> </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="material" type="StandardMaterial3D"> - </argument> <description> - 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 gizmos handled by this plugin can be hidden or not. Returns [code]true[/code] if not overridden. </description> </method> - <method name="can_be_hidden" qualifiers="virtual"> - <return type="bool"> + <method name="_commit_handle" qualifiers="virtual"> + <return type="void"> </return> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> + </argument> + <argument index="1" name="id" type="int"> + </argument> + <argument index="2" name="restore" type="Variant"> + </argument> + <argument index="3" name="cancel" type="bool" default="false"> + </argument> <description> - 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 a handle being edited (handles must have been previously added by [method EditorNode3DGizmo.add_handles] during [method _redraw]). This usually means creating an [UndoRedo] action for the change, using the current handle value as "do" and the [code]restore[/code] argument as "undo". + If the [code]cancel[/code] argument is [code]true[/code], the [code]restore[/code] value should be directly set, without any [UndoRedo] action. Called for this plugin's active gizmos. </description> </method> - <method name="commit_handle" qualifiers="virtual"> + <method name="_commit_subgizmos" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="1" name="index" type="int"> + <argument index="1" name="ids" type="PackedInt32Array"> </argument> - <argument index="2" name="restore" type="Variant"> + <argument index="2" name="restore" type="Array"> </argument> <argument index="3" name="cancel" type="bool" default="false"> </argument> <description> - Override this method to commit gizmo handles. Called for this plugin's active gizmos. + Override this method to commit a group of subgizmos being edited (see [method _subgizmos_intersect_ray] and [method _subgizmos_intersect_frustum]). This usually means creating an [UndoRedo] action for the change, using the current transforms as "do" and the [code]restore[/code] transforms as "undo". + If the [code]cancel[/code] argument is [code]true[/code], the [code]restore[/code] transforms should be directly set, without any [UndoRedo] action. Called for this plugin's active gizmos. </description> </method> - <method name="create_gizmo" qualifiers="virtual"> + <method name="_create_gizmo" qualifiers="virtual"> <return type="EditorNode3DGizmo"> </return> <argument index="0" name="spatial" type="Node3D"> </argument> <description> - Override this method to return a custom [EditorNode3DGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. See also [method has_gizmo]. + Override this method to return a custom [EditorNode3DGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. See also [method _has_gizmo]. </description> </method> - <method name="create_handle_material"> - <return type="void"> + <method name="_get_gizmo_name" qualifiers="virtual"> + <return type="String"> </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="billboard" type="bool" default="false"> - </argument> - <argument index="2" name="texture" type="Texture2D" default="null"> - </argument> <description> - 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 EditorNode3DGizmo.add_handles]. Should not be overridden. - You can optionally provide a texture to use instead of the default icon. + Override this method to provide the name that will appear in the gizmo visibility menu. </description> </method> - <method name="create_icon_material"> - <return type="void"> + <method name="_get_handle_name" qualifiers="virtual"> + <return type="String"> </return> - <argument index="0" name="name" type="String"> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="1" name="texture" type="Texture2D"> + <argument index="1" name="id" type="int"> </argument> - <argument index="2" name="on_top" type="bool" default="false"> + <description> + Override this method to provide gizmo's handle names. Called for this plugin's active gizmos. + </description> + </method> + <method name="_get_handle_value" qualifiers="virtual"> + <return type="Variant"> + </return> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="3" name="color" type="Color" default="Color( 1, 1, 1, 1 )"> + <argument index="1" name="id" type="int"> </argument> <description> - 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 EditorNode3DGizmo.add_unscaled_billboard]. Should not be overridden. + Override this method to return the current value of a handle. This value will be requested at the start of an edit and used as the [code]restore[/code] argument in [method _commit_handle]. Called for this plugin's active gizmos. </description> </method> - <method name="create_material"> - <return type="void"> + <method name="_get_priority" qualifiers="virtual"> + <return type="int"> </return> - <argument index="0" name="name" type="String"> + <description> + Override this method to set the gizmo's priority. Gizmos with higher priority will have precedence when processing inputs like handles or subgizmos selection. + 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 get higher priority than built-in gizmos. + </description> + </method> + <method name="_get_subgizmo_transform" qualifiers="virtual"> + <return type="Transform3D"> + </return> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="1" name="color" type="Color"> + <argument index="1" name="id" type="int"> </argument> - <argument index="2" name="billboard" type="bool" default="false"> + <description> + Override this method to return the current transform of a subgizmo. This transform will be requested at the start of an edit and used in the [code]restore[/code] argument in [method _commit_subgizmos]. Called for this plugin's active gizmos. + </description> + </method> + <method name="_has_gizmo" qualifiers="virtual"> + <return type="bool"> + </return> + <argument index="0" name="spatial" type="Node3D"> </argument> - <argument index="3" name="on_top" type="bool" default="false"> + <description> + Override this method to define which Node3D nodes have a gizmo from this plugin. Whenever a [Node3D] node is added to a scene this method is called, if it returns [code]true[/code] the node gets a generic [EditorNode3DGizmo] assigned and is added to this plugin's list of active gizmos. + </description> + </method> + <method name="_is_handle_highlighted" qualifiers="virtual"> + <return type="bool"> + </return> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="4" name="use_vertex_color" type="bool" default="false"> + <argument index="1" name="id" type="int"> </argument> <description> - 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 EditorNode3DGizmo.add_mesh] and [method EditorNode3DGizmo.add_lines]. Should not be overridden. + Override this method to return [code]true[/code] whenever to given handle should be highlighted in the editor. Called for this plugin's active gizmos. </description> </method> - <method name="get_gizmo_name" qualifiers="virtual"> - <return type="String"> + <method name="_is_selectable_when_hidden" qualifiers="virtual"> + <return type="bool"> </return> <description> - Override this method to provide the name that will appear in the gizmo visibility menu. + Override this method to define whether Node3D with this gizmo should be selectable even when the gizmo is hidden. </description> </method> - <method name="get_handle_name" qualifiers="virtual"> - <return type="String"> + <method name="_redraw" qualifiers="virtual"> + <return type="void"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="1" name="index" type="int"> - </argument> <description> - Override this method to provide gizmo's handle names. Called for this plugin's active gizmos. + Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call [method EditorNode3DGizmo.clear] at the beginning of this method and then add visual elements depending on the node's properties. </description> </method> - <method name="get_handle_value" qualifiers="virtual"> - <return type="Variant"> + <method name="_set_handle" qualifiers="virtual"> + <return type="void"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="1" name="index" type="int"> + <argument index="1" name="id" type="int"> + </argument> + <argument index="2" name="camera" type="Camera3D"> + </argument> + <argument index="3" name="point" type="Vector2"> </argument> <description> - Gets actual value of a handle from gizmo. Called for this plugin's active gizmos. + Override this method to update the node's properties when the user drags a gizmo handle (previously added with [method EditorNode3DGizmo.add_handles]). The provided [code]point[/code] is the mouse position in screen coordinates and the [code]camera[/code] can be used to convert it to raycasts. Called for this plugin's active gizmos. </description> </method> - <method name="get_material"> - <return type="StandardMaterial3D"> + <method name="_set_subgizmo_transform" qualifiers="virtual"> + <return type="void"> </return> - <argument index="0" name="name" type="String"> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> </argument> - <argument index="1" name="gizmo" type="EditorNode3DGizmo" default="null"> + <argument index="1" name="id" type="int"> + </argument> + <argument index="2" name="transform" type="Transform3D"> </argument> <description> - Gets material from the internal list of materials. If an [EditorNode3DGizmo] is provided, it will try to get the corresponding variant (selected and/or editable). + Override this method to update the node properties during subgizmo editing (see [method _subgizmos_intersect_ray] and [method _subgizmos_intersect_frustum]). The [code]transform[/code] is given in the Node3D's local coordinate system. Called for this plugin's active gizmos. </description> </method> - <method name="get_priority" qualifiers="virtual"> - <return type="int"> + <method name="_subgizmos_intersect_frustum" qualifiers="virtual"> + <return type="PackedInt32Array"> </return> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> + </argument> + <argument index="1" name="camera" type="Camera3D"> + </argument> + <argument index="2" name="frustum" type="Array"> + </argument> <description> - 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 allow selecting subgizmos using mouse drag box selection. Given a [code]camera[/code] and a [code]frustum[/code], this method should return which subgizmos are contained within the frustum. The [code]frustum[/code] argument consists of an [code]Array[/code] with all the [code]Plane[/code]s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, these identifiers can have any non-negative value and will be used in other virtual methods like [method _get_subgizmo_transform] or [method _commit_subgizmos]. Called for this plugin's active gizmos. </description> </method> - <method name="has_gizmo" qualifiers="virtual"> - <return type="bool"> + <method name="_subgizmos_intersect_ray" qualifiers="virtual"> + <return type="int"> </return> - <argument index="0" name="spatial" type="Node3D"> + <argument index="0" name="gizmo" type="EditorNode3DGizmo"> + </argument> + <argument index="1" name="camera" type="Camera3D"> + </argument> + <argument index="2" name="point" type="Vector2"> </argument> <description> - Override this method to define which Node3D nodes have a gizmo from this plugin. Whenever a [Node3D] node is added to a scene this method is called, if it returns [code]true[/code] the node gets a generic [EditorNode3DGizmo] assigned and is added to this plugin's list of active gizmos. + Override this method to allow selecting subgizmos using mouse clicks. Given a [code]camera[/code] and a [code]point[/code] in screen coordinates, this method should return which subgizmo should be selected. The returned value should be a unique subgizmo identifier, which can have any non-negative value and will be used in other virtual methods like [method _get_subgizmo_transform] or [method _commit_subgizmos]. Called for this plugin's active gizmos. </description> </method> - <method name="is_handle_highlighted" qualifiers="virtual"> - <return type="bool"> + <method name="add_material"> + <return type="void"> </return> - <argument index="0" name="gizmo" type="EditorNode3DGizmo"> + <argument index="0" name="name" type="String"> </argument> - <argument index="1" name="index" type="int"> + <argument index="1" name="material" type="StandardMaterial3D"> </argument> <description> - Gets whether a handle is highlighted or not. Called for this plugin's active gizmos. + 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. </description> </method> - <method name="is_selectable_when_hidden" qualifiers="virtual"> - <return type="bool"> + <method name="create_handle_material"> + <return type="void"> </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="billboard" type="bool" default="false"> + </argument> + <argument index="2" name="texture" type="Texture2D" default="null"> + </argument> <description> - Override this method to define whether Node3D with this gizmo should be selectable even when the gizmo is hidden. + 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 EditorNode3DGizmo.add_handles]. Should not be overridden. + You can optionally provide a texture to use instead of the default icon. </description> </method> - <method name="redraw" qualifiers="virtual"> + <method name="create_icon_material"> <return type="void"> </return> - <argument index="0" name="gizmo" type="EditorNode3DGizmo"> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="texture" type="Texture2D"> + </argument> + <argument index="2" name="on_top" type="bool" default="false"> + </argument> + <argument index="3" name="color" type="Color" default="Color(1, 1, 1, 1)"> </argument> <description> - Callback to redraw the provided gizmo. Called for this plugin's active gizmos. + 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 EditorNode3DGizmo.add_unscaled_billboard]. Should not be overridden. </description> </method> - <method name="set_handle" qualifiers="virtual"> + <method name="create_material"> <return type="void"> </return> - <argument index="0" name="gizmo" type="EditorNode3DGizmo"> + <argument index="0" name="name" type="String"> </argument> - <argument index="1" name="index" type="int"> + <argument index="1" name="color" type="Color"> </argument> - <argument index="2" name="camera" type="Camera3D"> + <argument index="2" name="billboard" type="bool" default="false"> </argument> - <argument index="3" name="point" type="Vector2"> + <argument index="3" name="on_top" type="bool" default="false"> + </argument> + <argument index="4" name="use_vertex_color" type="bool" default="false"> </argument> <description> - Update the value of a handle after it has been updated. Called for this plugin's active gizmos. + 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 EditorNode3DGizmo.add_mesh] and [method EditorNode3DGizmo.add_lines]. Should not be overridden. + </description> + </method> + <method name="get_material"> + <return type="StandardMaterial3D"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="gizmo" type="EditorNode3DGizmo" default="null"> + </argument> + <description> + Gets material from the internal list of materials. If an [EditorNode3DGizmo] is provided, it will try to get the corresponding variant (selected and/or editable). </description> </method> </methods> |