예제 #1
0
        // Создание линии из пар кодов
        public static DxfLine Create(List <DxfCodePair> pairs, bool ignoreLineType)
        {
            DxfLine line = new DxfLine();

            for (int i = 0; i < pairs.Count; i++)
            {
                switch (pairs[i].Code)
                {
                case 62:
                    line.Color = DxfColor.Create(pairs[i], ignoreLineType);
                    break;

                case 10:
                    if (pairs[i + 2].Code == 30)
                    {
                        line.StartPoint = DxfDot.Create(pairs.GetRange(i, 3));
                        i += 2;
                    }
                    else
                    {
                        line.StartPoint = DxfDot.Create(pairs.GetRange(i, 2));
                        i++;
                    }
                    break;

                case 11:
                    if ((i + 2) < pairs.Count && pairs[i + 2].Code == 31)
                    {
                        line.EndPoint = DxfEndPoint.Create(pairs.GetRange(i, 3));
                        i            += 2;
                    }
                    else
                    {
                        line.EndPoint = DxfEndPoint.Create(pairs.GetRange(i, 2));
                        i++;
                    }
                    break;
                }
            }

            if (line.Color == 0 && ignoreLineType)
            {
                line.Color = DxfColors.MainOutline;
            }
            else if (line.Color == 0 || line.Color == DxfColors.NoColor)
            {
                return(null);
            }

            CreateRect(line);

            return(line);
        }
예제 #2
0
        // Создание линии из вершин полилинии
        public static DxfLine Create(DxfVertex vertex1, DxfVertex vertex2, DxfColors color = DxfColors.MainOutline)
        {
            DxfLine line = new DxfLine
            {
                Color      = color,
                StartPoint = vertex1.AsDot,
                EndPoint   = DxfEndPoint.EndPointFromDot(vertex2.AsDot)
            };

            CreateRect(line);
            return(line);
        }
예제 #3
0
 // внутренний конструктор
 internal DxfFitPoint(DxfEndPoint point)
     : base(point.X, point.Y, point.Z)
 {
 }
예제 #4
0
 // создание точки из пар файла DXF
 public new static DxfFitPoint Create(List <DxfCodePair> pairs)
 {
     return(new DxfFitPoint(DxfEndPoint.Create(pairs)));
 }
예제 #5
0
 internal DxfMajorAxis(DxfEndPoint point)
     : base(point.X, point.Y, point.Z)
 {
 }
예제 #6
0
 public new static DxfMajorAxis Create(List <DxfCodePair> pairs)
 {
     return(new DxfMajorAxis(DxfEndPoint.Create(pairs)));
 }