18#ifndef itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
19#define itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
33template <
typename TInputMesh,
typename TOutputMesh = TInputMesh>
67#ifdef ITK_USE_CONCEPT_CHECKING
102 if (qe_it != qe_it->GetOnext())
120 qe_it2 = qe_it->GetOnext();
121 q0 = output->GetPoint(qe_it->GetDestination());
122 q1 = output->GetPoint(qe_it2->GetDestination());
124 temp_coeff = coefficent(output, qe_it);
125 Laplace += temp_coeff * (iP - q0);
134 normal += face_normal;
137 }
while (qe_it != qe);
142 Laplace *= 0.25 * area;
143 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....