Quaternion¶
This class represents a general quaternion, i.e. a quaternion that may not
have
.
It’s not used in NEML natively, just as a base class to the unit
quaternion orientation class.
-
class Quaternion¶
A generic quaternion, stored as [s v1 v2 v3].
Subclassed by neml::Orientation
Public Functions
-
Quaternion()¶
Default constructor (manage own memory)
-
Quaternion(const std::vector<double> v)¶
Construct from vector (manage own memory)
-
Quaternion(double *v)¶
Construct from raw pointer (don’t manage memory)
-
Quaternion(const Quaternion &other)¶
Copy constructor.
-
Quaternion(const Quaternion &&other)¶
Move constructor.
-
virtual ~Quaternion()¶
-
Quaternion &operator=(const Quaternion &rhs)¶
Copy.
-
Quaternion &operator=(const Quaternion &&rhs)¶
Move.
-
bool store() const¶
Do you store your own data?
-
const double *quat() const¶
Raw quaternion as a const pointer.
-
double *data()¶
Raw quaternion as a nonconst pointer.
-
virtual double norm() const¶
Quaternion norm.
-
Quaternion opposite() const¶
Opposite.
-
Quaternion operator-() const¶
C++ operator opposite.
-
Quaternion conj() const¶
Conjugation.
-
Quaternion flip() const¶
Opposite scalar.
-
Quaternion inverse() const¶
Inversion.
-
Quaternion exp() const¶
Exponential map.
-
Quaternion log() const¶
Inverse exponential map.
-
Quaternion &operator*=(const Quaternion &rhs)¶
Quaternion multiplication.
-
Quaternion &operator*=(double scalar)¶
Scalar multiplication.
-
Quaternion &operator/=(const Quaternion &rhs)¶
Quaternion division.
-
Quaternion &operator/=(double scalar)¶
Scalar division.
-
Quaternion pow(double w) const¶
Power.
-
double dot(const Quaternion &other) const¶
Dot product, useful for various distances.
-
size_t hash() const¶
Hash function for quick comparisons.
-
void to_product_matrix(double *M) const¶
Product matrix for quaternion composition.
-
Quaternion()¶