A simple 3D vector type. More...
#include <mia/3d/vector.hh>
Public Types | |
typedef T | value_type |
typedef for generic programming More... | |
Public Member Functions | |
void | fill (T v) |
Fill the vector elements with value v. More... | |
double | norm () const |
double | norm2 () const |
square of Euclidian norm of the vector More... | |
T3DVector< T > & | operator*= (const double a) |
inplace multiplication More... | |
T3DVector< T > & | operator*= (const T3DVector< T > &a) |
inplace component wise multiplication More... | |
T3DVector< T > & | operator+= (const T3DVector< T > &a) |
inplace addition More... | |
T3DVector | operator- () const |
T3DVector< T > & | operator-= (const T3DVector< T > &a) |
inplace subtraction More... | |
T3DVector< T > & | operator/= (const double a) |
inplace divisison by a scalar More... | |
T3DVector< T > & | operator= (const T3DVector< T > &other)=default |
we provide the default copy mechanisms More... | |
template<class in > | |
T3DVector< T > & | operator= (const T3DVector< in > &org) |
assignment from different vector type More... | |
const T | operator[] (size_t i) const |
T & | operator[] (size_t i) |
double | product () const |
void | read (std::istream &is) |
read the vector from a formatted string More... | |
int | size () const |
T3DVector () | |
standart constructor More... | |
T3DVector (int dim) | |
create a zero-vector, dim must be 3 More... | |
T3DVector (const T3DVector< T > &other)=default | |
we provide the default copy mechanisms More... | |
T3DVector (const T &x_, const T &y_, const T &z_) | |
constructor to construct vector from values More... | |
template<class in > | |
T3DVector (const T3DVector< in > &org) | |
type casting copy constructor More... | |
void | write (std::ostream &os) const |
print out the formatted vector to the stream More... | |
const T3DVector< T > & | xyz () const |
swizzle operator More... | |
const T3DVector< T > | xzy () const |
swizzle operator More... | |
const T3DVector< T > | yxz () const |
swizzle operator More... | |
const T3DVector< T > | yzx () const |
swizzle operator More... | |
const T3DVector< T > | zxy () const |
swizzle operator More... | |
const T3DVector< T > | zyx () const |
swizzle operator More... | |
Data Fields | |
T | x |
vector element More... | |
T | y |
vector element More... | |
T | z |
vector element More... | |
Static Public Attributes | |
static T3DVector< T > | _0 = T3DVector<T>(0,0,0) |
declare the vector (0,0,0) More... | |
static T3DVector< T > | _1 = T3DVector<T>(1,1,1) |
declare the vector (1,1,1) More... | |
static const unsigned int | elements |
the number of elements this vector holds (=3) More... | |
A simple 3D vector type.
This class is the template for a 3D vector that provides support for some common operators.
T | element type |
Definition at line 48 of file 3d/vector.hh.
typedef T T3DVector< T >::value_type |
typedef for generic programming
Definition at line 58 of file 3d/vector.hh.
standart constructor
Definition at line 61 of file 3d/vector.hh.
Referenced by T3DVector< T3DVector< T > >::T3DVector().
create a zero-vector, dim must be 3
Definition at line 64 of file 3d/vector.hh.
we provide the default copy mechanisms
constructor to construct vector from values
Definition at line 75 of file 3d/vector.hh.
|
inlineexplicit |
type casting copy constructor
Definition at line 80 of file 3d/vector.hh.
|
inline |
Fill the vector elements with value v.
Definition at line 111 of file 3d/vector.hh.
|
inline |
Definition at line 101 of file 3d/vector.hh.
Referenced by fabs().
|
inline |
square of Euclidian norm of the vector
Definition at line 92 of file 3d/vector.hh.
Referenced by T3DVector< T3DVector< T > >::norm().
inplace multiplication
Definition at line 166 of file 3d/vector.hh.
inplace component wise multiplication
Definition at line 172 of file 3d/vector.hh.
inplace addition
Definition at line 154 of file 3d/vector.hh.
Definition at line 185 of file 3d/vector.hh.
inplace subtraction
Definition at line 160 of file 3d/vector.hh.
inplace divisison by a scalar
Definition at line 179 of file 3d/vector.hh.
we provide the default copy mechanisms
Referenced by T3DVector< T3DVector< T > >::T3DVector().
|
inline |
assignment from different vector type
Definition at line 86 of file 3d/vector.hh.
|
inline |
Implement the const operator [] for this type of vector
i | index |
Definition at line 123 of file 3d/vector.hh.
|
inline |
Implement the writable operator [] for this type of vector
i | index |
Definition at line 142 of file 3d/vector.hh.
|
inline |
Definition at line 97 of file 3d/vector.hh.
|
inline |
read the vector from a formatted string
Definition at line 195 of file 3d/vector.hh.
Referenced by operator>>().
|
inline |
Definition at line 106 of file 3d/vector.hh.
|
inline |
print out the formatted vector to the stream
Definition at line 190 of file 3d/vector.hh.
Referenced by operator<<().
swizzle operator
Definition at line 247 of file 3d/vector.hh.
swizzle operator
Definition at line 252 of file 3d/vector.hh.
swizzle operator
Definition at line 257 of file 3d/vector.hh.
swizzle operator
Definition at line 262 of file 3d/vector.hh.
swizzle operator
Definition at line 272 of file 3d/vector.hh.
swizzle operator
Definition at line 267 of file 3d/vector.hh.
declare the vector (0,0,0)
Definition at line 280 of file 3d/vector.hh.
declare the vector (1,1,1)
Definition at line 277 of file 3d/vector.hh.
|
static |
the number of elements this vector holds (=3)
Definition at line 283 of file 3d/vector.hh.
T T3DVector< T >::x |
vector element
Definition at line 51 of file 3d/vector.hh.
Referenced by cross(), dot(), T3DDatafield< C3DFVector >::get_gradient(), FDeformer3D::operator()(), T3DDatafield< C3DFVector >::operator()(), T3DImage< T >::operator()(), less_then< T3DVector< T > >::operator()(), operator*(), T3DVector< T3DVector< T > >::operator*=(), operator+(), T3DVector< T3DVector< T > >::operator+=(), T3DVector< T3DVector< T > >::operator-(), T3DVector< T3DVector< T > >::operator-=(), operator/(), T3DVector< T3DVector< T > >::operator=(), operator==(), operator>(), operator>=(), T3DVector< T3DVector< T > >::operator[](), operator^(), T3DVector< T3DVector< T > >::xzy(), T3DVector< T3DVector< T > >::yxz(), T3DVector< T3DVector< T > >::yzx(), T3DVector< T3DVector< T > >::zxy(), and T3DVector< T3DVector< T > >::zyx().
T T3DVector< T >::y |
vector element
Definition at line 53 of file 3d/vector.hh.
Referenced by cross(), dot(), T3DDatafield< C3DFVector >::get_gradient(), FDeformer3D::operator()(), T3DDatafield< C3DFVector >::operator()(), T3DImage< T >::operator()(), less_then< T3DVector< T > >::operator()(), operator*(), T3DVector< T3DVector< T > >::operator*=(), operator+(), T3DVector< T3DVector< T > >::operator+=(), T3DVector< T3DVector< T > >::operator-(), T3DVector< T3DVector< T > >::operator-=(), operator/(), T3DVector< T3DVector< T > >::operator=(), operator==(), operator>(), operator>=(), T3DVector< T3DVector< T > >::operator[](), operator^(), T3DVector< T3DVector< T > >::xzy(), T3DVector< T3DVector< T > >::yxz(), T3DVector< T3DVector< T > >::yzx(), T3DVector< T3DVector< T > >::zxy(), and T3DVector< T3DVector< T > >::zyx().
T T3DVector< T >::z |
vector element
Definition at line 55 of file 3d/vector.hh.
Referenced by cross(), dot(), T3DDatafield< C3DFVector >::get_gradient(), T3DVector< T3DVector< T > >::norm2(), FDeformer3D::operator()(), T3DDatafield< C3DFVector >::operator()(), T3DImage< T >::operator()(), less_then< T3DVector< T > >::operator()(), operator*(), T3DVector< T3DVector< T > >::operator*=(), operator+(), T3DVector< T3DVector< T > >::operator+=(), T3DVector< T3DVector< T > >::operator-(), T3DVector< T3DVector< T > >::operator-=(), operator/(), T3DVector< T3DVector< T > >::operator=(), operator==(), operator>(), operator>=(), T3DVector< T3DVector< T > >::operator[](), operator^(), T3DVector< T3DVector< T > >::product(), T3DVector< T3DVector< T > >::write(), T3DVector< T3DVector< T > >::xzy(), T3DVector< T3DVector< T > >::yxz(), T3DVector< T3DVector< T > >::yzx(), T3DVector< T3DVector< T > >::zxy(), and T3DVector< T3DVector< T > >::zyx().