18 #ifndef itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
19 #define itkDiscreteMeanCurvatureQuadEdgeMeshFilter_h
35 template<
typename TInputMesh,
typename TOutputMesh=TInputMesh >
71 #ifdef ITK_USE_CONCEPT_CHECKING
98 if ( qe != ITK_NULLPTR )
100 if ( qe != qe->GetOnext() )
115 qe_it2 = qe_it->GetOnext();
116 q0 = output->GetPoint( qe_it->GetDestination() );
117 q1 = output->GetPoint( qe_it2->GetDestination() );
119 temp_coeff = coefficent(output, qe_it);
120 Laplace += temp_coeff * ( iP - q0 );
125 face_normal = TriangleType::ComputeNormal(q0, iP, q1);
126 normal += face_normal;
130 while ( qe_it != qe );
138 if ( normal.GetSquaredNorm() > 0. )
141 Laplace *= 0.25 / area;
142 oH = Laplace * normal;
Superclass::OutputPointIdentifier OutputPointIdentifier
Superclass::OutputCellIdentifier OutputCellIdentifier
DiscreteMeanCurvatureQuadEdgeMeshFilter()
OutputMeshType::QEType OutputQEType
virtual OutputCurvatureType EstimateCurvature(const OutputPointType &iP) override
OutputMeshType::Pointer OutputMeshPointer
Light weight base class for most itk classes.
Superclass::OutputCurvatureType OutputCurvatureType
OutputMeshType::PointIdentifier OutputPointIdentifier
Superclass::TriangleType TriangleType
OutputCurvatureType ComputeMixedArea(OutputQEType *iQE1, OutputQEType *iQE2)
DiscreteMeanCurvatureQuadEdgeMeshFilter Self
Superclass::OutputCoordType OutputCoordType
Superclass::OutputPointsContainerIterator OutputPointsContainerIterator
static const double e
The base of the natural logarithm or Euler's number
OutputMeshType::PointType OutputPointType
SmartPointer< const Self > ConstPointer
OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
DiscreteCurvatureQuadEdgeMeshFilter< TInputMesh, TOutputMesh > Superclass
Superclass::OutputQEType OutputQEType
Superclass::OutputPointsContainerPointer OutputPointsContainerPointer
Superclass::OutputMeshType OutputMeshType
OutputMeshType::MeshTraits OutputMeshTraits
TriangleHelper< OutputPointType > TriangleType
Superclass::InputMeshType InputMeshType
ConformalMatrixCoefficients< OutputMeshType > CoefficientType
OutputMeshTraits::PixelType OutputCurvatureType
SmartPointer< Self > Pointer
see the following paper title: Discrete Differential-Geometry Operators for Triangulated 2-Manifolds ...
void operator=(const Self &)
OutputMeshType::CellIdentifier OutputCellIdentifier
Superclass::OutputPointType OutputPointType
OutputMeshType::PointType OutputPointType
OutputMeshType::Pointer OutputMeshPointer
Superclass::OutputMeshPointer OutputMeshPointer
Superclass::InputMeshPointer InputMeshPointer
OutputPointType::CoordRepType OutputCoordType
~DiscreteMeanCurvatureQuadEdgeMeshFilter()
OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
Superclass::OutputMeshTraits OutputMeshTraits
OutputMeshType * GetOutput()
#define itkConceptMacro(name, concept)
Superclass::OutputVectorType OutputVectorType
InputMeshType::Pointer InputMeshPointer
OutputMeshType::VectorType OutputVectorType
TOutputMesh OutputMeshType