![]() |
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 #ifndef __elxTransformRigidityPenaltyTerm_H__ 00015 #define __elxTransformRigidityPenaltyTerm_H__ 00016 00017 #include "elxIncludes.h" 00018 #include "itkTransformRigidityPenaltyTerm.h" 00019 00020 #include "elxTimer.h" 00021 00022 namespace elastix 00023 { 00024 using namespace itk; 00025 00108 template <class TElastix > 00109 class TransformRigidityPenalty 00110 : public TransformRigidityPenaltyTerm< 00111 ITK_TYPENAME MetricBase<TElastix>::FixedImageType, 00112 double >, 00113 public MetricBase<TElastix> 00114 { 00115 public: 00116 00118 typedef TransformRigidityPenalty Self; 00119 typedef TransformRigidityPenaltyTerm< 00120 typename MetricBase<TElastix>::FixedImageType, 00121 double > Superclass1; 00122 typedef MetricBase<TElastix> Superclass2; 00123 typedef SmartPointer<Self> Pointer; 00124 typedef SmartPointer<const Self> ConstPointer; 00125 00127 itkNewMacro( Self ); 00128 00130 itkTypeMacro( TransformRigidityPenalty, TransformRigidityPenaltyTerm ); 00131 00136 elxClassNameMacro( "TransformRigidityPenalty" ); 00137 00139 typedef typename Superclass1::CoordinateRepresentationType CoordinateRepresentationType; 00140 typedef typename Superclass1::MovingImageType MovingImageType; 00141 typedef typename Superclass1::MovingImagePixelType MovingImagePixelType; 00142 typedef typename Superclass1::MovingImageConstPointer MovingImageConstPointer; 00143 typedef typename Superclass1::FixedImageType FixedImageType; 00144 typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer; 00145 typedef typename Superclass1::FixedImageRegionType FixedImageRegionType; 00146 typedef typename Superclass1::TransformType TransformType; 00147 typedef typename Superclass1::TransformPointer TransformPointer; 00148 typedef typename Superclass1::InputPointType InputPointType; 00149 typedef typename Superclass1::OutputPointType OutputPointType; 00150 typedef typename Superclass1::TransformParametersType TransformParametersType; 00151 typedef typename Superclass1::TransformJacobianType TransformJacobianType; 00152 typedef typename Superclass1::InterpolatorType InterpolatorType; 00153 typedef typename Superclass1::InterpolatorPointer InterpolatorPointer; 00154 typedef typename Superclass1::RealType RealType; 00155 typedef typename Superclass1::GradientPixelType GradientPixelType; 00156 typedef typename Superclass1::GradientImageType GradientImageType; 00157 typedef typename Superclass1::GradientImagePointer GradientImagePointer; 00158 typedef typename Superclass1::GradientImageFilterType GradientImageFilterType; 00159 typedef typename Superclass1::GradientImageFilterPointer GradientImageFilterPointer; 00160 typedef typename Superclass1::FixedImageMaskType FixedImageMaskType; 00161 typedef typename Superclass1::FixedImageMaskPointer FixedImageMaskPointer; 00162 typedef typename Superclass1::MovingImageMaskType MovingImageMaskType; 00163 typedef typename Superclass1::MovingImageMaskPointer MovingImageMaskPointer; 00164 typedef typename Superclass1::MeasureType MeasureType; 00165 typedef typename Superclass1::DerivativeType DerivativeType; 00166 typedef typename Superclass1::ParametersType ParametersType; 00167 typedef typename Superclass1::FixedImagePixelType FixedImagePixelType; 00168 typedef typename Superclass1::MovingImageRegionType MovingImageRegionType; 00169 typedef typename Superclass1::ImageSamplerType ImageSamplerType; 00170 typedef typename Superclass1::ImageSamplerPointer ImageSamplerPointer; 00171 typedef typename Superclass1::ImageSampleContainerType ImageSampleContainerType; 00172 typedef typename Superclass1::ImageSampleContainerPointer ImageSampleContainerPointer; 00173 typedef typename Superclass1::FixedImageLimiterType FixedImageLimiterType; 00174 typedef typename Superclass1::MovingImageLimiterType MovingImageLimiterType; 00175 typedef typename Superclass1::FixedImageLimiterOutputType FixedImageLimiterOutputType; 00176 typedef typename Superclass1::MovingImageLimiterOutputType MovingImageLimiterOutputType; 00177 00178 typedef typename Superclass1::CoefficientImageType CoefficientImageType; 00179 00181 itkStaticConstMacro( FixedImageDimension, unsigned int, 00182 FixedImageType::ImageDimension ); 00183 00185 itkStaticConstMacro( MovingImageDimension, unsigned int, 00186 MovingImageType::ImageDimension ); 00187 00189 typedef typename Superclass2::ElastixType ElastixType; 00190 typedef typename Superclass2::ElastixPointer ElastixPointer; 00191 typedef typename Superclass2::ConfigurationType ConfigurationType; 00192 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00193 typedef typename Superclass2::RegistrationType RegistrationType; 00194 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00195 typedef typename Superclass2::ITKBaseType ITKBaseType; 00196 00198 typedef tmr::Timer TimerType; 00200 typedef TimerType::Pointer TimerPointer; 00201 00205 virtual void Initialize( void ) throw (ExceptionObject); 00206 00211 virtual void BeforeEachResolution( void ); 00212 00219 virtual void BeforeRegistration( void ); 00220 00225 virtual void AfterEachIteration( void ); 00226 00231 virtual void SelectNewSamples( void ){}; 00232 00233 protected: 00234 00236 TransformRigidityPenalty(){}; 00237 00239 virtual ~TransformRigidityPenalty() {} 00240 00241 private: 00242 00244 TransformRigidityPenalty( const Self& ); // purposely not implemented 00246 void operator=( const Self& ); // purposely not implemented 00247 00248 }; // end class TransformRigidityPenalty 00249 00250 00251 } // end namespace elastix 00252 00253 00254 #ifndef ITK_MANUAL_INSTANTIATION 00255 #include "elxTransformRigidityPenaltyTerm.hxx" 00256 #endif 00257 00258 #endif // end #ifndef __elxTransformRigidityPenaltyTerm_H__ 00259
Generated on 24-05-2012 for elastix by ![]() |
![]() |