示例#1
0
        private static PartialModel GenerateCircleModel()
        {
            float stepAngle = (float)Math.PI * 2f / 32f;

            var indices  = new List <int>();
            var vertices = new List <VertVN>();

            //Cone vertices and indices
            for (int i = 0; i < 32; i++)
            {
                var pt = new Vector3((float)Math.Cos(stepAngle * i), 0f, (float)Math.Sin(stepAngle * i)) * 0.5f;
                vertices.Add(new VertVN(pt, pt.Normalized()));

                indices.Add((i + 1) % 32); indices.Add(i); //indices.Add(32);
            }

            int curIdx  = GeneralMeshBuffer.IndexCount;
            int curVert = GeneralMeshBuffer.VertexCount;

            GeneralMeshBuffer.AppendVertices(vertices);
            GeneralMeshBuffer.AppendIndices(indices);

            int idxCount        = GeneralMeshBuffer.IndexCount - curIdx;
            var vertexPositions = vertices.Select(x => x.Position).ToList();

            var bounding = BBox.FromVertices(vertexPositions);

            var model = new PartialModel(GeneralMeshBuffer, curIdx, curVert, idxCount, OpenTK.Graphics.OpenGL.PrimitiveType.Lines);

            model.BoundingBox = bounding;
            model.Vertices    = vertexPositions;
            LoadedModels.Add(model);
            return(model);
        }
示例#2
0
        public static void InitializeResources()
        {
            GeneralMeshBuffer = new IndexedVertexBuffer <VertVN>();

            var loadedMesh = ResourceHelper.GetResourceModel("Models.Cube.obj", "obj").Meshes[0];

            CubeModel = AppendPartialMesh(loadedMesh);

            loadedMesh  = ResourceHelper.GetResourceModel("Models.Sphere.obj", "obj").Meshes[0];
            SphereModel = AppendPartialMesh(loadedMesh);

            loadedMesh    = ResourceHelper.GetResourceModel("Models.Cylinder.obj", "obj").Meshes[0];
            CylinderModel = AppendPartialMesh(loadedMesh);

            loadedMesh         = ResourceHelper.GetResourceModel("Models.CrossAxleMale.obj", "obj").Meshes[0];
            CrossAxleMaleModel = AppendPartialMesh(loadedMesh);

            loadedMesh           = ResourceHelper.GetResourceModel("Models.CrossAxleFemale.obj", "obj").Meshes[0];
            CrossAxleFemaleModel = AppendPartialMesh(loadedMesh);

            loadedMesh            = ResourceHelper.GetResourceModel("Models.TechnicPinFemale.obj", "obj").Meshes[0];
            TechnicPinFemaleModel = AppendPartialMesh(loadedMesh);

            loadedMesh     = ResourceHelper.GetResourceModel("Models.BarFemale.obj", "obj").Meshes[0];
            BarFemaleModel = AppendPartialMesh(loadedMesh);
        }
示例#3
0
        private static PartialModel AppendPartialMesh(Assimp.Mesh mesh)
        {
            var primitiveType = OpenTK.Graphics.OpenGL.PrimitiveType.Triangles;

            if (mesh.Faces[0].IndexCount == 4)
            {
                primitiveType = OpenTK.Graphics.OpenGL.PrimitiveType.Quads;
            }

            int curIdx  = GeneralMeshBuffer.IndexCount;
            int curVert = GeneralMeshBuffer.VertexCount;

            GeneralMeshBuffer.LoadModelVertices(mesh, true);
            int idxCount        = GeneralMeshBuffer.IndexCount - curIdx;
            var vertices        = GeneralMeshBuffer.GetVertices().Skip(curVert);
            var vertexPositions = vertices.Select(x => x.Position).ToList();

            var bounding = BBox.FromVertices(vertexPositions);

            var model = new PartialModel(GeneralMeshBuffer, curIdx, curVert, idxCount, primitiveType);

            model.BoundingBox = bounding;
            model.Vertices    = vertexPositions;
            LoadedModels.Add(model);
            //model.LoadVertices();
            //model.CalculateBoundingBox();
            return(model);
        }
示例#4
0
        // GET: Partial
        public PartialViewResult Slider()
        {
            var parial = new PartialModel();

            parial._backslider = db.BackSliders.ToList();
            return(PartialView(parial));
        }
        public ActionResult UpdatePartial()
        {
            var model = new PartialModel {
                Text = "was updated"
            };

            return(View("Partial", model));
        }
        public ActionResult ViewRequest()
        {
            var model = new PartialModel {
                Text = " Text from the action"
            };

            return(PartialView("Partial", model));
        }
