Libraries.Game.Physics.Joints.HingeJoint3D Documentation
Inherits from: Libraries.Game.Physics.Joints.Joint3D, Libraries.Language.Object
Actions Documentation
BuildJacobian()
This action is called by the Collision Solver to gather information on the joint before calling the SolveJoint action. This action is used internally.
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)
EnableAngularMotor(boolean enableMotor, number targetVelocity, number maxMotorImpulse)
This actions lets the hinge joint rotate on its own or stop the hinge joint to rotate on its own.
Parameters
- boolean enableMotor: True if you want to let the hinge joint rotate on its own.
- number targetVelocity: The angular velocity that you want the joint to rotate with. Positive targetVelocity defines one direction and negative targetVelocity defines the opposite direction.
- number maxMotorImpulse: The maximum force to be applied to the hinge for it to rotate.
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)
GetAFrame(Libraries.Game.Collision.PhysicsPosition3D outputFrame)
This action returns the location of the joint relative to object A.
Parameters
Return
GetAngularOnly()
This action returns whether you only care about the angular constraint for this hinge joint or not.
Return
boolean:
GetAppliedImpulse()
This action returns the amount of impulse that should be applied to the items in the joints to allow them to continue to be joined.
Return
number: the amount of impulse that should be applied to the items.
GetBFrame(Libraries.Game.Collision.PhysicsPosition3D outputFrame)
This action returns the location of the joint relative to object B.
Parameters
Return
GetEdgeA()
This action returns the first JointEdge3D stored inside this Joint3D.
Return
Libraries.Game.Physics.Joints.JointEdge3D: the first JointEdge3D stored inside this Joint3D.
GetEdgeB()
This action returns the second JointEdge3D stored inside this Joint3D.
Return
Libraries.Game.Physics.Joints.JointEdge3D: the second JointEdge3D stored inside this Joint3D.
GetEnableAngularMotor()
This action returns whether there is a motor on the hinge joint to let it rotate on its own.
Return
boolean:
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()
GetHingeAngle()
This action calculates how much the rotating objects have moved relative to their original configuration.
Return
number: how much the rotating objects have moved relative to their original configuration.
GetInformation(Libraries.Game.Physics.CollisionSolverInformation3D information)
This action returns the type of joint that you have.
Parameters
GetItemA()
This action returns the first 3D item that is joined by this Joint3D.
Return
Libraries.Interface.Item3D: the first 3D item that is joined by this Joint3D.
GetItemB()
This action returns the second 3D item that is joined by this Joint3D.
Return
Libraries.Interface.Item3D: the second 3D item that is joined by this Joint3D.
GetLimitSign()
This action returns whether the angular limits has been reached.
Return
number:
GetLowerLimit()
This action returns the lower angle value that the hinge can rotate to.
Return
number:
GetMaxMotorImpulse()
This action returns the maximum force that will be applied to the hinge for it to rotate.
Return
number:
GetMotorTargetVelocity()
This action returns the velocity at which the motor will rotate about.
Return
number:
GetNext()
This action gets you the next information about a joint (stored in another Joint3D) inside a linked list of Joint3Ds.
Return
Libraries.Game.Physics.Joints.Joint3D: the next joint.
GetPrevious()
This action gets you the previous information about a joint (stored in another Joint3D) inside a linked list of Joint3Ds.
Return
Libraries.Game.Physics.Joints.Joint3D: the previous joint.
GetSolveLimit()
This action returns whether the angular limits has been reached.
Return
boolean:
GetType()
This action returns the type of joint that you have.
Return
integer: the type of joint that you have.
GetUpperLimit()
This action returns the upper angle value that the hinge can rotate to.
Return
number:
InCollisionGroup()
This action returns whether this joint is been accounted for in a collision group.
Return
boolean: true when the joint has already been assigned to a collision group, false if the joint is not
Initialize(Libraries.Interface.Item3D itemA, Libraries.Interface.Item3D itemB, Libraries.Compute.Vector3 pivotInA, Libraries.Compute.Vector3 pivotInB, Libraries.Compute.Vector3 axisInA, Libraries.Compute.Vector3 axisInB)
This action initializes the joint.
Parameters
- Libraries.Interface.Item3D: The first item.
- Libraries.Interface.Item3D: The second item.
- Libraries.Compute.Vector3: The location of the hinge joint relative to item A.
- Libraries.Compute.Vector3: The location of the hinge joint relative to item B.
- Libraries.Compute.Vector3: The unit vector that specifieds which axis that object A is allowed to spin around.
- Libraries.Compute.Vector3: The unit vector that specifieds which axis that object B is allowed to spin around.
SetAngularOnly(boolean angularOnly)
This action sets whether you want to only solve for the angular constaints set by the hinge joint or not.
Parameters
- boolean angularOnly: True if you don't want to solve for the translational constraint created by the hinge joint. Not recommended.
SetAppliedImpulse(number impulse)
This action sets the amount of impulse that should be applied to the items in the joints to allow them to continue to be joined.
Parameters
- number impulse: The amount of impulse that should be applied to the items
SetBiasFactor(number bias)
This action changes the bias factor of the hinge joint.
Parameters
- number bias: Because during simulation, errors in position of the objects pile up due to rounding errors, this sets how much you want to correct for that error. Default value is 0.3, and the recommended range is [0.2 to 0.5].
SetEdgeA(Libraries.Game.Physics.Joints.JointEdge3D edgeA)
This action sets the first JointEdge3D stored inside this Joint3D.
Parameters
- Libraries.Game.Physics.Joints.JointEdge3D: The first JointEdge3D stored inside this Joint3D.
SetEdgeB(Libraries.Game.Physics.Joints.JointEdge3D edgeB)
This action sets the second JointEdge3D stored inside this Joint3D.
Parameters
SetInCollisionGroup(boolean flag)
This action sets whether this joint is been accounted for in a collision group.
Parameters
- boolean flag: True if the joint has been assigned to a collision group.
SetItemA(Libraries.Interface.Item3D item)
This action sets the first 3D item that is joined by this Joint3D.
Parameters
- Libraries.Interface.Item3D: The first 3D item that is joined by this Joint3D.
SetItemB(Libraries.Interface.Item3D item)
This action sets the second 3D item that is joined by this Joint3D.
Parameters
- Libraries.Interface.Item3D: The second 3D item that is joined by this Joint3D.
SetLimit(number low, number high, number softness, number bias, number relaxation)
This action sets the range of angles that the hinge can rotate to.
Parameters
- number low: The lower angle value in radians.
- number high: The higher angle value in radians.
- number softness: At what fraction should the velocity limits starts to be solved. For example, if softness is 0.8, that means the physics will try to correct for the joint when the objects are at 0.8*(velocity limit range). Recommended values are from 0.8 to 1.
- number bias: Because during simulation, errors in position of the objects pile up due to rounding errors, this sets how much you want to correct for that error. Default value is 0.3, and the recommended range is [0.2 to 0.5].
- number relaxation: How lenient are you with the objects going out of the limit range in fractions. (0 very lenient, 1 very hard). Default value is 1.
SetLimit(number low, number high)
This action sets the range of angles that the hinge can rotate to.
Parameters
- number low: The lower angle value.
- number high: The higher angle value.
SetNext(Libraries.Game.Physics.Joints.Joint3D next)
This action lets you store another information about a joint (stored in another Joint3D) as a next link to the current Joint3D.
Parameters
- Libraries.Game.Physics.Joints.Joint3D: The next joint.
SetPrevious(Libraries.Game.Physics.Joints.Joint3D previous)
This action lets you store another information about a joint (stored in another Joint3D) as a previous link to the current Joint3D.
Parameters
- Libraries.Game.Physics.Joints.Joint3D: The previous joint.
SetType(integer type)
This action sets the type of joint that you have. BallAndSocket = 0, Hinge = 1, Customizable = 2, Slider = 3
Parameters
- integer type: The type of joint that you have.
SolveJoint(number timeStep)
This action solves the constraint of this joint and make sure that objects A and B is able to move accordint to the joint constraint applied. This action is used internally.
Parameters
- number timeStep
updateRHS(number timeStep)
solve angular positional correction
Parameters
- number timeStep
On this page
Variables TableAction Documentation- BuildJacobian()
- Compare(Libraries.Language.Object object)
- EnableAngularMotor(boolean enableMotor, number targetVelocity, number maxMotorImpulse)
- Equals(Libraries.Language.Object object)
- GetAFrame(Libraries.Game.Collision.PhysicsPosition3D outputFrame)
- GetAngularOnly()
- GetAppliedImpulse()
- GetBFrame(Libraries.Game.Collision.PhysicsPosition3D outputFrame)
- GetEdgeA()
- GetEdgeB()
- GetEnableAngularMotor()
- GetHashCode()
- GetHingeAngle()
- GetInformation(Libraries.Game.Physics.CollisionSolverInformation3D information)
- GetItemA()
- GetItemB()
- GetLimitSign()
- GetLowerLimit()
- GetMaxMotorImpulse()
- GetMotorTargetVelocity()
- GetNext()
- GetPrevious()
- GetSolveLimit()
- GetType()
- GetUpperLimit()
- InCollisionGroup()
- Initialize(Libraries.Interface.Item3D itemA, Libraries.Interface.Item3D itemB, Libraries.Compute.Vector3 pivotInA, Libraries.Compute.Vector3 pivotInB, Libraries.Compute.Vector3 axisInA, Libraries.Compute.Vector3 axisInB)
- SetAngularOnly(boolean angularOnly)
- SetAppliedImpulse(number impulse)
- SetBiasFactor(number bias)
- SetEdgeA(Libraries.Game.Physics.Joints.JointEdge3D edgeA)
- SetEdgeB(Libraries.Game.Physics.Joints.JointEdge3D edgeB)
- SetInCollisionGroup(boolean flag)
- SetItemA(Libraries.Interface.Item3D item)
- SetItemB(Libraries.Interface.Item3D item)
- SetLimit(number low, number high, number softness, number bias, number relaxation)
- SetLimit(number low, number high)
- SetNext(Libraries.Game.Physics.Joints.Joint3D next)
- SetPrevious(Libraries.Game.Physics.Joints.Joint3D previous)
- SetType(integer type)
- SolveJoint(number timeStep)
- updateRHS(number timeStep)