Пример #1
0
        //--------------------------------------------------------------------------------------------------

        void _AddBezierSegment(SketchSegmentBezier bezierSegment)
        {
            if (_Document.Flags.HasFlag(DxfFlags.ExportSplineAsPolygon))
            {
                var curve = bezierSegment.MakeCurve(_Sketch.Points);
                if (curve == null)
                {
                    Messages.Error($"Cannot make curve for converting bezier segment to polyline.");
                    return;
                }

                _AddPolygonCurve(curve);
            }
            else
            {
                var pointCount = bezierSegment.Points.Length;

                var knots = new double[pointCount * 2];
                knots.Fill(0, pointCount, 0.0);
                knots.Fill(pointCount, pointCount, 1.0);

                var points = bezierSegment.Points.Select(idx => _Sketch.Points[idx]).ToArray();

                var entity = new DxfDomSpline("0", pointCount - 1, knots, points, null, DxfDomSpline.SplineFlags.None);
                _Document.Entities.Add(entity);
            }
        }