18 #ifndef __itkChainCodePath_h
19 #define __itkChainCodePath_h
48 template<
unsigned int VDimension >
50 Path< unsigned int, Offset< VDimension >, VDimension >
54 itkStaticConstMacro(Dimension,
unsigned int, VDimension);
67 typedef typename Superclass::OutputType
OutputType;
83 return m_Chain[input];
87 virtual IndexType EvaluateToIndex(
const InputType & input)
const;
93 virtual OffsetType IncrementInput(InputType & input)
const;
98 return NumberOfSteps();
105 itkSetMacro(Start, IndexType);
106 itkGetConstReferenceMacro(Start, IndexType);
112 m_Chain.insert(m_Chain.begin() + position, step);
120 m_Chain[position] = step;
126 virtual inline void Clear()
136 return m_Chain.size();
140 virtual void Initialize(
void)
142 m_Start = this->GetZeroIndex();
150 void PrintSelf(std::ostream & os,
Indent indent)
const;
154 void operator=(
const Self &);
162 #define ITK_TEMPLATE_ChainCodePath(_, EXPORT, TypeX, TypeY) \
165 _( 1 ( class EXPORT ChainCodePath< ITK_TEMPLATE_1 TypeX > ) ) \
166 namespace Templates \
168 typedef ChainCodePath< ITK_TEMPLATE_1 TypeX > \
169 ChainCodePath##TypeY; \
173 #if ITK_TEMPLATE_EXPLICIT
174 #include "Templates/itkChainCodePath+-.h"
178 #include "itkChainCodePath.hxx"