![]() |
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 #ifndef __elxAffineDTITransform_H__ 00016 #define __elxAffineDTITransform_H__ 00017 00018 #include "itkAdvancedCombinationTransform.h" 00019 #include "itkAffineDTITransform.h" 00020 #include "itkCenteredTransformInitializer.h" 00021 #include "elxIncludes.h" 00022 00023 namespace elastix 00024 { 00025 using namespace itk; 00026 00075 template < class TElastix > 00076 class AffineDTITransformElastix: 00077 public AdvancedCombinationTransform< 00078 ITK_TYPENAME elx::TransformBase< TElastix >::CoordRepType, 00079 elx::TransformBase< TElastix >::FixedImageDimension >, 00080 public elx::TransformBase< TElastix > 00081 { 00082 public: 00083 00085 typedef AffineDTITransformElastix Self; 00086 00087 typedef AdvancedCombinationTransform< 00088 typename elx::TransformBase< TElastix >::CoordRepType, 00089 elx::TransformBase< TElastix >::FixedImageDimension > Superclass1; 00090 00091 typedef elx::TransformBase< TElastix > Superclass2; 00092 00095 typedef AffineDTITransform< 00096 typename elx::TransformBase< TElastix >::CoordRepType, 00097 elx::TransformBase< TElastix >::FixedImageDimension > AffineDTITransformType; 00098 00099 typedef SmartPointer<Self> Pointer; 00100 typedef SmartPointer<const Self> ConstPointer; 00101 00103 itkNewMacro( Self ); 00104 00106 //itkTypeMacro( AffineDTITransformElastix, AffineDTITransform ); 00107 itkTypeMacro( AffineDTITransformElastix, AdvancedCombinationTransform ); 00108 00113 elxClassNameMacro( "AffineDTITransform" ); 00114 00116 itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension ); 00117 00121 typedef typename Superclass1::ScalarType ScalarType; 00122 typedef typename Superclass1::ParametersType ParametersType; 00123 typedef typename Superclass1::JacobianType JacobianType; 00124 00125 typedef typename Superclass1::InputPointType InputPointType; 00126 typedef typename Superclass1::OutputPointType OutputPointType; 00127 typedef typename Superclass1::InputVectorType InputVectorType; 00128 typedef typename Superclass1::OutputVectorType OutputVectorType; 00129 typedef typename Superclass1::InputCovariantVectorType InputCovariantVectorType; 00130 typedef typename Superclass1::OutputCovariantVectorType OutputCovariantVectorType; 00131 typedef typename Superclass1::InputVnlVectorType InputVnlVectorType; 00132 typedef typename Superclass1::OutputVnlVectorType OutputVnlVectorType; 00133 00134 typedef typename AffineDTITransformType::Pointer AffineDTITransformPointer; 00135 typedef typename AffineDTITransformType::OffsetType OffsetType; 00136 00138 typedef typename Superclass2::ElastixType ElastixType; 00139 typedef typename Superclass2::ElastixPointer ElastixPointer; 00140 typedef typename Superclass2::ConfigurationType ConfigurationType; 00141 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00142 typedef typename Superclass2::RegistrationType RegistrationType; 00143 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00144 typedef typename Superclass2::CoordRepType CoordRepType; 00145 typedef typename Superclass2::FixedImageType FixedImageType; 00146 typedef typename Superclass2::MovingImageType MovingImageType; 00147 typedef typename Superclass2::ITKBaseType ITKBaseType; 00148 typedef typename Superclass2::CombinationTransformType CombinationTransformType; 00149 00151 typedef typename FixedImageType::IndexType IndexType; 00152 typedef typename IndexType::IndexValueType IndexValueType; 00153 typedef typename FixedImageType::SizeType SizeType; 00154 typedef typename FixedImageType::PointType PointType; 00155 typedef typename FixedImageType::SpacingType SpacingType; 00156 typedef typename FixedImageType::RegionType RegionType; 00157 typedef typename FixedImageType::DirectionType DirectionType; 00158 00159 typedef CenteredTransformInitializer< 00160 AffineDTITransformType, FixedImageType, MovingImageType> TransformInitializerType; 00161 typedef typename TransformInitializerType::Pointer TransformInitializerPointer; 00162 00164 typedef typename Superclass2::ScalesType ScalesType; 00165 00170 virtual void BeforeRegistration(void); 00171 00187 virtual void InitializeTransform(void); 00188 00196 virtual void SetScales(void); 00197 00202 virtual void ReadFromFile(void); 00203 00207 virtual void WriteToFile( const ParametersType & param ) const; 00208 00209 protected: 00210 00212 AffineDTITransformElastix(); 00214 virtual ~AffineDTITransformElastix() {}; 00215 00218 virtual bool ReadCenterOfRotationPoint( InputPointType & rotationPoint ) const; 00219 00220 private: 00221 00223 AffineDTITransformElastix( const Self& ); // purposely not implemented 00225 void operator=( const Self& ); // purposely not implemented 00226 00227 AffineDTITransformPointer m_AffineDTITransform; 00228 00229 }; // end class AffineDTITransformElastix 00230 00231 00232 } // end namespace elastix 00233 00234 #ifndef ITK_MANUAL_INSTANTIATION 00235 #include "elxAffineDTITransform.hxx" 00236 #endif 00237 00238 #endif // end #ifndef __elxAffineDTITransform_H__ 00239
Generated on 11-05-2012 for elastix by ![]() |
![]() |