Slicer  4.8
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
itkDiffusionTensor3DPPDAffineTransform.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 itkDiffusionTensor3DPPDAffineTransform_h
15 #define itkDiffusionTensor3DPPDAffineTransform_h
16 
18 #include <vnl/vnl_vector.h>
19 #include <vnl/vnl_cross.h>
20 
21 namespace itk
22 {
34 template <class TData>
37 {
38 public:
39  typedef TData DataType;
48  typedef SmartPointer<Self> Pointer;
49  typedef SmartPointer<const Self> ConstPointer;
53 
56 
57  itkNewMacro( Self );
59  virtual TensorDataType EvaluateTransformedTensor( TensorDataType & tensor ) ITK_OVERRIDE;
60 
61  void SetMatrix( MatrixTransformType & matrix );
62 
63 protected:
64  void PreCompute() ITK_OVERRIDE;
65 
66  InternalMatrixTransformType ComputeMatrixFromAxisAndAngle( VectorType axis, double cosangle );
67 
68  InternalMatrixTransformType m_TransformMatrixInverse;
69 };
70 
71 } // end namespace itk
72 
73 #ifndef ITK_MANUAL_INSTANTIATION
74 #include "itkDiffusionTensor3DPPDAffineTransform.txx"
75 #endif
76 
77 #endif
itkTypeMacro(DiffusionTensor3DPPDAffineTransform, DiffusionTensor3DAffineTransform)
InternalMatrixTransformType ComputeMatrixFromAxisAndAngle(VectorType axis, double cosangle)
Simplified inverse ITK transforms.
DiffusionTensor3DExtended< double >::EigenVectorsMatrixType EVectorsType
virtual TensorDataType EvaluateTransformedTensor(TensorDataType &tensor) ITK_OVERRIDE
virtual TensorDataType EvaluateTransformedTensor(TensorDataType &tensor)
DiffusionTensor3DExtended< double >::EigenValuesArrayType EValuesType
void SetMatrix(MatrixTransformType &matrix)
DiffusionTensor3DAffineTransform< DataType > Superclass
Superclass::InternalMatrixTransformType InternalMatrixTransformType