cad-editor/src/scene/model
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven ae5231427b feat(solid3d): view-dependent silhouettes (DISPSILH) on curved faces
ISOLINES show a curved solid from any angle, but its outline still cut across
whichever fixed longitudinal lines happened to face the eye. DISPSILH draws the
true silhouette — the two lines where a cylinder (or cone) turns edge-on to the
view — and it moves with the camera, so it cannot be a baked edge.

Tessellation stores a world-space generator per cone/cylinder face on the mesh
set (axis, radial frame, radius, cone taper, extent), sharing the face-extent
extraction with the ISOLINES collector. Each frame `upload_silhouettes` walks
those generators, solves `du·cosθ + dv·sinθ = -tanα·da` for the two edge-on
angles (`φ ± acos(...)`, `φ ± π/2` for a cylinder), and builds a line list in
the mesh vertex format — double-single, so it stays precise at UTM. It draws
through the existing wireframe / edge pipelines in the wireframe and
shaded-with-edges passes.

Gated on the document's DISPSILH header flag, which defaults off — so the
per-frame pass is a no-op unless the drawing asks for it. Scoped to top-level
solids: a block instance's generators aren't transformed by the INSTANCE pose
yet, so they are cleared on the block path (its isolines and feature edges
still draw).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 20:02:56 +03:00
..
hatch_model.rs fix(export): keep plot coordinates in f64 until they cancel 2026-07-16 10:25:28 +03:00
hatch_patterns.rs fix: address review findings on merged #293/#292 hatch+snap 2026-07-06 20:23:59 +03:00
image_model.rs refactor: remove dead world_offset plumbing (RTE migration is complete) 2026-06-24 18:35:02 +03:00
mesh_model.rs feat(solid3d): view-dependent silhouettes (DISPSILH) on curved faces 2026-07-17 20:02:56 +03:00
mod.rs refactor(scene): rename model_solid to solid_model 2026-06-16 11:39:31 +03:00
object.rs feat(hatch): editable pattern props + origin grip 2026-07-08 22:48:33 +03:00
solid_model.rs refactor: remove dead world_offset plumbing (RTE migration is complete) 2026-06-24 18:35:02 +03:00
wire_model.rs fix(pick): catch a wide polyline on its band, not just its centreline 2026-07-17 15:22:56 +03:00