chore: run cargo fmt (split to make previous commit more readable)

This commit is contained in:
Alain Emilia Anna Zscheile 2024-12-31 20:50:32 +01:00
parent 6fbdc8f738
commit e33633f8e1
1 changed files with 279 additions and 209 deletions

View File

@ -45,17 +45,20 @@ impl Viewport {
menu_bar: &MenuBar, menu_bar: &MenuBar,
maybe_workspace: Option<&mut Workspace>, maybe_workspace: Option<&mut Workspace>,
) -> egui::Rect { ) -> egui::Rect {
egui::CentralPanel::default().show(ctx, |ui| { egui::CentralPanel::default()
.show(ctx, |ui| {
egui::Frame::canvas(ui.style()).show(ui, |ui| { egui::Frame::canvas(ui.style()).show(ui, |ui| {
ui.ctx().request_repaint(); ui.ctx().request_repaint();
let (_id, viewport_rect) = ui.allocate_space(ui.available_size()); let (_id, viewport_rect) = ui.allocate_space(ui.available_size());
let latest_pos = self.transform.inverse() * (ctx.input(|i| i.pointer.latest_pos().unwrap_or_default())); let latest_pos = self.transform.inverse()
* (ctx.input(|i| i.pointer.latest_pos().unwrap_or_default()));
let old_scaling = self.transform.scaling; let old_scaling = self.transform.scaling;
self.transform.scaling *= ctx.input(|i| i.zoom_delta()); self.transform.scaling *= ctx.input(|i| i.zoom_delta());
self.transform.translation += latest_pos.to_vec2() * (old_scaling - self.transform.scaling); self.transform.translation +=
latest_pos.to_vec2() * (old_scaling - self.transform.scaling);
self.transform.translation += ctx.input(|i| i.smooth_scroll_delta); self.transform.translation += ctx.input(|i| i.smooth_scroll_delta);
let mut painter = Painter::new(ui, self.transform, menu_bar.show_bboxes); let mut painter = Painter::new(ui, self.transform, menu_bar.show_bboxes);
@ -67,17 +70,19 @@ impl Viewport {
if ctx.input(|i| i.pointer.any_click()) { if ctx.input(|i| i.pointer.any_click()) {
if menu_bar.is_placing_via { if menu_bar.is_placing_via {
workspace.interactor.execute( workspace.interactor.execute(Command::PlaceVia(ViaWeight {
Command::PlaceVia(ViaWeight {
from_layer: 0, from_layer: 0,
to_layer: 0, to_layer: 0,
circle: Circle { circle: Circle {
pos: latest_point, pos: latest_point,
r: menu_bar.autorouter_options.router_options.routed_band_width / 2.0, r: menu_bar
.autorouter_options
.router_options
.routed_band_width
/ 2.0,
}, },
maybe_net: Some(1234), maybe_net: Some(1234),
}), }));
);
} else { } else {
overlay.click( overlay.click(
workspace.interactor.invoker().autorouter().board(), workspace.interactor.invoker().autorouter().board(),
@ -93,21 +98,40 @@ impl Viewport {
for i in (0..layers.visible.len()).rev() { for i in (0..layers.visible.len()).rev() {
if layers.visible[i] { if layers.visible[i] {
for primitive in board.layout().drawing().layer_primitive_nodes(i) { for primitive in board.layout().drawing().layer_primitive_nodes(i) {
let shape = primitive.primitive(board.layout().drawing()).shape(); let shape =
primitive.primitive(board.layout().drawing()).shape();
let color = if overlay let color = if overlay
.selection() .selection()
.contains_node(board, GenericNode::Primitive(primitive)) .contains_node(board, GenericNode::Primitive(primitive))
{ {
config.colors(ctx).layers.color(board.layout().rules().layer_layername(i)).highlighted config
} else if let Some(activity) = &mut workspace.interactor.maybe_activity() { .colors(ctx)
.layers
.color(board.layout().rules().layer_layername(i))
.highlighted
} else if let Some(activity) =
&mut workspace.interactor.maybe_activity()
{
if activity.obstacles().contains(&primitive) { if activity.obstacles().contains(&primitive) {
config.colors(ctx).layers.color(board.layout().rules().layer_layername(i)).highlighted config
.colors(ctx)
.layers
.color(board.layout().rules().layer_layername(i))
.highlighted
} else { } else {
config.colors(ctx).layers.color(board.layout().rules().layer_layername(i)).normal config
.colors(ctx)
.layers
.color(board.layout().rules().layer_layername(i))
.normal
} }
} else { } else {
config.colors(ctx).layers.color(board.layout().rules().layer_layername(i)).normal config
.colors(ctx)
.layers
.color(board.layout().rules().layer_layername(i))
.normal
}; };
painter.paint_primitive(&shape, color); painter.paint_primitive(&shape, color);
@ -118,12 +142,23 @@ impl Viewport {
.selection() .selection()
.contains_node(board, GenericNode::Compound(poly.into())) .contains_node(board, GenericNode::Compound(poly.into()))
{ {
config.colors(ctx).layers.color(board.layout().rules().layer_layername(i)).highlighted config
.colors(ctx)
.layers
.color(board.layout().rules().layer_layername(i))
.highlighted
} else { } else {
config.colors(ctx).layers.color(board.layout().rules().layer_layername(i)).normal config
.colors(ctx)
.layers
.color(board.layout().rules().layer_layername(i))
.normal
}; };
painter.paint_polygon(&board.layout().poly(poly).shape().polygon, color) painter.paint_polygon(
&board.layout().poly(poly).shape().polygon,
color,
)
} }
} }
} }
@ -131,14 +166,8 @@ impl Viewport {
if menu_bar.show_ratsnest { if menu_bar.show_ratsnest {
let graph = overlay.ratsnest().graph(); let graph = overlay.ratsnest().graph();
for edge in graph.edge_references() { for edge in graph.edge_references() {
let from = graph let from = graph.node_weight(edge.source()).unwrap().pos;
.node_weight(edge.source()) let to = graph.node_weight(edge.target()).unwrap().pos;
.unwrap()
.pos;
let to = graph
.node_weight(edge.target())
.unwrap()
.pos;
painter.paint_edge( painter.paint_edge(
from, from,
@ -152,16 +181,22 @@ impl Viewport {
if let Some(activity) = workspace.interactor.maybe_activity() { if let Some(activity) = workspace.interactor.maybe_activity() {
if let Some(navmesh) = activity.maybe_navmesh() { if let Some(navmesh) = activity.maybe_navmesh() {
for edge in navmesh.edge_references() { for edge in navmesh.edge_references() {
let mut from = PrimitiveIndex::from(navmesh.node_weight(edge.source()).unwrap().node) let mut from = PrimitiveIndex::from(
navmesh.node_weight(edge.source()).unwrap().node,
)
.primitive(board.layout().drawing()) .primitive(board.layout().drawing())
.shape() .shape()
.center(); .center();
let mut to = PrimitiveIndex::from(navmesh.node_weight(edge.target()).unwrap().node) let mut to = PrimitiveIndex::from(
navmesh.node_weight(edge.target()).unwrap().node,
)
.primitive(board.layout().drawing()) .primitive(board.layout().drawing())
.shape() .shape()
.center(); .center();
if let Some(from_cw) = navmesh.node_weight(edge.source()).unwrap().maybe_cw { if let Some(from_cw) =
navmesh.node_weight(edge.source()).unwrap().maybe_cw
{
if from_cw { if from_cw {
from -= [0.0, 150.0].into(); from -= [0.0, 150.0].into();
} else { } else {
@ -169,7 +204,9 @@ impl Viewport {
} }
} }
if let Some(to_cw) = navmesh.node_weight(edge.target()).unwrap().maybe_cw { if let Some(to_cw) =
navmesh.node_weight(edge.target()).unwrap().maybe_cw
{
if to_cw { if to_cw {
to -= [0.0, 150.0].into(); to -= [0.0, 150.0].into();
} else { } else {
@ -177,16 +214,25 @@ impl Viewport {
} }
} }
let stroke = 'blk: { let stroke =
'blk: {
if let (Some(source_pos), Some(target_pos)) = ( if let (Some(source_pos), Some(target_pos)) = (
activity.maybe_navcord().map(|navcord| activity
navcord.path .maybe_navcord()
.iter() .map(|navcord| {
.position(|node| *node == edge.source())).flatten(), navcord.path.iter().position(|node| {
activity.maybe_navcord().map(|navcord| *node == edge.source()
navcord.path })
.iter() })
.position(|node| *node == edge.target())).flatten(), .flatten(),
activity
.maybe_navcord()
.map(|navcord| {
navcord.path.iter().position(|node| {
*node == edge.target()
})
})
.flatten(),
) { ) {
if target_pos == source_pos + 1 if target_pos == source_pos + 1
|| source_pos == target_pos + 1 || source_pos == target_pos + 1
@ -198,7 +244,10 @@ impl Viewport {
} }
} }
egui::Stroke::new(1.0, egui::Color32::from_rgb(125, 125, 125)) egui::Stroke::new(
1.0,
egui::Color32::from_rgb(125, 125, 125),
)
}; };
painter.paint_edge(from, to, stroke); painter.paint_edge(from, to, stroke);
@ -225,22 +274,34 @@ impl Viewport {
if let Some(activity) = workspace.interactor.maybe_activity() { if let Some(activity) = workspace.interactor.maybe_activity() {
for ghost in activity.ghosts().iter() { for ghost in activity.ghosts().iter() {
painter.paint_primitive(&ghost, egui::Color32::from_rgb(75, 75, 150)); painter
.paint_primitive(&ghost, egui::Color32::from_rgb(75, 75, 150));
} }
if let Some(navmesh) = activity.maybe_navmesh() { if let Some(navmesh) = activity.maybe_navmesh() {
if menu_bar.show_origin_destination { if menu_bar.show_origin_destination {
let (origin, destination) = (navmesh.origin(), navmesh.destination()); let (origin, destination) =
(navmesh.origin(), navmesh.destination());
painter.paint_dot( painter.paint_dot(
Circle { Circle {
pos: board.layout().drawing().primitive(origin).shape().center(), pos: board
.layout()
.drawing()
.primitive(origin)
.shape()
.center(),
r: 150.0, r: 150.0,
}, },
egui::Color32::from_rgb(255, 255, 100), egui::Color32::from_rgb(255, 255, 100),
); );
painter.paint_dot( painter.paint_dot(
Circle { Circle {
pos: board.layout().drawing().primitive(destination).shape().center(), pos: board
.layout()
.drawing()
.primitive(destination)
.shape()
.center(),
r: 150.0, r: 150.0,
}, },
egui::Color32::from_rgb(255, 255, 100), egui::Color32::from_rgb(255, 255, 100),
@ -250,7 +311,9 @@ impl Viewport {
} }
if self.scheduled_zoom_to_fit { if self.scheduled_zoom_to_fit {
let root_bbox = workspace.interactor.invoker() let root_bbox = workspace
.interactor
.invoker()
.autorouter() .autorouter()
.board() .board()
.layout() .layout()
@ -262,8 +325,10 @@ impl Viewport {
let root_bbox_width = root_bbox.upper()[0] - root_bbox.lower()[0]; let root_bbox_width = root_bbox.upper()[0] - root_bbox.lower()[0];
let root_bbox_height = root_bbox.upper()[1] - root_bbox.lower()[1]; let root_bbox_height = root_bbox.upper()[1] - root_bbox.lower()[1];
self.transform.scaling = 0.8 * if root_bbox_width / root_bbox_height self.transform.scaling = 0.8
>= (viewport_rect.width() as f64) / (viewport_rect.height() as f64) * if root_bbox_width / root_bbox_height
>= (viewport_rect.width() as f64)
/ (viewport_rect.height() as f64)
{ {
viewport_rect.width() / root_bbox_width as f32 viewport_rect.width() / root_bbox_width as f32
} else { } else {
@ -274,7 +339,10 @@ impl Viewport {
viewport_rect.center()[0] as f32, viewport_rect.center()[0] as f32,
viewport_rect.center()[1] as f32, viewport_rect.center()[1] as f32,
) - (self.transform.scaling ) - (self.transform.scaling
* egui::Pos2::new(root_bbox.center()[0] as f32, -root_bbox.center()[1] as f32)) * egui::Pos2::new(
root_bbox.center()[0] as f32,
-root_bbox.center()[1] as f32,
))
.to_vec2(); .to_vec2();
} }
@ -283,6 +351,8 @@ impl Viewport {
viewport_rect viewport_rect
}) })
}).inner.inner })
.inner
.inner
} }
} }