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: freESIntermediateRecombinator.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 __freESIntermediateRecombinator_h 00023 #define __freESIntermediateRecombinator_h 00024 00025 #include "freESRecombinatorBase.h" 00026 00027 namespace FREE 00028 { 00029 namespace ES 00030 { 00031 00041 template <class TIndividual> 00042 class ITK_EXPORT IntermediateRecombinator: 00043 public RecombinatorBase<TIndividual> 00044 { 00045 public: 00047 typedef IntermediateRecombinator<TIndividual> Self ; 00048 typedef RecombinatorBase<TIndividual> Superclass; 00049 typedef itk::SmartPointer<Self> Pointer; 00050 typedef itk::SmartPointer<const Self> ConstPointer; 00051 00053 itkNewMacro(Self); 00054 00056 itkTypeMacro(IntermediateRecombinator, RecombinatorBase); 00057 00058 typedef typename Superclass::IndividualType IndividualType; 00059 typedef typename IndividualType::Pointer IndividualPointer; 00060 typedef std::vector<IndividualPointer> ParentSelectionType; 00061 typedef std::vector<double> WeightVectorType; 00062 00063 IndividualPointer Recombine(const ParentSelectionType& parents) const; 00064 00065 WeightVectorType GetWeights(const unsigned long lParentCount) const; 00066 00067 protected: 00069 IntermediateRecombinator() ; 00070 00071 private: 00072 IntermediateRecombinator(Self const&); // Purposely not implemented. 00073 00074 } ; // end of class 00075 00076 } // end of namespace ES 00077 } // end of namespace FREE 00078 00079 00080 #ifndef ITK_MANUAL_INSTANTIATION 00081 #include "freESIntermediateRecombinator.txx" 00082 #endif 00083 00084 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000