18#ifndef itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
19#define itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
33template <
typename TInputMesh,
typename TOutputMesh = TInputMesh>
67#ifdef ITK_USE_CONCEPT_CHECKING
101 if (qe_it != qe_it->GetOnext())
118 qe_it2 = qe_it->GetOnext();
119 q0 = output->GetPoint(qe_it->GetDestination());
120 q1 = output->GetPoint(qe_it2->GetDestination());
122 temp_coeff = coefficent(output, qe_it);
123 Laplace += temp_coeff * (iP - q0);
132 normal += face_normal;
135 }
while (qe_it != qe);
140 Laplace *= 0.25 * area;
141 m_Mean = Laplace * normal;
typename OutputMeshType::QEType OutputQEType
typename OutputMeshTraits::PixelType OutputCurvatureType
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename OutputPointType::CoordRepType OutputCoordType
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
typename OutputMeshType::MeshTraits OutputMeshTraits
TOutputMesh OutputMeshType
typename OutputMeshType::PointIdentifier OutputPointIdentifier
TriangleHelper< OutputPointType > TriangleType
typename OutputMeshType::Pointer OutputMeshPointer
OutputCurvatureType ComputeMixedArea(OutputQEType *iQE1, OutputQEType *iQE2)
typename InputMeshType::Pointer InputMeshPointer
typename OutputMeshType::PointType OutputPointType
typename OutputMeshType::CellIdentifier OutputCellIdentifier
FIXME add documentation here.
OutputCurvatureType m_Mean
OutputCurvatureType m_Gaussian
~DiscretePrincipalCurvaturesQuadEdgeMeshFilter() override=default
virtual OutputCurvatureType ComputeDelta()
void ComputeMeanAndGaussianCurvatures(const OutputPointType &iP)
DiscretePrincipalCurvaturesQuadEdgeMeshFilter()
Light weight base class for most itk classes.
typename OutputMeshType::Pointer OutputMeshPointer
OutputMeshType * GetOutput()
typename OutputMeshType::PointType OutputPointType
typename OutputMeshType::VectorType OutputVectorType
static VectorType ComputeNormal(const PointType &iA, const PointType &iB, const PointType &iC)
Compute Normal vector to the triangle formed by (iA,iB,iC)
static CoordRepType ComputeAngle(const PointType &iP1, const PointType &iP2, const PointType &iP3)
Compute angles (iA,iB,iC)
#define itkConceptMacro(name, concept)
static constexpr double pi
static constexpr double e
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....