00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freESSelectionBase.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freESSelectionBase_h 00023 #define __freESSelectionBase_h 00024 00025 #include "freESComponentBase.h" 00026 #include "freESPopulation.h" 00027 00028 namespace FREE 00029 { 00030 namespace ES 00031 { 00032 00046 template <class TIndividual> 00047 class ITK_EXPORT SelectionBase: 00048 public ComponentBase<TIndividual> 00049 { 00050 public: 00052 typedef SelectionBase<TIndividual> Self ; 00053 typedef ComponentBase<TIndividual> Superclass; 00054 typedef itk::SmartPointer<Self> Pointer; 00055 typedef itk::SmartPointer<const Self> ConstPointer; 00056 00058 //itkNewMacro(Self); //it is an abstract class, so no New method 00059 00061 itkTypeMacro(SelectionBase, ComponentBase); 00062 00063 typedef typename Superclass::IndividualType IndividualType; 00064 typedef typename IndividualType::Pointer IndividualPointer; 00065 typedef Population<IndividualType> PopulationType; 00066 typedef typename PopulationType::Pointer PopulationPointer; 00067 00068 typedef unsigned long PopulationSizeType; 00069 00070 itkSetMacro( MaximumIsBest, bool ); 00071 itkGetConstMacro( MaximumIsBest, bool ); 00072 itkBooleanMacro(MaximumIsBest); 00073 00078 virtual PopulationPointer Select(PopulationType* pPopulation, PopulationSizeType newSize) const = 0; 00079 00080 protected: 00081 SelectionBase() ; 00082 virtual ~SelectionBase() ; 00083 00084 private: 00085 SelectionBase(Self const&); // Purposely not implemented. 00086 00087 bool m_MaximumIsBest; 00088 } ; // end of class 00089 00090 } // end of namespace ES 00091 } // end of namespace FREE 00092 00093 00094 #ifndef ITK_MANUAL_INSTANTIATION 00095 #include "freESSelectionBase.txx" 00096 #endif 00097 00098 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000