ITK
6.0.0
Insight Toolkit
ITK
Modules
Core
Common
include
itkSpatialOrientationAdapter.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright NumFOCUS
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
* https://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
/*=========================================================================
19
*
20
* Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21
*
22
* Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23
*
24
* For complete copyright, license and disclaimer of warranty information
25
* please refer to the NOTICE file at the top of the ITK source tree.
26
*
27
*=========================================================================*/
28
#ifndef itkSpatialOrientationAdapter_h
29
#define itkSpatialOrientationAdapter_h
30
#include "
itkImageBase.h
"
31
#include "
itkSpatialOrientation.h
"
32
#include "
itkConceptChecking.h
"
33
34
namespace
itk
35
{
36
//
37
// Helper functions, better than Macros
38
//
39
namespace
Function
40
{
41
inline
unsigned
42
Max3
(
double
x,
double
y,
double
z)
43
{
44
constexpr
double
obliquityThresholdCosineValue = 0.001;
45
46
double
absX =
itk::Math::abs
(x);
47
double
absY =
itk::Math::abs
(y);
48
double
absZ =
itk::Math::abs
(z);
49
50
if
((absX > obliquityThresholdCosineValue) && (absX > absY) && (absX > absZ))
51
{
52
return
0;
53
}
54
else
if
((absY > obliquityThresholdCosineValue) && (absY > absX) && (absY > absZ))
55
{
56
return
1;
57
}
58
else
if
((absZ > obliquityThresholdCosineValue) && (absZ > absX) && (absZ > absY))
59
{
60
return
2;
61
}
62
// they must all be equal, so just say x
63
return
0;
64
}
65
66
inline
int
67
Sign
(
double
x)
68
{
69
if
(x < 0)
70
{
71
return
-1;
72
}
73
return
1;
74
}
75
}
// namespace Function
76
81
class
ITKCommon_EXPORT
SpatialOrientationAdapter
82
{
83
public
:
84
using
Self
=
SpatialOrientationAdapter
;
85
86
using
OrientationType
=
SpatialOrientationEnums::ValidCoordinateOrientations
;
87
88
using
ImageType
=
ImageBase<3>
;
89
91
using
DirectionType
=
typename
ImageType::DirectionType
;
92
94
SpatialOrientationAdapter
() =
default
;
95
97
OrientationType
98
FromDirectionCosines(
const
DirectionType
& Dir);
99
101
DirectionType
102
ToDirectionCosines(
const
OrientationType
&
Or
);
103
};
104
}
// namespace itk
105
106
#endif // itkSpatialOrientationAdapter_h
itk::GTest::TypedefsAndConstructors::Dimension2::DirectionType
ImageBaseType::DirectionType DirectionType
Definition:
itkGTestTypedefsAndConstructors.h:52
itk::SpatialOrientationAdapter::DirectionType
typename ImageType::DirectionType DirectionType
Definition:
itkSpatialOrientationAdapter.h:91
itk::ImageBase
Base class for templated image classes.
Definition:
itkImageBase.h:114
itkConceptChecking.h
itk::Math::abs
bool abs(bool x)
Definition:
itkMath.h:840
itk::SpatialOrientationAdapter
Converts SpatialOrientationEnums to/from direction cosines.
Definition:
itkSpatialOrientationAdapter.h:81
itk::Function::Max3
unsigned Max3(double x, double y, double z)
Definition:
itkSpatialOrientationAdapter.h:42
itkSpatialOrientation.h
itk::Or
Definition:
itkMetaProgrammingLibrary.h:113
itk::SpatialOrientationEnums::ValidCoordinateOrientations
ValidCoordinateOrientations
Definition:
itkSpatialOrientation.h:111
itk::Function::Sign
int Sign(double x)
Definition:
itkSpatialOrientationAdapter.h:67
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnatomicalOrientation.h:29
itkImageBase.h
Generated on
unknown
for ITK by
1.8.16