Search code examples
surfacemeshlab

How does pseudoinverse quadric fitting in Meshlab compute the principal curvatures?


I tried finding any reference for Pseudoinverse Quadric Fitting but didn't find any. I am trying to obtain curvature of a surface with edges (not closed). This method seems to assign a certain negative value of curvature at the edge. I am not sure why. Please help.


Solution

  • Here is the algorithm that computes curvature in MeshLab under the name Pseudoinverse Quadric Fitting:

    • for each point it chooses a set of nearest vertexes within a given radius,
    • computes a projection plane by averaging its normals and
    • fits a quadric of these points wrt this plane.

    Curvature directions and values are the ones of this fitted quadric. To fit the quad the code uses a SVD decomposition hence the pseudoinverse name.
    Code is here https://github.com/cnr-isti-vclab/vcglib/blob/devel/vcg/complex/algorithms/update/curvature_fitting.h