Esempio n. 1
0
        public static GeometryModel3D newPolygon3D(HelixToolkit.Wpf.Polygon pPolygon, Color pColor, double pOffesetZ = 0)
        {
            GeometryModel3D model = new GeometryModel3D();

            model.Geometry = FillPolygon(pPolygon, pOffesetZ);
            model.Material = new DiffuseMaterial(new SolidColorBrush(pColor));
            return(model);
        }
Esempio n. 2
0
        public HelixToolkit.Wpf.Polygon ToHelixToolkit()
        {
            HelixToolkit.Wpf.Polygon p = new HelixToolkit.Wpf.Polygon();
            foreach (HciLab.Utilities.Mathematics.Core.Vector2 v in Points)
            {
                p.Points.Add(new System.Windows.Point(v.X, v.Y));
            }

            return(p);
        }
Esempio n. 3
0
        internal static MeshGeometry3D FillPolygon(HelixToolkit.Wpf.Polygon p, double pOffesetZ = 0)
        {
            List <Point3D> pts3D = new List <Point3D>();

            foreach (var point in p.Points)
            {
                pts3D.Add(new Point3D(point.X, point.Y, pOffesetZ));
            }
            HelixToolkit.Wpf.Polygon3D p3 = new HelixToolkit.Wpf.Polygon3D(pts3D);
            return(FillPolygon(p3));
        }
Esempio n. 4
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);
            }
        }