Quantum 3 3.0.11

Static Public Member Functions | Public Attributes | List of all members
Quantum.Physics2D.CollisionResultInfo2D Struct Reference

A structure for containing all the result information from the collision between two shapes. More...

Static Public Member Functions

static void AddContactPoint (CollisionResultInfo2D *result, FPVector2 cp)
 Adds to the buffer of contact points a new contact point. For a 2D collision, the maximum number of contact point is CollisionManifold2D.MAX_CONTACT_POINTS. More...
 
static FPVector2ContactPoints (CollisionResultInfo2D *CollisionResultInfo2D)
 Gets a pointer from the contact points buffer. Use this pointer to get the other contact points in a for loop. More...
 
static FPVector2 GetAveragePoint (CollisionResultInfo2D *result)
 Gets the average point between all the contact points computed. More...
 
static FPVector2 GetPoint (CollisionResultInfo2D *result)
 
static FPVector2 GetPoint (CollisionResultInfo2D *result, Int32 contactPointIndex)
 Get the contact point of the collision by some index. More...
 
static Hit UpdateHitWithResult (CollisionResultInfo2D *result, ref Hit hit)
 Updates all the hit fields with the equivalent results of the collision. More...
 

Public Attributes

readonly int ContactPointsCount => _cpCount
 The number of found contact points. More...
 
FPVector2 Normal
 The contact normal. More...
 
FP Penetration
 The collision penetration in the Normal direction. More...
 

Detailed Description

A structure for containing all the result information from the collision between two shapes.

Member Function Documentation

◆ ContactPoints()

static FPVector2* Quantum.Physics2D.CollisionResultInfo2D.ContactPoints ( CollisionResultInfo2D CollisionResultInfo2D)
inlinestatic

Gets a pointer from the contact points buffer. Use this pointer to get the other contact points in a for loop.

Parameters
CollisionResultInfo2DThe CollisionResultInfo2D reference.
Returns
A pointer to the beginning of the contact points vector buffer.

How to iterate over the contact points:

for (int i = 0; i < result->ContactPointsCount; i++) {
FPVector2 contactPoint = CollisionResultInfo2D.ContactPoints(result)[i];
}

◆ GetPoint()

static FPVector2 Quantum.Physics2D.CollisionResultInfo2D.GetPoint ( CollisionResultInfo2D result,
Int32  contactPointIndex 
)
inlinestatic

Get the contact point of the collision by some index.

Parameters
resultThe CollisionResultInfo2D reference.
contactPointIndexIndex of the contact point.
Returns
Returns a specified contact point as FPVector2.

◆ AddContactPoint()

static void Quantum.Physics2D.CollisionResultInfo2D.AddContactPoint ( CollisionResultInfo2D result,
FPVector2  cp 
)
inlinestatic

Adds to the buffer of contact points a new contact point. For a 2D collision, the maximum number of contact point is CollisionManifold2D.MAX_CONTACT_POINTS.

Parameters
resultThe CollisionResultInfo2D reference.
cpThe contact point value.

◆ GetAveragePoint()

static FPVector2 Quantum.Physics2D.CollisionResultInfo2D.GetAveragePoint ( CollisionResultInfo2D result)
inlinestatic

Gets the average point between all the contact points computed.

Parameters
resultThe CollisionResultInfo2D reference.
Returns
The mid point of all contact points.

◆ UpdateHitWithResult()

static Hit Quantum.Physics2D.CollisionResultInfo2D.UpdateHitWithResult ( CollisionResultInfo2D result,
ref Hit  hit 
)
inlinestatic

Updates all the hit fields with the equivalent results of the collision.

Parameters
resultThe CollisionResultInfo2D reference.
hitThe Hit reference.
Returns
A copy of the hit with the values updated.

Member Data Documentation

◆ Penetration

FP Quantum.Physics2D.CollisionResultInfo2D.Penetration

The collision penetration in the Normal direction.

◆ Normal

FPVector2 Quantum.Physics2D.CollisionResultInfo2D.Normal

The contact normal.

◆ ContactPointsCount

readonly int Quantum.Physics2D.CollisionResultInfo2D.ContactPointsCount => _cpCount

The number of found contact points.