MVE - Multi-View Environment mve-devel
|
Quaternion class for arbitrary types (WORK IN PROGRESS). More...
#include <quaternion.h>
Public Member Functions | |
Quaternion (T const &v1, T const &v2, T const &v3, T const &v4) | |
Constructor that takes all quaternion values. | |
Quaternion (T const &value) | |
Constructor that initializes ALL values. | |
Quaternion (Vector< T, 3 > const &axis, T const &angle) | |
Creates a quaternion from axis and angle. | |
Quaternion (void) | |
Creates a new, uninitialized quaternion. | |
Quaternion< T > & | conjugate (void) |
Conjugates self and returns reference to self. | |
Quaternion< T > | conjugated (void) const |
Returns a conjugated copy of self. | |
void | get_axis_angle (T *axis, T &angle) |
Provides the axis and angle of the quaternion. | |
Quaternion< T > | operator* (Quaternion< T > const &rhs) const |
Quaternion with quaternion multiplication. | |
Quaternion< T > & | operator*= (Quaternion< T > const &rhs) |
Quaternion self-multiplication. | |
Vector< T, 3 > | rotate (Vector< T, 3 > const &v) const |
Rotates a vector using the quaternion. | |
void | set (Vector< T, 3 > const &axis, T const &angle) |
Sets the quaternion from axis and angle. | |
void | set_from_rotation_matrix (T const *matrix) |
Sets the quaternion from an orthonormal rotation matrix. | |
void | to_rotation_matrix (T *matrix) const |
Conversion to a 3x3 rotation matrix. | |
![]() | |
Vector (O const *values) | |
Ctor taking a pointer from different type to initialize values. | |
Vector (T const &v1, T const &v2) | |
Ctor that initializes the first two elements. | |
Vector (T const &v1, T const &v2, T const &v3) | |
Ctor that initializes the first three elements. | |
Vector (T const &v1, T const &v2, T const &v3, T const &v4) | |
Ctor that initializes the first four elements. | |
Vector (T const &value) | |
Ctor that initializes ALL elements. | |
Vector (T const *values) | |
Ctor taking a pointer to initialize values. | |
Vector (Vector< O, N > const &other) | |
Copy ctor from vector of different type. | |
Vector (Vector< T, N > const &other) | |
Copy ctor from vector of same type. | |
Vector (Vector< T, N-1 > const &other, T const &v1) | |
Ctor that takes a smaller vector and one element. | |
Vector (void) | |
Default ctor. | |
T | abs_sum (void) const |
Returns the sum of the absolute values of all elements. | |
Vector< T, N > & | abs_value (void) |
Component-wise absolute-value on self, returns self. | |
Vector< T, N > | abs_valued (void) const |
Returns a component-wise absolute-value copy of self. | |
Vector< T, N > | applied_for_each (F functor) const |
Applies a for-each functor to a copy of the vector. | |
Vector< T, N > & | apply_for_each (F functor) |
Applies a for-each functor to all values. | |
T * | begin (void) |
T const * | begin (void) const |
Vector< T, N > & | copy (T const *values, int num=N) |
Copies values from the given pointer. | |
Vector< T, N > | cross (Vector< T, N > const &other) const |
Cross product between this and another vector. | |
Vector< T, N > | cw_div (Vector< T, N > const &other) const |
Component-wise division with another vector. | |
Vector< T, N > | cw_mult (Vector< T, N > const &other) const |
Component-wise multiplication with another vector. | |
T | dot (Vector< T, N > const &other) const |
Dot (or scalar) product between self and another vector. | |
T * | end (void) |
T const * | end (void) const |
Vector< T, N > & | fill (T const &value) |
Fills all vector elements with the given value. | |
bool | is_similar (Vector< T, N > const &other, T const &epsilon) const |
Component-wise similarity using epsilon checks. | |
T | maximum (void) const |
Returns the largest element in the vector. | |
T | minimum (void) const |
Returns the smallest element in the vector. | |
Vector< T, N > & | negate (void) |
Component-wise negation on self, returns self. | |
Vector< T, N > | negated (void) const |
Returns a component-wise negation on copy of self. | |
T | norm (void) const |
Computes the norm (length) of the vector. | |
Vector< T, N > & | normalize (void) |
Normalizes self and returns reference to self. | |
Vector< T, N > | normalized (void) const |
Returns a normalized copy of self. | |
bool | operator!= (Vector< T, N > const &rhs) const |
Comparison operator. | |
T & | operator() (int index) |
Element access operator. | |
T const & | operator() (int index) const |
Const element access operator. | |
Vector< T, N > | operator* (T const &rhs) const |
Component-wise multiplication with scalar. | |
T * | operator* (void) |
Dereference operator to value array. | |
T const * | operator* (void) const |
Const dereference operator to value array. | |
Vector< T, N > & | operator*= (T const &rhs) |
Component-wise self-multiplication with scalar. | |
Vector< T, N > | operator+ (T const &rhs) const |
Component-wise addition with scalar. | |
Vector< T, N > | operator+ (Vector< T, N > const &rhs) const |
Addition with other vector. | |
Vector< T, N > & | operator+= (T const &rhs) |
Component-wise self-addition with scalar. | |
Vector< T, N > & | operator+= (Vector< T, N > const &rhs) |
Self-addition with other vector. | |
Vector< T, N > | operator- (T const &rhs) const |
Component-wise substraction with scalar. | |
Vector< T, N > | operator- (Vector< T, N > const &rhs) const |
Substraction with other vector. | |
Vector< T, N > | operator- (void) const |
Component-wise negation. | |
Vector< T, N > & | operator-= (T const &rhs) |
Component-wise self-substraction with scalar. | |
Vector< T, N > & | operator-= (Vector< T, N > const &rhs) |
Self-substraction with other vector. | |
Vector< T, N > | operator/ (T const &rhs) const |
Component-wise division by scalar. | |
Vector< T, N > & | operator/= (T const &rhs) |
Component-wise self-division by scalar. | |
Vector< T, N > & | operator= (Vector< O, N > const &rhs) |
Assignment operator from different type. | |
Vector< T, N > & | operator= (Vector< T, N > const &rhs) |
Assignment operator. | |
bool | operator== (Vector< T, N > const &rhs) const |
Comparison operator. | |
T & | operator[] (int index) |
Element access operator. | |
T const & | operator[] (int index) const |
Const element access operator. | |
T | product (void) const |
Returns the product of all elements. | |
Vector< T, N > & | sort_asc (void) |
Sorts the elements of the vector into ascending order. | |
Vector< T, N > & | sort_desc (void) |
Sorts the elements of the vector into descending order. | |
Vector< T, N > | sorted_asc (void) const |
Returns a sorted vector into ascending order. | |
Vector< T, N > | sorted_desc (void) const |
Returns a sorted vector into descending order. | |
T | square_norm (void) const |
Computes the squared norm of the vector (much cheaper). | |
T | sum (void) const |
Returns the sum of all elements. | |
Additional Inherited Members | |
![]() | |
typedef T | ValueType |
![]() | |
static int constexpr | dim |
![]() | |
T | v [N] |
Quaternion class for arbitrary types (WORK IN PROGRESS).
Definition at line 30 of file quaternion.h.
|
inline |
Creates a new, uninitialized quaternion.
Definition at line 98 of file quaternion.h.
|
inline |
Constructor that initializes ALL values.
Definition at line 104 of file quaternion.h.
|
inline |
Constructor that takes all quaternion values.
Definition at line 111 of file quaternion.h.
|
inline |
Creates a quaternion from axis and angle.
Definition at line 121 of file quaternion.h.
|
inline |
Conjugates self and returns reference to self.
Definition at line 267 of file quaternion.h.
|
inline |
Returns a conjugated copy of self.
Definition at line 277 of file quaternion.h.
void math::Quaternion< T >::get_axis_angle | ( | T * | axis, |
T & | angle | ||
) |
Provides the axis and angle of the quaternion.
Definition at line 182 of file quaternion.h.
|
inline |
Quaternion with quaternion multiplication.
Definition at line 244 of file quaternion.h.
|
inline |
Quaternion self-multiplication.
Definition at line 259 of file quaternion.h.
Vector< T, 3 > math::Quaternion< T >::rotate | ( | Vector< T, 3 > const & | v | ) | const |
Rotates a vector using the quaternion.
Definition at line 230 of file quaternion.h.
|
inline |
Sets the quaternion from axis and angle.
Definition at line 128 of file quaternion.h.
|
inline |
Sets the quaternion from an orthonormal rotation matrix.
Definition at line 139 of file quaternion.h.
void math::Quaternion< T >::to_rotation_matrix | ( | T * | matrix | ) | const |
Conversion to a 3x3 rotation matrix.
Definition at line 203 of file quaternion.h.