18 #ifndef itkChainCodePath_h
19 #define itkChainCodePath_h
48 template<
unsigned int VDimension >
50 Path< unsigned int, Offset< VDimension >, VDimension >
56 static constexpr
unsigned int Dimension = VDimension;
85 return m_Chain[input];
89 IndexType EvaluateToIndex(
const InputType & input)
const override;
95 OffsetType IncrementInput(InputType & input)
const override;
100 return static_cast<InputType>(NumberOfSteps());
108 itkGetConstReferenceMacro(Start,
IndexType);
114 m_Chain.insert(m_Chain.begin() + position, step);
122 m_Chain[position] = step;
138 return m_Chain.size();
144 m_Start = this->GetZeroIndex();
152 void PrintSelf(std::ostream & os,
Indent indent)
const override;
160 #ifndef ITK_MANUAL_INSTANTIATION
161 #include "itkChainCodePath.hxx"
typename Superclass::InputType InputType
OutputType Evaluate(const InputType &input) const override
Represent a path as a sequence of connected image index offsets.
Represent a n-dimensional index in a n-dimensional image.
virtual void InsertStep(InputType position, OffsetType step)
constexpr unsigned int Dimension
Represent a path through ND Space.
InputType EndOfInput() const override
ImageBaseType::IndexType IndexType
void Initialize() override
std::vector< OffsetType > ChainCodeType
typename ChainCodeType::size_type ChainCodeSizeType
typename Superclass::OutputType OutputType
virtual void ChangeStep(InputType position, OffsetType step)
Control indentation during Print() invocation.
virtual ChainCodeSizeType NumberOfSteps() const
Base class for most ITK classes.
Base class for all data objects in ITK.