From 19765df82864ec646965e853b2e2c6af77f435fe Mon Sep 17 00:00:00 2001 From: varkor Date: Mon, 5 Aug 2024 21:17:16 +0300 Subject: [PATCH] Fix transforming loops --- src/ui.js | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/ui.js b/src/ui.js index 5eab9ad..e7ad4ba 100644 --- a/src/ui.js +++ b/src/ui.js @@ -6369,7 +6369,24 @@ class Toolbar { })), }, { kind: "flip", - cells: ui.quiver.all_cells().filter((cell) => cell.is_edge()), + cells: ui.quiver.all_cells().filter((cell) => { + return cell.is_edge() && !cell.is_loop(); + }), + }, + { + kind: "reverse", + cells: ui.quiver.all_cells().filter((cell) => cell.is_loop()), + }, + { + kind: "angle", + angles: ui.quiver.all_cells().filter((cell) => cell.is_loop()) + .map((edge) => { + return { + edge, + from: edge.options.angle, + to: 180 - edge.options.angle, + }; + }), }], true); } }, @@ -6395,7 +6412,24 @@ class Toolbar { })), }, { kind: "flip", - cells: ui.quiver.all_cells().filter((cell) => cell.is_edge()), + cells: ui.quiver.all_cells().filter((cell) => { + return cell.is_edge() && !cell.is_loop(); + }), + }, + { + kind: "reverse", + cells: ui.quiver.all_cells().filter((cell) => cell.is_loop()), + }, + { + kind: "angle", + angles: ui.quiver.all_cells().filter((cell) => cell.is_loop()) + .map((edge) => { + return { + edge, + from: edge.options.angle, + to: -edge.options.angle, + }; + }), }], true); } }, @@ -6419,6 +6453,15 @@ class Toolbar { y_min - (vertex.position.x - x_max), ), })), + }, { + kind: "angle", + angles: ui.quiver.all_cells().filter((cell) => cell.is_loop()).map((edge) => { + let to = edge.options.angle - 90; + if (to < -180) { + to += 360; + } + return { edge, from: edge.options.angle, to }; + }), }], true); } },