Merge origin/master with current Pierzainer development

Preserve local abutment, cast-in-place rebar and compact header features alongside remote drawing, ground-link and quantity workspaces. Adapt drawing and takeoff consumers to generated solplate plans, retain current P1 regression coverage, and resolve bearing-detail annotation collisions.

Validation: 122 test files / 975 tests passed; production build passed; 10 browser integration checks passed.
This commit is contained in:
ypshim committed 2026-11-06 17:10:33 +09:00
commit f51865c57b
2645 files changed
+64918 -4910

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
import type {PierModel} from '../src/core/geometry';
/** Same bearing-body dimensions as src/view/scene.ts, from the generated solplate plan. */
export function bearingDimensions(model:PierModel){
const plans=model.blocks.map(b=>b.plan);
const uniform=(values:(number|undefined)[])=>values.length&&values.every(v=>v!=null&&Number.isFinite(v)&&v>0&&Math.abs(v-values[0]!)<1e-7)?values[0]!:null;
return {length:uniform(plans.map(p=>p?p.L/1000-.2:undefined)),width:uniform(plans.map(p=>p?p.W/1000-.2:undefined))};
}