My Project
T2DVector< T > Class Template Reference

a 2D vector More...

#include <mia/2d/vector.hh>

Inheritance diagram for T2DVector< T >:
[legend]

Public Types

typedef T value_type
 typedef for generic access to the element type More...
 

Public Member Functions

void fill (T v)
 fill all the elements with the given value More...
 
T norm () const
 
T norm2 () const
 
bool operator!= (const T2DVector &a) const
 not equal operator More...
 
T2DVector & operator*= (const T2DVector &a)
 in place element wise multiplication of two 2D vectors More...
 
T2DVector & operator*= (double a)
 in place multiplication with a scalar More...
 
T2DVector & operator+= (const T2DVector &a)
 in place addition More...
 
T2DVector operator- () const
 
T2DVector & operator-= (const T2DVector &a)
 in place subtraction More...
 
T2DVector & operator/= (const T2DVector &a)
 in place element wise division of two 2D vectors More...
 
T2DVector & operator/= (double a)
 in place division by a scalar More...
 
bool operator== (const T2DVector &a) const
 Equal operator. More...
 
T & operator[] (int i)
 
const T & operator[] (int i) const
 
void print (std::ostream &os) const
 print the vector to a stream with special formatting More...
 
double product () const
 
void read (std::istream &is)
 read the properly formatted 2D vector from a stream More...
 
size_t size () const
 returns the size of this vector, always 2 More...
 
 T2DVector ()
 
template<typename In >
 T2DVector (const T2DVector< In > &in)
 
 T2DVector (int dim)
 
 T2DVector (T _x, T _y)
 

Data Fields

T x
 first element More...
 
T y
 second element More...
 

Static Public Attributes

static const T2DVector< T > _0 = T2DVector<T>(0, 0)
 a static for the value <0,0>. More...
 
static const T2DVector< T > _1 = T2DVector<T>(1, 1)
 a static for the value <1,1>. More...
 

Detailed Description

template<class T>
class T2DVector< T >

a 2D vector

A 2D vector that provides the usual set of operations required to handle such objects.

Template Parameters
typeof the elements

Definition at line 46 of file 2d/vector.hh.

Member Typedef Documentation

◆ value_type

template<class T >
typedef T T2DVector< T >::value_type

typedef for generic access to the element type

Definition at line 51 of file 2d/vector.hh.

Constructor & Destructor Documentation

◆ T2DVector() [1/4]

template<class T >
T2DVector< T >::T2DVector ( )
inline

Definition at line 65 of file 2d/vector.hh.

◆ T2DVector() [2/4]

template<class T >
T2DVector< T >::T2DVector ( int  dim)
inlineexplicit

this constructor is required for some generic code It is explicit to avoid some problems with automatic assigment

Definition at line 70 of file 2d/vector.hh.

◆ T2DVector() [3/4]

template<class T >
T2DVector< T >::T2DVector ( T  _x,
T  _y 
)
inline

Contruct the vector with the according elements

Parameters
_x
_y

Definition at line 80 of file 2d/vector.hh.

◆ T2DVector() [4/4]

template<class T >
template<typename In >
T2DVector< T >::T2DVector ( const T2DVector< In > &  in)
inline

Automatically convert a 2D vector from another element type

Definition at line 87 of file 2d/vector.hh.

Member Function Documentation

◆ fill()

template<class T >
void T2DVector< T >::fill ( T  v)
inline

fill all the elements with the given value

Definition at line 218 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ norm()

template<class T >
T T2DVector< T >::norm ( ) const
inline
Returns
norm of the vector

Definition at line 103 of file 2d/vector.hh.

References T2DVector< T >::norm2().

◆ norm2()

template<class T >
T T2DVector< T >::norm2 ( ) const
inline
Returns
square norm of the vector

Definition at line 97 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

Referenced by T2DVector< T >::norm().

◆ operator!=()

template<class T >
bool T2DVector< T >::operator!= ( const T2DVector< T > &  a) const
inline

not equal operator

Definition at line 230 of file 2d/vector.hh.

◆ operator*=() [1/2]

template<class T >
T2DVector& T2DVector< T >::operator*= ( const T2DVector< T > &  a)
inline

in place element wise multiplication of two 2D vectors

Definition at line 141 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator*=() [2/2]

template<class T >
T2DVector& T2DVector< T >::operator*= ( double  a)
inline

in place multiplication with a scalar

Definition at line 133 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator+=()

template<class T >
T2DVector& T2DVector< T >::operator+= ( const T2DVector< T > &  a)
inline

in place addition

Definition at line 117 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator-()

template<class T >
T2DVector T2DVector< T >::operator- ( ) const
inline

Definition at line 170 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator-=()

template<class T >
T2DVector& T2DVector< T >::operator-= ( const T2DVector< T > &  a)
inline

in place subtraction

Definition at line 125 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator/=() [1/2]

template<class T >
T2DVector& T2DVector< T >::operator/= ( const T2DVector< T > &  a)
inline

in place element wise division of two 2D vectors

Definition at line 149 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator/=() [2/2]

template<class T >
T2DVector& T2DVector< T >::operator/= ( double  a)
inline

in place division by a scalar

Definition at line 160 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator==()

template<class T >
bool T2DVector< T >::operator== ( const T2DVector< T > &  a) const
inline

Equal operator.

Definition at line 224 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ operator[]() [1/2]

template<class T >
T& T2DVector< T >::operator[] ( int  i)
inline

Array access operator for some generic code One should have a look how expensive this function is

Definition at line 184 of file 2d/vector.hh.

References DEBUG_ASSERT_RELEASE_THROW, T2DVector< T >::x, and T2DVector< T >::y.

◆ operator[]() [2/2]

template<class T >
const T& T2DVector< T >::operator[] ( int  i) const
inline

Array access operator for some generic code One should have a look how expensive this function is

Definition at line 202 of file 2d/vector.hh.

References DEBUG_ASSERT_RELEASE_THROW, T2DVector< T >::x, and T2DVector< T >::y.

◆ print()

template<class T >
void T2DVector< T >::print ( std::ostream &  os) const
inline

print the vector to a stream with special formatting

Definition at line 236 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

Referenced by operator<<().

◆ product()

template<class T >
double T2DVector< T >::product ( ) const
inline
Returns
product of the elements of the vector

Definition at line 109 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

◆ read()

template<class T >
void T2DVector< T >::read ( std::istream &  is)
inline

read the properly formatted 2D vector from a stream

Definition at line 242 of file 2d/vector.hh.

References T2DVector< T >::x, and T2DVector< T >::y.

Referenced by operator>>().

◆ size()

template<class T >
size_t T2DVector< T >::size ( ) const
inline

returns the size of this vector, always 2

Definition at line 176 of file 2d/vector.hh.

Field Documentation

◆ _0

template<typename T >
const T2DVector< T > T2DVector< T >::_0 = T2DVector<T>(0, 0)
static

a static for the value <0,0>.

Definition at line 63 of file 2d/vector.hh.

◆ _1

template<typename T >
const T2DVector< T > T2DVector< T >::_1 = T2DVector<T>(1, 1)
static

a static for the value <1,1>.

Definition at line 60 of file 2d/vector.hh.

◆ x

◆ y


The documentation for this class was generated from the following file: