Fix cliippy
This commit is contained in:
parent
25c03beb2d
commit
50ab2d1976
54
src/main.rs
54
src/main.rs
@ -2,6 +2,7 @@ use std::ops::{Deref, DerefMut};
|
||||
|
||||
use bevy_ecs::{
|
||||
prelude::*,
|
||||
query::WorldQuery,
|
||||
system::{Commands, IntoSystem, Query, ReadOnlySystem, Res, ResMut, System},
|
||||
};
|
||||
use eframe::{
|
||||
@ -17,12 +18,7 @@ mod relations;
|
||||
|
||||
fn main() {
|
||||
let options = eframe::NativeOptions::default();
|
||||
eframe::run_native(
|
||||
"sketchrs",
|
||||
options,
|
||||
Box::new(|_cc| Box::new(MyApp::default())),
|
||||
)
|
||||
.unwrap();
|
||||
eframe::run_native("sketchrs", options, Box::new(|_cc| Box::<MyApp>::default())).unwrap();
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Resource)]
|
||||
@ -34,6 +30,7 @@ enum Tool {
|
||||
AddRelation,
|
||||
}
|
||||
|
||||
#[allow(clippy::derivable_impls)]
|
||||
impl Default for Tool {
|
||||
fn default() -> Self {
|
||||
Tool::Select
|
||||
@ -113,7 +110,7 @@ fn update_hover_point(
|
||||
points.for_each(|(id, point)| {
|
||||
let hovered = if let Some(hover_pos) = response.hover_pos() {
|
||||
let pos = point_pos.get(point);
|
||||
let center = to_screen.transform_pos(&*pos);
|
||||
let center = to_screen.transform_pos(&pos);
|
||||
|
||||
(hover_pos - center).length() < (POINT_RADIUS * 3.)
|
||||
} else {
|
||||
@ -147,7 +144,7 @@ fn update_hover_line(
|
||||
let a = hover_pos - points[0];
|
||||
let p = a.dot(b) / b.dot(b);
|
||||
let perp = a - (p * b);
|
||||
((0.)..=(1.)).contains(&p) && perp.length() < 5.0
|
||||
((0.)..=1.).contains(&p) && perp.length() < 5.0
|
||||
} else {
|
||||
false
|
||||
};
|
||||
@ -230,7 +227,7 @@ fn move_tool(
|
||||
if let Some((_, point)) = selected {
|
||||
if response.drag_started() {
|
||||
let drag_point_pos = point_pos.get(point).unwrap();
|
||||
drag_delta.0 = hover_pos - to_screen.transform_pos(&*drag_point_pos);
|
||||
drag_delta.0 = hover_pos - to_screen.transform_pos(&drag_point_pos);
|
||||
}
|
||||
let move_to = to_screen.inverse_transform_to_point(hover_pos - drag_delta.0);
|
||||
point_pos.set(point, move_to).unwrap();
|
||||
@ -251,7 +248,7 @@ fn add_point_tool(
|
||||
) {
|
||||
let hover_pos = response.hover_pos().unwrap();
|
||||
if response.clicked() {
|
||||
add_point(&mut commands, hover_pos, &*to_screen);
|
||||
add_point(&mut commands, hover_pos, &to_screen);
|
||||
} else {
|
||||
painter.circle_filled(hover_pos, POINT_RADIUS, Color32::WHITE);
|
||||
}
|
||||
@ -275,7 +272,7 @@ fn add_line_tool(
|
||||
(None, true) => {
|
||||
let point_id = match hovered.iter().next() {
|
||||
Some(hovered) => hovered,
|
||||
None => add_point(&mut commands, hover_pos, &*to_screen),
|
||||
None => add_point(&mut commands, hover_pos, &to_screen),
|
||||
};
|
||||
commands.entity(point_id).insert(Selected);
|
||||
}
|
||||
@ -294,7 +291,7 @@ fn add_line_tool(
|
||||
let end_point = hovered
|
||||
.iter()
|
||||
.next()
|
||||
.unwrap_or_else(|| add_point(&mut commands, hover_pos, &*to_screen));
|
||||
.unwrap_or_else(|| add_point(&mut commands, hover_pos, &to_screen));
|
||||
|
||||
let line = Line::new(start_point_id, end_point);
|
||||
commands.spawn(line);
|
||||
@ -378,7 +375,7 @@ fn paint_points(
|
||||
points.for_each(|(id, point)| {
|
||||
let pos = point_pos.get(point);
|
||||
|
||||
let center = to_screen.transform_pos(&*pos);
|
||||
let center = to_screen.transform_pos(&pos);
|
||||
|
||||
let color = color_for_var_status(pos.status);
|
||||
let stroke = if selected.contains(id) || hovered.contains(id) {
|
||||
@ -430,13 +427,13 @@ fn prepare(ctx: Res<ContextRes>) {
|
||||
ctx.set_visuals(egui::Visuals::dark());
|
||||
}
|
||||
|
||||
fn toolbar<'a>(
|
||||
fn toolbar(
|
||||
ctx: Res<ContextRes>,
|
||||
selected: Query<Entity, With<Selected>>,
|
||||
mut commands: Commands,
|
||||
mut tool: ResMut<Tool>,
|
||||
) {
|
||||
egui::TopBottomPanel::top("top_panel").show(&**ctx, |ui| {
|
||||
egui::TopBottomPanel::top("top_panel").show(&ctx, |ui| {
|
||||
// ui.heading("sketchrs");
|
||||
let mut selected_tool = *tool;
|
||||
ui.horizontal(|ui| {
|
||||
@ -482,7 +479,7 @@ impl Default for ShowEntitiesSchedule {
|
||||
}
|
||||
}
|
||||
|
||||
fn central_panel(mut world: &mut World, mut schedule: Local<ShowEntitiesSchedule>) {
|
||||
fn central_panel(world: &mut World, mut schedule: Local<ShowEntitiesSchedule>) {
|
||||
let ctx = world.get_resource::<ContextRes>().unwrap().0.clone();
|
||||
egui::CentralPanel::default()
|
||||
.frame(egui::Frame::none())
|
||||
@ -501,7 +498,7 @@ fn central_panel(mut world: &mut World, mut schedule: Local<ShowEntitiesSchedule
|
||||
world.insert_resource(ResponseRes(response));
|
||||
world.insert_resource(PainterRes(painter));
|
||||
|
||||
schedule.0.run(&mut world);
|
||||
schedule.0.run(world);
|
||||
|
||||
world.remove_resource::<PainterRes>();
|
||||
world.remove_resource::<ResponseRes>();
|
||||
@ -509,26 +506,33 @@ fn central_panel(mut world: &mut World, mut schedule: Local<ShowEntitiesSchedule
|
||||
});
|
||||
}
|
||||
|
||||
#[derive(WorldQuery)]
|
||||
struct SelectableEntity<'a> {
|
||||
id: Entity,
|
||||
point: Option<&'a Point>,
|
||||
line: Option<&'a Line>,
|
||||
}
|
||||
|
||||
fn side_panel(
|
||||
ctx: Res<ContextRes>,
|
||||
selected: Query<(Entity, Option<&Point>, Option<&Line>), With<Selected>>,
|
||||
selected: Query<SelectableEntity, With<Selected>>,
|
||||
tool: Res<Tool>,
|
||||
) {
|
||||
egui::SidePanel::right("side_panel")
|
||||
.resizable(true)
|
||||
.default_width(150.0)
|
||||
.width_range(80.0..=200.0)
|
||||
.show(&**ctx, |ui| {
|
||||
.show(&ctx, |ui| {
|
||||
let tool = *tool;
|
||||
ui.vertical(|ui| match tool {
|
||||
Tool::Select => {
|
||||
let mut count = 0;
|
||||
selected.for_each(|(id, point, line)| {
|
||||
selected.for_each(|sel| {
|
||||
count += 1;
|
||||
if point.is_some() {
|
||||
ui.label(format!("Selected point {}", id.index()));
|
||||
} else if line.is_some() {
|
||||
ui.label(format!("Selected line {}", id.index()));
|
||||
if sel.point.is_some() {
|
||||
ui.label(format!("Selected point {}", sel.id.index()));
|
||||
} else if sel.line.is_some() {
|
||||
ui.label(format!("Selected line {}", sel.id.index()));
|
||||
}
|
||||
});
|
||||
if count == 0 {
|
||||
@ -536,7 +540,7 @@ fn side_panel(
|
||||
}
|
||||
}
|
||||
Tool::AddRelation => {
|
||||
if let Some(first) = selected.iter().next() {
|
||||
if let Some(_first) = selected.iter().next() {
|
||||
} else {
|
||||
ui.label("Select an entity to add a relation");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user