public void AddShape(string file) { string key = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond).ToString(); shapes.Add(key, new WAShape(DXFReader.ReadFile(file), key)); if (sizeOrderedShapeKeys.Count == 0) { sizeOrderedShapeKeys.Add(key); } else { for (int i = 0; i < sizeOrderedShapeKeys.Count; i++) { float area = shapes[sizeOrderedShapeKeys[i]].GetDisplayArea(); if (area <= shapes[key].GetDisplayArea()) { sizeOrderedShapeKeys.Insert(i, key); break; } else if (i == sizeOrderedShapeKeys.Count - 1) { sizeOrderedShapeKeys.Add(key); break; } } } ClearDeployment(); HandleShapesChange(); }
private void DXFLoadButton_Click(object sender, RoutedEventArgs e) { var openDialog = new OpenFileDialog(); openDialog.Title = "Select .DXF file to open"; openDialog.Filter = "AutoCAD DXF File (*.dxf)|*dxf"; if (openDialog.ShowDialog(this) == true) { var dxfReader = new DXFReader(); VertexGeometryCollection geometry = dxfReader.ReadDXF(openDialog.FileName); GeometryLayerTable layers = geometry.Layered(); DXFCanvas.ViewBounds = new BoundingBox(geometry); DXFCanvas.Layers = layers; LayerBox.ItemsSource = layers; } }
public void Units(DxfUnitsType sourceUnits, DistanceUnitsType destUnits) { var reader = new DXFReader(CreateTestPolyline(), sourceUnits); reader.Should().NotBeNull(); reader.FindEntitiesSection().Should().BeTrue(); var success = reader.GetBoundaryFromPolyLineEntity(true, out var eof, out var boundary); success.Should().BeTrue(); boundary.Boundary.Points.Should().BeEquivalentTo(new List <FencePoint> { new FencePoint(0, 0), new FencePoint(10 * UnitUtils.DistToMeters(destUnits), 0), new FencePoint(0, 10 * UnitUtils.DistToMeters(destUnits)) }); }
public void ReadSimplePolyLine() { var reader = new DXFReader(CreateTestPolyline(), DxfUnitsType.Meters); reader.Should().NotBeNull(); reader.FindEntitiesSection().Should().BeTrue(); var success = reader.GetBoundaryFromPolyLineEntity(true, out var eof, out var boundary); success.Should().BeTrue(); boundary.Should().NotBeNull(); boundary.Name.Should().BeEmpty(); boundary.Type.Should().Be(DXFLineWorkBoundaryType.Unknown); boundary.Boundary.Points.Count.Should().Be(3); boundary.Boundary.Points.Should().BeEquivalentTo(new List <FencePoint> { new FencePoint(0, 0), new FencePoint(10, 0), new FencePoint(0, 10) }); }
public void Creation() { var reader = new DXFReader(new MemoryStream(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }), DxfUnitsType.Meters); reader.Should().NotBeNull(); }