public SetWorldAxes ( Matrix3x3 matrix ) : void | ||
matrix | Matrix3x3 | Rotation matrix representing the three axes. /// The matrix's backward vector is used as the primary axis. /// The matrix's right vector is used as the x axis. |
return | void |
public void SetWorldAxes(Matrix3x3 matrix)
{
if (Math.Abs(Vector3.Dot(matrix.Backward, matrix.Right)) > Toolbox.BigEpsilon)
throw new ArgumentException("The axes provided to the joint transform are not perpendicular. Ensure that the specified axes form a valid constraint.");
primaryAxis = Vector3.Normalize(matrix.Backward);
xAxis = Vector3.Normalize(matrix.Right);
Matrix3x3.TransformTranspose(ref this.primaryAxis, ref rotationMatrix, out localPrimaryAxis);
Matrix3x3.TransformTranspose(ref this.xAxis, ref rotationMatrix, out localXAxis);
}
JointBasis2D::SetWorldAxes ( Vector3 primaryAxis, Vector3 xAxis ) : void | |
JointBasis2D::SetWorldAxes ( Vector3 primaryAxis, Vector3 xAxis, Matrix3x3 rotationMatrix ) : void |