soma-io  5.0.2
AimsVector< T, D > Class Template Reference

The template class to implement basic vectors. More...

#include <soma-io/vector/vector.h>

Collaboration diagram for AimsVector< T, D >:

Public Member Functions

std::vector< T > toStdVector () const
 
Constructors and Destructor
 AimsVector ()
 The constructor allocates an appropriate amount of memory. More...
 
 AimsVector (const std::vector< T > &value)
 
 AimsVector (const T &value)
 The constructor fills the D items of vector with value. More...
 
 AimsVector (const T value[])
 The constructor copy the D item of value[]. More...
 
 AimsVector (const T &x, const T &y)
 Constructor for D=2. More...
 
 AimsVector (const T &x, const T &y, const T &z)
 Constructor for D=3. More...
 
 AimsVector (const T &x, const T &y, const T &z, const T &t)
 Constructor for D=4. More...
 
 AimsVector (const AimsVector< T, D > &other)
 Copy constructor. More...
 
template<class U >
 AimsVector (const AimsVector< U, D > &other)
 Type conversion. More...
 
 ~AimsVector ()
 The destructor deletes the allocated memory space. More...
 
Manipulators and methods
AimsVector< T, D > & operator= (const AimsVector< T, D > &other)
 
AimsVector< T, D > & operator+= (const AimsVector< T, D > &other)
 
AimsVector< T, D > & operator-= (const AimsVector< T, D > &other)
 
AimsVector< T, D > & operator*= (double val)
 
AimsVector< T, D > & operator/= (double val)
 
AimsVector< T, D > & normalize ()
 
const T & item (int d) const
 Get a const reference to the dth item. More...
 
const T & operator[] (int d) const
 Get a const reference to the dth item. More...
 
T & item (int d)
 Get a non const reference to the dth item. More...
 
T & operator[] (int d)
 Get a const reference to the dth item. More...
 
int size () const
 
bool isNull () const
 Test if the vector is the null vector. More...
 
float norm () const
 Return the magnitude of the vector. More...
 
float norm2 () const
 Return the square magnitude of the vector. More...
 
double dnorm () const
 Return the magnitude of the vector. More...
 
double dnorm2 () const
 Return the square magnitude of the vector. More...
 
dot (const AimsVector< T, D > &other) const
 Get the dot product between 2 vectors. More...
 

Protected Attributes

_value [D]
 Memory space allocated. More...
 

Iterators

typedef T * iterator
 
typedef const T * const_iterator
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 

Detailed Description

template<class T, int D>
class AimsVector< T, D >

The template class to implement basic vectors.

The first template argument provides the type of stored items and the second template argument provides the size of the vector.

Definition at line 53 of file vector.h.

Member Typedef Documentation

◆ const_iterator

template<class T, int D>
typedef const T* AimsVector< T, D >::const_iterator

Definition at line 201 of file vector.h.

◆ iterator

template<class T, int D>
typedef T* AimsVector< T, D >::iterator

Definition at line 200 of file vector.h.

Constructor & Destructor Documentation

