cad-editor/src/scene
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven 1eb54ee8a3 perf(viewport): per-vp frustum + LOD cull in paper layout
`model_wires_for_viewport` previously passed `view_aabb: None` and
`wpp: None` to `tessellate_entity` — the assumption that paper-space
viewports were too small for culling to matter falls over the moment
the document carries 100k+ entities. Each frame re-tessellated the
full model through every floating viewport.

`wires_for_block_culled` grows two optional parameters
(`frozen_layers`, `anno_scale_override`) and now flips its
`world_offset` / `bg` / `anno` selection on `is_model_block` rather
than `current_layout`, so a paper-layout caller asking for the model
block still gets WCS-subtracted coordinates and the right annotation
scale.

`model_wires_for_viewport`:
- derives the viewport's frustum AABB from its (paper-zoom-invariant)
  camera + entity aspect — 25 % margin to match `view_world_aabb`,
- derives `wpp` from the on-paper pixel height the viewport currently
  occupies, so LOD stubs and zoom-adaptive curve sampling track the
  paper-zoom state,
- delegates everything else to `wires_for_block_culled` so block /
  layer / frozen-layer / curve-tolerance handling stays in one place.

`model_wires_for_viewport_arc` keys on `(geometry_epoch,
round(screen_height_px))` — sub-pixel jitter still hits the cache,
real paper-zoom steps invalidate. Hit-test / CPU-projection callers
pass `screen_height_px = 0.0` to get the no-LOD (full-fidelity) wire
list in their own cache slot.
2026-05-28 20:32:16 +03:00
..
pipeline fix(viewport): blit UV crop for off-canvas viewports 2026-05-28 12:15:00 +03:00
acad_to_truck.rs feat(mtext): integrate every inline format code in MTEXT renderer 2026-05-21 23:42:22 +03:00
block_cache.rs refactor(scene/mod.rs): pull entity-specific helpers into entities/ 2026-05-23 23:26:14 +03:00
camera.rs feat(viewport): tile-relative input + overlays in unified model 2026-05-28 09:45:19 +03:00
complex_lt.rs cargo fmt 2026-05-12 10:36:15 +03:00
cxf.rs feat(text): route every text-bearing entity through the run-aware MText pipeline 2026-05-22 05:53:01 +03:00
dispatch.rs first commit 2026-03-22 14:56:27 +03:00
grip.rs feat(viewport): tile-relative input + overlays in unified model 2026-05-28 09:45:19 +03:00
hatch_model.rs feat(hatch): rasterise PAT pattern lines for paper canvas + PDF 2026-05-22 06:52:20 +03:00
hatch_patterns.rs chore: rename H7CAD to Open CAD Studio 2026-05-23 17:16:15 +03:00
hit_test.rs fix(scene): keep low-LOD objects visible and selectable 2026-05-20 06:07:04 +03:00
image_model.rs perf(scene): extend viewport scissor to hatch / image / wipeout passes (Phase 1.4) 2026-05-15 23:13:16 +03:00
mesh_model.rs chore: drop dead scene/IO helpers + simplify XATTACH command state 2026-05-16 00:10:20 +03:00
mod.rs perf(viewport): per-vp frustum + LOD cull in paper layout 2026-05-28 20:32:16 +03:00
object.rs first commit 2026-03-22 14:56:27 +03:00
paper_canvas.rs refactor(viewport): unify paper into one shader, transparent clear 2026-05-28 10:03:01 +03:00
properties.rs refactor(entities): collocate ui_name + dxf_name into entities/names.rs 2026-05-26 17:18:47 +03:00
quadtree.rs chore(quadtree): silence dead-code warnings on planned API 2026-05-17 19:34:56 +03:00
render.rs perf(viewport): per-vp frustum + LOD cull in paper layout 2026-05-28 20:32:16 +03:00
selection.rs Split large files: ribbon widgets and scene render/selection 2026-03-22 23:07:43 +03:00
solid3d_tess.rs feat(scene): scale Solid3D / Region / Body tessellation by header FACETRES 2026-05-20 04:51:26 +03:00
tess_util.rs refactor(tess): rename LegacyTess → FallbackTess 2026-05-23 23:16:57 +03:00
tessellate.rs refactor(entities): Solid3D/Region/Body accessor trio in entities/solid3d.rs 2026-05-26 17:22:02 +03:00
transform.rs cargo fmt 2026-05-12 10:36:15 +03:00
truck_tess.rs perf(scene): zoom-adaptive arc tessellation for hatch boundary outlines 2026-05-16 07:55:46 +03:00
viewport_pane.rs refactor(viewport): unify paper into one shader, transparent clear 2026-05-28 10:03:01 +03:00
wire_model.rs cargo fmt 2026-05-12 10:36:15 +03:00