17 #ifndef __itkSparseFieldLevelSetImageFilter_h
18 #define __itkSparseFieldLevelSetImageFilter_h
33 template <
class TValueType>
68 template <
class TNeighborhoodType>
74 typedef typename NeighborhoodType::RadiusType
RadiusType;
75 itkStaticConstMacro(
Dimension,
unsigned int,
76 NeighborhoodType::Dimension );
96 void Print(std::ostream &os)
const;
225 template <
class TInputImage,
class TOutputImage>
251 itkStaticConstMacro(ImageDimension,
unsigned int,
252 TOutputImage::ImageDimension);
286 itkSetMacro(NumberOfLayers,
unsigned int);
287 itkGetConstMacro(NumberOfLayers,
unsigned int);
290 itkSetMacro(IsoSurfaceValue, ValueType);
291 itkGetConstMacro(IsoSurfaceValue, ValueType);
303 itkSetMacro(InterpolateSurfaceLocation,
bool);
304 itkGetConstMacro(InterpolateSurfaceLocation,
bool);
307 void InterpolateSurfaceLocationOn()
308 { this->SetInterpolateSurfaceLocation(
true); }
309 void InterpolateSurfaceLocationOff()
310 { this->SetInterpolateSurfaceLocation(
false); }
312 #ifdef ITK_USE_CONCEPT_CHECKING
326 virtual void PrintSelf(std::ostream& os,
Indent indent)
const;
332 inline virtual ValueType CalculateUpdateValue(
335 const ValueType &value,
336 const ValueType &change)
337 {
return (value + dt * change); }
342 virtual void PostProcessOutput();
348 virtual void InitializeBackgroundPixels();
357 void CopyInputToOutput();
360 void AllocateUpdateBuffer();
364 void ApplyUpdate(TimeStepType dt);
368 TimeStepType CalculateChange();
373 void ConstructLayer(StatusType from, StatusType to);
379 void ConstructActiveLayer();
382 void InitializeActiveLayerValues();
391 void PropagateLayerValues(StatusType from, StatusType to,
392 StatusType promote,
int InOrOut);
398 void PropagateAllLayerValues();
403 void UpdateActiveLayerValues(TimeStepType dt, LayerType *StatusUpList,
404 LayerType *StatusDownList);
406 void ProcessStatusList(LayerType *InputList, LayerType *OutputList,
407 StatusType ChangeToStatus, StatusType SearchForStatus);
410 void ProcessOutsideList(LayerType *OutsideList, StatusType ChangeToStatus);
412 itkGetConstMacro(ValueZero, ValueType);
413 itkGetConstMacro(ValueOne, ValueType);
492 void operator=(
const Self&);
503 #ifndef ITK_MANUAL_INSTANTIATION