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

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).

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.

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.

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.

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.