EvolvingObjects
|
00001 00023 //----------------------------------------------------------------------------- 00024 00025 #ifndef _eoBreed_h 00026 #define _eoBreed_h 00027 00028 00029 //----------------------------------------------------------------------------- 00030 #include <eoPop.h> 00031 #include <eoFunctor.h> 00032 #include <eoSelect.h> 00033 #include <eoTransform.h> 00034 //----------------------------------------------------------------------------- 00035 00047 template<class EOT> 00048 class eoBreed : public eoBF<const eoPop<EOT>&, eoPop<EOT>&, void> 00049 {}; 00050 00051 00052 00060 template <class EOT> 00061 class eoSelectTransform : public eoBreed<EOT> 00062 { 00063 public: 00064 eoSelectTransform(eoSelect<EOT>& _select, eoTransform<EOT>& _transform) : 00065 select(_select), transform(_transform) 00066 {} 00067 00068 void operator()(const eoPop<EOT>& _parents, eoPop<EOT>& _offspring) 00069 { 00070 select(_parents, _offspring); 00071 transform(_offspring); 00072 } 00073 00074 private : 00075 eoSelect<EOT>& select; 00076 eoTransform<EOT>& transform; 00077 }; 00078 00079 #endif