cad-editor/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven 570165e77f fix(solid3d): trim torus faces to the revolution arc between end caps
An open "C" tube (the € currency symbol's ring) rendered as a full closed
donut: truck builds a torus as a full revolution and can't trim it, and the
wireframe/silhouette arc estimate was wrong.

The arc estimate failed because `collect_face_polygon` reads only the first
loop, and the "widest empty gap = tube body" heuristic breaks once the tube
carries interior holes (where the two horizontal bars punch through it): a hole
splits the body into wide hole-free stretches that masquerade as the opening.

`torus_phi_range` now walks every boundary loop and classifies each: a minor
circle sitting in a constant-φ plane (spread < ~8.6°) is an end cap; a wider
loop is an interference hole. The opening is the gap flanked on both sides by
end caps — a hole never bounds it — so the body is the rest of the turn.

Torus faces now route to the bespoke sampler (like spheres); `tess_torus_face`
clips its φ grid to that arc, so the shaded tube is an open C. `torus_isolines`
and `collect_curved_gens` use the same range for the wireframe rim and the
silhouette. Removes the now-dead truck torus path (`torus_faces`,
`Outward::Torus`, `vadd`).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 01:10:29 +03:00
..
app fix(mtext-editor): keep UTM text sharp, preserve columns through an edit 2026-07-17 18:57:16 +03:00
entities feat(solid3d): draw ISOLINES on curved faces in wireframe 2026-07-17 19:45:42 +03:00
io fix(linetype): route placeholder-complex linetypes to the dash path 2026-07-17 02:58:59 +03:00
modules fix(pick): hit-test lineweight width and thickness walls 2026-07-17 14:58:55 +03:00
plugin fix(plugin): upgrade a loaded plugin in place instead of failing on a locked binary 2026-07-15 11:35:10 -07:00
scene fix(solid3d): trim torus faces to the revolution arc between end caps 2026-07-18 01:10:29 +03:00
shaders feat(web): render hatches on WebGL2 via a texture-backed renderer 2026-07-14 00:53:51 +03:00
ui fix(overlay): clip dashed snap/track guides to the viewport 2026-07-17 13:52:29 +03:00
cli.rs feat(open): open drawings in the running editor 2026-07-15 15:18:16 +03:00
command.rs feat(commands): step POLYSOLID (select polyline, then width + height) 2026-07-16 14:47:45 +03:00
config.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
lib.rs feat(ui): ribbon collapse-mode selector + start-page recent controls 2026-07-06 01:06:01 +03:00
main.rs feat(open): open drawings in the running editor 2026-07-15 15:18:16 +03:00
par.rs feat(wasm): sequential rayon shim for the web build 2026-06-16 17:11:20 +03:00
patreon.rs feat(supporters): merge hand-maintained supporters, rank by amount 2026-07-08 00:32:12 +03:00
snap.rs fix(snap): Intersection requires a real 3D meeting, not a plan crossing (#335) 2026-07-10 13:05:48 +03:00
sys.rs fix(web): paste clipboard text into the TEXT / MText editors 2026-06-20 17:05:02 +03:00