go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxTransformBendingEnergyPenaltyTerm.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 #ifndef __elxTransformBendingEnergyPenaltyTerm_H__
00015 #define __elxTransformBendingEnergyPenaltyTerm_H__
00016 
00017 #include "elxIncludes.h"
00018 #include "itkTransformBendingEnergyPenaltyTerm.h"
00019 
00020 #include "elxTimer.h"
00021 
00022 namespace elastix
00023 {
00024 using namespace itk;
00025 
00046 template <class TElastix >
00047 class TransformBendingEnergyPenalty:
00048   public
00049   TransformBendingEnergyPenaltyTerm<
00050   ITK_TYPENAME MetricBase<TElastix>::FixedImageType,
00051   double >,
00052   public MetricBase<TElastix>
00053 {
00054 public:
00055 
00057   typedef TransformBendingEnergyPenalty                 Self;
00058   typedef TransformBendingEnergyPenaltyTerm<
00059     typename MetricBase<TElastix>::FixedImageType,
00060     double >                                            Superclass1;
00061   typedef MetricBase<TElastix>                          Superclass2;
00062   typedef SmartPointer<Self>                            Pointer;
00063   typedef SmartPointer<const Self>                      ConstPointer;
00064 
00066   itkNewMacro( Self );
00067 
00069   itkTypeMacro( TransformBendingEnergyPenalty, TransformBendingEnergyPenaltyTerm );
00070 
00075   elxClassNameMacro( "TransformBendingEnergyPenalty" );
00076 
00078   typedef typename
00079     Superclass1::CoordinateRepresentationType              CoordinateRepresentationType;
00080   typedef typename Superclass1::MovingImageType            MovingImageType;
00081   typedef typename Superclass1::MovingImagePixelType       MovingImagePixelType;
00082   typedef typename Superclass1::MovingImageConstPointer    MovingImageConstPointer;
00083   typedef typename Superclass1::FixedImageType             FixedImageType;
00084   typedef typename Superclass1::FixedImageConstPointer     FixedImageConstPointer;
00085   typedef typename Superclass1::FixedImageRegionType       FixedImageRegionType;
00086   typedef typename Superclass1::TransformType              TransformType;
00087   typedef typename Superclass1::TransformPointer           TransformPointer;
00088   typedef typename Superclass1::InputPointType             InputPointType;
00089   typedef typename Superclass1::OutputPointType            OutputPointType;
00090   typedef typename Superclass1::TransformParametersType    TransformParametersType;
00091   typedef typename Superclass1::TransformJacobianType      TransformJacobianType;
00092   typedef typename Superclass1::InterpolatorType           InterpolatorType;
00093   typedef typename Superclass1::InterpolatorPointer        InterpolatorPointer;
00094   typedef typename Superclass1::RealType                   RealType;
00095   typedef typename Superclass1::GradientPixelType          GradientPixelType;
00096   typedef typename Superclass1::GradientImageType          GradientImageType;
00097   typedef typename Superclass1::GradientImagePointer       GradientImagePointer;
00098   typedef typename Superclass1::GradientImageFilterType    GradientImageFilterType;
00099   typedef typename Superclass1::GradientImageFilterPointer GradientImageFilterPointer;
00100   typedef typename Superclass1::FixedImageMaskType         FixedImageMaskType;
00101   typedef typename Superclass1::FixedImageMaskPointer      FixedImageMaskPointer;
00102   typedef typename Superclass1::MovingImageMaskType        MovingImageMaskType;
00103   typedef typename Superclass1::MovingImageMaskPointer     MovingImageMaskPointer;
00104   typedef typename Superclass1::MeasureType                MeasureType;
00105   typedef typename Superclass1::DerivativeType             DerivativeType;
00106   typedef typename Superclass1::ParametersType             ParametersType;
00107   typedef typename Superclass1::FixedImagePixelType        FixedImagePixelType;
00108   typedef typename Superclass1::MovingImageRegionType      MovingImageRegionType;
00109   typedef typename Superclass1::ImageSamplerType           ImageSamplerType;
00110   typedef typename Superclass1::ImageSamplerPointer        ImageSamplerPointer;
00111   typedef typename Superclass1::ImageSampleContainerType   ImageSampleContainerType;
00112   typedef typename
00113     Superclass1::ImageSampleContainerPointer               ImageSampleContainerPointer;
00114   typedef typename Superclass1::FixedImageLimiterType      FixedImageLimiterType;
00115   typedef typename Superclass1::MovingImageLimiterType     MovingImageLimiterType;
00116   typedef typename
00117     Superclass1::FixedImageLimiterOutputType               FixedImageLimiterOutputType;
00118   typedef typename
00119     Superclass1::MovingImageLimiterOutputType              MovingImageLimiterOutputType;
00120 
00122   itkStaticConstMacro( FixedImageDimension, unsigned int,
00123     FixedImageType::ImageDimension );
00124 
00126   itkStaticConstMacro( MovingImageDimension, unsigned int,
00127     MovingImageType::ImageDimension );
00128 
00130   typedef typename Superclass2::ElastixType               ElastixType;
00131   typedef typename Superclass2::ElastixPointer            ElastixPointer;
00132   typedef typename Superclass2::ConfigurationType         ConfigurationType;
00133   typedef typename Superclass2::ConfigurationPointer      ConfigurationPointer;
00134   typedef typename Superclass2::RegistrationType          RegistrationType;
00135   typedef typename Superclass2::RegistrationPointer       RegistrationPointer;
00136   typedef typename Superclass2::ITKBaseType               ITKBaseType;
00137 
00139   typedef tmr::Timer          TimerType;
00141   typedef TimerType::Pointer  TimerPointer;
00142 
00146   virtual void Initialize( void ) throw (ExceptionObject);
00147 
00152   virtual void BeforeEachResolution( void );
00153 
00154 protected:
00155 
00157   TransformBendingEnergyPenalty(){};
00158 
00160   virtual ~TransformBendingEnergyPenalty() {}
00161 
00162 private:
00163 
00165   TransformBendingEnergyPenalty( const Self& ); // purposely not implemented
00167   void operator=( const Self& );              // purposely not implemented
00168 
00169 }; // end class TransformBendingEnergyPenalty
00170 
00171 
00172 } // end namespace elastix
00173 
00174 
00175 #ifndef ITK_MANUAL_INSTANTIATION
00176 #include "elxTransformBendingEnergyPenaltyTerm.hxx"
00177 #endif
00178 
00179 #endif // end #ifndef __elxTransformBendingEnergyPenaltyTerm_H__
00180 


Generated on 24-10-2011 for elastix by doxygen 1.7.4 elastix logo