18 #ifndef itkSparseFieldLevelSetImageFilter_h
19 #define itkSparseFieldLevelSetImageFilter_h
35 template <
typename TValue>
72 template <
typename TNeighborhoodType>
90 return m_ArrayIndex[i];
96 return m_NeighborhoodOffset[i];
108 return m_StrideTable[i];
115 Print(std::ostream & os,
Indent indent)
const;
243 template <
typename TInputImage,
typename TOutputImage>
256 using typename Superclass::TimeStepType;
257 using typename Superclass::RadiusType;
258 using typename Superclass::NeighborhoodScalesType;
270 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
303 itkSetMacro(NumberOfLayers,
unsigned int);
304 itkGetConstMacro(NumberOfLayers,
unsigned int);
309 itkGetConstMacro(IsoSurfaceValue,
ValueType);
322 itkSetMacro(InterpolateSurfaceLocation,
bool);
323 itkGetConstMacro(InterpolateSurfaceLocation,
bool);
330 this->SetInterpolateSurfaceLocation(
true);
335 this->SetInterpolateSurfaceLocation(
false);
339 #ifdef ITK_USE_CONCEPT_CHECKING
351 PrintSelf(std::ostream & os,
Indent indent)
const override;
357 inline virtual ValueType
363 return (value + dt * change);
370 PostProcessOutput()
override;
377 InitializeBackgroundPixels();
381 Initialize()
override;
388 CopyInputToOutput()
override;
392 AllocateUpdateBuffer()
override;
397 ApplyUpdate(
const TimeStepType & dt)
override;
402 CalculateChange()
override;
408 ConstructLayer(StatusType from, StatusType to);
415 ConstructActiveLayer();
419 InitializeActiveLayerValues();
429 PropagateLayerValues(StatusType from, StatusType to, StatusType promote,
int InOrOut);
436 PropagateAllLayerValues();
442 UpdateActiveLayerValues(TimeStepType dt, LayerType * UpList, LayerType * DownList);
446 ProcessStatusList(LayerType * InputList,
447 LayerType * OutputList,
448 StatusType ChangeToStatus,
449 StatusType SearchForStatus);
453 ProcessOutsideList(LayerType * OutsideList, StatusType ChangeToStatus);
455 itkGetConstMacro(ValueZero, ValueType);
456 itkGetConstMacro(ValueOne, ValueType);
463 double m_ConstantGradientValue{ 1.0 };
506 unsigned int m_NumberOfLayers{ 2 };
530 bool m_InterpolateSurfaceLocation{
true };
538 bool m_BoundsCheckingActive{
false };
542 #ifndef ITK_MANUAL_INSTANTIATION
543 # include "itkSparseFieldLevelSetImageFilter.hxx"