Hakan Seven and Claude Opus 4.8
f00c48bebb
feat(viewcube): add compass ring, cardinals, and nav controls
...
Build the ViewCube out into a full navigation widget:
- Compass ring painted in the cube's ground plane (z = base) so it
reads as a ground compass and foreshortens with the view.
- N/E/S/W cardinals painted flat onto the ring band; clicking one snaps
to that side elevation. Added S/W glyphs to the bitmap atlas.
- Home button (top-down view), roll arrows (90° roll about the view
axis), and four nudge triangles (90° tip/spin) as SVG iced controls
laid out around the cube. New home.svg.
- WCS / named-UCS selector under the cube, switching the active UCS.
The cube hit area now shares one stack with the control buttons, so a
click on a button is caught by the button while a click on the cube
falls through. Face clicks snap to the highlighted region rather than a
cursor position the viewport's move handler can overwrite.
Camera gains home_view / roll_by / nudge_90; floating viewports drive
the same ops through mutate_active_viewport_camera, which re-encodes the
result to the stored view direction + twist.
Co-Authored-By: Claude Opus 4.8 <[email protected] >
2026-06-25 23:46:43 +03:00
..
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-06-15 22:04:07 +03:00
2026-03-22 14:56:27 +03:00
2026-06-19 14:49:08 +03:00
2026-06-20 14:27:59 +03:00
2026-03-22 14:56:27 +03:00
2026-06-25 23:46:43 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-06-18 12:29:32 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:03:08 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:26:47 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:26:47 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:03:08 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:26:47 +03:00
2026-04-09 03:03:08 +03:00
2026-03-22 14:56:27 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-05-30 23:24:06 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:26:47 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:03:08 +03:00
2026-03-22 14:56:27 +03:00
2026-06-18 12:29:32 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-03-22 14:56:27 +03:00
2026-03-22 14:56:27 +03:00
2026-06-18 12:29:32 +03:00
2026-06-18 12:29:32 +03:00
2026-04-09 03:03:08 +03:00
2026-04-09 03:26:47 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-09 03:03:08 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-03-22 14:56:27 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-03-22 14:56:27 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-06-18 12:29:32 +03:00
2026-04-09 03:03:08 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00
2026-04-24 01:23:06 +03:00