Example #1
0
        public override void DeleteVertex(SplineLinePoint lcp)
        {
            if (lcp is SplineSegmentLinePoint)
            {
                SplineSegmentLinePoint lcpNew = lcp as SplineSegmentLinePoint;

                RemoveFromAllCollections(lcpNew.inSeg);
                RemoveFromAllCollections(lcpNew.outSeg);

                if ((lcp.prev != null) & (lcp.next != null))
                {
                    SegmentSpline seg = new SegmentSpline();
                    seg.startPoint = lcp.prev as ISegmentPoint;
                    seg.endPoint   = lcp.next as ISegmentPoint;
                    seg.spline     = lcp.spline;
                    _segment.Add(seg);

                    AddTube(seg);

                    lcp.prev.next = lcp.next;
                }

                lcpNew.spline = null;
                _point.Remove(lcpNew);
            }
        }
Example #2
0
        public override void AddVertex(SplineLinePoint lcp, LinePointAdditionMethod method)
        {
            if (lcp == null)
            {
                return;
            }

            if (!ConfirmCollection())
            {
                return;
            }

            if (lcp is SplineSegmentLinePoint)
            {
                SplineSegmentLinePoint lcpNew = lcp as SplineSegmentLinePoint;

                AddPointComponent component = new AddPointComponent();
                component.lcp        = lcpNew;
                component.collection = new LinePointCollection <SplineSegmentLinePoint>(_point);
                switch (method)
                {
                case LinePointAdditionMethod.last:
                {
                    component.strategy = new AddPointStrategyLast();
                    break;
                }

                case LinePointAdditionMethod.first:
                {
                    component.strategy = new AddPointStrategyFirst();
                    break;
                }

                case LinePointAdditionMethod.intoSpline:
                {
                    component.strategy = new AddPointStrategyIntoSpline();
                    break;
                }

                default:
                {
                    break;
                }
                }
                component.Build();

                if ((!component.Complite()) & (_point.Count > 1))
                {
                    return;
                }

                _point.Add(lcpNew);

                AddSegment(lcpNew);
            }
        }