Libraries.Game.Physics.CollisionSolver2D Documentation

This class is a calculation tool that updates an object's impulse to move the object around.

Inherits from: Libraries.Language.Object

Actions Documentation

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

Initialize()

This action initializes the arrays that are inside this CollisionSolver2D class.

InitializeVelocityConstraints()

This action stores all of the velocity constraints.

SetAnglesList(Libraries.Containers.Array<number> anglesList)

This action sets a list of the target tilt of each object at the end of the current physics step relative to the global coordinates.

Parameters

SetAngularVelocitiesList(Libraries.Containers.Array<number> angularVelocitiesList)

This action sets a list of angular velocities of each object.

Parameters

SetCollisionList(Libraries.Containers.Array<Libraries.Interface.Events.CollisionEvent2D> collisionList)

This action allows the solver to know how many collision has happened during the current physics step by passing in an array of CollisionEvent2D.

Parameters

SetLinearVelocitiesList(Libraries.Containers.Array<Libraries.Compute.Vector2> linearVelocitiesList)

This action sets a list of linear velocities of each object currently with respect to the global coordinates.

Parameters

SetPositionsList(Libraries.Containers.Array<Libraries.Compute.Vector2> positionsList)

This action sets a list of the target center of each objects at the end of the current physics step relative to the global coordinates.

Parameters

SetTimeStep(Libraries.Game.Physics.TimeStep timeStep)

This action sets the timeStep of this CollisionSolver2D using another timeStep that is passed in.

Parameters

SolvePositionConstraints()

This action makes sure that all of the position constraints are met.

Return

boolean:

SolveTimeOfImpactPositionConstraints(integer timeOfImpactIndexA, integer timeOfImpactIndexB)

This action calculates when the two objects will collide, and makes sure that these two objects don't penetrate each other.

Parameters

  • integer timeOfImpactIndexA
  • integer timeOfImpactIndexB

Return

boolean:

SolveVelocityConstraints()

This action makes sure that all of the velocity constraints are met.

StoreImpulses()

This action stores the impulses that will satisfy the velocity constraints.

WarmStart()

This action solves the collision using an initial guess.