18#ifndef itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
19#define itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
35template <
typename TInputMesh,
typename TOutputMesh = TInputMesh>
47 using typename Superclass::InputMeshType;
48 using typename Superclass::InputMeshPointer;
50 using typename Superclass::OutputMeshType;
51 using typename Superclass::OutputMeshPointer;
52 using typename Superclass::OutputPointsContainerPointer;
53 using typename Superclass::OutputPointsContainerIterator;
54 using typename Superclass::OutputPointType;
55 using typename Superclass::OutputVectorType;
56 using typename Superclass::OutputCoordType;
57 using typename Superclass::OutputPointIdentifier;
58 using typename Superclass::OutputCellIdentifier;
59 using typename Superclass::OutputQEType;
60 using typename Superclass::OutputMeshTraits;
61 using typename Superclass::OutputCurvatureType;
63 using typename Superclass::TriangleType;
73#ifdef ITK_USE_CONCEPT_CHECKING
99 if (qe != qe->GetOnext())
114 qe_it2 = qe_it->GetOnext();
115 q0 = output->GetPoint(qe_it->GetDestination());
116 q1 = output->GetPoint(qe_it2->GetDestination());
118 temp_coeff = coefficent(output, qe_it);
119 Laplace += temp_coeff * (iP - q0);
121 temp_area = this->ComputeMixedArea(qe_it, qe_it2);
124 face_normal = TriangleType::ComputeNormal(q0, iP, q1);
125 normal += face_normal;
128 }
while (qe_it != qe);
136 if (normal.GetSquaredNorm() > 0.)
139 Laplace *= 0.25 / area;
140 oH = Laplace * normal;
typename OutputMeshType::QEType OutputQEType
typename OutputMeshTraits::PixelType OutputCurvatureType
typename OutputPointType::CoordRepType OutputCoordType
see the following paper title: Discrete Differential-Geometry Operators for Triangulated 2-Manifolds ...
~DiscreteMeanCurvatureQuadEdgeMeshFilter() override=default
DiscreteMeanCurvatureQuadEdgeMeshFilter()=default
OutputCurvatureType EstimateCurvature(const OutputPointType &iP) override
Light weight base class for most itk classes.
typename OutputMeshType::Pointer OutputMeshPointer
typename OutputMeshType::PointType OutputPointType
typename OutputMeshType::VectorType OutputVectorType
#define itkConceptMacro(name, concept)
static constexpr double e
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....