<?xml version="1.0" encoding="UTF-8" ?>
<class name="NavigationPathQueryParameters3D" inherits="Reference" version="4.2">
	<brief_description>
		Provides parameters for 3D navigation path queries.
	</brief_description>
	<description>
		By changing various properties of this object, such as the start and target position, you can configure path queries to the [NavigationServer3D].
	</description>
	<tutorials>
		<link title="Using NavigationPathQueryObjects">$DOCS_URL/tutorials/navigation/navigation_using_navigationpathqueryobjects.md</link>
	</tutorials>
	<methods>
	</methods>
	<members>
		<member name="map" type="RID" setter="set_map" getter="get_map">
			The navigation [code]map[/code] [RID] used in the path query.
		</member>
		<member name="metadata_flags" type="int" setter="set_metadata_flags" getter="get_metadata_flags" default="7">
			Additional information to include with the navigation path.
		</member>
		<member name="navigation_layers" type="int" setter="set_navigation_layers" getter="get_navigation_layers" default="1">
			The navigation layers the query will use (as a bitmask).
		</member>
		<member name="path_postprocessing" type="int" setter="set_path_postprocessing" getter="get_path_postprocessing" enum="NavigationPathQueryParameters3D.PathPostProcessing" default="0">
			The path postprocessing applied to the raw path corridor found by the [member pathfinding_algorithm].
		</member>
		<member name="pathfinding_algorithm" type="int" setter="set_pathfinding_algorithm" getter="get_pathfinding_algorithm" enum="NavigationPathQueryParameters3D.PathfindingAlgorithm" default="0">
			The pathfinding algorithm used in the path query.
		</member>
		<member name="start_position" type="Vector3" setter="set_start_position" getter="get_start_position" default="Vector3( 0, 0, 0 )">
			The pathfinding start position in global coordinates.
		</member>
		<member name="target_position" type="Vector3" setter="set_target_position" getter="get_target_position" default="Vector3( 0, 0, 0 )">
			The pathfinding target position in global coordinates.
		</member>
	</members>
	<constants>
		<constant name="PATHFINDING_ALGORITHM_ASTAR" value="0" enum="PathfindingAlgorithm">
			The path query uses the default A* pathfinding algorithm.
		</constant>
		<constant name="PATH_POSTPROCESSING_CORRIDORFUNNEL" value="0" enum="PathPostProcessing">
			Applies a funnel algorithm to the raw path corridor found by the pathfinding algorithm. This will result in the shortest path possible inside the path corridor. This postprocessing very much depends on the navigation mesh polygon layout and the created corridor. Especially tile- or gridbased layouts can face artificial corners with diagonal movement due to a jagged path corridor imposed by the cell shapes.
		</constant>
		<constant name="PATH_POSTPROCESSING_EDGECENTERED" value="1" enum="PathPostProcessing">
			Centers every path position in the middle of the traveled navigation mesh polygon edge. This creates better paths for tile- or gridbased layouts that restrict the movement to the cells center.
		</constant>
		<constant name="PATH_METADATA_INCLUDE_NONE" value="0" enum="PathMetadataFlags">
			Don't include any additional metadata about the returned path.
		</constant>
		<constant name="PATH_METADATA_INCLUDE_TYPES" value="1" enum="PathMetadataFlags">
			Include the type of navigation primitive (region or link) that each point of the path goes through.
		</constant>
		<constant name="PATH_METADATA_INCLUDE_RIDS" value="2" enum="PathMetadataFlags">
			Include the [RID]s of the regions and links that each point of the path goes through.
		</constant>
		<constant name="PATH_METADATA_INCLUDE_OWNERS" value="4" enum="PathMetadataFlags">
			Include the [code]ObjectID[/code]s of the [Object]s which manage the regions and links each point of the path goes through.
		</constant>
		<constant name="PATH_METADATA_INCLUDE_ALL" value="7" enum="PathMetadataFlags">
			Include all available metadata about the returned path.
		</constant>
	</constants>
</class>
