public void Execute(IVectorImageProvider imageProvider) { foreach (Shape2D s in imageProvider.CurrImage.GetPrimitives <Shape2D>()) { s.RemoveDuplicates(); } }
public void Execute(IVectorImageProvider imageProvider) { WktLoaderDialog wktDlg = new WktLoaderDialog(); if (wktDlg.ShowDialog() == DialogResult.OK) { string filename = wktDlg.WktFileName; if (File.Exists(filename)) { if (filename.ToLower().EndsWith("wkb")) { WkbReader wkb = new WkbReader(File.ReadAllText(filename)); wkb.LoadIntoImage(imageProvider.CurrImage, wktDlg.FlipYAxis); } else { WktReader.ReadFile(imageProvider.LayeredVectorImage, filename, wktDlg.ScaleDivider, wktDlg.FlipYAxis, wktDlg.IncermentalCoordinates); } } if (wktDlg.WktFreeText.Length > 1) { if (IsHexString(wktDlg.WktFreeText)) { WkbReader wkb = new WkbReader(wktDlg.WktFreeText); wkb.LoadIntoImage(imageProvider.CurrImage, wktDlg.FlipYAxis); } else { WktReader.ReadText(imageProvider.LayeredVectorImage, wktDlg.WktFreeText, wktDlg.ScaleDivider, wktDlg.FlipYAxis, wktDlg.IncermentalCoordinates); } } } wktDlg.Dispose(); }
public void Execute(IVectorImageProvider imageProvider) { List <Line2D> lines = Line2DFunctions.TestLineIntersections(imageProvider.CurrImage.GetPrimitives <Line2D>()); foreach (Line2D l in lines) { PrimitiveRenderData.Get(l).Color = Colors.Line2DIntersection; } }
public void Execute(IVectorImageProvider imageProvider) { EarClippingTriangulation earClipping = new EarClippingTriangulation(); foreach (Shape2D p in imageProvider.CurrImage.GetPrimitives <Shape2D>()) { earClipping.AddShape(imageProvider.CurrImage.GetPrimitives <Vector2D>().ToArray()); } earClipping.Triangulate(); imageProvider.CurrImage.Add(earClipping.GetPrimitives()); }
public void Execute(IVectorImageProvider imageProvider) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Comma Seperated Value (*.csv)|*.csv"; if (dlg.ShowDialog() == DialogResult.OK) { CsvReader loader = new CsvReader(dlg.FileName); imageProvider.CurrImage.Add(loader.GetPoints()); } }
public void Execute(IVectorImageProvider imageProvider) { DelaunayTriangulation triangulator = new DelaunayTriangulation(new VectorCloud2D(imageProvider.CurrImage.GetPrimitives <Vector2D>())); imageProvider.CurrImage.primitives.AddRange(triangulator.Triangulate()); /* * foreach (Shape2D s in image.GetPrimitives<Shape2D>()) * { * s.RemoveDuplicates(); * } */ }
public void Execute(IVectorImageProvider imageProvider) { List <Line2D> lines = new List <Line2D>(); foreach (Primitive2D p in imageProvider.CurrImage.primitives) { if (p is Shape2D) { lines.AddRange(Line2DFunctions.TestLineIntersections((p as Shape2D).GetLines())); } } imageProvider.CurrImage.primitives.AddRange(lines); }
public void Execute(IVectorImageProvider imageProvider) { bool hasIntersections = false; VectorCloud2D cloud = new VectorCloud2D(imageProvider.CurrImage.GetPrimitives <Vector2D>()); for (int i = 0; i < cloud.Count - 2; i++) { Vector2D v1 = cloud[i]; Vector2D v2 = cloud[i + 1]; Vector2D v3 = cloud[i + 2]; int countEqual = 0; if (v1.IsPositionEqual(v2)) { countEqual++; } if (v1.IsPositionEqual(v3)) { countEqual++; } if (v2.IsPositionEqual(v3)) { countEqual++; } bool isJumpLine = countEqual > 0; if (isJumpLine) { imageProvider.CurrImage.Add(new Line2D(v1, v2)); imageProvider.CurrImage.Add(new Line2D(v2, v3)); imageProvider.CurrImage.Add(new Line2D(v3, v1)); } else { Triangle2D t = new Triangle2D(v1, v2, v3); if (CheckTriangleListIntersection(imageProvider.CurrImage, t)) { hasIntersections = true; PrimitiveRenderData.Get(t).Color = Color.Lime; PrimitiveRenderData.Get(t.a).Color = Color.Lime; PrimitiveRenderData.Get(t.b).Color = Color.Lime; PrimitiveRenderData.Get(t.c).Color = Color.Lime; } imageProvider.CurrImage.Add(t); } } if (hasIntersections) { MessageBox.Show("Has intersections!!!!!!"); } }
public void Execute(IVectorImageProvider imageProvider) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Doom wad files (*.wad)|*.wad"; if (dlg.ShowDialog() == DialogResult.OK) { using (BinaryReader reader = new BinaryReader(File.Open(dlg.FileName, FileMode.Open))) { WadReader wad = new WadReader(); wad.ReadLumps(reader); WadLevelSelectionDlg wadDlg = new WadLevelSelectionDlg(); wadDlg.SetLevels(wad.levels); if (wadDlg.ShowDialog() == DialogResult.OK) { LevelReader lvlReader = new LevelReader(wadDlg.Level); lvlReader.ReadData(reader); LevelBuilder.BuildImage(imageProvider.CurrImage, lvlReader, 1.0f); } wadDlg.Dispose(); } } }
public PluginMenuProxy(IVectorImageProvider imageProvider) { imgProvider = imageProvider; }
public void Execute(IVectorImageProvider imageProvider) { imageProvider.CurrImage.Add(Tests.PointCloudCreator.Create(new Rectangle2D(-200, -200, 200, 200), 50)); }