11use super :: poisson_disk:: poisson_disk_sample;
22use crate :: vector:: misc:: dvec2_to_point;
33use glam:: DVec2 ;
4- use kurbo:: { BezPath , Line , ParamCurve , ParamCurveDeriv , PathSeg , Point , Rect , Shape } ;
5-
6- /// Accuracy to find the position on [kurbo::Bezpath].
7- const POSITION_ACCURACY : f64 = 1e-5 ;
8- /// Accuracy to find the length of the [kurbo::PathSeg].
9- pub const PERIMETER_ACCURACY : f64 = 1e-5 ;
4+ use kurbo:: { BezPath , DEFAULT_ACCURACY , Line , ParamCurve , ParamCurveDeriv , PathSeg , Point , Rect , Shape } ;
105
116pub fn position_on_bezpath ( bezpath : & BezPath , t : f64 , euclidian : bool , segments_length : Option < & [ f64 ] > ) -> Point {
127 let ( segment_index, t) = t_value_to_parametric ( bezpath, t, euclidian, segments_length) ;
@@ -79,7 +74,7 @@ pub fn sample_points_on_bezpath(bezpath: BezPath, spacing: f64, start_offset: f6
7974 let t = ( next_length / next_segment_length) . clamp ( 0. , 1. ) ;
8075
8176 let segment = bezpath. get_seg ( next_segment_index + 1 ) . unwrap ( ) ;
82- let t = eval_pathseg_euclidean ( segment, t, POSITION_ACCURACY ) ;
77+ let t = eval_pathseg_euclidean ( segment, t, DEFAULT_ACCURACY ) ;
8378 let point = segment. eval ( t) ;
8479
8580 if sample_bezpath. elements ( ) . is_empty ( ) {
@@ -96,7 +91,7 @@ pub fn t_value_to_parametric(bezpath: &BezPath, t: f64, euclidian: bool, segment
9691 if euclidian {
9792 let ( segment_index, t) = bezpath_t_value_to_parametric ( bezpath, BezPathTValue :: GlobalEuclidean ( t) , segments_length) ;
9893 let segment = bezpath. get_seg ( segment_index + 1 ) . unwrap ( ) ;
99- return ( segment_index, eval_pathseg_euclidean ( segment, t, POSITION_ACCURACY ) ) ;
94+ return ( segment_index, eval_pathseg_euclidean ( segment, t, DEFAULT_ACCURACY ) ) ;
10095 }
10196 bezpath_t_value_to_parametric ( bezpath, BezPathTValue :: GlobalParametric ( t) , segments_length)
10297}
@@ -164,7 +159,7 @@ fn bezpath_t_value_to_parametric(bezpath: &kurbo::BezPath, t: BezPathTValue, pre
164159 let segments_length = if let Some ( segments_length) = precomputed_segments_length {
165160 segments_length
166161 } else {
167- computed_segments_length = bezpath. segments ( ) . map ( |segment| segment. perimeter ( PERIMETER_ACCURACY ) ) . collect :: < Vec < f64 > > ( ) ;
162+ computed_segments_length = bezpath. segments ( ) . map ( |segment| segment. perimeter ( DEFAULT_ACCURACY ) ) . collect :: < Vec < f64 > > ( ) ;
168163 computed_segments_length. as_slice ( )
169164 } ;
170165
0 commit comments