ITK
4.4.0
Insight Segmentation and Registration Toolkit
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
ITK
Modules
Core
Common
include
itkDiffusionTensor3D.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright Insight Software Consortium
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0.txt
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*=========================================================================*/
18
#ifndef __itkDiffusionTensor3D_h
19
#define __itkDiffusionTensor3D_h
20
21
// Undefine an eventual DiffusionTensor3D macro
22
#ifdef DiffusionTensor3D
23
#undef DiffusionTensor3D
24
#endif
25
26
#include "
itkSymmetricSecondRankTensor.h
"
27
28
namespace
itk
29
{
78
template
<
typename
TComponent >
79
class
DiffusionTensor3D
:
public
SymmetricSecondRankTensor
< TComponent, 3 >
80
{
81
public
:
83
typedef
DiffusionTensor3D
Self
;
84
typedef
SymmetricSecondRankTensor< TComponent, 3 >
Superclass
;
85
87
typedef
typename
Superclass::ValueType
ValueType
;
88
typedef
typename
Superclass::ComponentType
ComponentType
;
89
#if defined( __GNUC__ ) && !defined( __INTEL_COMPILER ) && ( __GNUC__ == 3 )
90
typedef
ComponentType
ComponentArrayType
[6];
91
#else
92
typedef
typename
Superclass::ComponentArrayType
ComponentArrayType
;
93
#endif
94
typedef
typename
Superclass::AccumulateValueType
AccumulateValueType
;
95
typedef
typename
Superclass::RealValueType
RealValueType
;
96
97
typedef
typename
Superclass::EigenValuesArrayType
EigenValuesArrayType
;
98
typedef
typename
Superclass::EigenVectorsMatrixType
EigenVectorsMatrixType
;
99
101
DiffusionTensor3D
();
102
104
DiffusionTensor3D
(
const
Superclass
& r);
105
DiffusionTensor3D
(
const
ComponentType
& r);
106
DiffusionTensor3D
(
const
ComponentArrayType
r);
108
110
template
<
typename
TCoordRepB >
111
DiffusionTensor3D
(
const
DiffusionTensor3D< TCoordRepB >
& pa):
112
SymmetricSecondRankTensor
< TComponent, 3 >(pa) {}
113
115
Self
&
operator=
(
const
Superclass
& r);
116
117
Self
&
operator=
(
const
ComponentType
& r);
118
119
Self
&
operator=
(
const
ComponentArrayType
r);
120
122
template
<
typename
TCoordRepB >
123
Self
&
operator=
(
const
DiffusionTensor3D< TCoordRepB >
& pa)
124
{
125
//NOTE (this != &pa ) because they are different pointer types
126
//if this templated function is called
127
// ComponentType 'itk::DiffusionTensor3D<double> *'
128
// TCoordRepB 'const DiffusionTensor3D<float> *')
129
SymmetricSecondRankTensor< TComponent, 3 >::operator=
(pa);
130
return
*
this
;
131
}
133
135
AccumulateValueType
GetTrace
()
const
;
136
138
RealValueType
GetFractionalAnisotropy
()
const
;
139
141
RealValueType
GetRelativeAnisotropy
()
const
;
142
144
RealValueType
GetInnerScalarProduct
()
const
;
145
};
146
}
// end namespace itk
147
#include "
itkNumericTraitsDiffusionTensor3DPixel.h
"
148
149
#ifndef ITK_MANUAL_INSTANTIATION
150
#include "itkDiffusionTensor3D.hxx"
151
#endif
152
153
#endif
154
Generated on Mon May 13 2013 00:48:13 for ITK by
1.8.3.1