Skip to content

PhysicsWorld.GetShapeDistance Method

Definition

Namespace: Brine2D.Physics

Overloads
GetShapeDistance(PhysicsBodyComponent, PhysicsBodyComponent) Computes the minimum separation distance (or penetration depth) between two live bodies. Iterates over every shape pair across the two bodies and returns the result for the closest (or most-overlapping) pair.
GetShapeDistance(PhysicsBodyComponent, PhysicsBodyComponent, Vector2, Vector2) Computes the minimum separation distance (or penetration depth) between two live bodies. Iterates over every shape pair across the two bodies and returns the result for the closest (or most-overlapping) pair.
GetShapeDistance(PhysicsBodyComponent, PhysicsBodyComponent, Vector2, Vector2, Vector2) Computes the minimum separation distance between two live bodies and returns a separation normal pointing from b toward a — i.e. the direction to push a to resolve the overlap (MTV direction).

PhysicsWorld.GetShapeDistance(PhysicsBodyComponent, PhysicsBodyComponent) Method

Computes the minimum separation distance (or penetration depth) between two live bodies. Iterates over every shape pair across the two bodies and returns the result for the closest (or most-overlapping) pair.

public float GetShapeDistance(Brine2D.ECS.Components.PhysicsBodyComponent a, Brine2D.ECS.Components.PhysicsBodyComponent b);

Parameters

a PhysicsBodyComponent

First body.

b PhysicsBodyComponent

Second body.

Returns

System.Single
Positive values indicate separation (pixels); negative values indicate overlap/penetration. Returns System.Single.MaxValue when either body has no live shapes.

PhysicsWorld.GetShapeDistance(PhysicsBodyComponent, PhysicsBodyComponent, Vector2, Vector2) Method

Computes the minimum separation distance (or penetration depth) between two live bodies. Iterates over every shape pair across the two bodies and returns the result for the closest (or most-overlapping) pair.

public float GetShapeDistance(Brine2D.ECS.Components.PhysicsBodyComponent a, Brine2D.ECS.Components.PhysicsBodyComponent b, out System.Numerics.Vector2 pointOnA, out System.Numerics.Vector2 pointOnB);

Parameters

a PhysicsBodyComponent

First body.

b PhysicsBodyComponent

Second body.

pointOnA System.Numerics.Vector2

Closest point on body A in pixel coordinates, or System.Numerics.Vector2.Zero when either body is not live.

pointOnB System.Numerics.Vector2

Closest point on body B in pixel coordinates, or System.Numerics.Vector2.Zero when either body is not live.

Returns

System.Single
Positive values indicate separation (pixels); negative values indicate overlap/penetration. Returns System.Single.MaxValue when either body has no live shapes.

PhysicsWorld.GetShapeDistance(PhysicsBodyComponent, PhysicsBodyComponent, Vector2, Vector2, Vector2) Method

Computes the minimum separation distance between two live bodies and returns a separation normal pointing from b toward a — i.e. the direction to push a to resolve the overlap (MTV direction).

public float GetShapeDistance(Brine2D.ECS.Components.PhysicsBodyComponent a, Brine2D.ECS.Components.PhysicsBodyComponent b, out System.Numerics.Vector2 pointOnA, out System.Numerics.Vector2 pointOnB, out System.Numerics.Vector2 separationNormal);

Parameters

a PhysicsBodyComponent

First body.

b PhysicsBodyComponent

Second body.

pointOnA System.Numerics.Vector2

Closest point on body A in pixel coordinates.

pointOnB System.Numerics.Vector2

Closest point on body B in pixel coordinates.

separationNormal System.Numerics.Vector2

Unit vector from b toward a at the closest feature pair. Falls back to System.Numerics.Vector2.UnitY when the shapes are exactly coincident or either body is not live.

Returns

System.Single
Positive values indicate separation (pixels); negative values indicate penetration depth. Returns System.Single.MaxValue when either body has no live shapes.