admin and Claude Opus 4.8
fd2cc9eb98
Block paint dabs that wrap too far around corners
...
Add a geometry-based gate in PaintAtScreen that estimates how much of the
brush footprint lands on faces whose normals deviate sharply from the hit
surface. When that fraction exceeds the threshold the whole dab is
suppressed (no draw, emit, or undo mark) instead of smearing around the
edge. Backend-independent (no GPU readback) and winding-robust. Tunable via
cornerGuard / cornerGuardAngle / cornerGuardMaxFraction.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-29 20:58:07 +02:00
..
2026-06-29 20:12:58 +02:00
2026-06-27 09:10:47 +02:00
2026-06-26 12:37:02 +02:00
2026-06-27 09:10:47 +02:00
2026-06-27 09:10:47 +02:00
2026-06-28 13:56:02 +02:00
2026-06-24 15:31:48 +02:00
2026-06-29 16:23:50 +02:00
2026-06-24 05:59:22 +02:00
2026-06-24 05:59:22 +02:00
2026-06-28 13:55:53 +02:00
2026-06-27 13:03:52 +02:00
2026-06-28 23:02:31 +02:00
2026-06-27 13:03:52 +02:00
2026-06-22 17:26:41 +02:00
2026-06-22 12:03:24 +02:00
2026-06-28 13:55:53 +02:00
2026-06-26 23:01:14 +02:00
2026-06-26 23:01:14 +02:00
2026-06-26 23:01:14 +02:00
2026-06-22 17:26:41 +02:00
2026-06-22 15:13:46 +02:00
2026-06-28 21:39:41 +02:00
2026-06-22 15:13:46 +02:00
2026-06-24 05:59:22 +02:00
2026-06-24 05:59:22 +02:00
2026-06-28 17:18:32 +02:00
2026-06-28 17:18:32 +02:00
2026-06-24 19:07:28 +02:00
2026-06-24 08:26:56 +02:00
2026-06-28 21:39:30 +02:00
2026-06-27 22:44:18 +02:00
2026-06-27 20:19:36 +02:00
2026-06-23 19:31:52 +02:00
2026-06-25 06:23:08 +02:00
2026-06-23 19:31:52 +02:00
2026-06-29 20:58:07 +02:00
2026-06-22 12:03:24 +02:00
2026-06-25 07:11:27 +02:00
2026-06-23 19:31:52 +02:00
2026-06-28 01:21:39 +02:00
2026-06-27 15:02:33 +02:00
2026-06-27 20:19:36 +02:00
2026-06-25 05:11:36 +02:00
2026-06-29 20:12:19 +02:00
2026-06-24 20:25:14 +02:00
2026-06-26 12:37:02 +02:00
2026-06-23 19:31:52 +02:00
2026-06-24 19:07:28 +02:00
2026-06-24 19:07:28 +02:00
2026-06-27 20:19:36 +02:00
2026-06-27 20:19:36 +02:00
2026-06-28 13:55:53 +02:00
2026-06-28 13:55:53 +02:00
2026-06-28 13:55:53 +02:00
2026-06-28 13:55:53 +02:00
2026-06-28 15:51:49 +02:00
2026-06-27 14:33:18 +02:00
2026-06-27 22:44:18 +02:00
2026-06-27 14:33:18 +02:00
2026-06-28 14:00:03 +02:00
2026-06-28 11:03:26 +02:00
2026-06-28 11:03:26 +02:00
2026-06-28 10:17:28 +02:00
2026-06-29 20:12:39 +02:00
2026-06-24 08:26:56 +02:00
2026-06-27 18:39:20 +02:00
2026-06-27 18:39:20 +02:00
2026-06-29 20:12:39 +02:00
2026-06-25 05:11:36 +02:00
2026-06-26 12:37:02 +02:00
2026-06-22 15:13:46 +02:00
2026-06-27 15:59:25 +02:00
2026-06-27 14:44:11 +02:00
2026-06-28 15:15:45 +02:00
2026-06-22 13:02:03 +02:00
2026-06-26 12:37:02 +02:00
2026-06-22 15:13:46 +02:00
2026-06-29 20:12:39 +02:00
2026-06-27 15:02:33 +02:00
2026-06-27 13:49:16 +02:00
2026-06-26 08:21:28 +02:00
2026-06-27 18:39:20 +02:00
2026-06-26 08:21:28 +02:00
2026-06-27 17:01:43 +02:00
2026-06-27 17:01:43 +02:00
2026-06-27 11:49:43 +02:00
2026-06-27 11:49:43 +02:00
2026-06-27 11:49:43 +02:00
2026-06-26 12:37:02 +02:00
2026-06-28 00:31:49 +02:00
2026-06-28 00:31:49 +02:00
2026-06-28 09:34:18 +02:00
2026-06-27 22:44:18 +02:00
2026-06-29 16:22:45 +02:00
2026-06-22 14:31:45 +02:00
2026-06-24 08:26:56 +02:00
2026-06-24 08:26:56 +02:00