Visual Servoing Platform  version 3.0.0
vpList< type > Class Template Reference

#include <visp3/core/vpList.h>

Public Member Functions

 vpList ()
 
 vpList (const vpList &l)
 
virtual ~vpList ()
 
void next (void)
 
void previous (void)
 
void front (void)
 
void end (void)
 
bool outside (void) const
 
bool empty (void) const
 
type & value (void)
 
const type & value (void) const
 
void suppress (void)
 
void kill ()
 
void display ()
 
void print ()
 
void addRight (const type &el)
 
void addLeft (const type &el)
 
void modify (const type &el)
 
void addRight (type &el)
 
void addLeft (type &el)
 
void swapLeft ()
 
void swapRight ()
 
unsigned int nbElement (void)
 
unsigned int nbElements (void)
 
vpList< type > & operator= (const vpList< type > &l)
 
void operator+= (vpList< type > &l)
 
void operator+= (const type &l)
 
bool nextOutside (void) const
 
bool previousOutside (void) const
 
type & previousValue (void)
 
type & nextValue (void)
 
type & firstValue (void)
 
type & lastValue (void)
 

Public Attributes

unsigned int nb
 
vpListElement< type > * first
 
vpListElement< type > * last
 
vpListElement< type > * cur
 

Detailed Description

template<class type>
class vpList< type >

Provide simple list management.

Data structure:
  each object vpListElement contains its own value and
  two pointers to the next element of the list and to the previous one

  A list is mainly a pointer to three of these elements
    - one (cur) points the current element
    - one (first) points to a virtual element located at the
      beginning of the list
    - one (last) points  to a virtual element located at the
      end of the list

    first, last and cur are used internally and are not to be considered
    by "basic" user.

Notation:
  In this documentation we note such a list as
        [*, a, b, c, *]
         f     ^     l
  where
   - the * are the two virtual elements (first (f) and last (l))
   - the ^ denotes the position of the current element

Definition at line 118 of file vpList.h.

Constructor & Destructor Documentation

template<class type >
vpList< type >::vpList ( )

Basic constructor, initialization, Create an empty list.

init() --> [*, *]
See also
init()

Definition at line 231 of file vpList.h.

template<class type >
vpList< type >::vpList ( const vpList< type > &  l)

copy constructor

Parameters
l: the list to copy

Definition at line 813 of file vpList.h.

template<class type >
vpList< type >::~vpList ( )
virtual

vpList destructor

See also
kill()

Definition at line 243 of file vpList.h.

Member Function Documentation

template<class type >
void vpList< type >::addLeft ( const type &  v)
inline

add a new element in the list, at the left of the current one

Warning
the new element becomes the current one
[*, a, b, c, *]  --> addLeft(i) -->   [*, a, i, b, c, *]
       ^                                     ^

Definition at line 516 of file vpList.h.

template<class type >
void vpList< type >::addLeft ( type &  v)
inline

add a new element in the list, at the left of the current one

Warning
the new element becomes the current one
[*, a, b, c, *]  --> addLeft(i) -->   [*, a, i, b, c, *]
       ^                                     ^

Definition at line 583 of file vpList.h.

template<class type >
void vpList< type >::addRight ( const type &  v)
inline

add a new element in the list, at the right of the current one

Warning
the new element becomes the current one
[*, a, b, c, *]  --> addRight(i) -->   [*, a, b, i, c, *]
       ^                                         ^

Definition at line 483 of file vpList.h.

template<class type >
void vpList< type >::addRight ( type &  v)
inline

add a new element in the list, at the right of the current one

Warning
the new element becomes the current one
[*, a, b, c, *]  --> addRight(i) -->   [*, a, b, i, c, *]
       ^                                         ^

Definition at line 550 of file vpList.h.

template<class type >
void vpList< type >::display ( )

Print (std::cout) all the element of the list.

Definition at line 824 of file vpList.h.

Referenced by vpList< type >::print().

template<class type >
bool vpList< type >::empty ( void  ) const

Test if the list is empty.

[*, a, b, c, d, *]  --> empty return false
[*, *]              --> empty return true

Definition at line 417 of file vpList.h.

template<class type >
void vpList< type >::end ( void  )
inline

Position the current element on the last element of the list.

[*, a, b, c, d, *]  --> end() --> [*, a, b, c, d, *]
       ^                                         ^

Definition at line 403 of file vpList.h.

template<class type >
type & vpList< type >::firstValue ( void  )

return the first element of the list

 [*, a, b, c, d, *]  --> firstValue() return a

Definition at line 361 of file vpList.h.

template<class type >
void vpList< type >::front ( void  )
inline

Position the current element on the first element of the list.

[*, a, b, c, d, *]  --> front() --> [*, a, b, c, d, *]
       ^                                ^

Definition at line 389 of file vpList.h.

Referenced by vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), and vpList< type >::operator+=().

template<class type >
void vpList< type >::kill ( )

Destroy the list.

[*, a, b, c, *]  --> kill -->   [*, *]
       ^                            ^

Definition at line 697 of file vpList.h.

template<class type >
type & vpList< type >::lastValue ( void  )

return the last element of the list

 [*, a, b, c, d, *]  --> lastValue() return d

Definition at line 374 of file vpList.h.

