|
| QuaternionT (Scalar _w=1.0, Scalar _x=0.0, Scalar _y=0.0, Scalar _z=0.0) |
| construct from 4 Scalars (default) More...
|
|
| QuaternionT (const Vec3 &_p) |
| construct from 3D point (pure imaginary quaternion) More...
|
|
| QuaternionT (const Vec4 &_p) |
| construct from 4D vector More...
|
|
| QuaternionT (Vec3 _axis, Scalar _angle) |
| construct from rotation axis and angle (in radians) More...
|
|
template<class MatrixT > |
| QuaternionT (const MatrixT &_rot) |
| construct from rotation matrix (only valid for rotation matrices!) More...
|
|
void | identity () |
| identity rotation More...
|
|
Quaternion | conjugate () const |
| conjugate quaternion More...
|
|
Quaternion | invert () const |
| invert quaternion More...
|
|
Quaternion | operator* (const Quaternion &_q) const |
| quaternion * quaternion More...
|
|
Quaternion & | operator*= (const Quaternion &_q) |
| quaternion *= quaternion More...
|
|
template<class Vec3T > |
Vec3T | rotate (const Vec3T &_v) const |
| rotate vector More...
|
|
void | axis_angle (Vec3 &_axis, Scalar &_angle) const |
| get rotation axis and angle (only valid for unit quaternions!) More...
|
|
Matrix | rotation_matrix () const |
| cast to rotation matrix More...
|
|
Matrix | right_mult_matrix () const |
| get matrix for mult from right (p*q = Qp) More...
|
|
Matrix | left_mult_matrix () const |
| get matrix for mult from left (q*p = Qp) More...
|
|
template<class MatrixT > |
void | init_from_matrix (const MatrixT &_rot) |
| get quaternion from rotation matrix More...
|
|
Quaternion | exponential () const |
| quaternion exponential (for unit quaternions) More...
|
|
Quaternion | logarithm () const |
| quaternion logarithm (for unit quaternions) More...
|
|
void | print_info () |
|
template<typename T , typename ... Ts, typename = typename std::enable_if<sizeof...(Ts)+1 == DIM>::type, typename = typename std::enable_if< are_convertible_to<Scalar, T, Ts...>::value>::type> |
constexpr | VectorT (T v, Ts... vs) |
|
constexpr | VectorT () |
| default constructor creates uninitialized values. More...
|
|
| VectorT (const Scalar &v) |
|
| VectorT (const VectorT &rhs)=default |
|
| VectorT (VectorT &&rhs)=default |
|
VectorT & | operator= (const VectorT &rhs)=default |
|
VectorT & | operator= (VectorT &&rhs)=default |
|
template<typename S = Scalar, int D = DIM> |
auto | homogenized () const -> typename std::enable_if< D==4, VectorT< decltype(std::declval< S >()/std::declval< S >()), DIM > >::type |
|
template<typename Iterator , typename = decltype( *std::declval<Iterator&>(), void(), ++std::declval<Iterator&>(), void())> |
| VectorT (Iterator it) |
| construct from a value array or any other iterator More...
|
|
| VectorT (container &&_array) |
| construct from an array More...
|
|
template<typename otherScalarType , typename = typename std::enable_if< std::is_convertible<otherScalarType, Scalar>::value>> |
| VectorT (const VectorT< otherScalarType, DIM > &_rhs) |
| copy & cast constructor (explicit) More...
|
|
template<typename OtherScalar , typename = typename std::enable_if< std::is_convertible<OtherScalar, Scalar>::value>> |
vector_type & | operator= (const VectorT< OtherScalar, DIM > &_rhs) |
| cast from vector with a different scalar type More...
|
|
Scalar * | data () |
| access to Scalar array More...
|
|
const Scalar * | data () const |
| access to const Scalar array More...
|
|
Scalar & | operator[] (size_t _i) |
| get i'th element read-write More...
|
|
const Scalar & | operator[] (size_t _i) const |
| get i'th element read-only More...
|
|
bool | operator== (const vector_type &_rhs) const |
| component-wise comparison More...
|
|
bool | operator!= (const vector_type &_rhs) const |
| component-wise comparison More...
|
|
template<typename OtherScalar > |
auto | operator*= (const OtherScalar &_s) -> typename std::enable_if< std::is_convertible< decltype(this->values_[0] *_s), Scalar >::value, VectorT< Scalar, DIM > & >::type |
| component-wise self-multiplication with scalar More...
|
|
template<typename OtherScalar > |
auto | operator/= (const OtherScalar &_s) -> typename std::enable_if< std::is_convertible< decltype(this->values_[0]/_s), Scalar >::value, VectorT< Scalar, DIM > & >::type |
| component-wise self-division by scalar More...
|
|
VectorT< Scalar, DIM > ::type | operator* (const OtherScalar &_s) const |
|
VectorT< Scalar, DIM > ::type | operator/ (const OtherScalar &_s) const |
|
template<typename OtherScalar > |
auto | operator*= (const VectorT< OtherScalar, DIM > &_rhs) -> typename std::enable_if< sizeof(decltype(this->values_[0] **_rhs.data())) >=0 |
| component-wise self-multiplication
|
|
template<typename OtherScalar > |
auto | operator/= (const VectorT< OtherScalar, DIM > &_rhs) -> typename std::enable_if< sizeof(decltype(this->values_[0]/*_rhs.data())) >=0 |
| component-wise self-division
|
|
template<typename OtherScalar > |
auto | operator-= (const VectorT< OtherScalar, DIM > &_rhs) -> typename std::enable_if< sizeof(decltype(this->values_[0] - *_rhs.data())) >=0 |
| vector difference from this
|
|
template<typename OtherScalar > |
auto | operator+= (const VectorT< OtherScalar, DIM > &_rhs) -> typename std::enable_if< sizeof(decltype(this->values_[0]+ *_rhs.data())) >=0 |
| vector self-addition
|
|
template<typename OtherScalar > |
auto | operator* (const VectorT< OtherScalar, DIM > &_rhs) const -> typename std::enable_if< sizeof(decltype(this->values_[0] **_rhs.data())) >=0 |
| component-wise vector multiplication
|
|
template<typename OtherScalar > |
auto | operator/ (const VectorT< OtherScalar, DIM > &_rhs) const -> typename std::enable_if< sizeof(decltype(this->values_[0]/*_rhs.data())) >=0 |
| component-wise vector division
|
|
template<typename OtherScalar > |
auto | operator+ (const VectorT< OtherScalar, DIM > &_rhs) const -> typename std::enable_if< sizeof(decltype(this->values_[0]+ *_rhs.data())) >=0 |
| component-wise vector addition
|
|
template<typename OtherScalar > |
auto | operator- (const VectorT< OtherScalar, DIM > &_rhs) const -> typename std::enable_if< sizeof(decltype(this->values_[0] - *_rhs.data())) >=0 |
| component-wise vector difference
|
|
vector_type | operator- (void) const |
| unary minus More...
|
|
template<typename OtherScalar > |
auto | operator% (const VectorT< OtherScalar, DIM > &_rhs) const -> typename std::enable_if< DIM==3, VectorT< decltype((*this)[0] *_rhs[0] -(*this)[0] *_rhs[0]), DIM > >::type |
|
template<typename OtherScalar > |
auto | cross (const VectorT< OtherScalar, DIM > &_rhs) const -> decltype(*this % _rhs) |
|
template<typename OtherScalar > |
auto | operator| (const VectorT< OtherScalar, DIM > &_rhs) const -> decltype(*this->data() **_rhs.data()) |
|
template<typename OtherScalar > |
auto | dot (const VectorT< OtherScalar, DIM > &_rhs) const -> decltype(*this|_rhs) |
|
VectorT< float, 3 > | operator% (const VectorT< float, 3 > &_rhs) const |
| cross product for Vec3f More...
|
|
VectorT< double, 3 > | operator% (const VectorT< double, 3 > &_rhs) const |
| cross product for Vec3d More...
|
|
template<typename S = Scalar> |
decltype(std::declval< S >() *std::declval< S >()) | sqrnorm () const |
| compute squared euclidean norm More...
|
|
template<typename S = Scalar> |
auto | norm () const -> decltype(std::sqrt(std::declval< VectorT< S, DIM > >().sqrnorm())) |
| compute euclidean norm More...
|
|
template<typename S = Scalar> |
auto | length () const -> decltype(std::declval< VectorT< S, DIM > >().norm()) |
| compute squared euclidean norm More...
|
|
template<typename S = Scalar> |
auto | normalize () -> decltype(*this/=std::declval< VectorT< S, DIM > >().norm()) |
|
template<typename S = Scalar> |
auto | normalized () const -> decltype(*this/std::declval< VectorT< S, DIM > >().norm()) |
|
vector_type &::type | normalize_cond () |
| compute squared euclidean norm More...
|
|
Scalar | l1_norm () const |
| compute L1 (Manhattan) norm More...
|
|
Scalar | l8_norm () const |
| compute l8_norm More...
|
|
iterator | begin () noexcept |
|
const_iterator | begin () const noexcept |
|
const_iterator | cbegin () const noexcept |
|
iterator | end () noexcept |
|
const_iterator | end () const noexcept |
|
const_iterator | cend () const noexcept |
|
reverse_iterator | rbegin () noexcept |
|
const_reverse_iterator | rbegin () const noexcept |
|
const_reverse_iterator | crbegin () const noexcept |
|
reverse_iterator | rend () noexcept |
|
const_reverse_iterator | rend () const noexcept |
|
const_reverse_iterator | crend () const noexcept |
|
Scalar | max () const |
| return the maximal component More...
|
|
Scalar | max_abs () const |
| return the maximal absolute component More...
|
|
Scalar | min () const |
| return the minimal component More...
|
|
Scalar | min_abs () const |
| return the minimal absolute component More...
|
|
Scalar | mean () const |
| return arithmetic mean More...
|
|
Scalar | mean_abs () const |
| return absolute arithmetic mean More...
|
|
vector_type & | minimize (const vector_type &_rhs) |
| minimize values: same as *this = min(*this, _rhs), but faster More...
|
|
bool | minimized (const vector_type &_rhs) |
| minimize values and signalize coordinate minimization More...
|
|
vector_type & | maximize (const vector_type &_rhs) |
| maximize values: same as *this = max(*this, _rhs), but faster More...
|
|
bool | maximized (const vector_type &_rhs) |
| maximize values and signalize coordinate maximization More...
|
|
vector_type | min (const vector_type &_rhs) const |
| component-wise min More...
|
|
vector_type | max (const vector_type &_rhs) const |
| component-wise max More...
|
|
template<typename Functor > |
vector_type | apply (const Functor &_func) const |
| component-wise apply function object with Scalar operator()(Scalar). More...
|
|
vector_type & | vectorize (const Scalar &_s) |
| store the same value in each component (e.g. to clear all entries) More...
|
|
bool | operator< (const vector_type &_rhs) const |
| lexicographical comparison More...
|
|
void | swap (VectorT &_other) noexcept(noexcept(std::swap(values_, _other.values_))) |
| swap with another vector More...
|
|