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: freESDiscriminativeRecombinator.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 __freESDiscriminativeRecombinator_h 00023 #define __freESDiscriminativeRecombinator_h 00024 00025 #include "freESRecombinatorBase.h" 00026 00027 namespace FREE 00028 { 00029 namespace ES 00030 { 00031 00042 template <class TIndividual> 00043 class ITK_EXPORT DiscriminativeRecombinator: 00044 public RecombinatorBase<TIndividual> 00045 { 00046 public: 00048 typedef DiscriminativeRecombinator<TIndividual> Self ; 00049 typedef RecombinatorBase<TIndividual> Superclass; 00050 typedef itk::SmartPointer<Self> Pointer; 00051 typedef itk::SmartPointer<const Self> ConstPointer; 00052 00054 itkNewMacro(Self); 00055 00057 itkTypeMacro(DiscriminativeRecombinator, RecombinatorBase); 00058 00059 typedef typename Superclass::IndividualType IndividualType; 00060 typedef typename IndividualType::Pointer IndividualPointer; 00061 typedef typename Superclass::ParentSelectionType ParentSelectionType; 00062 typedef RecombinatorBase<TIndividual> SubRecombinatorType; 00063 typedef std::vector<double> WeightVectorType; 00064 00065 IndividualPointer Recombine(const ParentSelectionType& parents) const; 00066 00067 WeightVectorType GetWeights(const unsigned long lParentCount) const; 00068 00069 virtual void SetObjectiveRecombinator( SubRecombinatorType * pObjectiveRecombinator ); 00070 itkGetConstObjectMacro( ObjectiveRecombinator, SubRecombinatorType ); 00071 itkGetObjectMacro( ObjectiveRecombinator, SubRecombinatorType ); 00072 00073 virtual void SetStrategicRecombinator( SubRecombinatorType * pStrategicRecombinator ); 00074 itkGetConstObjectMacro( StrategicRecombinator, SubRecombinatorType ); 00075 itkGetObjectMacro( StrategicRecombinator, SubRecombinatorType ); 00076 00077 protected: 00079 DiscriminativeRecombinator() ; 00080 00081 typename SubRecombinatorType::Pointer m_ObjectiveRecombinator; 00082 typename SubRecombinatorType::Pointer m_StrategicRecombinator; 00083 00084 private: 00085 DiscriminativeRecombinator(Self const&); // Purposely not implemented. 00086 00087 } ; // end of class 00088 00089 } // end of namespace ES 00090 } // end of namespace FREE 00091 00092 00093 #ifndef ITK_MANUAL_INSTANTIATION 00094 #include "freESDiscriminativeRecombinator.txx" 00095 #endif 00096 00097 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000