protected virtual void DrawDroplets() { foreach (var droplet in droplets) { Vector2 position; if (droplet < handleAlignmentMargin) { var t = droplet / handleAlignmentMargin; position = Vector2.Lerp(sourceHandlePosition.center, sourceHandleEdgeCenter, t); } else if (droplet > 1 - handleAlignmentMargin) { var t = (droplet - (1 - handleAlignmentMargin)) / handleAlignmentMargin; position = Vector2.Lerp(destinationHandleEdgeCenter, destinationHandlePosition.center, t); } else { var t = (droplet - handleAlignmentMargin) / (1 - 2 * handleAlignmentMargin); position = GraphGUI.GetPointOnConnection(t, sourceHandleEdgeCenter, destinationHandleEdgeCenter, Edge.Right, Edge.Left, UnitConnectionStyles.relativeBend, UnitConnectionStyles.minBend); } var size = GetDropletSize(); using (LudiqGUI.color.Override(GUI.color * color)) { DrawDroplet(new Rect(position.x - size.x / 2, position.y - size.y / 2, size.x, size.y)); } } }
private void DrawDroplets() { foreach (var droplet in droplets) { Vector2 position; if (droplet < 0.5f) { var t = droplet / 0.5f; position = GraphGUI.GetPointOnConnection(t, sourceEdgeCenter, entryEdgeCenter, sourceEdge, entryEdge, relativeBend, minBend); } else { var t = (droplet - 0.5f) / 0.5f; position = GraphGUI.GetPointOnConnection(t, exitEdgeCenter, destinationEdgeCenter, exitEdge, destinationEdge, relativeBend, minBend); } var size = GetDropletSize(); using (LudiqGUI.color.Override(Color.white)) { DrawDroplet(new Rect(position.x - size.x / 2, position.y - size.y / 2, size.x, size.y)); } } }