Пример #1
0
        private static MeshGeometry3D GetMeshGeometry(double radius, List <Point3D> points)
        {
            var builder = new HelixToolkit.Wpf.MeshBuilder();

            foreach (var p in points)
            {
                builder.AddSphere(p, radius);
            }

            return(builder.ToMesh());
        }
Пример #2
0
        /// <summary>
        /// Creates a model of the tetrahedron. Transparency is applied to the color.
        /// </summary>
        /// <param name="color"></param>
        /// <param name="radius"></param>
        /// <returns>A model representing the tetrahedron</returns>
        public override Model3D CreateModel(Material material, double radius)
        {
            var points = new Point3DCollection(Enumerable.Range(0, 2).Select(i => GetPosition(i)));

            // Create a mesh builder and add a box to it
            HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false);

            meshBuilder.AddTriangle(Vertices[0].ToPoint3D(), Vertices[1].ToPoint3D(), Vertices[2].ToPoint3D());

            MeshGeometry3D mesh = meshBuilder.ToMesh(true);

            return(new GeometryModel3D {
                Geometry = mesh, Material = material, BackMaterial = material
            });
        }
Пример #3
0
        /// <summary>
        /// Creates a model of the tetrahedron. Transparency is applied to the color.
        /// </summary>
        /// <param name="color"></param>
        /// <param name="radius"></param>
        /// <returns>A model representing the tetrahedron</returns>
        public override Model3D CreateModel(Material material, double radius)
        {
            HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false);

            if (ArePointsCoplanar())
            {
                SortVertices();
                meshBuilder.AddQuad(Vertices[0].ToPoint3D(), Vertices[1].ToPoint3D(), Vertices[3].ToPoint3D(), Vertices[2].ToPoint3D());
            }

            MeshGeometry3D mesh = meshBuilder.ToMesh(true);

            return(new GeometryModel3D {
                Geometry = mesh, Material = material, BackMaterial = material
            });
        }
Пример #4
0
        public static GeometryModel3D newPolygon3DOWN(HciLab.Utilities.Mathematics.Geometry2D.Polygon pPolygon, Color pColor, double pOffesetZ = 0)
        {
            GeometryModel3D model = new GeometryModel3D();

            if (pPolygon != null)
            {
                HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false);

                Int32Collection triangleIndexes = CuttingEarsTriangulatorNEW.Triangulate(pPolygon.Points);

                meshBuilder.Append(pPolygon.ToHelixToolkit3D(pOffesetZ).Points, triangleIndexes);
                model.Geometry = meshBuilder.ToMesh();
            }
            model.Material = new DiffuseMaterial(new SolidColorBrush(pColor));
            return(model);
        }
Пример #5
0
        public static PanelHolderViewModel ToViewModel(this PanelHolder m, MachineElementViewModel parent = null)
        {
            var builder = new HelixToolkit.Wpf.MeshBuilder();

            builder.AddSphere(m.Position.ToPoint3D(), 10.0);

            //return new PanelHolderViewModel()
            return(new WorkablePanelViewModel()
            {
                PanelHolderId = m.Id,
                Name = m.Name,
                Corner = m.Corner,
                Position = m.Position.ToPoint3D(),
                Parent = parent,
                MeshGeometry = builder.ToMesh(),
                Material = HelixToolkit.Wpf.Materials.Blue
            });
        }
Пример #6
0
        /// <summary>
        /// For 3D polygons
        /// </summary>
        /// <param name="pPolygon"></param>
        /// <returns></returns>
        internal static MeshGeometry3D FillPolygon(HelixToolkit.Wpf.Polygon3D pPolygon)
        {
            try
            {
                HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false);

                HelixToolkit.Wpf.Polygon polygon = pPolygon.Flatten();

                Int32Collection triangleIndexes = HelixToolkit.Wpf.CuttingEarsTriangulator.Triangulate(polygon.Points);

                meshBuilder.Append(pPolygon.Points, triangleIndexes);
                return(meshBuilder.ToMesh());
            }
            catch (System.InvalidOperationException exp)
            {
                return(null);
            }
        }