Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
itkDiffusionTensor3DNonRigidTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Diffusion Applications
4  Module: $HeadURL$
5  Language: C++
6  Date: $Date$
7  Version: $Revision$
8 
9  Copyright (c) Brigham and Women's Hospital (BWH) All Rights Reserved.
10 
11  See License.txt or http://www.slicer.org/copyright/copyright.txt for details.
12 
13 ==========================================================================*/
14 #ifndef itkDiffusionTensor3DNonRigidTransform_h
15 #define itkDiffusionTensor3DNonRigidTransform_h
16 
20 #include <itkTransform.h>
21 
22 namespace itk
23 {
24 
25 template <class TData>
27  public DiffusionTensor3DTransform<TData>
28 {
29 public:
30  typedef TData DataType;
35  typedef typename Superclass::PointType PointType;
36  typedef SmartPointer<Self> Pointer;
37  typedef SmartPointer<const Self> ConstPointer;
38  typedef Transform<double, 3, 3> TransformType;
42 
45 
46  // SmartPointer
47  itkNewMacro( Self );
48  // /Set the transform
49  itkSetObjectMacro( Transform, TransformType );
50  TransformType::Pointer GetTransform() ITK_OVERRIDE;
51 
52  // /Evaluate the position of the transformed tensor in the output image
53  PointType EvaluateTensorPosition( const PointType & point ) ITK_OVERRIDE;
54 
55  // /Evaluate the transformed tensor
56  virtual TensorDataType EvaluateTransformedTensor( TensorDataType & tensor, PointType & outputPosition ) ITK_OVERRIDE;
57 
58  void SetAffineTransformType(typename AffineTransform::Pointer transform);
59 protected:
61  unsigned long m_LatestTime;
62  typename TransformType::Pointer m_Transform;
63  typename AffineTransform::Pointer m_Affine;
64 };
65 
66 } // end of itk namespace
67 
68 #ifndef ITK_MANUAL_INSTANTIATION
69 #include "itkDiffusionTensor3DNonRigidTransform.txx"
70 #endif
71 
72 #endif
itk::DiffusionTensor3DFSAffineTransform< DataType > FSAffineTransformType
PointType EvaluateTensorPosition(const PointType &point) ITK_OVERRIDE
itk::DiffusionTensor3DPPDAffineTransform< DataType > PPDAffineTransformType
Simplified inverse ITK transforms.
itkSetObjectMacro(Transform, TransformType)
virtual TensorDataType EvaluateTransformedTensor(TensorDataType &tensor, PointType &outputPosition) ITK_OVERRIDE
void SetAffineTransformType(typename AffineTransform::Pointer transform)
itk::DiffusionTensor3DAffineTransform< DataType > AffineTransform
Matrix< TransformType, 3, 3 > MatrixTransformType
DiffusionTensor3D< DataType > TensorDataType
TransformType::Pointer GetTransform() ITK_OVERRIDE
itkTypeMacro(DiffusionTensor3DNonRigidTransform, DiffusionTensor3DTransform)