コード例 #1
0
        private static void CreateSplittedLines(IStep step, IFilter filter, IODBObject evtlLine2, ILineSpecificsD line2, PointD pDest, ref List <IODBObject> selectedElements)
        {
            PointD lastEnd = line2.End;

            line2.End = pDest;
            if (Math.Abs(IMath.DistancePointToPoint(line2.End, line2.Start)) < errorLevel)
            {
                line2.End   = lastEnd;
                line2.Start = pDest;
                if (Math.Abs(IMath.DistancePointToPoint(line2.End, line2.Start)) > errorLevel)
                {
                    evtlLine2.SetSpecifics(line2);
                }
                else
                {
                    Debug.WriteLine("Line with length 0!");
                }
            }
            else
            {
                evtlLine2.SetSpecifics(line2);

                ILayer parentLayer = step.GetLayer(evtlLine2.GetParentLayerName());
                if (parentLayer != null)
                {
                    IODBObject line2Part2 = filter.CreateLine((IODBLayer)parentLayer);
                    line2.End   = lastEnd;
                    line2.Start = pDest;
                    line2Part2.SetSpecifics(line2);
                    selectedElements.Add(line2Part2);
                }
            }
        }