summaryrefslogtreecommitdiff
path: root/doc/classes/PhysicsShapeQueryParameters2D.xml
blob: abd19f13264f0aa1a5ee4c665cbd80138bec5f0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PhysicsShapeQueryParameters2D" inherits="RefCounted" version="4.0">
	<brief_description>
		Parameters to be sent to a 2D shape physics query.
	</brief_description>
	<description>
		This class contains the shape and other parameters for [PhysicsDirectSpaceState2D] intersection/collision queries.
	</description>
	<tutorials>
	</tutorials>
	<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 [Area2D]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 [PhysicsBody2D]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=https://docs.godotengine.org/en/latest/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="Array" setter="set_exclude" getter="get_exclude" default="[]">
			The list of objects or object [RID]s that will be excluded from collisions.
		</member>
		<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.0">
			The collision margin for the shape.
		</member>
		<member name="motion" type="Vector2" setter="set_motion" getter="get_motion" default="Vector2(0, 0)">
			The motion of the shape being queried for.
		</member>
		<member name="shape" type="Resource" setter="set_shape" getter="get_shape">
			The [Shape2D] that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over [member shape_rid].
		</member>
		<member name="shape_rid" type="RID" setter="set_shape_rid" getter="get_shape_rid">
			The queried shape's [RID] that will be used for collision/intersection queries. Use this over [member shape] if you want to optimize for performance using the Servers API:
				[codeblocks]
				[gdscript]
				var shape_rid = PhysicsServer2D.circle_shape_create()
				var radius = 64
				PhysicsServer2D.shape_set_data(shape_rid, radius)

				var params = PhysicsShapeQueryParameters2D.new()
				params.shape_rid = shape_rid

				# Execute physics queries here...

				# Release the shape when done with physics queries.
				PhysicsServer2D.free_rid(shape_rid)
				[/gdscript]
				[csharp]
				RID shapeRid = PhysicsServer2D.CircleShapeCreate();
				int radius = 64;
				PhysicsServer2D.ShapeSetData(shapeRid, radius);

				var params = new PhysicsShapeQueryParameters2D();
				params.ShapeRid = shapeRid;

				// Execute physics queries here...

				// Release the shape when done with physics queries.
				PhysicsServer2D.FreeRid(shapeRid);
				[/csharp]
				[/codeblocks]
		</member>
		<member name="transform" type="Transform2D" setter="set_transform" getter="get_transform" default="Transform2D(1, 0, 0, 1, 0, 0)">
			The queried shape's transform matrix.
		</member>
	</members>
</class>