Exemplo n.º 1
0
        private void button6_Click(object sender, EventArgs e)
        {
            List <PolygonHelper> ar1 = new List <PolygonHelper>();

            for (int i = 0; i < dataModel.SelectedItems.Length; i++)
            {
                ar1.Add(dataModel.SelectedItems[i] as PolygonHelper);
            }

            if (ar1.Count != 2)
            {
                dataModel.ParentForm.StatusMessage("there are no 2 polygon selected", StatusMessageType.Warning); return;
            }

            PolyBool pb = new PolyBool();

            //var poly1 = GetPolygon(ar1[0].TransformedPoints().ToArray());
            //var poly2 = GetPolygon(ar1[1].TransformedPoints().ToArray());
            var poly1 = ar1[0].GetPolygon();
            var poly2 = ar1[1].GetPolygon();
            var r     = pb.intersect(poly1, poly2);

            if (r.regions.Count == 0)
            {
                dataModel.ParentForm.StatusMessage("no intersections", StatusMessageType.Warning);
                return;
            }
            var           pnts = r.regions.ToArray()[0].ToArray();
            PolygonHelper ph   = new PolygonHelper();

            ph.Polygon.Points = pnts.Select(z => new SvgPoint(z.x, z.y)).ToArray();
            dataModel.AddItem(ph);
        }
Exemplo n.º 2
0
        public void DebugScratchpad()
        {
            var demo     = DemoData.polyCases.Where(x => x.name == "Two Triangles With Common Edge").First();
            var buildLog = new BuildLog();
            var clipper  = new PolyBool()
            {
                BuildLog = buildLog
            };
            var result = clipper.intersect(demo.poly1, demo.poly2);

            var json = buildLog.ToJSON();

            using (var file = File.CreateText("DebugLog.json"))
            {
                file.Write(json);
            }

            Assert.IsNotNull(result);

            validateResult(result, demo.validate[0], demo.name, "intersect");
        }