ITK
4.2.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
SymmetricSecondRankTensor< TComponent, 3 >::operator=
(pa);
126
return
*
this
;
127
}
129
131
AccumulateValueType
GetTrace
()
const
;
132
134
RealValueType
GetFractionalAnisotropy
()
const
;
135
137
RealValueType
GetRelativeAnisotropy
()
const
;
138
140
RealValueType
GetInnerScalarProduct
()
const
;
141
};
142
}
// end namespace itk
143
#include "
itkNumericTraitsDiffusionTensor3DPixel.h
"
144
145
// Define instantiation macro for this template.
146
#define ITK_TEMPLATE_DiffusionTensor3D(_, EXPORT, TypeX, TypeY) \
147
namespace itk \
148
{ \
149
_( 1 ( class EXPORT DiffusionTensor3D< ITK_TEMPLATE_1 TypeX > ) ) \
150
namespace Templates \
151
{ \
152
typedef DiffusionTensor3D< ITK_TEMPLATE_1 TypeX > \
153
DiffusionTensor3D##TypeY; \
154
} \
155
}
156
157
#if ITK_TEMPLATE_EXPLICIT
158
#include "Templates/itkDiffusionTensor3D+-.h"
159
#endif
160
161
#if ITK_TEMPLATE_TXX
162
#include "itkDiffusionTensor3D.hxx"
163
#endif
164
165
#endif
166
Generated on Tue Jul 10 2012 23:23:34 for ITK by
1.8.1