/// <summary>
        /// ArcTo - append an ArcTo to the current figure.
        /// </summary>
        public override void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc,
                                   SweepDirection sweepDirection)
        {
            Debug.Assert(_currentFigure != null);

            FinishSegment();

            IArcSegment segment = _geometryFactory.CreateArcSegment(point, size, rotationAngle, isLargeArc, sweepDirection);

            _currentFigure !.Segments.Add(segment);

            _currentSegment = new PathSegmentInfo(MIL_SEGMENT_TYPE.MilSegmentArc, 0);
        }
        private void PrepareToAddPoints(int count, MIL_SEGMENT_TYPE segmentType)
        {
            Debug.Assert(_currentFigure != null);
            Debug.Assert(count != 0);

            if (_currentSegment != null && _currentSegment.Type != segmentType)
            {
                FinishSegment();
            }

            if (_currentSegment == null)
            {
                _currentSegment = new PathSegmentInfo(segmentType, count);
            }
        }