18#ifndef itkAnatomicalOrientation_h
19#define itkAnatomicalOrientation_h
21#include "ITKCommonExport.h"
23#ifndef ITK_FUTURE_LEGACY_REMOVE
60#ifndef ITK_FUTURE_LEGACY_REMOVE
85 template <CoordinateEnum VPrimary, CoordinateEnum VSecondary, CoordinateEnum VTertiary>
436#ifndef ITK_FUTURE_LEGACY_REMOVE
441# if defined(ITK_LEGACY_REMOVE) && !defined(ITK_LEGACY_SILENT) && !defined(ITK_WRAPPING)
442 [[deprecated(
"Use the AnatomicalOrientation::FromEnum type instead.")]]
522 std::array<CoordinateEnum, 3>
528 static constexpr bool
531 const uint8_t AxisField = ~1;
532 return (
static_cast<uint8_t
>(a) & AxisField) == (
static_cast<uint8_t
>(b) & AxisField);
536 friend ITKCommon_EXPORT std::ostream &
553 static const std::map<PositiveEnum, std::string> &
558 static const std::map<std::string, PositiveEnum> &
565ITKCommon_EXPORT std::ostream &
569ITKCommon_EXPORT std::ostream &
574ITKCommon_EXPORT std::ostream &
577ITKCommon_EXPORT std::ostream &
Representations of anatomical orientations and methods to convert between conventions.
@ PosteriorToAnterior
to front - 0b0100
@ AnteriorToPosterior
to back
@ SuperiorToInferior
to foot
@ InferiorToSuperior
to head - 0b1000
typename ImageBase< Dimension >::DirectionType DirectionType
std::string GetAsNegativeStringEncoding() const
CoordinateEnum GetSecondaryTerm() const
constexpr AnatomicalOrientation(PositiveEnum toOrientation)
std::array< CoordinateEnum, 3 > GetTerms() const
static constexpr uint32_t m_OrientationValue
constexpr AnatomicalOrientation(NegativeEnum fromOrientation)
static constexpr unsigned int Dimension
AnatomicalOrientation(const DirectionType &d)
NegativeEnum GetAsNegativeOrientation() const
CoordinateMajornessTermsEnum
static constexpr bool SameOrientationAxes(CoordinateEnum a, CoordinateEnum b)
DirectionType GetAsDirection() const
Return the direction cosine matrix for the orientation.
static constexpr unsigned int ImageDimension
static PositiveEnum ConvertDirectionToPositiveEnum(const DirectionType &dir)
Return the closest orientation for a direction cosine matrix.
CoordinateEnum GetPrimaryTerm() const
constexpr AnatomicalOrientation(CoordinateEnum primary, CoordinateEnum secondary, CoordinateEnum tertiary)
Initialize with CoordinateEnum's from separate axes.
static DirectionType ConvertPositiveEnumToDirection(PositiveEnum)
Return the direction cosine matrix for a orientation.
std::string GetAsPositiveStringEncoding() const
PositiveEnum GetAsPositiveOrientation() const
static const std::map< std::string, PositiveEnum > & GetStringToCode()
Return the global instance of the map from string to orientation enum.
static const std::map< PositiveEnum, std::string > & GetCodeToString()
Return the global instance of the map from orientation enum to strings.
CoordinateEnum GetCoordinateTerm(CoordinateMajornessTermsEnum cmt) const
static std::string ConvertStringEncoding(std::string str)
CoordinateEnum GetTertiaryTerm() const
static AnatomicalOrientation CreateFromNegativeStringEncoding(std::string str)
static AnatomicalOrientation CreateFromPositiveStringEncoding(std::string str)
Matrix< SpacePrecisionType, VImageDimension, VImageDimension > DirectionType
ValidCoordinateOrientations
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)