Sorry but I'm getting lost...
![Undecided Undecided](https://mindfusion.eu/yabbfiles/Templates/Forum/default/undecided.gif)
You mean that i have to add the same point twice? (method adds just a single point) i did that (see code below) but i don't understand how to modify second loop.
public void AddLinkSegment(DiagramLink link, PointF splitPoint)
{
int insertionPoint=0;
PointCollection savedPoints = link.ControlPoints.Clone();
link.SegmentCount++;
//Find segment
for (int i = 1; i < savedPoints.Count; i++)
{
PointF linkPoint = link.ControlPoints[i];
bool isSameY = splitPoint.Y > linkPoint.Y - 2 && splitPoint.Y < linkPoint.Y + 2;
bool isSameX = splitPoint.X > linkPoint.X - 2 && splitPoint.X < linkPoint.X + 2;
if (isSameY && linkPoint.X > splitPoint.X)
{
//Inject splitpoint
savedPoints.Insert(i, new PointF(splitPoint.X, linkPoint.Y));
savedPoints.Insert(i, new PointF(splitPoint.X, linkPoint.Y));
insertionPoint = i;
break;
}
if (isSameX && linkPoint.Y > splitPoint.Y)
{
//Inject splitpoint
savedPoints.Insert(i, new PointF(linkPoint.X, splitPoint.Y));
savedPoints.Insert(i, new PointF(linkPoint.X, splitPoint.Y));
insertionPoint = i;
break;
}
}
for (int i = 0; i < savedPoints.Count; i++)
{
if (i < link.ControlPoints.Count)
if (i < insertionPoint)
link.ControlPoints[i] = savedPoints[i];
else
link.ControlPoints.Add(savedPoints[i]);
}
link.UpdateFromPoints(true);
link.UpdateIntersections();
}
Thanks for your patience...