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
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 ) ITK_OVERRIDE;
56 
57  void DisablePrecision();
58 
59  itkSetMacro( PrecisionChecking, bool );
60 protected:
63  double GetDet( MatrixTransformType & matrix );
64 
65  void PreCompute() ITK_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)
VersorRigid3DTransformType::Pointer GetRigidTransform()
void SetMatrix3x3(MatrixTransformType &matrix) ITK_OVERRIDE
void SetMatrix4x4(MatrixTransform4x4Type matrix)
Matrix< TransformType, 3, 3 > MatrixTransformType
Superclass::InternalMatrixTransformType InternalMatrixTransformType
double GetDet(MatrixTransformType &matrix)