18 #ifndef itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
19 #define itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
35 template <
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())
112 Laplace += temp_coeff * (iP - q0);
117 const OutputVectorType face_normal = TriangleType::ComputeNormal(q0, iP, q1);
118 normal += face_normal;
121 }
while (qe_it != qe);
129 if (normal.GetSquaredNorm() > 0.)
132 Laplace *= 0.25 / area;
133 oH = Laplace * normal;