mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 05:10:03 -04:00
Painter extend accepts IntoIter (#2249)
* `Painter` extend accepts `IntoIter` * Update painter.rs
This commit is contained in:
@@ -77,28 +77,28 @@ impl PaintBezier {
|
||||
|
||||
let control_point_radius = 8.0;
|
||||
|
||||
let mut control_point_shapes = vec![];
|
||||
let control_point_shapes: Vec<Shape> = self
|
||||
.control_points
|
||||
.iter_mut()
|
||||
.enumerate()
|
||||
.take(self.degree)
|
||||
.map(|(i, point)| {
|
||||
let size = Vec2::splat(2.0 * control_point_radius);
|
||||
|
||||
for (i, point) in self.control_points.iter_mut().enumerate().take(self.degree) {
|
||||
let size = Vec2::splat(2.0 * control_point_radius);
|
||||
let point_in_screen = to_screen.transform_pos(*point);
|
||||
let point_rect = Rect::from_center_size(point_in_screen, size);
|
||||
let point_id = response.id.with(i);
|
||||
let point_response = ui.interact(point_rect, point_id, Sense::drag());
|
||||
|
||||
let point_in_screen = to_screen.transform_pos(*point);
|
||||
let point_rect = Rect::from_center_size(point_in_screen, size);
|
||||
let point_id = response.id.with(i);
|
||||
let point_response = ui.interact(point_rect, point_id, Sense::drag());
|
||||
*point += point_response.drag_delta();
|
||||
*point = to_screen.from().clamp(*point);
|
||||
|
||||
*point += point_response.drag_delta();
|
||||
*point = to_screen.from().clamp(*point);
|
||||
let point_in_screen = to_screen.transform_pos(*point);
|
||||
let stroke = ui.style().interact(&point_response).fg_stroke;
|
||||
|
||||
let point_in_screen = to_screen.transform_pos(*point);
|
||||
let stroke = ui.style().interact(&point_response).fg_stroke;
|
||||
|
||||
control_point_shapes.push(Shape::circle_stroke(
|
||||
point_in_screen,
|
||||
control_point_radius,
|
||||
stroke,
|
||||
));
|
||||
}
|
||||
Shape::circle_stroke(point_in_screen, control_point_radius, stroke)
|
||||
})
|
||||
.collect();
|
||||
|
||||
let points_in_screen: Vec<Pos2> = self
|
||||
.control_points
|
||||
|
||||
@@ -56,13 +56,15 @@ impl Painting {
|
||||
response.mark_changed();
|
||||
}
|
||||
|
||||
let mut shapes = vec![];
|
||||
for line in &self.lines {
|
||||
if line.len() >= 2 {
|
||||
let shapes = self
|
||||
.lines
|
||||
.iter()
|
||||
.filter(|line| line.len() >= 2)
|
||||
.map(|line| {
|
||||
let points: Vec<Pos2> = line.iter().map(|p| to_screen * *p).collect();
|
||||
shapes.push(egui::Shape::line(points, self.stroke));
|
||||
}
|
||||
}
|
||||
egui::Shape::line(points, self.stroke)
|
||||
});
|
||||
|
||||
painter.extend(shapes);
|
||||
|
||||
response
|
||||
|
||||
Reference in New Issue
Block a user