Skip to content

Commit 1c07f66

Browse files
committed
use kurbo's default accuracy
1 parent 634fe1f commit 1c07f66

File tree

2 files changed

+6
-11
lines changed

2 files changed

+6
-11
lines changed

node-graph/gcore/src/vector/algorithms/bezpath_algorithms.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
use super::poisson_disk::poisson_disk_sample;
22
use crate::vector::misc::dvec2_to_point;
33
use 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

116
pub 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

node-graph/gcore/src/vector/vector_nodes.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use super::algorithms::bezpath_algorithms::{self, PERIMETER_ACCURACY, position_on_bezpath, sample_points_on_bezpath, tangent_on_bezpath};
1+
use super::algorithms::bezpath_algorithms::{self, position_on_bezpath, sample_points_on_bezpath, tangent_on_bezpath};
22
use super::algorithms::offset_subpath::offset_subpath;
33
use super::misc::{CentroidType, point_to_dvec2};
44
use super::style::{Fill, Gradient, GradientStops, Stroke};
@@ -1408,7 +1408,7 @@ async fn subpath_segment_lengths(_: impl Ctx, vector_data: VectorDataTable) -> V
14081408
.stroke_bezpath_iter()
14091409
.flat_map(|mut bezpath| {
14101410
bezpath.apply_affine(Affine::new(vector_data_transform.to_cols_array()));
1411-
bezpath.segments().map(|segment| segment.perimeter(PERIMETER_ACCURACY)).collect::<Vec<f64>>()
1411+
bezpath.segments().map(|segment| segment.perimeter(kurbo::DEFAULT_ACCURACY)).collect::<Vec<f64>>()
14121412
})
14131413
.collect()
14141414
}

0 commit comments

Comments
 (0)