template<class type >
void vpList< type >::modify ( const type &  v)
inline

Modify the value of the current element.

[*, a, b, c, *]  --> modify(i) -->   [*, a, i, c, *]
       ^                                    ^

Definition at line 615 of file vpList.h.

template<class type >
unsigned int vpList< type >::nbElement ( void  )
inline

return the number of element in the list

Definition at line 255 of file vpList.h.

template<class type >
unsigned int vpList< type >::nbElements ( void  )
inline

return the number of element in the list

Definition at line 264 of file vpList.h.

template<class type >
void vpList< type >::next ( void  )
inline

position the current element on the next one

[*, a, b, c, d, *] --> next() -->   [*, a, b, c, d, *]
       ^                                      ^

Definition at line 278 of file vpList.h.

Referenced by vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), and vpList< type >::operator+=().

template<class type >
bool vpList< type >::nextOutside ( void  ) const

Test if the next element is outside the list (ie if the current element is the last one)

[*, a, b, c, d, *]  --> nextOutside return true
             ^

Definition at line 450 of file vpList.h.

template<class type >
type & vpList< type >::nextValue ( void  )

return the value of the next element

[*, a, b, c, d, *]  --> nextValue() return c
       ^

Definition at line 347 of file vpList.h.

template<class type >
void vpList< type >::operator+= ( vpList< type > &  l)
inline

Append two lists.

[*, a, b, *] += [*, c, d, *] --> [*, a, b, c, d, *]
                                              ^

Definition at line 777 of file vpList.h.

References vpList< type >::front(), vpList< type >::next(), vpList< type >::outside(), and vpList< type >::value().

template<class type >
void vpList< type >::operator+= ( const type &  l)
inline

Append an element to a list.

[*, a, b, *] += c --> [*, a, b, c, *]
                                ^

Definition at line 800 of file vpList.h.

template<class type >
vpList< type > & vpList< type >::operator= ( const vpList< type > &  l)

Copy constructor const.

Parameters
l: the list to copy

Definition at line 747 of file vpList.h.

References vpList< type >::first, vpList< type >::last, and vpList< type >::nb.

template<class type >
bool vpList< type >::outside ( void  ) const
inline

Test if the current element is outside the list (on the virtual element)

[*, a, b, c, d, *]  --> outside return false
       ^
[*, a, b, c, d, *]  --> outside return true
 ^      or      ^

Definition at line 434 of file vpList.h.

Referenced by vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), and vpList< type >::operator+=().

template<class type >
void vpList< type >::previous ( void  )
inline

position the current element on the previous one

[*, a, b, c, d, *] --> previous() -->   [*, a, b, c, d, *]
       ^                                ^

Definition at line 292 of file vpList.h.

template<class type >
bool vpList< type >::previousOutside ( void  ) const

Test if the previous element is outside the list (ie if the current element is the firts one)

[*, a, b, c, d, *]  --> nextOutside return true
    ^

Definition at line 466 of file vpList.h.

template<class type >
type & vpList< type >::previousValue ( void  )

return the value of the previous element

[*, a, b, c, *]  --> previousValue() return a
       ^

Definition at line 334 of file vpList.h.

template<class type>
void vpList< type >::print ( )
inline

Definition at line 169 of file vpList.h.

References vpList< type >::display().

template<class type >
void vpList< type >::suppress ( void  )

suppress the current element

Warning
new current element is on the next one
[*, a, b, c, d, *] --> suppress -->  [*, a, c, d, *]
       ^                                    ^

Definition at line 721 of file vpList.h.

template<class type >
void vpList< type >::swapLeft ( )
inline

Switch the current element with the element on the left.

[*, a, b, c, *]  --> swapLeft -->   [*, b, a, c, *]
       ^                                  ^

Definition at line 629 of file vpList.h.

template<class type >
void vpList< type >::swapRight ( )
inline

Switch the current element with the element on the right.

[*, a, b, c, *]  --> swapRight -->   [*, a, c, b, *]
       ^                                         ^

Definition at line 663 of file vpList.h.

template<class type >
type & vpList< type >::value ( void  )
inline

return the value of the current element

[*, a, b, c, *]  --> value() return b
       ^

Definition at line 306 of file vpList.h.

Referenced by vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), and vpList< type >::operator+=().

template<class type >
const type & vpList< type >::value ( void  ) const
inline

return the value of the current element using a const ref.

[*, a, b, c, *]  --> value() return b
       ^

Definition at line 320 of file vpList.h.

Member Data Documentation

template<class type>
vpListElement<type>* vpList< type >::cur

the current item in the list

      [*, a, b, c, *]
             ^

Definition at line 148 of file vpList.h.

template<class type>
vpListElement<type>* vpList< type >::first

the first virtual item in the list

      [*, a, b, c, *]
       f

Definition at line 132 of file vpList.h.

Referenced by vpList< type >::operator=().

template<class type>
vpListElement<type>* vpList< type >::last

the last virtualitem in the list

      [*, a, b, c, *]
                   l

Definition at line 140 of file vpList.h.

Referenced by vpList< type >::operator=().

template<class type>
unsigned int vpList< type >::nb

Definition at line 124 of file vpList.h.

Referenced by vpList< type >::operator=().