00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _freESMutationBase_txx
00023 #define _freESMutationBase_txx
00024
00025 #include "freESMutationBase.h"
00026
00027 namespace FREE
00028 {
00029 namespace ES
00030 {
00031
00032 template <class TIndividual>
00033 MutationBase<TIndividual>
00034 ::MutationBase()
00035 {
00036 m_ScalesInitialized = false;
00037 m_MutateValueScale = 1.0;
00038 }
00039
00040 template <class TIndividual>
00041 MutationBase<TIndividual>
00042 ::~MutationBase()
00043 {
00044 }
00045
00046 template <class TIndividual>
00047 void
00048 MutationBase<TIndividual>
00049 ::Mutate(IndividualType* pIndividual, PopulationType* pPopulation) const
00050 {
00051 if (!pIndividual) throwExceptionMacro("Error. Passed individual is Null.");
00052 if (!pPopulation) throwExceptionMacro("Error. Passed population is Null.");
00053
00054 MutateObjectivParameters(pIndividual, pPopulation);
00055
00056
00057 pIndividual->ResetObjectiveValue();
00058 };
00059
00061 template <class TIndividual>
00062 void
00063 MutationBase<TIndividual>
00064 ::SetGeneralObjectiveScales(const ScalesType & scales)
00065 {
00066 itkDebugMacro("setting scales to " << scales);
00067 m_GeneralObjectiveScales = scales;
00068 m_ScalesInitialized = true;
00069 this->Modified();
00070 }
00071
00072 }
00073 }
00074
00075 #endif