diagramWorldToRouteControl function
Encodes a world point as endpoint-relative route control intent.
Implementation
DiagramPoint diagramWorldToRouteControl(
DiagramPoint point,
DiagramPoint start,
DiagramPoint end,
) {
final chord = end - start;
final squaredLength = chord.x * chord.x + chord.y * chord.y;
if (squaredLength <= 1e-18) return DiagramPoint.zero;
final offset = point - start;
return DiagramPoint(
(offset.x * chord.x + offset.y * chord.y) / squaredLength,
(offset.y * chord.x - offset.x * chord.y) / squaredLength,
);
}