createDefaultSegments method

  1. @override
({List<PathSegment> segments, Offset start}) createDefaultSegments(
  1. ConnectionPathParameters params
)
override

Creates the default algorithmic segments when no control points are provided.

Subclasses should implement this to define their default routing algorithm. This can be overridden to return simple segments or to use sophisticated routing logic similar to the non-editable version of the style.

The default implementation creates a straight line from start to end.

Implementation

@override
({Offset start, List<PathSegment> segments}) createDefaultSegments(
  ConnectionPathParameters params,
) {
  // Use WaypointBuilder for all routing scenarios
  // Use sourceOffset/targetOffset for proper temporary connection handling
  final waypoints = WaypointBuilder.calculateWaypoints(
    start: params.start,
    end: params.end,
    sourcePosition: params.sourcePosition,
    targetPosition: params.targetPosition,
    offset: params.offset,
    sourceOffset: params.sourceOffset,
    targetOffset: params.targetOffset,
    backEdgeGap: params.backEdgeGap,
    sourceNodeBounds: params.sourceNodeBounds,
    targetNodeBounds: params.targetNodeBounds,
    debugMode: params.debugMode,
  );

  final optimized = WaypointBuilder.optimizeWaypoints(waypoints);
  final effectiveCornerRadius = params.cornerRadius > 0
      ? params.cornerRadius
      : defaultCornerRadius;
  final segments = WaypointBuilder.waypointsToSegments(
    optimized,
    cornerRadius: effectiveCornerRadius,
  );

  return (start: params.start, segments: segments);
}