private void GetLinkOver(ref Link linkOver, ref PositionedNode linkOverParent)
{
Cursor cursor = GuiManager.Cursor;
float worldX;
float worldY;
if (EditorData.NodeNetwork.Nodes.Count != 0)
{
float tolerance = 5 / SpriteManager.Camera.PixelsPerUnitAt(0);
for (int i = 0; i < EditorData.NodeNetwork.Nodes.Count; i++)
{
PositionedNode node = EditorData.NodeNetwork.Nodes[i];
worldX = cursor.WorldXAt(node.Z);
worldY = cursor.WorldYAt(node.Z);
for (int linkIndex = 0; linkIndex < node.Links.Count; linkIndex++)
{
Segment segment = new Segment(
node.Position, node.Links[linkIndex].NodeLinkingTo.Position);
float distance = segment.DistanceTo(worldX, worldY);
if (distance < tolerance)
{
linkOverParent = node;
linkOver = node.Links[linkIndex];
return;
}
}
}
}
linkOverParent = null;
linkOver = null;
}