ITK  4.2.0
Insight Segmentation and Registration Toolkit
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 
27 
28 namespace itk
29 {
78 template< typename TComponent >
79 class DiffusionTensor3D:public SymmetricSecondRankTensor< TComponent, 3 >
80 {
81 public:
85 
87  typedef typename Superclass::ValueType ValueType;
89 #if defined( __GNUC__ ) && !defined( __INTEL_COMPILER ) && ( __GNUC__ == 3 )
91 #else
93 #endif
96 
99 
102 
104  DiffusionTensor3D(const Superclass & r);
105  DiffusionTensor3D(const ComponentType & r);
108 
110  template< typename TCoordRepB >
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 >
124  {
126  return *this;
127  }
129 
132 
135 
138 
141 };
142 } // end namespace itk
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