public static void SetUpCurvature(TriMesh mesh) { PrincipalCurvature[] PrincipalCurv = TriMeshUtil.ComputePricipalCurvature(mesh); foreach (var v in mesh.Vertices) { PrincipalCurvature pc = PrincipalCurv[v.Index]; v.Traits.MaxCurvature = pc.max; v.Traits.MaxCurvatureDirection = pc.maxDir; v.Traits.MinCurvature = pc.min; v.Traits.MinCurvatureDirection = pc.minDir; v.Traits.MeanCurvature = (pc.max + pc.min) / 2d; v.Traits.GaussianCurvature = pc.max * pc.min; } }
private void InitCurvatureInfoGrid() { this.dataGridViewCurvature.Rows.Clear(); double[] curvature = TriMeshUtil.ComputeGaussianCurvature(Mesh); double[] meanCurv = TriMeshUtil.ComputeMeanCurvature(Mesh); PrincipalCurvature[] basic = TriMeshUtil.ComputePricipalCurvature(Mesh); PrincipalCurvature[] pg = TriMeshUtil.ComputePricipalCurvaturePG07(Mesh); CurvatureLib.Init(Mesh); PrincipalCurvature[] ccc = CurvatureLib.ComputeCurvature(); for (int i = 0; i < curvature.Length; i++) { this.dataGridViewCurvature.Rows.Add(i, curvature[i], meanCurv[i], ccc[i].max, ccc[i].min, pg[i].max, pg[i].min); } }