00001 /* 00002 * GLBaseVariator.h 00003 * 00004 * Created on: 31-Dec-2008 00005 * Author: Artem_Babayan 00006 */ 00007 00008 #ifndef GLBASEVARIATOR_H_ 00009 #define GLBASEVARIATOR_H_ 00010 #include "GLConstants.h" 00011 00012 class GLBaseMutator; 00013 class GLBaseOrganismStorage; 00014 class GLBasePopulation; 00018 class GLBaseVariator 00019 { 00020 public: 00025 GLBaseVariator(GLBaseMutator *mutator); 00026 00030 virtual ~GLBaseVariator(); 00031 00047 virtual int applyMutator(GLBasePopulation* population, 00048 GLBaseOrganismStorage* organisms, 00049 GLBaseOrganismStorage* mutants, 00050 GLConstants::TStorageFilling fill = 00051 GLConstants::APPEND, 00052 GLConstants::TTwinsFlags twins = 00053 GLConstants::NO_TWINS, 00054 int max_mutants = -1) = 0; 00055 00060 GLBaseMutator* getMutator() 00061 { return m_mutator; } 00062 00067 const GLBaseMutator* getMutator() const 00068 { return m_mutator; } 00069 00074 virtual void reset(); 00075 protected: 00077 GLBaseMutator* m_mutator; 00078 }; 00079 00080 #endif /* GLBASEVARIATOR_H_ */