示例#7
0
        public IActionResult OpenImage(string adImagePath)
        {
            var openImageModal = new PartialModel
            {
                PartialViewName = "OpenImageModalView",
                Model           = adImagePath
            };

            return(PartialView("ModalView", openImageModal));
        }
示例#8
0
        public IActionResult OpenWindowToDelete(Guid adId)
        {
            var deleteAdModel = new PartialModel
            {
                PartialViewName = "DeleteAdModalView",
                Model           = adId
            };

            return(PartialView("ModalView", deleteAdModel));
        }
示例#9
0
        /// <summary>
        /// On mouse click, select the specific board
        /// where the click happened.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void OnViewportMouseDown(
            object sender,
            System.Windows.Input.MouseEventArgs args)
        {
            if (vstuff.models == null)
            {
                return;
            }

            if (
                Keyboard.IsKeyDown(Key.LeftCtrl) ||
                Keyboard.IsKeyDown(Key.RightCtrl)
                )
            {
                // extending the selection.
                // don't unselect all first.
            }
            else
            {
                UnselectAll();
            }

            RayMeshGeometry3DHitTestResult rayMeshResult =
                (RayMeshGeometry3DHitTestResult)
                VisualTreeHelper.HitTest(myVP, args.GetPosition(myVP));

            if (rayMeshResult != null)
            {
                PartialModel found = null;
                foreach (PartialModel pm in vstuff.models)
                {
                    if (pm.mesh == rayMeshResult.MeshHit)
                    {
                        found = pm;
                        break;
                    }
                }

                if (found != null)
                {
                    if (IsSelected(found.bag.solid))
                    {
                        Unselect(found.bag.solid);
                    }
                    else
                    {
                        Select(found.bag.solid);
                    }
                }
            }
        }
示例#10
0
        public static void ReleaseResources()
        {
            if (GeneralMeshBuffer != null)
            {
                GeneralMeshBuffer.Dispose();
                GeneralMeshBuffer = null;
            }

            CubeModel            = null;
            SphereModel          = null;
            CrossAxleMaleModel   = null;
            CrossAxleFemaleModel = null;
            CylinderModel        = null;
        }
示例#11
0
 public PartialViewResult Navbar()
 {
     if (Session["langId"] != null)
     {
         language_id = Convert.ToInt32(Session["langId"]);
         IndexWiewModel index  = new IndexWiewModel();
         var            navbar = new PartialModel();
         navbar._navbar = db.Navbars.Where(s => s.navbar_lag_id == language_id).ToList();
         return(PartialView(navbar));
     }
     else
     {
         var navbar = new PartialModel();
         navbar._navbar = db.Navbars.Where(s => s.navbar_lag_id == language_id).ToList();
         return(PartialView(navbar));
     }
 }
示例#12
0
        public void OnViewportMouseMove(object sender, System.Windows.Input.MouseEventArgs args)
        {
            if (vstuff.models == null)
            {
                return;
            }

            RayMeshGeometry3DHitTestResult rayMeshResult =
                (RayMeshGeometry3DHitTestResult)
                VisualTreeHelper.HitTest(myVP, args.GetPosition(myVP));

            if (rayMeshResult != null)
            {
                PartialModel found = null;
                foreach (PartialModel pm in vstuff.models)
                {
                    if (pm.mesh == rayMeshResult.MeshHit)
                    {
                        found = pm;
                        break;
                    }
                }

                if (found != null)
                {
                    int        ndx    = rayMeshResult.VertexIndex1;
                    int        trindx = ndx / 3;
                    Triangle3d t      = found.tris[trindx];
#if DEBUG
                    myHoverFaceInfo.Content = string.Format("Pt: {3} -- {0}.{1}: {2}", t.face.solid.name, t.face.name, t.face.GetQuality(), ptstring(rayMeshResult.PointHit));
#else
                    myHoverFaceInfo.Content = string.Format("{0}.{1}: {2}", t.face.solid.name, t.face.name, t.face.GetQuality());
#endif
                }
            }
        }
示例#13
0
 public static void EndDrawModel(PartialModel model)
 {
     EndDrawModel(model.VertexBuffer);
 }
示例#14
0
 public static void BeginDrawModel(PartialModel model, Matrix4 transform, MaterialInfo material)
 {
     BeginDrawModel(model.VertexBuffer, transform, material);
 }
示例#15
0
 public RandomModel(int num,PartialModel partialModel)
 {
     Number = num;
     PartialModel = partialModel;
 }
 // properties, etc.
 // per comments in other answer you may want something like this
 public MainViewModel()
 {
     Partial = new PartialModel();
 }