Slicer  5.1
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
itkDiffusionTensor3DRigidTransform.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 itkDiffusionTensor3DRigidTransform_h
15 #define itkDiffusionTensor3DRigidTransform_h
16 
18 #include <itkVersorRigid3DTransform.h>
19 
20 #define PRECISION .001
21 
22 namespace itk
23 {
28 template <class TData>
31 {
32 public:
33  typedef TData DataType;
36  typedef SmartPointer<Self> Pointer;
37  typedef SmartPointer<const Self> ConstPointer;
40  typedef Matrix<double, 4, 4> MatrixTransform4x4Type;
41  typedef Rigid3DTransform<double> Rigid3DTransformType;
42  typedef VersorRigid3DTransform<double> VersorRigid3DTransformType;
43  // /Set the 4x4 Matrix (the last row is ignored and considered to be 0,0,0,1
44  void SetMatrix4x4( MatrixTransform4x4Type matrix );
45 
46  // /Set the transformation matrix from an itk::RigidTransform< double > object
47  void SetTransform( typename Rigid3DTransformType::Pointer transform );
48  typename VersorRigid3DTransformType::Pointer GetRigidTransform();
49 
52 
53  itkNewMacro( Self );
54  // /Set the 3x3 rotation matrix
55  void SetMatrix3x3( MatrixTransformType & matrix ) override;
56 
57  void DisablePrecision();
58 
59  itkSetMacro( PrecisionChecking, bool );
60 protected:
63  double GetDet( MatrixTransformType & matrix );
64 
65  void PreCompute() override;
66 
67 };
68 
69 } // end itk namespace
70 
71 #ifndef ITK_MANUAL_INSTANTIATION
72 #include "itkDiffusionTensor3DRigidTransform.txx"
73 #endif
74 
75 #endif
itkTypeMacro(DiffusionTensor3DRigidTransform, DiffusionTensor3DMatrix3x3Transform)
Simplified inverse ITK transforms.
DiffusionTensor3DRigidTransform< DataType > Self
VersorRigid3DTransform< double > VersorRigid3DTransformType
itkSetMacro(PrecisionChecking, bool)
DiffusionTensor3DMatrix3x3Transform< DataType > Superclass
void SetTransform(typename Rigid3DTransformType::Pointer transform)
void SetMatrix3x3(MatrixTransformType &matrix) override
VersorRigid3DTransformType::Pointer GetRigidTransform()
void SetMatrix4x4(MatrixTransform4x4Type matrix)
Matrix< TransformType, 3, 3 > MatrixTransformType
Superclass::InternalMatrixTransformType InternalMatrixTransformType
double GetDet(MatrixTransformType &matrix)