ispyisail
79a8637251
Add optional hops where wires cross ( #436 )
...
Where two wires cross without being connected, a project can now draw a
small arc (a hop) on one of them, instead of the user inserting a jump
symbol and splitting the wire. It is a project setting, off by default:
Project properties > Général > "Croisements de conducteurs", with no
hops, hops on horizontal wires, or hops on vertical wires. Choosing the
orientation rather than following drawing order keeps a project
consistent.
Only the drawing changes: no element is added and no wire is split. A
wire that ends or bends on another one is a junction and never hops,
and a crossing too close to the end of a segment for the arc to fit is
drawn plainly. PDF, SVG and image export and printing show the hops,
since they paint through Conductor::paint(); DXF export, which writes
the segments itself, does not.
The setting is saved as <wire_crossings hop="..."/> under the project
root, next to <usage>, and only when hops are on, so a project that
never used them saves exactly as before.
The geometry is in wirehops.cpp, free of any graphics item, and tested
on its own. Conductor::paintedPath() feeds it the conductors of the
folio from a snapshot of their scene points, rebuilt only when a
conductor changes shape, moves, or enters or leaves a folio; each hop
path is cached the same way. Asking the scene for the conductors in a
rect instead strokes every candidate's shape, which made a 366-wire
folio render 0.6 s slower; with the snapshot the difference is within
measurement noise.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 21:18:12 +13:00
..
2026-09-30 11:10:02 +02:00
2026-09-29 16:08:45 +13:00
2026-09-30 13:47:45 +13:00
2026-01-16 15:24:35 +01:00
2026-01-26 18:47:43 +01:00
2026-10-01 08:13:11 +02:00
2026-09-30 11:10:02 +02:00
2026-09-30 10:31:12 +13:00
2026-08-17 10:25:44 +02:00
2026-10-01 07:40:57 +13:00
2026-09-30 10:31:12 +13:00
2026-09-30 10:31:12 +13:00
2026-09-25 20:44:02 +12:00
2026-07-31 09:52:32 +12:00
2026-09-24 09:59:21 +02:00
2026-09-30 10:31:12 +13:00
2025-05-22 21:33:32 +02:00
2026-10-01 21:18:12 +13:00
2026-01-16 15:24:35 +01:00
2026-09-07 10:44:30 +02:00
2026-01-16 15:24:35 +01:00
2026-09-30 10:31:12 +13:00
2026-09-29 11:00:16 +13:00
2026-09-30 10:31:12 +13:00
2026-09-25 23:25:27 +12:00
2026-01-16 15:24:35 +01:00
2026-10-01 08:14:25 +02:00
2026-09-30 10:31:12 +13:00
2026-10-01 21:18:12 +13:00
2026-09-29 23:24:50 +13:00
2026-09-30 13:47:45 +13:00
2026-01-16 15:24:35 +01:00
2026-09-28 09:19:59 +13:00
2026-08-09 09:11:40 +02:00
2026-08-09 09:11:40 +02:00
2026-09-13 02:00:50 +12:00
2026-09-11 20:12:09 +03:00
2026-09-26 08:22:12 +12:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-27 21:54:44 +13:00
2026-09-26 07:37:38 +12:00
2026-09-26 21:18:35 +12:00
2026-09-26 21:06:13 +12:00
2026-10-01 15:21:51 +13:00
2026-09-27 21:54:36 +13:00
2026-09-26 21:34:02 +12:00
2026-09-26 21:34:02 +12:00
2026-08-03 13:19:51 +12:00
2026-01-16 15:24:35 +01:00
2026-09-12 23:06:15 +12:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-20 21:56:43 +02:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-30 10:31:12 +13:00
2026-01-16 15:24:35 +01:00
2026-09-09 11:45:36 +12:00
2026-09-27 21:54:44 +13:00
2026-09-27 21:54:44 +13:00
2026-09-29 23:09:57 +13:00
2026-09-29 23:09:57 +13:00
2026-10-01 10:04:52 +13:00
2026-08-22 11:25:47 +02:00
2026-09-29 23:23:32 +13:00
2026-09-29 23:23:32 +13:00
2026-09-28 21:59:02 +13:00
2026-09-22 09:07:27 +02:00
2026-09-28 06:16:17 +13:00
2026-09-26 21:40:32 +12:00
2026-09-26 21:40:46 +12:00
2026-09-26 21:40:46 +12:00
2026-09-27 11:16:37 +13:00
2026-01-16 15:24:35 +01:00
2026-09-07 20:54:18 +12:00
2026-10-01 10:29:34 +13:00
2026-10-01 10:29:34 +13:00
2026-09-27 21:54:44 +13:00
2026-09-27 21:54:44 +13:00
2026-09-07 10:44:30 +02:00
2026-09-07 10:44:30 +02:00
2026-09-30 10:31:12 +13:00
2026-04-26 10:48:47 +02:00
2026-07-14 19:27:16 +02:00
2026-01-16 15:24:35 +01:00
2026-09-30 10:31:12 +13:00
2026-01-16 15:24:35 +01:00
2026-09-19 12:22:24 -05:00
2026-01-16 15:24:35 +01:00
2026-09-29 23:23:32 +13:00
2026-09-29 23:23:32 +13:00
2026-09-19 12:22:24 -05:00
2026-05-13 19:42:11 +02:00
2026-09-27 21:14:47 +13:00
2026-08-04 16:36:23 +12:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-26 10:36:40 +12:00
2026-09-26 10:22:50 +12:00
2026-09-30 10:31:12 +13:00
2026-09-27 21:54:36 +13:00
2026-08-08 08:09:45 +02:00
2026-08-06 21:37:40 +02:00
2026-08-09 19:25:56 +02:00
2026-08-06 21:37:40 +02:00
2026-09-03 15:05:22 +02:00
2026-04-19 10:44:52 +02:00
2026-09-28 14:55:04 +02:00
2026-09-28 14:55:04 +02:00
2026-09-16 15:40:41 +12:00
2026-09-16 15:40:41 +12:00
2026-09-17 00:07:46 +02:00
2026-06-20 22:31:06 +12:00
2026-10-01 08:00:55 +13:00
2026-08-11 11:33:28 +12:00
2026-01-16 15:24:35 +01:00
2026-09-20 22:58:08 +02:00
2026-09-26 21:17:19 +12:00
2026-09-25 20:44:02 +12:00
2026-09-25 20:44:02 +12:00
2026-09-18 18:28:48 +02:00
2026-08-12 12:29:56 +02:00
2026-10-01 15:21:51 +13:00
2026-10-01 15:21:51 +13:00
2026-09-30 11:44:49 +13:00
2026-09-30 10:42:26 +13:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-10-01 10:29:34 +13:00
2026-09-30 13:47:45 +13:00
2026-09-29 23:37:40 +13:00
2026-09-29 23:37:40 +13:00
2026-09-16 18:51:34 +12:00
2026-09-16 18:51:34 +12:00
2026-09-30 10:42:26 +13:00
2026-09-30 10:42:26 +13:00
2026-08-05 05:26:57 +12:00
2026-08-05 05:26:57 +12:00
2026-09-21 22:05:31 +02:00
2026-09-20 12:20:01 -05:00
2026-10-01 21:18:12 +13:00
2026-10-01 21:18:12 +13:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-20 12:45:07 -05:00
2026-09-19 12:26:06 -05:00
2026-08-16 07:16:33 +02:00
2026-01-16 15:24:35 +01:00
2026-09-17 00:07:46 +02:00
2026-07-17 10:25:49 +02:00
2026-08-08 00:32:31 +02:00
2026-01-16 15:24:35 +01:00
2026-09-17 00:07:46 +02:00
2026-09-17 00:07:46 +02:00
2026-08-09 01:34:22 +02:00
2026-01-16 15:24:35 +01:00
2026-09-17 00:07:46 +02:00
2026-01-16 15:24:35 +01:00
2026-07-17 10:29:13 +02:00
2026-07-17 10:29:13 +02:00
2026-09-27 09:09:44 +02:00
2026-09-27 09:09:44 +02:00
2026-09-28 23:19:46 +02:00
2026-09-26 21:40:19 +12:00
2026-09-30 18:12:43 +13:00
2026-09-26 10:22:50 +12:00
2020-09-07 22:03:40 +02:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-29 09:59:21 +13:00
2026-09-29 09:59:21 +13:00
2026-09-17 00:07:46 +02:00
2026-09-17 00:07:46 +02:00
2026-10-01 21:18:12 +13:00
2026-10-01 21:18:12 +13:00
2026-10-01 16:50:56 +13:00
2026-10-01 16:50:56 +13:00