Vector4D.fromAxisAngle constructor

Vector4D.fromAxisAngle(
  1. Vector3D axis,
  2. double angle
)

Implementation

factory Vector4D.fromAxisAngle(Vector3D axis, double angle)
{
  QuaternionD result = .vec4(0, 0, 0, 1);

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

    axis = axis.normalize();

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

    return .vec4(
      axis.x*sinres,
      axis.y*sinres,
      axis.z*sinres,
      cosres,
    ).normalize();
  }

  return result;
}