Quaternions

This is just a small finger exercise to get familiar with the algebraic rules of quaternions.

Supported and planned operations

  • addition (overload of binary + operator)
  • subtraction (overload of binary - operator)
  • multiplications
    • common multiplication or Grassmann product (overload of binary * operator)
    • cross product or Grassmann uneven product (q1.cross(q2))
    • dot product or Euclidean even product (q1.dot(q2))
    • Grassmann even product
    • Euclidean uneven product
  • conversion from and to vector
  • conversion from and to rotation
  • length (.length())
  • norm (.norm())
  • normalization
  • vector extraction
  • scalar extraction
  • axis and rotation angle
  • inverse
  • negation
  • rotation
  • polar angle and direction
  • Euler angle representation

Further improvements

  • implementation of double quaternions
  • benchmarks