fromAxisAngle static method

Creates a quaternion from an axis and rotation angle (in radians).

Implementation

static Vector4Base fromAxisAngle(Vector3Base axis, double angle)
{
  Vector4Base result = createFactory(0, 0, 0, 1);

  if (axis.length != 0.0)
  {
    angle *= 0.5;

    axis = axis.normalize() as Vector3Base;

    final sinres = math.sin(angle);
    final cosres = math.cos(angle);

    return createFactory(
      axis.x*sinres,
      axis.y*sinres,
      axis.z*sinres,
      cosres,
    ).normalize() as Vector4Base;
  }

  return result;
}