![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
00001 /*====================================================================== 00002 00003 This file is part of the elastix software. 00004 00005 Copyright (c) University Medical Center Utrecht. All rights reserved. 00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for 00007 details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notices for more information. 00012 00013 ======================================================================*/ 00014 00015 00016 #ifndef __elxFullSearchOptimizer_h 00017 #define __elxFullSearchOptimizer_h 00018 00019 #include "itkFullSearchOptimizer.h" 00020 #include "elxIncludes.h" 00021 #include <map> 00022 00023 #include "itkNDImageBase.h" 00024 00025 00026 namespace elastix 00027 { 00028 using namespace itk; 00029 00056 template <class TElastix> 00057 class FullSearch : 00058 public 00059 FullSearchOptimizer, 00060 public 00061 OptimizerBase<TElastix> 00062 { 00063 public: 00064 00066 typedef FullSearch Self; 00067 typedef FullSearchOptimizer Superclass1; 00068 typedef OptimizerBase<TElastix> Superclass2; 00069 typedef SmartPointer<Self> Pointer; 00070 typedef SmartPointer<const Self> ConstPointer; 00071 00073 itkNewMacro( Self ); 00074 00076 itkTypeMacro( FullSearch, FullSearchOptimizer ); 00077 00082 elxClassNameMacro( "FullSearch" ); 00083 00085 typedef Superclass1::CostFunctionType CostFunctionType; 00086 typedef Superclass1::CostFunctionPointer CostFunctionPointer; 00087 typedef Superclass1::ParametersType ParametersType; 00088 typedef Superclass1::MeasureType MeasureType; 00089 typedef Superclass1::ParameterValueType ParameterValueType; 00090 typedef Superclass1::RangeValueType RangeValueType; 00091 typedef Superclass1::RangeType RangeType; 00092 typedef Superclass1::SearchSpaceType SearchSpaceType; 00093 typedef Superclass1::SearchSpacePointer SearchSpacePointer; 00094 typedef Superclass1::SearchSpaceIteratorType SearchSpaceIteratorType; 00095 typedef Superclass1::SearchSpacePointType SearchSpacePointType; 00096 typedef Superclass1::SearchSpaceIndexType SearchSpaceIndexType; 00097 typedef Superclass1::SearchSpaceSizeType SearchSpaceSizeType; 00098 00100 typedef typename Superclass2::ElastixType ElastixType; 00101 typedef typename Superclass2::ElastixPointer ElastixPointer; 00102 typedef typename Superclass2::ConfigurationType ConfigurationType; 00103 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00104 typedef typename Superclass2::RegistrationType RegistrationType; 00105 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00106 typedef typename Superclass2::ITKBaseType ITKBaseType; 00107 00109 typedef NDImageBase<float> NDImageType; 00110 typedef typename NDImageType::Pointer NDImagePointer; 00111 00113 typedef std::map<unsigned int, std::string> DimensionNameMapType; 00114 typedef typename DimensionNameMapType::const_iterator NameIteratorType; 00115 00117 virtual void BeforeRegistration(void); 00118 virtual void BeforeEachResolution(void); 00119 virtual void AfterEachResolution(void); 00120 virtual void AfterEachIteration(void); 00121 virtual void AfterRegistration(void); 00125 itkGetObjectMacro(OptimizationSurface, NDImageType); 00126 00127 protected: 00128 00129 FullSearch(); 00130 virtual ~FullSearch() {}; 00131 00132 NDImagePointer m_OptimizationSurface; 00133 00134 DimensionNameMapType m_SearchSpaceDimensionNames; 00135 00140 //virtual int CheckSearchSpaceRangeDefinition(const std::string & fullFieldName, int errorcode, unsigned int entry_nr); 00141 virtual bool CheckSearchSpaceRangeDefinition( const std::string & fullFieldName, 00142 const bool found, const unsigned int entry_nr ) const; 00143 00144 private: 00145 00146 FullSearch( const Self& ); // purposely not implemented 00147 void operator=( const Self& ); // purposely not implemented 00148 00149 }; // end class FullSearch 00150 00151 } // end namespace elastix 00152 00153 #ifndef ITK_MANUAL_INSTANTIATION 00154 #include "elxFullSearchOptimizer.hxx" 00155 #endif 00156 00157 #endif // end #ifndef __elxFullSearchOptimizer_h
Generated on 11-05-2012 for elastix by ![]() |
![]() |