18#ifndef itkLimiterFunctionBase_h
19#define itkLimiterFunctionBase_h
21#include "itkFunctionBase.h"
49template <
class TInput,
unsigned int NDimension>
50class ITK_TEMPLATE_EXPORT
LimiterFunctionBase :
public FunctionBase<TInput, typename NumericTraits<TInput>::RealType>
57 using Superclass = FunctionBase<TInput, typename NumericTraits<TInput>::RealType>;
67 using typename Superclass::InputType;
68 using typename Superclass::OutputType;
71 using DerivativeType = CovariantVector<DerivativeValueType, Self::Dimension>;
75 Evaluate(
const InputType & input)
const override = 0;
83 itkSetMacro(UpperBound, OutputType);
84 itkGetConstMacro(UpperBound, OutputType);
88 itkSetMacro(LowerBound, OutputType);
89 itkGetConstMacro(LowerBound, OutputType);
93 itkSetMacro(UpperThreshold, InputType);
94 itkGetConstMacro(UpperThreshold, InputType);
98 itkSetMacro(LowerThreshold, InputType);
99 itkGetConstMacro(LowerThreshold, InputType);
109 this->m_UpperBound = itk::NumericTraits<OutputType>::One + itk::NumericTraits<OutputType>::One;
110 this->m_LowerBound = itk::NumericTraits<OutputType>::Zero;
111 this->m_UpperThreshold = itk::NumericTraits<InputType>::One;
112 this->m_LowerThreshold = itk::NumericTraits<InputType>::One;
Base class for all ITK limiter function objects.
CovariantVector< DerivativeValueType, Self::Dimension > DerivativeType
~LimiterFunctionBase() override=default
virtual OutputType Evaluate(const InputType &input, DerivativeType &derivative) const =0
ITK_DISALLOW_COPY_AND_MOVE(LimiterFunctionBase)
InputType m_UpperThreshold
OutputType Evaluate(const InputType &input) const override=0
virtual void Initialize()
FunctionBase< TInput, typename NumericTraits< TInput >::RealType > Superclass
OutputType DerivativeValueType
InputType m_LowerThreshold
SmartPointer< const Self > ConstPointer
itkStaticConstMacro(Dimension, unsigned int, NDimension)