18#ifndef itkHilbertPath_h
19#define itkHilbertPath_h
51template <
typename TIndexValue =
unsigned int,
unsigned int VDimension = 3>
52class ITK_TEMPLATE_EXPORT
HilbertPath :
public Path<TIndexValue, Index<VDimension>, VDimension>
70 static constexpr unsigned int Dimension = VDimension;
119 itkExceptionMacro(
"Not implemented.");
132 virtual inline HilbertPathSizeType
210#ifndef ITK_MANUAL_INSTANTIATION
211# include "itkHilbertPath.hxx"
static constexpr unsigned int Dimension
HilbertPath< TIndexValue, VDimension > Self
virtual HilbertPathSizeType NumberOfSteps() const
OutputType Evaluate(const PathIndexType &input) const override
PathIndexType SetBit(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
Path< unsigned int, Index< VDimension >, VDimension > Superclass
PathIndexType GetLeftBitRotation(PathIndexType, PathIndexType, const PathIndexType)
std::vector< IndexType > HilbertPathType
typename HilbertPathType::size_type HilbertPathSizeType
PathIndexType GetGrayCode(const PathIndexType)
PathIndexType GetEntry(const PathIndexType)
void PrintSelf(std::ostream &os, Indent indent) const override
Index< VDimension > OutputType
void Initialize() override
PathIndexType GetRightBitRotation(PathIndexType, PathIndexType, const PathIndexType)
SmartPointer< const Self > ConstPointer
PathIndexType GetInverseGrayCode(const PathIndexType)
PathIndexType GetTransform(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
OutputType EvaluateToIndex(const PathIndexType &input) const override
virtual InputType EvaluateInverse(const IndexType &input)
SmartPointer< Self > Pointer
PathIndexType GetDirection(const PathIndexType, const PathIndexType)
HilbertOrderType m_HilbertOrder
PathIndexType GetTrailingSetBits(const PathIndexType, const PathIndexType)
HilbertPathType m_HilbertPath
InputType EndOfInput() const override
IndexType TransformPathIndexToMultiDimensionalIndex(const PathIndexType id)
void ConstructHilbertPath()
PathIndexType GetBitRange(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
PathIndexType TransformMultiDimensionalIndexToPathIndex(const IndexType &index)
OffsetType IncrementInput(InputType &input) const override
unsigned int HilbertOrderType
~HilbertPath() override=default
PathIndexType GetInverseTransform(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
Control indentation during Print() invocation.
static constexpr T max(const T &)
virtual void Modified() const
Offset< VDimension > OffsetType
Index< VDimension > OutputType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....