<?xml version="1.0" encoding="UTF-8" ?>
<class name="PhysicsRayQueryParameters3D" inherits="RefCounted" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Provides parameters for [method PhysicsDirectSpaceState3D.intersect_ray].
	</brief_description>
	<description>
		By changing various properties of this object, such as the ray position, you can configure the parameters for [method PhysicsDirectSpaceState3D.intersect_ray].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="create" qualifiers="static">
			<return type="PhysicsRayQueryParameters3D" />
			<param index="0" name="from" type="Vector3" />
			<param index="1" name="to" type="Vector3" />
			<param index="2" name="collision_mask" type="int" default="4294967295" />
			<param index="3" name="exclude" type="RID[]" default="[]" />
			<description>
				Returns a new, pre-configured [PhysicsRayQueryParameters3D] object. Use it to quickly create query parameters using the most common options.
				[codeblock]
				var query = PhysicsRayQueryParameters3D.create(position, position + Vector3(0, -10, 0))
				var collision = get_world_3d().direct_space_state.intersect_ray(query)
				[/codeblock]
			</description>
		</method>
	</methods>
	<members>
		<member name="collide_with_areas" type="bool" setter="set_collide_with_areas" getter="is_collide_with_areas_enabled" default="false">
			If [code]true[/code], the query will take [Area3D]s into account.
		</member>
		<member name="collide_with_bodies" type="bool" setter="set_collide_with_bodies" getter="is_collide_with_bodies_enabled" default="true">
			If [code]true[/code], the query will take [PhysicsBody3D]s into account.
		</member>
		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="4294967295">
			The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
		</member>
		<member name="exclude" type="RID[]" setter="set_exclude" getter="get_exclude" default="[]">
			The list of object [RID]s that will be excluded from collisions. Use [method CollisionObject3D.get_rid] to get the [RID] associated with a [CollisionObject3D]-derived node.
			[b]Note:[/b] The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again.
		</member>
		<member name="from" type="Vector3" setter="set_from" getter="get_from" default="Vector3(0, 0, 0)">
			The starting point of the ray being queried for, in global coordinates.
		</member>
		<member name="hit_back_faces" type="bool" setter="set_hit_back_faces" getter="is_hit_back_faces_enabled" default="true">
			If [code]true[/code], the query will hit back faces with concave polygon shapes with back face enabled or heightmap shapes.
		</member>
		<member name="hit_from_inside" type="bool" setter="set_hit_from_inside" getter="is_hit_from_inside_enabled" default="false">
			If [code]true[/code], the query will detect a hit when starting inside shapes. In this case the collision normal will be [code]Vector3(0, 0, 0)[/code]. Does not affect concave polygon shapes or heightmap shapes.
		</member>
		<member name="to" type="Vector3" setter="set_to" getter="get_to" default="Vector3(0, 0, 0)">
			The ending point of the ray being queried for, in global coordinates.
		</member>
	</members>
</class>
