Exemple #1
0
 public override void Draw2D(IMarkGeometryVisualizer2D view, bool shouldShowVertex)
 {
     view.Draw2D(
         GeometricArithmeticModule.ToLines(Points),
         shouldShowVertex
         );
 }
        public void Add(MarkGeometryPath path)
        {
            AddRange(GeometricArithmeticModule.ToLines(path.Points));

            // doesn't call Update(); because it is already called by the above method AddGeometry
            // change if this is no longer the case
        }
Exemple #3
0
 public ContourQuadTree(IEnumerable <MVertex> vertices)
 {
     Create(
         GeometricArithmeticModule.ToLines(
             vertices.Select(v => new MarkGeometryPoint(v.X, v.Y)).ToArray()
             )
         );
 }
        public bool SaveAsDXF(string filename)
        {
            if (filename == null || filename.Length <= 0)
            {
                return(false);
            }

            string      layerName;
            DxfDocument dxfDocument = new DxfDocument(new netDxf.Header.HeaderVariables());

            layerName = "points";
            foreach (MarkGeometryPoint point in Points)
            {
                dxfDocument.AddEntity(point.GetAsDXFEntity(layerName));
            }

            layerName = "arcs";
            foreach (MarkGeometryArc arc in Arcs)
            {
                dxfDocument.AddEntity(arc.GetAsDXFEntity(layerName));
            }

            layerName = "arcs";
            foreach (MarkGeometryCircle circle in Circles)
            {
                dxfDocument.AddEntity(circle.GetAsDXFEntity(layerName));
            }

            layerName = "lines";
            foreach (MarkGeometryLine line in Lines)
            {
                dxfDocument.AddEntity(line.GetAsDXFEntity(layerName));
            }

            layerName = "paths";
            foreach (MarkGeometryPath path in Paths)
            {
                foreach (MarkGeometryLine line in GeometricArithmeticModule.ToLines(path.Points))
                {
                    dxfDocument.AddEntity(line.GetAsDXFEntity(layerName));
                }
            }

            // TODO : add support for other geometric objects and shapes e.g. splines, ellipses, etc
            // Also could optimise the object heirarchy (i.e. saving entities in an efficient order)

            dxfDocument.Save(filename);
            return(File.Exists(filename));
        }
Exemple #5
0
 private static List <MarkGeometryLine> ToLines(IEnumerable <MVertex> vertices)
 {
     return(GeometricArithmeticModule.ToLines(vertices.Select(v => new MarkGeometryPoint(v.X, v.Y)).ToArray()));
 }