◆ AimsVector() [1/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( )
inline

The constructor allocates an appropriate amount of memory.

Definition at line 433 of file vector.h.

Referenced by operator!=().

◆ AimsVector() [2/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const std::vector< T > &  value)
inlineexplicit

Definition at line 457 of file vector.h.

References AimsVector< T, D >::_value.

◆ AimsVector() [3/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const T &  value)
inline

The constructor fills the D items of vector with value.

Definition at line 440 of file vector.h.

References AimsVector< T, D >::_value.

◆ AimsVector() [4/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const T  value[])
inlineexplicit

The constructor copy the D item of value[].

Definition at line 449 of file vector.h.

References AimsVector< T, D >::_value.

◆ AimsVector() [5/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const T &  x,
const T &  y 
)
inline

Constructor for D=2.

Definition at line 584 of file vector.h.

References AimsVector< T, D >::_value, and internal::fill_aimsvector2< T, D >::doit().

◆ AimsVector() [6/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const T &  x,
const T &  y,
const T &  z 
)
inline

Constructor for D=3.

Definition at line 592 of file vector.h.

References AimsVector< T, D >::_value, and internal::fill_aimsvector3< T, D >::doit().

◆ AimsVector() [7/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const T &  x,
const T &  y,
const T &  z,
const T &  t 
)
inline

Constructor for D=4.

Definition at line 600 of file vector.h.

References AimsVector< T, D >::_value, and internal::fill_aimsvector4< T, D >::doit().

◆ AimsVector() [8/9]

template<class T , int D>
AimsVector< T, D >::AimsVector ( const AimsVector< T, D > &  other)
inline

Copy constructor.

Definition at line 608 of file vector.h.

References AimsVector< T, D >::_value.

◆ AimsVector() [9/9]

template<class T , int D>
template<class U >
AimsVector< T, D >::AimsVector ( const AimsVector< U, D > &  other)
inlineexplicit

Type conversion.

Definition at line 616 of file vector.h.

References AimsVector< T, D >::_value.

◆ ~AimsVector()

template<class T , int D>
AimsVector< T, D >::~AimsVector ( )
inline

The destructor deletes the allocated memory space.

Definition at line 637 of file vector.h.

Referenced by operator!=().

Member Function Documentation

◆ begin() [1/2]

template<class T, int D>
iterator AimsVector< T, D >::begin ( )
inline

Definition at line 202 of file vector.h.

References AimsVector< T, D >::_value.

◆ begin() [2/2]

template<class T, int D>
const_iterator AimsVector< T, D >::begin ( ) const
inline

Definition at line 203 of file vector.h.

References AimsVector< T, D >::_value.

◆ dnorm()

template<class T , int D>
double AimsVector< T, D >::dnorm ( ) const
inline

Return the magnitude of the vector.

Definition at line 768 of file vector.h.

References AimsVector< T, D >::item().

Referenced by dnorm(), and operator!=().

◆ dnorm2()

template<class T , int D>
double AimsVector< T, D >::dnorm2 ( ) const
inline

Return the square magnitude of the vector.

Definition at line 778 of file vector.h.

References AimsVector< T, D >::item().

Referenced by dnorm2(), and operator!=().

◆ dot()

template<class T , int D>
T AimsVector< T, D >::dot ( const AimsVector< T, D > &  other) const
inline

Get the dot product between 2 vectors.

Definition at line 789 of file vector.h.

References AimsVector< T, D >::item().

Referenced by operator!=().

◆ end() [1/2]

template<class T, int D>
iterator AimsVector< T, D >::end ( )
inline

Definition at line 204 of file vector.h.

References AimsVector< T, D >::_value.

◆ end() [2/2]

template<class T, int D>
const_iterator AimsVector< T, D >::end ( ) const
inline

Definition at line 205 of file vector.h.

References AimsVector< T, D >::_value, and AimsVector< T, D >::toStdVector().

◆ isNull()

template<class T , int D>
bool AimsVector< T, D >::isNull ( ) const
inline

Test if the vector is the null vector.

Definition at line 738 of file vector.h.

References AimsVector< T, D >::_value.

Referenced by operator!=().

◆ item() [1/2]

template<class T , int D>
const T & AimsVector< T, D >::item ( int  d) const
inline

◆ item() [2/2]

template<class T , int D>
T & AimsVector< T, D >::item ( int  d)
inline

Get a non const reference to the dth item.

Definition at line 714 of file vector.h.

References AimsVector< T, D >::_value, and ASSERT.

◆ norm()

template<class T , int D>
float AimsVector< T, D >::norm ( ) const
inline

Return the magnitude of the vector.

Definition at line 748 of file vector.h.

References AimsVector< T, D >::item().

Referenced by norm(), AimsVector< T, D >::normalize(), and operator!=().

◆ norm2()

template<class T , int D>
float AimsVector< T, D >::norm2 ( ) const
inline

Return the square magnitude of the vector.

Definition at line 758 of file vector.h.

References AimsVector< T, D >::item().

Referenced by norm2(), and operator!=().

◆ normalize()

template<class T , int D>
AimsVector< T, D > & AimsVector< T, D >::normalize ( )
inline

◆ operator*=()

template<class T , int D>
AimsVector< T, D > & AimsVector< T, D >::operator*= ( double  val)
inline

Definition at line 664 of file vector.h.

References AimsVector< T, D >::_value.

Referenced by operator!=().

◆ operator+=()

template<class T , int D>
AimsVector< T, D > & AimsVector< T, D >::operator+= ( const AimsVector< T, D > &  other)
inline

Definition at line 644 of file vector.h.

References AimsVector< T, D >::_value.

Referenced by operator!=().

◆ operator-=()

template<class T , int D>
AimsVector< T, D > & AimsVector< T, D >::operator-= ( const AimsVector< T, D > &  other)
inline

Definition at line 654 of file vector.h.

References AimsVector< T, D >::_value.

Referenced by operator!=().

◆ operator/=()

template<class T , int D>
AimsVector< T, D > & AimsVector< T, D >::operator/= ( double  val)
inline

Definition at line 674 of file vector.h.

References AimsVector< T, D >::_value.

Referenced by AimsVector< T, D >::normalize(), and operator!=().

◆ operator=()

template<class T , int D>
AimsVector< T, D > & AimsVector< T, D >::operator= ( const AimsVector< T, D > &  other)
inline

Definition at line 625 of file vector.h.

References AimsVector< T, D >::_value.

Referenced by operator!=().

◆ operator[]() [1/2]

template<class T , int D>
const T & AimsVector< T, D >::operator[] ( int  d) const
inline

Get a const reference to the dth item.

Definition at line 705 of file vector.h.

References AimsVector< T, D >::_value, and ASSERT.

Referenced by operator!=().

◆ operator[]() [2/2]

template<class T , int D>
T & AimsVector< T, D >::operator[] ( int  d)
inline

Get a const reference to the dth item.

Definition at line 723 of file vector.h.

References AimsVector< T, D >::_value, and ASSERT.

◆ size()

template<class T , int D>
int AimsVector< T, D >::size ( ) const
inline

Definition at line 731 of file vector.h.

Referenced by operator!=().

◆ toStdVector()

template<class T , int D>
std::vector< T > AimsVector< T, D >::toStdVector ( ) const
inline

Definition at line 800 of file vector.h.

References AimsVector< T, D >::item().

Referenced by AimsVector< T, D >::end().

Member Data Documentation

◆ _value


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