19#ifndef itkLevelSetBase_h
20#define itkLevelSetBase_h
42template <
typename TInput,
unsigned int VDimension,
typename TOutput,
typename TDomain>
56 static constexpr unsigned int Dimension = VDimension;
102 : m_Name(
std::move(iName))
106 : m_Name(iData.m_Name)
107 , m_Value(iData.m_Value)
108 , m_Computed(iData.m_Computed)
120 this->m_Name = iData.
m_Name;
134 , Gradient(
"Gradient")
136 , Laplacian(
"Laplacian")
137 , GradientNorm(
"GradientNorm")
138 , MeanCurvature(
"MeanCurvature")
139 , ForwardGradient(
"ForwardGradient")
140 , BackwardGradient(
"BackwardGradient")
155 , Gradient(iData.Gradient)
156 , Hessian(iData.Hessian)
157 , Laplacian(iData.Laplacian)
158 , GradientNorm(iData.GradientNorm)
159 , MeanCurvature(iData.MeanCurvature)
160 , ForwardGradient(iData.ForwardGradient)
161 , BackwardGradient(iData.BackwardGradient)
279#ifndef ITK_MANUAL_INSTANTIATION
280# include "itkLevelSetBase.hxx"
A templated class holding a n-Dimensional covariant vector.
Base class for all data objects in ITK.
Internal class used for one computed characteristic.
DataType(const DataType &iData)
DataType(std::string iName)
void operator=(const DataType &iData)
Abstract base class for the representation of a level-set function.
void UpdateOutputInformation() override
typename NumericTraits< OutputType >::RealType OutputRealType
void Initialize() override
virtual void EvaluateGradientNorm(const InputType &iP, LevelSetDataType &ioData) const
~LevelSetBase() override=default
virtual void SetRequestedRegion(const RegionType ®ion)
virtual HessianType EvaluateHessian(const InputType &iP) const =0
virtual void EvaluateMeanCurvature(const InputType &iP, LevelSetDataType &ioData) const
void Graft(const DataObject *data) override
virtual void SetBufferedRegion(const RegionType ®ion)
void SetRequestedRegion(const DataObject *data) override
virtual OutputRealType EvaluateLaplacian(const InputType &iP) const =0
virtual OutputRealType EvaluateGradientNorm(const InputType &iP) const
virtual void EvaluateGradient(const InputType &iP, LevelSetDataType &ioData) const =0
IdentifierType RegionType
void SetRequestedRegionToLargestPossibleRegion() override
virtual void EvaluateForwardGradient(const InputType &iP, LevelSetDataType &ioData) const =0
virtual void EvaluateLaplacian(const InputType &iP, LevelSetDataType &ioData) const =0
virtual void EvaluateHessian(const InputType &iP, LevelSetDataType &ioData) const =0
virtual OutputType Evaluate(const InputType &iP) const =0
void CopyInformation(const DataObject *data) override
virtual void EvaluateBackwardGradient(const InputType &iP, LevelSetDataType &ioData) const =0
virtual GradientType EvaluateGradient(const InputType &iP) const =0
bool RequestedRegionIsOutsideOfTheBufferedRegion() override
virtual OutputRealType EvaluateMeanCurvature(const InputType &iP) const =0
bool VerifyRequestedRegion() override
virtual bool IsInside(const InputType &iP) const
virtual void Evaluate(const InputType &iP, LevelSetDataType &ioData) const =0
A templated class holding a M x N size Matrix.
Base class for most ITK classes.
constexpr unsigned int Dimension
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT DataObject
SizeValueType IdentifierType
Convenient data structure to cache computed characteristics.
DataType< OutputRealType > Laplacian
LevelSetDataType(const LevelSetDataType &iData)
~LevelSetDataType()=default
DataType< HessianType > Hessian
void operator=(const LevelSetDataType &iData)
DataType< OutputType > Value
DataType< OutputRealType > GradientNorm
DataType< OutputRealType > MeanCurvature
DataType< GradientType > ForwardGradient
DataType< GradientType > BackwardGradient
DataType< GradientType > Gradient