My Project
|
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... | |
template<class in > | |
T3DVector< T > & | operator= (const T3DVector< in > &org) |
assignment from different vector type More... | |
T3DVector< T > & | operator= (const T3DVector< T > &other)=default |
we provide the default copy mechanisms More... | |
T & | operator[] (size_t i) |
const T | operator[] (size_t i) const |
double | product () const |
void | read (std::istream &is) |
read the vector from a formatted string More... | |
int | size () const |
T3DVector () | |
standart constructor 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... | |
T3DVector (const T3DVector< T > &other)=default | |
we provide the default copy mechanisms More... | |
T3DVector (int dim) | |
create a zero-vector, dim must be 3 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 59 of file 3d/vector.hh.
|
inline |
standart constructor
Definition at line 62 of file 3d/vector.hh.
|
inlineexplicit |
create a zero-vector, dim must be 3
Definition at line 65 of file 3d/vector.hh.
|
default |
we provide the default copy mechanisms
|
inline |
constructor to construct vector from values
Definition at line 77 of file 3d/vector.hh.
|
inlineexplicit |
type casting copy constructor
Definition at line 83 of file 3d/vector.hh.
|
inline |
Fill the vector elements with value v.
Definition at line 122 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
|
inline |
Definition at line 110 of file 3d/vector.hh.
References T3DVector< T >::norm2().
Referenced by fabs().
|
inline |
square of Euclidian norm of the vector
Definition at line 99 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
Referenced by T3DVector< T >::norm().
inplace multiplication
Definition at line 200 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
inplace component wise multiplication
Definition at line 209 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
inplace addition
Definition at line 182 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
Definition at line 228 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
inplace subtraction
Definition at line 191 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
inplace divisison by a scalar
Definition at line 219 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
|
inline |
assignment from different vector type
Definition at line 90 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
|
default |
we provide the default copy mechanisms
|
inline |
Implement the writable operator [] for this type of vector
i | index |
Definition at line 162 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
|
inline |
Implement the const operator [] for this type of vector
i | index |
Definition at line 135 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
|
inline |
Definition at line 105 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
|
inline |
read the vector from a formatted string
Definition at line 240 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
Referenced by operator>>().
|
inline |
Definition at line 116 of file 3d/vector.hh.
|
inline |
print out the formatted vector to the stream
Definition at line 234 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
Referenced by operator<<().
swizzle operator
Definition at line 303 of file 3d/vector.hh.
swizzle operator
Definition at line 309 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
swizzle operator
Definition at line 315 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
swizzle operator
Definition at line 321 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
swizzle operator
Definition at line 333 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
swizzle operator
Definition at line 327 of file 3d/vector.hh.
References T3DVector< T >::x, T3DVector< T >::y, and T3DVector< T >::z.
declare the vector (0,0,0)
Definition at line 342 of file 3d/vector.hh.
declare the vector (1,1,1)
Definition at line 339 of file 3d/vector.hh.
|
static |
the number of elements this vector holds (=3)
Definition at line 345 of file 3d/vector.hh.
T T3DVector< T >::x |
vector element
Definition at line 52 of file 3d/vector.hh.
Referenced by cross(), dot(), T3DVector< T >::fill(), T3DDatafield< T >::get_gradient(), T3DVector< T >::norm2(), T3DDatafield< T >::operator()(), T3DImage< T >::operator()(), FDeformer3D::operator()(), less_then< T3DVector< T > >::operator()(), operator*(), T3DVector< T >::operator*=(), operator+(), T3DVector< T >::operator+=(), T3DVector< T >::operator-(), T3DMatrix< T >::operator-=(), T3DVector< T >::operator-=(), operator/(), T3DVector< T >::operator/=(), operator<(), operator<=(), T3DVector< T >::operator=(), operator==(), operator>(), operator>=(), T3DVector< T >::operator[](), operator^(), T3DVector< T >::product(), T3DVector< T >::read(), T3DVector< T >::write(), Quaternion::x(), T3DVector< T >::xzy(), T3DVector< T >::yxz(), T3DVector< T >::yzx(), T3DVector< T >::zxy(), and T3DVector< T >::zyx().
T T3DVector< T >::y |
vector element
Definition at line 54 of file 3d/vector.hh.
Referenced by cross(), dot(), T3DVector< T >::fill(), T3DDatafield< T >::get_gradient(), T3DVector< T >::norm2(), T3DDatafield< T >::operator()(), T3DImage< T >::operator()(), FDeformer3D::operator()(), less_then< T3DVector< T > >::operator()(), operator*(), T3DVector< T >::operator*=(), operator+(), T3DVector< T >::operator+=(), T3DVector< T >::operator-(), T3DMatrix< T >::operator-=(), T3DVector< T >::operator-=(), operator/(), T3DVector< T >::operator/=(), operator<(), operator<=(), T3DVector< T >::operator=(), operator==(), operator>(), operator>=(), T3DVector< T >::operator[](), operator^(), T3DVector< T >::product(), T3DVector< T >::read(), T3DVector< T >::write(), T3DVector< T >::xzy(), Quaternion::y(), T3DVector< T >::yxz(), T3DVector< T >::yzx(), T3DVector< T >::zxy(), and T3DVector< T >::zyx().
T T3DVector< T >::z |
vector element
Definition at line 56 of file 3d/vector.hh.
Referenced by cross(), dot(), T3DVector< T >::fill(), T3DDatafield< T >::get_gradient(), T3DVector< T >::norm2(), T3DDatafield< T >::operator()(), T3DImage< T >::operator()(), FDeformer3D::operator()(), less_then< T3DVector< T > >::operator()(), operator*(), T3DVector< T >::operator*=(), operator+(), T3DVector< T >::operator+=(), T3DVector< T >::operator-(), T3DMatrix< T >::operator-=(), T3DVector< T >::operator-=(), operator/(), T3DVector< T >::operator/=(), operator<(), operator<=(), T3DVector< T >::operator=(), operator==(), operator>(), operator>=(), T3DVector< T >::operator[](), operator^(), T3DVector< T >::product(), T3DVector< T >::read(), T3DVector< T >::write(), T3DVector< T >::xzy(), T3DVector< T >::yxz(), T3DVector< T >::yzx(), Quaternion::z(), T3DVector< T >::zxy(), and T3DVector< T >::zyx().