eoSelectNumber.h

00001 
00023 //-----------------------------------------------------------------------------
00024 
00025 #ifndef _eoSelectNumber_h
00026 #define _eoSelectNumber_h
00027 
00028 
00029 //-----------------------------------------------------------------------------
00030 #include <eoSelect.h>
00031 #include <eoSelectOne.h>
00032 #include <math.h>
00033 //-----------------------------------------------------------------------------
00034 
00041 template<class EOT>
00042 class eoSelectNumber : public eoSelect<EOT>
00043 {
00044  public:
00046      eoSelectNumber(eoSelectOne<EOT>& _select, unsigned _nb_to_select = 1) 
00047          : select(_select), nb_to_select(_nb_to_select) {}
00048 
00055   virtual void operator()(const eoPop<EOT>& _source, eoPop<EOT>& _dest)
00056   {
00057     size_t target = static_cast<size_t>(nb_to_select);
00058     
00059     _dest.resize(target);
00060     
00061     select.setup(_source);
00062     
00063     for (size_t i = 0; i < _dest.size(); ++i)
00064       _dest[i] = select(_source);
00065   }
00066   
00067 private :
00068   eoSelectOne<EOT>& select;
00069   unsigned nb_to_select;
00070 };
00071 
00072 #endif

Generated on Thu Oct 19 05:06:38 2006 for EO by  doxygen 1.3.9.1