static ConnectionPoint GetConnectionPoint(UIElement element, Point location) { List <ConnectionPoint> connectionPoints = StateContainerEditor.GetConnectionPoints(element); foreach (ConnectionPoint connectionPoint in connectionPoints) { if (DesignerGeometryHelper.ManhattanDistanceBetweenPoints(location, connectionPoint.Location) <= ConnectorRouter.EndPointTolerance) { return(connectionPoint); } } return(null); }
static internal ConnectionPoint GetClosestConnectionPoint(ConnectionPoint srcConnPoint, List <ConnectionPoint> destConnPoints, out double minDist) { minDist = double.PositiveInfinity; double dist = 0; ConnectionPoint closestPoint = null; foreach (ConnectionPoint destConnPoint in destConnPoints) { if (srcConnPoint != destConnPoint) { dist = DesignerGeometryHelper.DistanceBetweenPoints(srcConnPoint.Location, destConnPoint.Location); if (dist < minDist) { minDist = dist; closestPoint = destConnPoint; } } } return(closestPoint); }
static internal ConnectionPoint GetClosestConnectionPoint(ConnectionPoint srcConnPoint, List <ConnectionPoint> destConnPoints, out double minDist) { minDist = double.PositiveInfinity; double dist = 0; ConnectionPoint closestPoint = null; Point srcPoint = FreeFormPanel.GetLocationRelativeToOutmostPanel(srcConnPoint); foreach (ConnectionPoint destConnPoint in destConnPoints) { if (srcConnPoint != destConnPoint) { dist = DesignerGeometryHelper.ManhattanDistanceBetweenPoints(srcPoint, FreeFormPanel.GetLocationRelativeToOutmostPanel(destConnPoint)); if (dist < minDist) { minDist = dist; closestPoint = destConnPoint; } } } return(closestPoint); }