18 #ifndef itkChainCodePath_h
19 #define itkChainCodePath_h
49 template <
unsigned int VDimension>
50 class ITK_TEMPLATE_EXPORT
ChainCodePath :
public Path<unsigned int, Offset<VDimension>, VDimension>
56 static constexpr
unsigned int Dimension = VDimension;
69 using typename Superclass::OutputType;
70 using typename Superclass::InputType;
86 return m_Chain[input];
91 EvaluateToIndex(
const InputType & input)
const override;
98 IncrementInput(InputType & input)
const override;
104 return static_cast<InputType>(NumberOfSteps());
112 itkGetConstReferenceMacro(Start,
IndexType);
119 m_Chain.insert(m_Chain.begin() + position, step);
128 m_Chain[position] = step;
143 virtual inline ChainCodeSizeType
146 return m_Chain.size();
153 m_Start = this->GetZeroIndex();
162 PrintSelf(std::ostream & os,
Indent indent)
const override;
170 #ifndef ITK_MANUAL_INSTANTIATION
171 # include "itkChainCodePath.hxx"