<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorScenePostImportPlugin" inherits="RefCounted" api_type="editor" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Plugin to control and modifying the process of importing a scene.
	</brief_description>
	<description>
		This plugin type exists to modify the process of importing scenes, allowing to change the content as well as add importer options at every stage of the process.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="_get_import_options" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="path" type="String" />
			<description>
				Override to add general import options. These will appear in the main import dock on the editor. Add options via [method add_import_option] and [method add_import_option_advanced].
			</description>
		</method>
		<method name="_get_internal_import_options" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="category" type="int" />
			<description>
				Override to add internal import options. These will appear in the 3D scene import dialog. Add options via [method add_import_option] and [method add_import_option_advanced].
			</description>
		</method>
		<method name="_get_internal_option_update_view_required" qualifiers="virtual const">
			<return type="Variant" />
			<param index="0" name="category" type="int" />
			<param index="1" name="option" type="String" />
			<description>
				Should return [code]true[/code] if the 3D view of the import dialog needs to update when changing the given option.
			</description>
		</method>
		<method name="_get_internal_option_visibility" qualifiers="virtual const">
			<return type="Variant" />
			<param index="0" name="category" type="int" />
			<param index="1" name="for_animation" type="bool" />
			<param index="2" name="option" type="String" />
			<description>
				Should return [code]true[/code] to show the given option, [code]false[/code] to hide the given option, or [code]null[/code] to ignore.
			</description>
		</method>
		<method name="_get_option_visibility" qualifiers="virtual const">
			<return type="Variant" />
			<param index="0" name="path" type="String" />
			<param index="1" name="for_animation" type="bool" />
			<param index="2" name="option" type="String" />
			<description>
				Should return [code]true[/code] to show the given option, [code]false[/code] to hide the given option, or [code]null[/code] to ignore.
			</description>
		</method>
		<method name="_internal_process" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="category" type="int" />
			<param index="1" name="base_node" type="Node" />
			<param index="2" name="node" type="Node" />
			<param index="3" name="resource" type="Resource" />
			<description>
				Process a specific node or resource for a given category.
			</description>
		</method>
		<method name="_post_process" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="scene" type="Node" />
			<description>
				Post-process the scene. This function is called after the final scene has been configured.
			</description>
		</method>
		<method name="_pre_process" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="scene" type="Node" />
			<description>
				Pre-process the scene. This function is called right after the scene format loader loaded the scene and no changes have been made.
				Pre-process may be used to adjust internal import options in the [code]"nodes"[/code], [code]"meshes"[/code], [code]"animations"[/code] or [code]"materials"[/code] keys inside [code]get_option_value("_subresources")[/code].
			</description>
		</method>
		<method name="add_import_option">
			<return type="void" />
			<param index="0" name="name" type="String" />
			<param index="1" name="value" type="Variant" />
			<description>
				Add a specific import option (name and default value only). This function can only be called from [method _get_import_options] and [method _get_internal_import_options].
			</description>
		</method>
		<method name="add_import_option_advanced">
			<return type="void" />
			<param index="0" name="type" type="int" enum="Variant.Type" />
			<param index="1" name="name" type="String" />
			<param index="2" name="default_value" type="Variant" />
			<param index="3" name="hint" type="int" enum="PropertyHint" default="0" />
			<param index="4" name="hint_string" type="String" default="&quot;&quot;" />
			<param index="5" name="usage_flags" type="int" default="6" />
			<description>
				Add a specific import option. This function can only be called from [method _get_import_options] and [method _get_internal_import_options].
			</description>
		</method>
		<method name="get_option_value" qualifiers="const">
			<return type="Variant" />
			<param index="0" name="name" type="StringName" />
			<description>
				Query the value of an option. This function can only be called from those querying visibility, or processing.
			</description>
		</method>
	</methods>
	<constants>
		<constant name="INTERNAL_IMPORT_CATEGORY_NODE" value="0" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_MESH_3D_NODE" value="1" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_MESH" value="2" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_MATERIAL" value="3" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_ANIMATION" value="4" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE" value="5" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE" value="6" enum="InternalImportCategory">
		</constant>
		<constant name="INTERNAL_IMPORT_CATEGORY_MAX" value="7" enum="InternalImportCategory">
		</constant>
	</constants>
</class>
