18 #ifndef __itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
19 #define __itkDiscretePrincipalCurvaturesQuadEdgeMeshFilter_h
33 template<
class TInputMesh,
class TOutputMesh=TInputMesh >
66 #ifdef ITK_USE_CONCEPT_CHECKING
76 m_Gaussian(0.0), m_Mean(0.0){}
100 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 );
127 TriangleType::ComputeAngle(q0, iP, q1) );
129 temp_area = this->ComputeMixedArea(qe_it, qe_it2);
132 face_normal = TriangleType::ComputeNormal(q0, iP, q1);
133 normal += face_normal;
137 while ( qe_it != qe );
142 Laplace *= 0.25 * area;
143 m_Mean = Laplace * normal;
152 return vnl_math_max( static_cast<OutputCurvatureType>( 0. ),
153 m_Mean * m_Mean - m_Gaussian );
160 void operator=(
const Self &);