Ejemplo n.º 1
0
 public static HelixToolkit.Wpf.PointsVisual3D newPolygonToPoints(HciLab.Utilities.Mathematics.Geometry2D.Polygon pPolygon, double pZ)
 {
     HelixToolkit.Wpf.PointsVisual3D points = new HelixToolkit.Wpf.PointsVisual3D();
     points.Size   = 20;
     points.Color  = Colors.Aqua;
     points.Points = pPolygon.ToHelixToolkit3D(pZ).Points;
     return(points);
 }
Ejemplo n.º 2
0
        public static GeometryModel3D newPolygon3D(HciLab.Utilities.Mathematics.Geometry2D.Polygon pPolygon, Color pColor, double pOffesetZ = 0)
        {
            GeometryModel3D model = new GeometryModel3D();

            if (pPolygon != null)
            {
                model.Geometry = FillPolygon(pPolygon.ToHelixToolkit(), pOffesetZ);
            }
            model.Material = new DiffuseMaterial(new SolidColorBrush(pColor));
            return(model);
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        public static HelixToolkit.Wpf.LinesVisual3D newPolygonToWireFrame(HciLab.Utilities.Mathematics.Geometry2D.Polygon pPolygon, double pZ)
        {
            HelixToolkit.Wpf.LinesVisual3D line = new HelixToolkit.Wpf.LinesVisual3D();
            line.Color     = Colors.Gray;
            line.Thickness = 10;
            var points = pPolygon.ToHelixToolkit3D(pZ).Points;

            for (int i = 0; i < points.Count; i++)
            {
                line.Points.Add(points[i]);

                if (i == points.Count - 1)
                {
                    line.Points.Add(points[0]);
                }
                else
                {
                    line.Points.Add(points[i + 1]);
                }
            }

            return(line);
        }