getLinkEndpointAlignment method
Calculates an alignment of link endpoint on a component from ComponentData and targetPoint (nearest link point from this component).
With no implementation the link will attach to center of the component.
Implementation
@override
Alignment getLinkEndpointAlignment(
ComponentData componentData,
Offset targetPoint,
) {
Offset pointPosition = targetPoint -
(componentData.position + componentData.size.center(Offset.zero));
pointPosition = Offset(
pointPosition.dx / componentData.size.width,
pointPosition.dy / componentData.size.height,
);
Offset pointAlignment;
if (pointPosition.dx.abs() >= pointPosition.dy.abs()) {
pointAlignment = Offset(
pointPosition.dx / pointPosition.dx.abs(),
pointPosition.dy / pointPosition.dx.abs(),
);
} else {
pointAlignment = Offset(
pointPosition.dx / pointPosition.dy.abs(),
pointPosition.dy / pointPosition.dy.abs(),
);
}
return Alignment(pointAlignment.dx, pointAlignment.dy);
}