Point ComputeEndPoint(IConnectable firstPoint, IConnectable nextPoint, ref double relativePos, ref ConnectorDocking docking, ref ulong connectorEndPort) { var end = _endPointHint; if (docking == ConnectorDocking.Undefined) { end = nextPoint.GetPreferredConnectorEnd(end, out relativePos, out docking, out connectorEndPort); if (connectorEndPort == 0) { nextPoint.GetPreferredConnectorEnd(ConnectorUtilities.ComputeCenter(firstPoint.Bounds), out relativePos, out docking, out connectorEndPort); } } else { end = nextPoint.GetConnectorPoint(docking, relativePos, connectorEndPort); } return(end); }