split_segments#

ClosedCurve.split_segments(segments_to_split: List[EqualSplit]) Dict[int, List[int]]#

Split multiple segments by adding intermediate vertices (control points).

This only modifies the geometry structure, not the parametrization.

WARNING: After splitting, segment indices change! The original segments are replaced by multiple new segments. To avoid confusion, split segments in reverse order (highest index first).

Parameters:
segments_to_splitList[EqualSplit]

List of (segment_index, num_added_vertices) tuples where: segment_index: 1-based segment index (current numbering), num_added_vertices: Number of intermediate vertices to add.

Returns:
Dict[int, List[int]]

Dictionary mapping original segment indices to lists of newly created vertex indices.