Libraries.Game.Physics.ConstraintDescription3D Documentation
This class stores different constraint values that allows us to describe a joint constraint.
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
- Libraries.Language.Object: The object to compare to.
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
- Libraries.Language.Object: The to be compared.
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)
GetDiagonal()
This action returns a number whose reciprocal will be used to scale the impulse change applied to linear velocity.
Return
number:
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()
GetLinearJointAxis()
This action initializes this ConstraintDescription3D such that this class is used to store one constraitn on one rigid body. action Initialize(Matrix3 world2A, Vector3 relativePosition1, Vector3 relativePosition2, Vector3 jointAxis, Vector3 inertiaInverseA, number massInverseA) linearJointAxis:Set(jointAxis) aJ:Set(relativePosition1):CrossProduct(jointAxis) world2A:Transform(aJ) bJ:Set(jointAxis) bJ:Scale(-1) Vector3 temp temp:Set(relativePosition2):CrossProduct(bJ) bJ:Set(temp) world2A:Transform(bJ) minvJt0:SetX(inertiaInverseA:GetX() * aJ:GetX()) minvJt0:SetY(inertiaInverseA:GetY() * aJ:GetY()) minvJt0:SetZ(inertiaInverseA:GetZ() * aJ:GetZ()) minvJt1:Set(0, 0, 0) diag = massInverseA + minvJt0:DotProduct(aJ) end
Return
GetNonDiagonal(Libraries.Game.Physics.ConstraintDescription3D descriptionB, number massInverseA, number massInverseB)
This action returns a number whose reciprocal will be used to scale the impulse change applied to angular velocity if this ConstraintDescription3D describes 2 constraints shared by two different rigid bodies.
Parameters
- Libraries.Game.Physics.ConstraintDescription3D
- number massInverseA
- number massInverseB
Return
number:
GetNonDiagonal(Libraries.Game.Physics.ConstraintDescription3D descriptionB, number massInverseA)
This action returns a number whose reciprocal will be used to scale the impulse change applied to angular velocity if this ConstraintDescription3D describes 2 constraints on the same rigid body.
Parameters
- Libraries.Game.Physics.ConstraintDescription3D
- number massInverseA
Return
number:
GetRelativeVelocity(Libraries.Compute.Vector3 linearVelocityA, Libraries.Compute.Vector3 angularVelocityA, Libraries.Compute.Vector3 linearVelocityB, Libraries.Compute.Vector3 angularVelocityB)
This action returns the relative velocities between two 3D objects whose constraints are stored inside this ConstraintDescription3D.
Parameters
- Libraries.Compute.Vector3
- Libraries.Compute.Vector3
- Libraries.Compute.Vector3
- Libraries.Compute.Vector3
Return
number:
Initialize(Libraries.Compute.Vector3 jointAxis, Libraries.Compute.Matrix3 world2A, Libraries.Compute.Matrix3 world2B, Libraries.Compute.Vector3 inertiaInverseA, Libraries.Compute.Vector3 inertiaInverseB)
This action initializes this ConstraintDescription3D such that this class is used to store the angular constraint between two rigid bodies.
Parameters
Initialize(Libraries.Compute.Vector3 axisInA, Libraries.Compute.Vector3 axisInB, Libraries.Compute.Vector3 inertiaInverseA, Libraries.Compute.Vector3 inertiaInverseB)
This action initializes this ConstraintDescription3D such that this class is used to store the angular constraint between two rigid bodies.
Parameters
Initialize(Libraries.Compute.Matrix3 world2A, Libraries.Compute.Matrix3 world2B, Libraries.Compute.Vector3 relativePosition1, Libraries.Compute.Vector3 relativePosition2, Libraries.Compute.Vector3 jointAxis, Libraries.Compute.Vector3 inertiaInverseA, number massInverseA, Libraries.Compute.Vector3 inertiaInverseB, number massInverseB)
relativePosition1: relative position of constraint coordinate system center in world coordinates relativePosition2: relative position of constraint coordinate system center in world coordinates This action intializeds the description such that this ConstraintDescription3D is used for the constraint between two different rigid bodies.
Parameters
On this page
Variables TableAction Documentation- Compare(Libraries.Language.Object object)
- Equals(Libraries.Language.Object object)
- GetDiagonal()
- GetHashCode()
- GetLinearJointAxis()
- GetNonDiagonal(Libraries.Game.Physics.ConstraintDescription3D descriptionB, number massInverseA, number massInverseB)
- GetNonDiagonal(Libraries.Game.Physics.ConstraintDescription3D descriptionB, number massInverseA)
- GetRelativeVelocity(Libraries.Compute.Vector3 linearVelocityA, Libraries.Compute.Vector3 angularVelocityA, Libraries.Compute.Vector3 linearVelocityB, Libraries.Compute.Vector3 angularVelocityB)
- Initialize(Libraries.Compute.Vector3 jointAxis, Libraries.Compute.Matrix3 world2A, Libraries.Compute.Matrix3 world2B, Libraries.Compute.Vector3 inertiaInverseA, Libraries.Compute.Vector3 inertiaInverseB)
- Initialize(Libraries.Compute.Vector3 axisInA, Libraries.Compute.Vector3 axisInB, Libraries.Compute.Vector3 inertiaInverseA, Libraries.Compute.Vector3 inertiaInverseB)
- Initialize(Libraries.Compute.Matrix3 world2A, Libraries.Compute.Matrix3 world2B, Libraries.Compute.Vector3 relativePosition1, Libraries.Compute.Vector3 relativePosition2, Libraries.Compute.Vector3 jointAxis, Libraries.Compute.Vector3 inertiaInverseA, number massInverseA, Libraries.Compute.Vector3 inertiaInverseB, number massInverseB)