Slicer  5.1
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() override;
51 
52  // /Evaluate the position of the transformed tensor in the output image
53  PointType EvaluateTensorPosition( const PointType & point ) override;
54 
55  // /Evaluate the transformed tensor
56  TensorDataType EvaluateTransformedTensor( TensorDataType & tensor, PointType & outputPosition ) override;
57 
58  void SetAffineTransformType(typename AffineTransform::Pointer transform);
59 protected:
61  unsigned long m_LatestTime;
62  typename TransformType::Pointer m_Transform;
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
itk::DiffusionTensor3DPPDAffineTransform< DataType > PPDAffineTransformType
Simplified inverse ITK transforms.
TensorDataType EvaluateTransformedTensor(TensorDataType &tensor, PointType &outputPosition) override
itkSetObjectMacro(Transform, TransformType)
void SetAffineTransformType(typename AffineTransform::Pointer transform)
PointType EvaluateTensorPosition(const PointType &point) override
itk::DiffusionTensor3DAffineTransform< DataType > AffineTransform
TransformType::Pointer GetTransform() override
Matrix< TransformType, 3, 3 > MatrixTransformType
DiffusionTensor3D< DataType > TensorDataType
itkTypeMacro(DiffusionTensor3DNonRigidTransform, DiffusionTensor3DTransform)