Skip to content

Commit 76ca142

Browse files
committed
Add another slider to Vpeol2dScale/Vpeol3dScale for scaling all the axes
1 parent ac544bb commit 76ca142

File tree

2 files changed

+63
-25
lines changed

2 files changed

+63
-25
lines changed

src/vpeol_2d.rs

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -591,16 +591,35 @@ fn vpeol_2d_edit_scale_impl(ui: &mut egui::Ui, mut edit: YoleckEdit<&mut Vpeol2d
591591
let mut new_average = average;
592592

593593
ui.add(egui::Label::new("Scale"));
594-
ui.add(
595-
egui::DragValue::new(&mut new_average.x)
596-
.prefix("X:")
597-
.speed(0.01),
598-
);
599-
ui.add(
600-
egui::DragValue::new(&mut new_average.y)
601-
.prefix("Y:")
602-
.speed(0.01),
603-
);
594+
ui.vertical(|ui| {
595+
ui.centered_and_justified(|ui| {
596+
let axis_average = (average.x + average.y) / 2.0;
597+
let mut new_axis_average = axis_average;
598+
if ui
599+
.add(egui::DragValue::new(&mut new_axis_average).speed(0.01))
600+
.dragged()
601+
{
602+
// Use difference instead of ration to avoid problems when reaching/crossing
603+
// the zero.
604+
let diff = new_axis_average - axis_average;
605+
new_average.x += diff;
606+
new_average.y += diff;
607+
}
608+
});
609+
ui.horizontal(|ui| {
610+
ui.add(
611+
egui::DragValue::new(&mut new_average.x)
612+
.prefix("X:")
613+
.speed(0.01),
614+
);
615+
ui.add(
616+
egui::DragValue::new(&mut new_average.y)
617+
.prefix("Y:")
618+
.speed(0.01),
619+
);
620+
});
621+
});
622+
604623
let transition = (new_average - average).as_vec2();
605624

606625
if transition.is_finite() && transition != Vec2::ZERO {

src/vpeol_3d.rs

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,21 +1264,40 @@ fn vpeol_3d_edit_scale_impl(ui: &mut egui::Ui, mut edit: YoleckEdit<&mut Vpeol3d
12641264
let mut new_average = average;
12651265

12661266
ui.add(egui::Label::new("Scale"));
1267-
ui.add(
1268-
egui::DragValue::new(&mut new_average.x)
1269-
.prefix("X:")
1270-
.speed(0.01),
1271-
);
1272-
ui.add(
1273-
egui::DragValue::new(&mut new_average.y)
1274-
.prefix("Y:")
1275-
.speed(0.01),
1276-
);
1277-
ui.add(
1278-
egui::DragValue::new(&mut new_average.z)
1279-
.prefix("Z:")
1280-
.speed(0.01),
1281-
);
1267+
ui.vertical(|ui| {
1268+
ui.centered_and_justified(|ui| {
1269+
let axis_average = (average.x + average.y + average.z) / 3.0;
1270+
let mut new_axis_average = axis_average;
1271+
if ui
1272+
.add(egui::DragValue::new(&mut new_axis_average).speed(0.01))
1273+
.dragged()
1274+
{
1275+
// Use difference instead of ration to avoid problems when reaching/crossing
1276+
// the zero.
1277+
let diff = new_axis_average - axis_average;
1278+
new_average.x += diff;
1279+
new_average.y += diff;
1280+
new_average.z += diff;
1281+
}
1282+
});
1283+
ui.horizontal(|ui| {
1284+
ui.add(
1285+
egui::DragValue::new(&mut new_average.x)
1286+
.prefix("X:")
1287+
.speed(0.01),
1288+
);
1289+
ui.add(
1290+
egui::DragValue::new(&mut new_average.y)
1291+
.prefix("Y:")
1292+
.speed(0.01),
1293+
);
1294+
ui.add(
1295+
egui::DragValue::new(&mut new_average.z)
1296+
.prefix("Z:")
1297+
.speed(0.01),
1298+
);
1299+
});
1300+
});
12821301

12831302
let transition = (new_average - average).as_vec3();
12841303

0 commit comments

Comments
 (0)