コード例 #1
0
        public ActionResult GetCustomMesh()
        {
            IneqMeshViewModel ineqMeshViewModel = (IneqMeshViewModel)Session["IneqMeshViewModel"];
            IneqMesh          ineqMesh          = null;

            if (ineqMeshViewModel == null)
            {
                return(Content(null));
            }

            if (!String.IsNullOrEmpty(ineqMeshViewModel.PLY))
            {
                return(Content(ineqMeshViewModel.PLY));
            }

            ineqMesh = ineqMeshViewModel.IneqMesh;
            ineqMesh.Create();

            if (ineqMeshViewModel.Quality)
            {
                CheckQuality(ineqMesh);
            }

            if (ineqMeshViewModel.CurvatureQuality)
            {
                CheckCurvatureQuality(ineqMesh);
            }

            string ply = GetPLY(ineqMesh);

            ineqMeshViewModel.PLY = ply;
            return(Content(ply));
        }
コード例 #2
0
        public ActionResult GetCustomMeshImproveQuality(bool boundary)
        {
            IneqMeshViewModel ineqMeshViewModel = (IneqMeshViewModel)Session["IneqMeshViewModel"];
            IneqMesh          ineqMesh          = null;

            if (ineqMeshViewModel == null || ineqMeshViewModel.IneqMesh == null || ineqMeshViewModel.IneqMesh.Tetrahedrons.Count == 0)
            {
                return(Content(null));
            }

            ineqMesh = ineqMeshViewModel.IneqMesh;

            if (boundary)
            {
                CheckBoundaryQuality(ineqMesh);
            }
            else
            {
                CheckQuality(ineqMesh);
            }

            string ply = GetPLY(ineqMesh);

            ineqMeshViewModel.PLY = ply;
            return(Content(ply));
        }
コード例 #3
0
        public ActionResult GetSampleUFunc(int sampleUFuncIndex)
        {
            var tmp = IneqMeshViewModel.DefaultModel(-1, sampleUFuncIndex);

            return(Json(new
            {
                ufunc = tmp.UFunc
            }));
        }
コード例 #4
0
        public ActionResult GetSampleFormula(int sampleIndex)
        {
            var tmp = IneqMeshViewModel.DefaultModel(sampleIndex);

            return(Json(new
            {
                formula = tmp.Formula
            }));
        }
コード例 #5
0
        public ActionResult SetIneqMesh(IneqMeshViewModel ineqMeshViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ineqMeshViewModel.SetIneqMesh();
                    Session["IneqMeshViewModel"] = ineqMeshViewModel;
                }
                catch (Exception exc)
                {
                    return(Json(new { success = false, message = exc.Message }));
                }

                return(Json(new { success = true }));
            }

            return(Json(new { success = false, message = "Invalid data" }));
        }
コード例 #6
0
        public ActionResult GetCustomMeshJiggle()
        {
            IneqMeshViewModel ineqMeshViewModel = (IneqMeshViewModel)Session["IneqMeshViewModel"];
            IneqMesh          ineqMesh          = null;

            if (ineqMeshViewModel == null || ineqMeshViewModel.IneqMesh == null || ineqMeshViewModel.IneqMesh.Tetrahedrons.Count == 0)
            {
                return(Content(null));
            }

            ineqMesh = ineqMeshViewModel.IneqMesh;

            ineqMesh.Jiggle(3);

            ineqMesh.DeleteLonelyPoints();

            string ply = GetPLY(ineqMesh);

            ineqMeshViewModel.PLY = ply;
            return(Content(ply));
        }