18 #ifndef itkHilbertPath_h
19 #define itkHilbertPath_h
52 template<
typename TIndexValue =
unsigned int,
unsigned int VDimension = 3>
54 :
public Path<TIndexValue, Index<VDimension>, VDimension>
71 itkStaticConstMacro(
Dimension,
unsigned int, VDimension );
115 itkExceptionMacro(
"Not implemented." );
160 void operator=( const
Self & ) ITK_DELETE_FUNCTION;
166 PathIndexType
GetInverseTransform( const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType );
172 PathIndexType
SetBit( const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType );
176 PathIndexType
GetLeftBitRotation( PathIndexType, PathIndexType, const PathIndexType );
180 PathIndexType
GetDirection( const PathIndexType, const PathIndexType );
182 PathIndexType
GetEntry( const PathIndexType );
184 PathIndexType
GetBitRange( const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType );
191 #ifndef ITK_MANUAL_INSTANTIATION
192 #include "itkHilbertPath.hxx"
PathIndexType SetBit(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
virtual InputType EndOfInput() const override
virtual OutputType EvaluateToIndex(const PathIndexType &input) const override
HilbertPathType::size_type HilbertPathSizeType
Offset< VDimension > OffsetType
Represent an n-dimensional Hilbert path for a given order.
void PrintSelf(std::ostream &os, Indent indent) const override
PathIndexType GetRightBitRotation(PathIndexType, PathIndexType, const PathIndexType)
IndexType TransformPathIndexToMultiDimensionalIndex(const PathIndexType id)
SmartPointer< const Self > ConstPointer
PathIndexType GetInverseTransform(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
static const unsigned int Dimension
PathIndexType GetGrayCode(const PathIndexType)
PathIndexType GetTransform(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
PathIndexType GetInverseGrayCode(const PathIndexType)
PathIndexType GetDirection(const PathIndexType, const PathIndexType)
PathIndexType GetTrailingSetBits(const PathIndexType, const PathIndexType)
Superclass::OffsetType OffsetType
virtual OutputType Evaluate(const PathIndexType &input) const override
std::vector< IndexType > HilbertPathType
Represent a path through ND Space.
HilbertPathType m_HilbertPath
HilbertPath< TIndexValue, VDimension > Self
virtual void Initialize(void) override
PathIndexType GetEntry(const PathIndexType)
PathIndexType GetBitRange(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
SmartPointer< Self > Pointer
virtual void Modified() const
void ConstructHilbertPath()
PathIndexType GetLeftBitRotation(PathIndexType, PathIndexType, const PathIndexType)
virtual InputType EvaluateInverse(const IndexType &input)
Control indentation during Print() invocation.
Path< unsigned int, Index< VDimension >, VDimension > Superclass
Superclass::OutputType OutputType
Superclass::InputType InputType
Define additional traits for native types such as int or float.
PathIndexType TransformMultiDimensionalIndexToPathIndex(const IndexType &index)
virtual OffsetType IncrementInput(InputType &) const override
unsigned int HilbertOrderType
virtual HilbertPathSizeType NumberOfSteps() const
Base class for all data objects in ITK.
HilbertOrderType m_HilbertOrder