PhysicsDirectSpaceState¶
Inherits: Object
Category: Core
Brief Description¶
Direct access object to a space in the PhysicsServer.
Member Functions¶
Array | cast_motion ( PhysicsShapeQueryParameters shape, Vector3 motion ) |
Array | collide_shape ( PhysicsShapeQueryParameters shape, int max_results=32 ) |
Dictionary | get_rest_info ( PhysicsShapeQueryParameters shape ) |
Dictionary | intersect_ray ( Vector3 from, Vector3 to, Array exclude=[ ], int collision_layer=2147483647 ) |
Array | intersect_shape ( PhysicsShapeQueryParameters shape, int max_results=32 ) |
Description¶
Direct access object to a space in the PhysicsServer. It’s used mainly to do queries against objects and areas residing in a given space.
Member Function Description¶
- Array cast_motion ( PhysicsShapeQueryParameters shape, Vector3 motion )
Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of motion
. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be 1, 1.
If the shape can not move, the array will be empty (dir.empty()==true
).
- Array collide_shape ( PhysicsShapeQueryParameters shape, int max_results=32 )
Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. The resulting array contains a list of points where the shape intersects another. Like with intersect_shape, the number of returned results can be limited to save processing time.
- Dictionary get_rest_info ( PhysicsShapeQueryParameters shape )
Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. If it collides with more than a shape, the nearest one is selected. The returned object is a dictionary containing the following fields:
collider_id
: The colliding object’s ID.
linear_velocity
: The colliding object’s velocity Vector3. If the object is an Area, the result is (0, 0, 0)
.
normal
: The object’s surface normal at the intersection point.
point
: The intersection point.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
If the shape did not intersect anything, then an empty dictionary (dir.empty()==true
) is returned instead.
- Dictionary intersect_ray ( Vector3 from, Vector3 to, Array exclude=[ ], int collision_layer=2147483647 )
Intersects a ray in a given space. The returned object is a dictionary with the following fields:
collider
: The colliding object.
collider_id
: The colliding object’s ID.
normal
: The object’s surface normal at the intersection point.
position
: The intersection point.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
If the ray did not intersect anything, then an empty dictionary (dir.empty()==true
) is returned instead.
Additionally, the method can take an array of objects or RIDs that are to be excluded from collisions, or a bitmask representing the physics layers to check in.
- Array intersect_shape ( PhysicsShapeQueryParameters shape, int max_results=32 )
Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:
collider
: The colliding object.
collider_id
: The colliding object’s ID.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
The number of intersections can be limited with the second parameter, to reduce the processing time.