@@ -821,16 +821,17 @@ async fn vec2_to_point(_: impl Ctx, vec2: DVec2) -> Table<Vector> {
821821async  fn  points_to_polyline ( _:  impl  Ctx ,  mut  points :  Table < Vector > ,  #[ default( true ) ]   closed :  bool )  -> Table < Vector >  { 
822822	for  row in  points. iter_mut ( )  { 
823823		let  mut  segment_domain = SegmentDomain :: new ( ) ; 
824+ 		let  mut  next_id = SegmentId :: ZERO ; 
824825
825826		let  points_count = row. element . point_domain . ids ( ) . len ( ) ; 
826827
827828		if  points_count > 2  { 
828829			( 0 ..points_count - 1 ) . for_each ( |i| { 
829- 				segment_domain. push ( SegmentId :: generate ( ) ,  i,  i + 1 ,  BezierHandles :: Linear ,  StrokeId :: generate ( ) ) ; 
830+ 				segment_domain. push ( next_id . next_id ( ) ,  i,  i + 1 ,  BezierHandles :: Linear ,  StrokeId :: generate ( ) ) ; 
830831			} ) ; 
831832
832833			if  closed { 
833- 				segment_domain. push ( SegmentId :: generate ( ) ,  points_count - 1 ,  0 ,  BezierHandles :: Linear ,  StrokeId :: generate ( ) ) ; 
834+ 				segment_domain. push ( next_id . next_id ( ) ,  points_count - 1 ,  0 ,  BezierHandles :: Linear ,  StrokeId :: generate ( ) ) ; 
834835
835836				row. element 
836837					. region_domain 
@@ -1394,6 +1395,7 @@ async fn spline(_: impl Ctx, content: Table<Vector>) -> Table<Vector> {
13941395			} 
13951396
13961397			let  mut  segment_domain = SegmentDomain :: default ( ) ; 
1398+ 			let  mut  next_id = SegmentId :: ZERO ; 
13971399			for  ( manipulator_groups,  closed)  in  row. element . stroke_manipulator_groups ( )  { 
13981400				let  positions = manipulator_groups. iter ( ) . map ( |manipulators| manipulators. anchor ) . collect :: < Vec < _ > > ( ) ; 
13991401				let  closed = closed && positions. len ( )  > 2 ; 
@@ -1418,7 +1420,7 @@ async fn spline(_: impl Ctx, content: Table<Vector>) -> Table<Vector> {
14181420					let  handle_end = positions[ next_index]  *  2.  - first_handles[ next_index] ; 
14191421					let  handles = BezierHandles :: Cubic  {  handle_start,  handle_end } ; 
14201422
1421- 					segment_domain. push ( SegmentId :: generate ( ) ,  start_index,  end_index,  handles,  stroke_id) ; 
1423+ 					segment_domain. push ( next_id . next_id ( ) ,  start_index,  end_index,  handles,  stroke_id) ; 
14221424				} 
14231425			} 
14241426
0 commit comments