Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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
24namespace itk
25{
30template <class TData>
31class DiffusionTensor3DTransform : public Object
32{
33public:
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
60protected:
63};
64
65} // end namespace itk
66
67#ifndef ITK_MANUAL_INSTANTIATION
68#include "itkDiffusionTensor3DTransform.txx"
69#endif
70
71#endif
virtual TensorDataType EvaluateTransformedTensor(TensorDataType &tensor, PointType &outputPosition)=0
MatrixExtended< TransformType, 3, 3 > InternalMatrixTransformType
MatrixExtended< DataType, 3, 3 > InternalMatrixDataType
itkTypeMacro(DiffusionTensor3DTransform, Object)
virtual PointType EvaluateTensorPosition(const PointType &point)=0
Matrix< TransformType, 3, 3 > MatrixTransformType
itkSetMacro(MeasurementFrame, MatrixTransformType)
DiffusionTensor3D< DataType > TensorDataType
InternalMatrixTransformType m_MeasurementFrame
DiffusionTensor3DExtended< DataType > InternalTensorDataType
virtual Transform< TransformType, 3, 3 >::Pointer GetTransform()=0
Simplified inverse ITK transforms.