reckfellENGINE

PhysicsDirectSpaceState2D

Direct queries into a 2D physics world.

On this page
class PhysicsDirectSpaceState2DReckfellSharpInherits ReckfellObject

PhysicsDirectSpaceState2D queries the world associated with a viewport. Obtain it through GetWorld2D().DirectSpaceState from an entity in the intended world. Query in the appropriate physics phase; threaded simulation can lock the space.

IntersectRay takes world From/To endpoints and returns an empty Dictionary on a miss. Check keys and collider type on a hit. For deferred work, account for later object deletion. Moving geometry outside a physics tick does not promise immediate updates to all world data.

Guide and example.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Methods12

CastMotionfloat[]
# CastMotion
C#
public float[] CastMotion(PhysicsShapeQueryParameters2D parameters);

Checks how far a Shape2D can move without colliding. All the parameters for the query, including the shape and the motion, are supplied through a PhysicsShapeQueryParameters2D object. Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0] will be returned. Note: Any Shape2Ds that the shape is already colliding with e.g. inside of, will be ignored. Use PhysicsDirectSpaceState2D.CollideShape to determine the Shape2Ds that the shape is already colliding with.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
Returns float[]
CastMotionIntobool
# CastMotionInto
C#
public bool CastMotionInto(PhysicsShapeQueryParameters2D parameters, PhysicsCastMotionResult2D result);

Checks how far a Shape2D can move without colliding. All the parameters for the query, including the shape and the motion, are supplied through a PhysicsShapeQueryParameters2D object. If the query is successful, this method returns true and writes the motion results into the PhysicsCastMotionResult2D object passed in result. If no collision occurs, it returns false. Note: Any Shape2Ds that the shape is already colliding with e.g. inside of, will be ignored. Use PhysicsDirectSpaceState2D.CollideShapeInto to determine the Shape2Ds that the shape is already colliding with.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
resultPhysicsCastMotionResult2D—
Returns bool
CollideShapeReckfell.Collections.Array<Vector2>
# CollideShape
C#
public Reckfell.Collections.Array<Vector2> CollideShape(PhysicsShapeQueryParameters2D parameters, int maxResults = 32);

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters2D object, against the space. The resulting array contains a list of points where the shape intersects another. Like with PhysicsDirectSpaceState2D.IntersectShape, the number of returned results can be limited to save processing time. Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in PhysicsShapeQueryParameters2D object, second one is in the collided shape from the physics space.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
maxResultsint32
Returns Reckfell.Collections.Array<Vector2>
CollideShapeIntobool
# CollideShapeInto
C#
public bool CollideShapeInto(PhysicsShapeQueryParameters2D parameters, PhysicsCollideShapeResult2D result);

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters2D object, against the space. If intersections are found, this method returns true and writes the collision points into the PhysicsCollideShapeResult2D object passed in result. If no intersections are found, it returns false. The number of returned results can be limited using PhysicsCollideShapeResult2D.MaxCollisions, to reduce the processing time.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
resultPhysicsCollideShapeResult2D—
Returns bool
GetRestInfoReckfell.Collections.Dictionary
# GetRestInfo
C#
public Reckfell.Collections.Dictionary GetRestInfo(PhysicsShapeQueryParameters2D parameters);

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters2D object, against the space. If it collides with more than one 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 Vector2. If the object is an Area2D, the result is (0, 0). normal: The collision normal of the query shape at the intersection point, pointing away from the intersecting object. 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 is returned instead.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
Returns Reckfell.Collections.Dictionary
GetRestInfoIntobool
# GetRestInfoInto
C#
public bool GetRestInfoInto(PhysicsShapeQueryParameters2D parameters, PhysicsGetRestInfoResult2D result);

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters2D object, against the space. If the shape collides with one or more shapes, this method returns true and writes the nearest collision information into the PhysicsGetRestInfoResult2D object passed in result. If no collisions occur, it returns false.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
resultPhysicsGetRestInfoResult2D—
Returns bool
IntersectPointReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# IntersectPoint
C#
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> IntersectPoint(PhysicsPointQueryParameters2D parameters, int maxResults = 32);

Checks whether a point is inside any solid shape. Position and other parameters are defined through PhysicsPointQueryParameters2D. The shapes the point is inside of 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 max_results parameter, to reduce the processing time. Note: ConcavePolygonShape2Ds and CollisionPolygon2Ds in Segments build mode are not solid shapes. Therefore, they will not be detected.

Parameters
NameTypeDefault
parametersPhysicsPointQueryParameters2D—
maxResultsint32
Returns Reckfell.Collections.Array<Reckfell.Collections.Dictionary>
IntersectPointIntobool
# IntersectPointInto
C#
public bool IntersectPointInto(PhysicsPointQueryParameters2D parameters, PhysicsIntersectPointResult2D result);

Checks whether a point is inside any solid shape. Position and other parameters are defined through PhysicsPointQueryParameters2D. If one or more shapes overlap the point, this method returns true and writes the intersection data into the PhysicsIntersectPointResult2D object passed in result. If no intersections are found, it returns false. The number of intersections can be limited using PhysicsIntersectPointResult2D.MaxIntersections, to reduce the processing time. Note: ConcavePolygonShape2Ds and CollisionPolygon2Ds in Segments build mode are not solid shapes. Therefore, they will not be detected.

Parameters
NameTypeDefault
parametersPhysicsPointQueryParameters2D—
resultPhysicsIntersectPointResult2D—
Returns bool
IntersectRayReckfell.Collections.Dictionary
# IntersectRay
C#
public Reckfell.Collections.Dictionary IntersectRay(PhysicsRayQueryParameters2D parameters);

Tests a world-space segment and returns a Dictionary: empty on a miss, with collider/position/normal and shape data on a hit. Check the result and object type before reading.

Parameters
NameTypeDefault
parametersPhysicsRayQueryParameters2D—
Returns Reckfell.Collections.Dictionary
IntersectRayIntobool
# IntersectRayInto
C#
public bool IntersectRayInto(PhysicsRayQueryParameters2D parameters, PhysicsIntersectRayResult2D result);

Intersects a ray in a given space. Ray position and other parameters are defined through PhysicsRayQueryParameters2D. If the ray hits a shape, this method returns true and writes the intersection information into the PhysicsIntersectRayResult2D object passed in result. If nothing is hit, it returns false.

Parameters
NameTypeDefault
parametersPhysicsRayQueryParameters2D—
resultPhysicsIntersectRayResult2D—
Returns bool
IntersectShapeReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# IntersectShape
C#
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> IntersectShape(PhysicsShapeQueryParameters2D parameters, int maxResults = 32);

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters2D 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 max_results parameter, to reduce the processing time.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
maxResultsint32
Returns Reckfell.Collections.Array<Reckfell.Collections.Dictionary>
IntersectShapeIntobool
# IntersectShapeInto
C#
public bool IntersectShapeInto(PhysicsShapeQueryParameters2D parameters, PhysicsIntersectShapeResult2D result);

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters2D object, against the space. If one or more shapes are found to intersect, this method returns true and writes the intersection data into the PhysicsIntersectShapeResult2D object passed in result. If no shapes are found to intersect, it returns false. The number of intersections can be limited using PhysicsIntersectShapeResult2D.MaxIntersections, to reduce the processing time.

Parameters
NameTypeDefault
parametersPhysicsShapeQueryParameters2D—
resultPhysicsIntersectShapeResult2D—
Returns bool
Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.