cad-editor/src/scene/convert
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven bd1a5affd7 feat(lwpolyline): render the wide-polyline band via the wire shader
A wide polyline's flat band was drawn by the hatch pipeline: a solid fill
with only draw-order depth. It ignored the entity linetype (the width
"crushed" the dash pattern) and showed through 3-D geometry in a tilted view.

Draw the band from the polyline's own centre-line wire instead. A new
`WireModel.world_width` (drawing units) makes the wire vertex shader expand
the quad by `world_half_width / world_per_pixel` (clamped to a hairline), so
the band is sized in world units and tracks zoom. Because it is now a wire:

- the GPU dash shader dashes the band by arc-length — the linetype applies;
- it is depth-tested at the polyline elevation — no draw-order see-through;
- no CPU band triangles or per-dash geometry are generated.

`world_half_width` rides in `WireConst` (native, replacing a pad) and the web
`WireInstance` (loc 14); both wire shaders branch on it. The tessellator sets
`world_width` from the LwPolyline width on the Contour / SegmentedLines arms,
and the model-space fill loop no longer emits a hatch band for any LwPolyline.
Pick still uses the band polygon (`pick_tris`).

Blocks keep the hatch band: `LocalWire` carries no `world_width` (finalize
zeroes it), so a scaled insert still scales its band correctly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 14:50:27 +03:00
..
acad_to_truck.rs fix(pick): hit-test lineweight width and thickness walls 2026-07-17 14:58:55 +03:00
acis_export.rs feat(export): exact ACIS geometry for planar solids on save 2026-07-03 15:43:37 +03:00
acis_to_truck.rs fix(solid3d): keep loaded-solid mesh verts f64 until the RTE split 2026-07-18 12:30:00 +03:00
dgn_linestyle.rs feat(dgn-ls): dash walls from start + fix wall connector and cap identity 2026-07-17 01:49:18 +03:00
mod.rs feat(render): draw a proxy entity's cached preview instead of nothing 2026-07-17 12:53:42 +03:00
proxy_graphics.rs feat(proxy): decode shell, transformed geometry and text previews 2026-07-18 21:34:15 +03:00
solid3d_tess.rs fix(solid): cone silhouette uses the base radius, not the root radius 2026-07-19 19:14:11 +03:00
spline_tess.rs fix(solid3d): keep loaded-solid mesh verts f64 until the RTE split 2026-07-18 12:30:00 +03:00
tess.rs feat(lwpolyline): render the wide-polyline band via the wire shader 2026-07-20 14:50:27 +03:00
tess_util.rs refactor(solid3d): drive curved-face sampling from one chord tolerance 2026-07-18 01:31:46 +03:00
tessellate.rs feat(lwpolyline): render the wide-polyline band via the wire shader 2026-07-20 14:50:27 +03:00
truck_tess.rs refactor: remove dead world_offset plumbing (RTE migration is complete) 2026-06-24 18:35:02 +03:00