18 #ifndef itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
19 #define itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
35 template<
typename TInputMesh,
typename TOutputMesh=TInputMesh >
73 #ifdef ITK_USE_CONCEPT_CHECKING
102 if ( qe != qe->GetOnext() )
117 qe_it2 = qe_it->GetOnext();
118 q0 = output->GetPoint( qe_it->GetDestination() );
119 q1 = output->GetPoint( qe_it2->GetDestination() );
121 temp_coeff = coefficent(output, qe_it);
122 Laplace += temp_coeff * ( iP - q0 );
127 face_normal = TriangleType::ComputeNormal(q0, iP, q1);
128 normal += face_normal;
132 while ( qe_it != qe );
140 if ( normal.GetSquaredNorm() > 0. )
143 Laplace *= 0.25 / area;
144 oH = Laplace * normal;
DiscreteMeanCurvatureQuadEdgeMeshFilter()=default
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
Light weight base class for most itk classes.
TOutputMesh OutputMeshType
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
TriangleHelper< OutputPointType > TriangleType
~DiscreteMeanCurvatureQuadEdgeMeshFilter() override=default
OutputCurvatureType ComputeMixedArea(OutputQEType *iQE1, OutputQEType *iQE2)
typename OutputMeshTraits::PixelType OutputCurvatureType
typename OutputMeshType::QEType OutputQEType
typename OutputMeshType::CellIdentifier OutputCellIdentifier
typename OutputMeshType::PointIdentifier OutputPointIdentifier
typename OutputMeshType::PointType OutputPointType
typename InputMeshType::Pointer InputMeshPointer
A convenience class for computation of various triangle elements in 2D or 3D.
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename OutputMeshType::PointIdentifier OutputPointIdentifier
typename InputMeshType::Pointer InputMeshPointer
see the following paper title: Discrete Differential-Geometry Operators for Triangulated 2-Manifolds ...
typename OutputPointType::CoordRepType OutputCoordType
typename OutputMeshType::Pointer OutputMeshPointer
typename OutputMeshType::Pointer OutputMeshPointer
static constexpr double e
The base of the natural logarithm or Euler's number
typename OutputMeshType::VectorType OutputVectorType
TOutputMesh OutputMeshType
OutputCurvatureType EstimateCurvature(const OutputPointType &iP) override
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename OutputMeshType::PointType OutputPointType
OutputMeshType * GetOutput()
#define itkConceptMacro(name, concept)
typename OutputMeshType::MeshTraits OutputMeshTraits