public static DPMeshGeometry3D GetSimplifiedMeshGeometry3D(DPMeshGeometry3D dPMeshGeometry3D, double unitSize)
        {
            var meshRefactor = new MeshRefactor(dPMeshGeometry3D.TriangleIndices, dPMeshGeometry3D.Positions,
                                                dPMeshGeometry3D.Normals, unitSize);

            return(meshRefactor.CreateGeometry3D());
        }
        public static MeshGeometry3D GetSimplifiedMeshGeometry3D(MeshGeometry3D meshGeometry3D, double unitSize)
        {
            var meshRefactor = new MeshRefactor(meshGeometry3D.TriangleIndices.ToList(), meshGeometry3D.Positions.ToList(),
                                                meshGeometry3D.Normals.ToList(), unitSize);
            var meshGeometry = meshRefactor.CreateGeometry3D();

            if (meshGeometry == null)
            {
                return(null);
            }
            return(meshGeometry.CreateMeshGeometry3D());
        }
        public DPGeometryModel3D GetSimplifiedGeometryModel3D(double unitSize)
        {
            var meshGeometry3D = MeshRefactor.GetSimplifiedMeshGeometry3D(MeshGeometry, unitSize);

            if (meshGeometry3D == null || meshGeometry3D.TriangleIndices == null || !meshGeometry3D.TriangleIndices.Any())
            {
                return(null);
            }

            var ret = new DPGeometryModel3D();

            ret.MeshGeometry      = meshGeometry3D;
            ret.MaterialColor     = MaterialColor;
            ret.BackMaterialColor = BackMaterialColor;
            return(ret);
        }