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: freESCommaSelection.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 __freESCommaSelection_h 00023 #define __freESCommaSelection_h 00024 00025 #include "freESSelectionBase.h" 00026 #include "freESPlusSelection.h" 00027 #include "freESPopulation.h" 00028 00029 namespace FREE 00030 { 00031 namespace ES 00032 { 00033 00045 template <class TIndividual> 00046 class ITK_EXPORT CommaSelection: 00047 public SelectionBase<TIndividual> 00048 { 00049 public: 00051 typedef CommaSelection<TIndividual> Self ; 00052 typedef SelectionBase<TIndividual> Superclass; 00053 typedef itk::SmartPointer<Self> Pointer; 00054 typedef itk::SmartPointer<const Self> ConstPointer; 00055 00057 itkNewMacro(Self); 00058 00060 itkTypeMacro(CommaSelection, SelectionBase); 00061 00062 typedef typename Superclass::IndividualType IndividualType; 00063 typedef typename Superclass::Pointer IndividualPointer; 00064 typedef typename Superclass::PopulationType PopulationType; 00065 typedef typename Superclass::PopulationPointer PopulationPointer; 00066 00067 typedef typename Superclass::PopulationSizeType PopulationSizeType; 00068 00075 virtual PopulationPointer Select(PopulationType* pPopulation, PopulationSizeType newSize) const; 00076 00077 itkSetMacro( MaxGenerationAge, unsigned long ); 00078 itkGetConstReferenceMacro( MaxGenerationAge, unsigned long ); 00079 00080 protected: 00081 CommaSelection() ; 00082 00083 unsigned long m_MaxGenerationAge; 00084 00085 typedef PlusSelection<TIndividual> PrivatPlusSelectionType; 00086 typename PrivatPlusSelectionType::Pointer m_PlusSelection; 00087 00088 private: 00089 CommaSelection(Self const&); // Purposely not implemented. 00090 } ; // end of class 00091 00092 } // end of namespace ES 00093 } // end of namespace FREE 00094 00095 00096 #ifndef ITK_MANUAL_INSTANTIATION 00097 #include "freESCommaSelection.txx" 00098 #endif 00099 00100 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000