00001 #ifndef GLBASEBREEDER_H_ 00002 #define GLBASEBREEDER_H_ 00003 #include "GLConstants.h" 00004 00005 class GLBaseCrossover; 00006 class GLBaseOrganismStorage; 00007 class GLBasePopulation; 00012 class GLBaseBreeder 00013 { 00014 public: 00019 GLBaseBreeder(GLBaseCrossover* crossover); 00020 00024 virtual ~GLBaseBreeder(); 00025 00041 virtual int breedOrganisms(GLBasePopulation* population, 00042 GLBaseOrganismStorage* potential_parents, 00043 GLBaseOrganismStorage* offsprings, 00044 GLConstants::TStorageFilling fill = 00045 GLConstants::APPEND, 00046 GLConstants::TTwinsFlags twins = 00047 GLConstants::NO_TWINS, 00048 int size_limits = -1) = 0; 00049 00054 GLBaseCrossover* getCrossover() 00055 { return m_crossover; } 00056 00061 const GLBaseCrossover* getCrossover() const 00062 { return m_crossover; } 00063 00068 virtual void reset(); 00069 private: 00070 GLBaseCrossover *m_crossover; 00071 }; 00072 00073 #endif /* GLBASEBREEDER_H_ */