Methods:
The Arm class represents the forearm.
Public FunctionsPublic Static FunctionsArm()Matrix basis()The orthonormal basis vectors for the Arm bone as a Matrix.
Basis vectors specify the orientation of a bone.
xBasis Perpendicular to the longitudinal axis of the bone; exits the arm laterally through the sides of the wrist.
yBasis or up vector Perpendicular to the longitudinal axis of the bone; exits the top and bottom of the arm. More positive in the upward direction.
zBasis Aligned with the longitudinal axis of the arm bone. More positive toward the wrist.
Matrix basis = arm.basis(); Vector xBasis = basis.getXBasis(); Vector yBasis = basis.getYBasis(); Vector zBasis = basis.getZBasis(); Vector armCenter = arm.elbowPosition().plus(arm.wristPosition().minus(arm.elbowPosition()).times(0.5f)); Matrix transform = new Matrix(xBasis, yBasis, zBasis, armCenter);The bases provided for the right arm use the right-hand rule; those for the left arm use the left-hand rule. Thus, the positive direction of the x-basis is to the right for the right arm and to the left for the left arm. You can change from right-hand to left-hand rule by multiplying the z basis vector by -1.
Note that converting the basis vectors directly into a quaternion representation is not mathematically valid. If you use quaternions, create them from the derived rotation matrix not directly from the bases.
- Return
- The basis of the arm bone as a matrix.
- Since
- 2.0.3
Vector center()The center of the forearm.
This location represents the midpoint of the arm between the wrist position and the elbow position.
- Since
- 2.1.0
Vector direction()The normalized direction in which the arm is pointing (from elbow to wrist).
Vector direction = arm.direction();
- Since
- 2.0.3
Vector elbowPosition()The position of the elbow.
Vector elbow = arm.elbowPosition();If not in view, the elbow position is estimated based on typical human anatomical proportions.
- Since
- 2.0.3
boolean equals(Arm arg0)boolean isValid()String toString()float width()The average width of the arm.
float width = arm.width(); //length Vector displacement = arm.elbowPosition().minus(arm.wristPosition()); float length = displacement.magnitude();
- Since
- 2.0.3
Vector wristPosition()The position of the wrist.
Vector wrist = arm.wristPosition();Note that the wrist position is not collocated with the end of any bone in the hand. There is a gap of a few centimeters since the carpal bones are not included in the skeleton model.
- Since
- 2.0.3