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 );
88 virtual OutputType
Evaluate(
const PathIndexType & input )
const ITK_OVERRIDE
93 virtual OutputType
EvaluateToIndex(
const PathIndexType & input )
const ITK_OVERRIDE
113 virtual OffsetType
IncrementInput( InputType & itkNotUsed( input ) ) const ITK_OVERRIDE
115 itkExceptionMacro(
"Not implemented." );
144 itkGetConstMacro( HilbertOrder, HilbertOrderType );
160 void operator=(
const Self & ) ITK_DELETE_FUNCTION;
164 PathIndexType
GetTransform(
const PathIndexType,
const PathIndexType,
const PathIndexType,
const PathIndexType );
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)
HilbertPathType::size_type HilbertPathSizeType
Offset< VDimension > OffsetType
Represent an n-dimensional Hilbert path for a given order.
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)
virtual OutputType EvaluateToIndex(const PathIndexType &input) const override
PathIndexType GetTransform(const PathIndexType, const PathIndexType, const PathIndexType, const PathIndexType)
PathIndexType GetInverseGrayCode(const PathIndexType)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
void operator=(const Self &) ITK_DELETE_FUNCTION
PathIndexType GetDirection(const PathIndexType, const PathIndexType)
PathIndexType GetTrailingSetBits(const PathIndexType, const PathIndexType)
Superclass::OffsetType OffsetType
std::vector< IndexType > HilbertPathType
Represent a path through ND Space.
HilbertPathType m_HilbertPath
virtual InputType EndOfInput() const override
HilbertPath< TIndexValue, VDimension > Self
virtual OffsetType IncrementInput(InputType &) const override
virtual void Initialize(void) override
PathIndexType GetEntry(const PathIndexType)
virtual OutputType Evaluate(const PathIndexType &input) const override
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)
unsigned int HilbertOrderType
virtual HilbertPathSizeType NumberOfSteps() const
void PrintSelf(std::ostream &os, Indent indent) const override
HilbertOrderType m_HilbertOrder