refactor(hatch): collapse repeated reflect_xy_point calls

The Hatch boundary-mirror transform called
`crate::scene::transform::reflect_xy_point(&mut x.x, &mut x.y, p1, p2)`
nine times with rustfmt expanding each long-path call into a six-line
block. Total: ~55 lines for nine reflects.

Add a local `use crate::scene::transform::reflect_xy_point as reflect;`
at the top of the closure so each reflect collapses to a single line.

-19 lines, no behavior change.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-05-26 17:24:18 +03:00
commit 2e8d7ba878

View file

@ -93,6 +93,7 @@ fn apply_geom_prop(h: &mut Hatch, field: &str, value: &str) {
} }
fn apply_transform(h: &mut Hatch, t: &EntityTransform) { fn apply_transform(h: &mut Hatch, t: &EntityTransform) {
use crate::scene::transform::reflect_xy_point as reflect;
crate::scene::transform::apply_standard_entity_transform(h, t, |entity, p1, p2| { crate::scene::transform::apply_standard_entity_transform(h, t, |entity, p1, p2| {
let dx = (p2.x - p1.x) as f64; let dx = (p2.x - p1.x) as f64;
let dy = (p2.y - p1.y) as f64; let dy = (p2.y - p1.y) as f64;
@ -105,37 +106,17 @@ fn apply_transform(h: &mut Hatch, t: &EntityTransform) {
for edge in &mut path.edges { for edge in &mut path.edges {
match edge { match edge {
BoundaryEdge::Line(l) => { BoundaryEdge::Line(l) => {
crate::scene::transform::reflect_xy_point( reflect(&mut l.start.x, &mut l.start.y, p1, p2);
&mut l.start.x, reflect(&mut l.end.x, &mut l.end.y, p1, p2);
&mut l.start.y,
p1,
p2,
);
crate::scene::transform::reflect_xy_point(
&mut l.end.x,
&mut l.end.y,
p1,
p2,
);
} }
BoundaryEdge::CircularArc(a) => { BoundaryEdge::CircularArc(a) => {
crate::scene::transform::reflect_xy_point( reflect(&mut a.center.x, &mut a.center.y, p1, p2);
&mut a.center.x,
&mut a.center.y,
p1,
p2,
);
let tmp = a.start_angle; let tmp = a.start_angle;
a.start_angle = 2.0 * line_angle - a.end_angle; a.start_angle = 2.0 * line_angle - a.end_angle;
a.end_angle = 2.0 * line_angle - tmp; a.end_angle = 2.0 * line_angle - tmp;
} }
BoundaryEdge::EllipticArc(e) => { BoundaryEdge::EllipticArc(e) => {
crate::scene::transform::reflect_xy_point( reflect(&mut e.center.x, &mut e.center.y, p1, p2);
&mut e.center.x,
&mut e.center.y,
p1,
p2,
);
let ax = dx; let ax = dx;
let ay = dy; let ay = dy;
let rx = e.major_axis_endpoint.x; let rx = e.major_axis_endpoint.x;
@ -149,15 +130,15 @@ fn apply_transform(h: &mut Hatch, t: &EntityTransform) {
} }
BoundaryEdge::Spline(s) => { BoundaryEdge::Spline(s) => {
for cp in &mut s.control_points { for cp in &mut s.control_points {
crate::scene::transform::reflect_xy_point(&mut cp.x, &mut cp.y, p1, p2); reflect(&mut cp.x, &mut cp.y, p1, p2);
} }
for fp in &mut s.fit_points { for fp in &mut s.fit_points {
crate::scene::transform::reflect_xy_point(&mut fp.x, &mut fp.y, p1, p2); reflect(&mut fp.x, &mut fp.y, p1, p2);
} }
} }
BoundaryEdge::Polyline(p) => { BoundaryEdge::Polyline(p) => {
for v in &mut p.vertices { for v in &mut p.vertices {
crate::scene::transform::reflect_xy_point(&mut v.x, &mut v.y, p1, p2); reflect(&mut v.x, &mut v.y, p1, p2);
} }
} }
} }