/// <summary> /// computes sum of opening-angles in triangles around vid, minus 2pi. /// This is zero on flat areas. /// </summary> public static double DiscreteGaussCurvature(DMesh3 mesh, int vid) { double angle_sum = 0; foreach (int tid in mesh.VtxTrianglesItr(vid)) { Index3i et = mesh.GetTriangle(tid); int idx = IndexUtil.find_tri_index(vid, ref et); angle_sum += mesh.GetTriInternalAngleR(tid, idx); } return(angle_sum - MathUtil.TwoPI); }