Class Quaternion


  • public class Quaternion
    extends java.lang.Object
    Author:
    J.Wahl, February 2018 Describes rotation using quaternion formulation convention: q0 -> scalar q1,q2,q3 -> vector part http://www.cs.cmu.edu/~spiff/exp-map/ Grassi,98 --> we take the transpose because of different convention!
    • Constructor Detail

      • Quaternion

        public Quaternion​(double q0,
                          double q1,
                          double q2,
                          double q3)
      • Quaternion

        public Quaternion​(Coordinates axis,
                          double angle)
    • Method Detail

      • normalize

        public void normalize()
      • setQ0

        public void setQ0​(double q0)
      • setQ1

        public void setQ1​(double q1)
      • setQ2

        public void setQ2​(double q2)
      • setQ3

        public void setQ3​(double q3)
      • getQ0

        public double getQ0()
      • getQ1

        public double getQ1()
      • getQ2

        public double getQ2()
      • getQ3

        public double getQ3()
      • normSquared

        public double normSquared()
      • multiply

        public void multiply​(Quaternion r)
        convert Quaternion to a rotation matrix
      • getRotMatrix

        public Matrix getRotMatrix()
        from Grassia: q0 corresponds to qw (scalar part)
        Returns:
      • getRandomRotation

        public static Quaternion getRandomRotation()
        get a random quaternion, from: https://stackoverflow.com/questions/31600717/how-to-generate-a-random-quaternion-quickly
        Returns:
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object