go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRSGDEachParameterApart.h
Go to the documentation of this file.
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 #ifndef __elxRSGDEachParameterApart_h
00016 #define __elxRSGDEachParameterApart_h
00017 
00018 #include "itkRSGDEachParameterApartOptimizer.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 using namespace itk;
00024 
00069   template <class TElastix>
00070     class RSGDEachParameterApart :
00071     public
00072       itk::RSGDEachParameterApartOptimizer,
00073     public
00074       OptimizerBase<TElastix>
00075   {
00076   public:
00077 
00079     typedef RSGDEachParameterApart              Self;
00080     typedef RSGDEachParameterApartOptimizer     Superclass1;
00081     typedef OptimizerBase<TElastix>             Superclass2;
00082     typedef SmartPointer<Self>                  Pointer;
00083     typedef SmartPointer<const Self>            ConstPointer;
00084 
00086     itkNewMacro( Self );
00087 
00089     itkTypeMacro( RSGDEachParameterApart, RSGDEachParameterApartOptimizer );
00090 
00095     elxClassNameMacro( "RSGDEachParameterApart" );
00096 
00098     typedef Superclass1::CostFunctionType     CostFunctionType;
00099     typedef Superclass1::CostFunctionPointer  CostFunctionPointer;
00100 
00102     typedef typename Superclass2::ElastixType           ElastixType;
00103     typedef typename Superclass2::ElastixPointer        ElastixPointer;
00104     typedef typename Superclass2::ConfigurationType     ConfigurationType;
00105     typedef typename Superclass2::ConfigurationPointer  ConfigurationPointer;
00106     typedef typename Superclass2::RegistrationType      RegistrationType;
00107     typedef typename Superclass2::RegistrationPointer   RegistrationPointer;
00108     typedef typename Superclass2::ITKBaseType           ITKBaseType;
00109 
00111     typedef typename Superclass1::ParametersType        ParametersType;
00112 
00114     virtual void BeforeRegistration(void);
00115     virtual void BeforeEachResolution(void);
00116     virtual void AfterEachResolution(void);
00117     virtual void AfterEachIteration(void);
00118     virtual void AfterRegistration(void);
00119 
00124     virtual void SetInitialPosition( const ParametersType & param );
00125 
00126   protected:
00127 
00128     RSGDEachParameterApart(){};
00129       virtual ~RSGDEachParameterApart() {};
00130 
00131   private:
00132 
00133       RSGDEachParameterApart( const Self& );  // purposely not implemented
00134       void operator=( const Self& );              // purposely not implemented
00135 
00136   }; // end class RSGDEachParameterApart
00137 
00138 
00139 } // end namespace elastix
00140 
00141 #ifndef ITK_MANUAL_INSTANTIATION
00142 #include "elxRSGDEachParameterApart.hxx"
00143 #endif
00144 
00145 #endif // end #ifndef __elxRSGDEachParameterApart_h


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo