123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- using InABox.Core;
- using netDxf.Entities;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace InABox.Dxf;
- internal interface IDxfObject
- {
- void Draw(DrawData data);
- }
- internal class DxfLine : IDxfObject
- {
- public Line Line { get; set; }
- public void Draw(DrawData data)
- {
- // data.Graphics.DrawLine(new Pen(Line.Color.ToColor(), 1), data.ConvertPoint(Line.StartPoint), data.ConvertPoint(Line.EndPoint));
- data.Graphics.DrawLine(new Pen(Color.Black, 1), data.ConvertPoint(Line.StartPoint), data.ConvertPoint(Line.EndPoint));
- }
- }
- internal class DxfInsert : IDxfObject
- {
- public Insert Insert { get; set; }
- public List<IDxfObject> Objects { get; set; }
- public DxfInsert(Insert insert)
- {
- Insert = insert;
- Objects = insert.Block.Entities.Select(DxfUtils.ConvertEl).NotNull().ToList();
- }
- public void Draw(DrawData data)
- {
- data.PushTransform();
- data.Translate(data.ConvertPoint(Insert.Position));
- data.Rotate((float)Insert.Rotation);
- data.Scale((float)Insert.Scale.X, (float)Insert.Scale.Y);
- foreach(var obj in Objects)
- {
- obj.Draw(data);
- }
- data.PopTransform();
- }
- }
- internal class DxfEllipse : IDxfObject
- {
- public Ellipse Ellipse { get; set; }
- public DxfEllipse(Ellipse ellipse)
- {
- Ellipse = ellipse;
- }
- public void Draw(DrawData data)
- {
- var center = data.ConvertPoint(Ellipse.Center);
- var size = data.ConvertSize(new((float)Ellipse.MajorAxis, (float)Ellipse.MinorAxis));
- data.Graphics.DrawEllipse(new Pen(Color.Black, 1), center.X, center.Y, size.Width, size.Height);
- }
- }
- internal class DxfPolyline2D : IDxfObject
- {
- public Polyline2D Polyline { get; set; }
- public DxfPolyline2D(Polyline2D polyline)
- {
- Polyline = polyline;
- }
- public void Draw(DrawData data)
- {
- }
- }
- internal class DxfMText : IDxfObject
- {
- public MText MText { get; set; }
- public DxfMText(MText text)
- {
- MText = text;
- }
- public void Draw(DrawData data)
- {
- }
- }
- internal class DxfDimension : IDxfObject
- {
- public Dimension Dimension { get; set; }
- public DxfDimension(Dimension dimension)
- {
- Dimension = dimension;
- }
- public void Draw(DrawData data)
- {
- }
- }
|