00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freESComponentBase_h
00023 #define __freESComponentBase_h
00024
00025 #include <itkLightObject.h>
00026 #include <freESPopulation.h>
00027
00028 namespace FREE
00029 {
00030 namespace ES
00031 {
00032
00039 template <class TIndividual>
00040 class ITK_EXPORT ComponentBase:
00041 public itk::Object
00042 {
00043 public:
00045 typedef ComponentBase<TIndividual> Self ;
00046 typedef itk::Object Superclass;
00047 typedef itk::SmartPointer<Self> Pointer;
00048 typedef itk::SmartPointer<const Self> ConstPointer;
00049
00051 itkNewMacro(Self);
00052
00054 itkTypeMacro(ComponentBase, Object);
00055
00056 typedef TIndividual IndividualType;
00057 typedef Population<IndividualType> PopulationType;
00058
00059 virtual void RegisterStrategicIndividualParameters(IndividualType& individual) const;
00060 virtual void RegisterStrategicPopulationParameters(PopulationType& population) const;
00061 virtual void MutateStrategicPopulationParameters(PopulationType& population) const;
00062 virtual void MutateStrategicIndividualParameters(IndividualType& individual, PopulationType& population) const;
00063
00064 protected:
00065 ComponentBase() ;
00066 virtual ~ComponentBase() ;
00067
00068 private:
00069 ComponentBase(Self const&);
00070
00071 } ;
00072
00073 }
00074 }
00075
00076
00077 #ifndef ITK_MANUAL_INSTANTIATION
00078 #include "freESComponentBase.txx"
00079 #endif
00080
00081 #endif