18 #ifndef itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
19 #define itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
33 template<
typename TInputMesh,
typename TOutputMesh=TInputMesh >
42 TInputMesh, TOutputMesh >;
66 #ifdef ITK_USE_CONCEPT_CHECKING
99 if ( qe_it != qe_it->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 );
126 TriangleType::ComputeAngle(q0, iP, q1) );
131 face_normal = TriangleType::ComputeNormal(q0, iP, q1);
132 normal += face_normal;
136 while ( qe_it != qe );
141 Laplace *= 0.25 * area;
142 m_Mean = Laplace * normal;
151 return std::max( static_cast<OutputCurvatureType>( 0. ),
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
Light weight base class for most itk classes.
FIXME add documentation here.
virtual OutputCurvatureType ComputeDelta()
TOutputMesh OutputMeshType
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
TriangleHelper< OutputPointType > TriangleType
OutputCurvatureType ComputeMixedArea(OutputQEType *iQE1, OutputQEType *iQE2)
typename OutputMeshTraits::PixelType OutputCurvatureType
static constexpr double pi
typename OutputMeshType::QEType OutputQEType
typename OutputMeshType::CellIdentifier OutputCellIdentifier
~DiscretePrincipalCurvaturesQuadEdgeMeshFilter() override=default
DiscretePrincipalCurvaturesQuadEdgeMeshFilter()
typename OutputMeshType::PointIdentifier OutputPointIdentifier
OutputCurvatureType m_Gaussian
typename OutputMeshType::PointType OutputPointType
typename InputMeshType::Pointer InputMeshPointer
DiscretePrincipalCurvaturesQuadEdgeMeshFilter Self
A convenience class for computation of various triangle elements in 2D or 3D.
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename OutputMeshType::PointIdentifier OutputPointIdentifier
void ComputeMeanAndGaussianCurvatures(const OutputPointType &iP)
typename InputMeshType::Pointer InputMeshPointer
typename OutputPointType::CoordRepType OutputCoordType
typename OutputMeshType::Pointer OutputMeshPointer
void operator=(const Self &)=delete
typename OutputMeshType::Pointer OutputMeshPointer
static constexpr double e
The base of the natural logarithm or Euler's number
typename OutputMeshType::VectorType OutputVectorType
TOutputMesh OutputMeshType
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename OutputMeshType::PointType OutputPointType
OutputMeshType * GetOutput()
#define itkConceptMacro(name, concept)
typename OutputMeshType::MeshTraits OutputMeshTraits
OutputCurvatureType m_Mean