getOrCreatePath method
Path?
getOrCreatePath({
- required Connection connection,
- required Node sourceNode,
- required Node targetNode,
- required ConnectionStyle connectionStyle,
Get or create cached path during painting operations This is the only place where paths should be created
Implementation
Path? getOrCreatePath({
required Connection connection,
required Node sourceNode,
required Node targetNode,
required ConnectionStyle connectionStyle,
}) {
final currentSourcePos = sourceNode.position.value;
final currentTargetPos = targetNode.position.value;
// Check if cache needs updating
final existing = _getCachedPath(connection.id);
if (existing != null &&
existing.sourcePosition == currentSourcePos &&
existing.targetPosition == currentTargetPos) {
return existing.originalPath; // Cache hit
}
// Create new path and cache it
final newPath = _createAndCachePath(
connection: connection,
sourceNode: sourceNode,
targetNode: targetNode,
sourcePosition: currentSourcePos,
targetPosition: currentTargetPos,
connectionStyle: connectionStyle,
);
return newPath?.originalPath;
}