mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-23 07:28:11 +08:00
Replace the legacy Bezier struct with kurbo::PathSeg throughout (#4455)
This commit is contained in:
@@ -399,6 +399,8 @@ fn grid<T: GridSpacing>(
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use kurbo::ParamCurve;
|
||||
use vector_types::vector::misc::point_to_dvec2;
|
||||
|
||||
fn item<T>(value: T) -> Item<T> {
|
||||
Item::new_from_element(value)
|
||||
@@ -413,14 +415,11 @@ mod tests {
|
||||
// Works properly
|
||||
let grid = grid((), (), item(GridType::Isometric), item(10.), item(5_u32), item(5_u32), item((30., 30.).into()), item(true));
|
||||
assert_eq!(grid.element().point_domain.ids().len(), 5 * 5);
|
||||
assert_eq!(grid.element().segment_bezier_iter().count(), 4 * 5 + 4 * 9);
|
||||
for (_, bezier, _, _) in grid.element().segment_bezier_iter() {
|
||||
assert_eq!(bezier.handles, subpath::BezierHandles::Linear);
|
||||
assert!(
|
||||
((bezier.start - bezier.end).length() - 10.).abs() < 1e-5,
|
||||
"Length of {} should be 10",
|
||||
(bezier.start - bezier.end).length()
|
||||
);
|
||||
assert_eq!(grid.element().segment_iter().count(), 4 * 5 + 4 * 9);
|
||||
for (_, segment, _, _) in grid.element().segment_iter() {
|
||||
assert!(matches!(segment, kurbo::PathSeg::Line(_)));
|
||||
let span = point_to_dvec2(segment.start()) - point_to_dvec2(segment.end());
|
||||
assert!((span.length() - 10.).abs() < 1e-5, "Length of {} should be 10", span.length());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -428,10 +427,10 @@ mod tests {
|
||||
fn skew_isometric_grid_test() {
|
||||
let grid = grid((), (), item(GridType::Isometric), item(10.), item(5_u32), item(5_u32), item((40., 30.).into()), item(true));
|
||||
assert_eq!(grid.element().point_domain.ids().len(), 5 * 5);
|
||||
assert_eq!(grid.element().segment_bezier_iter().count(), 4 * 5 + 4 * 9);
|
||||
for (_, bezier, _, _) in grid.element().segment_bezier_iter() {
|
||||
assert_eq!(bezier.handles, subpath::BezierHandles::Linear);
|
||||
let vector = bezier.start - bezier.end;
|
||||
assert_eq!(grid.element().segment_iter().count(), 4 * 5 + 4 * 9);
|
||||
for (_, segment, _, _) in grid.element().segment_iter() {
|
||||
assert!(matches!(segment, kurbo::PathSeg::Line(_)));
|
||||
let vector = point_to_dvec2(segment.start()) - point_to_dvec2(segment.end());
|
||||
let angle = (vector.angle_to(DVec2::X).to_degrees() + 180.) % 180.;
|
||||
assert!([90., 150., 40.].into_iter().any(|target| (target - angle).abs() < 1e-10), "unexpected angle of {angle}")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user