Slicer  5.1
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
itkDiffusionTensor3DTransform.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 itkDiffusionTensor3DTransform_h
15 #define itkDiffusionTensor3DTransform_h
16 
17 #include <itkObject.h>
19 #include <itkPoint.h>
20 #include "itkMatrixExtended.h"
21 #include <itkNumericTraits.h>
22 #include <itkTransform.h>
23 
24 namespace itk
25 {
30 template <class TData>
31 class DiffusionTensor3DTransform : public Object
32 {
33 public:
34  typedef TData DataType;
35  typedef double TransformType;
37  typedef Point<TransformType, 3> PointType;
38  typedef DiffusionTensor3D<DataType> TensorDataType;
40  typedef Matrix<TransformType, 3, 3> MatrixTransformType;
41  typedef Matrix<DataType, 3, 3> MatrixDataType;
44  typedef SmartPointer<Self> Pointer;
45  typedef SmartPointer<const Self> ConstPointer;
46 
49 
50  // /Evaluate the position of the transformed tensor
51  virtual PointType EvaluateTensorPosition( const PointType & point ) = 0;
52 
53  // /Evaluate the transformed tensor
54  virtual TensorDataType EvaluateTransformedTensor( TensorDataType & tensor, PointType & outputPosition) = 0;
55 
56  // /Set the measurement frame of the tensor
57  itkSetMacro( MeasurementFrame, MatrixTransformType );
58  virtual typename Transform<TransformType, 3, 3>::Pointer GetTransform() = 0;
59 
60 protected:
63 };
64 
65 } // end namespace itk
66 
67 #ifndef ITK_MANUAL_INSTANTIATION
68 #include "itkDiffusionTensor3DTransform.txx"
69 #endif
70 
71 #endif
MatrixExtended< TransformType, 3, 3 > InternalMatrixTransformType
Simplified inverse ITK transforms.
virtual TensorDataType EvaluateTransformedTensor(TensorDataType &tensor, PointType &outputPosition)=0
MatrixExtended< DataType, 3, 3 > InternalMatrixDataType
virtual PointType EvaluateTensorPosition(const PointType &point)=0
virtual Transform< TransformType, 3, 3 >::Pointer GetTransform()=0
InternalMatrixTransformType m_MeasurementFrame
itkSetMacro(MeasurementFrame, MatrixTransformType)
Matrix< TransformType, 3, 3 > MatrixTransformType
DiffusionTensor3D< DataType > TensorDataType
DiffusionTensor3DExtended< DataType > InternalTensorDataType
itkTypeMacro(DiffusionTensor3DTransform, Object)