Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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);
            }
        }