feat(view): ③ rebar view at 50% for members, ground and blinding; deeper rebar colour

On ③ the members, the ground and the blinding concrete are drawn at half opacity without depth writes, so the bars show
through. Outside ③ each part returns to its own opacity. Rebar colours are shaded to 0.8 and slightly glossier so they
read through the members. Approved 2026-10-23.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-23 09:24:53 +09:00
1 parent e0e220f35c
commit 398fa997e2
4 files changed
+52 -3

No files matched your search

+3 -1
View File
@@ -19,7 +19,7 @@ import { choose, defaultSummary, isSelectable, SHAPE_GROUPS, UNDEFINED_REASON, t
import { parseProject, SCHEMA_VERSION, serializeProject, type ProjectFile, type ProjectInfo } from './core/project';
import { clearBackup, readBackup, writeBackup, type Backup } from './view/backup';
import type { Issue, PierInput, PierType } from './core/types';
import { buildPierScene, viewPosition, type PartName, type PierScene, type ViewKind } from './view/scene';
import { buildPierScene, setRebarView, viewPosition, type PartName, type PierScene, type ViewKind } from './view/scene';
/** One pier as shown in the list. `checked` is the multi-select state (시안 ①). */
interface Pier extends PierValues {
@@ -238,6 +238,7 @@ function setupScene(): void {
scene.parts[key].visible = state.visible[key];
}
world.add(scene.root);
setRebarView(scene, state.stage === 'rebar');
state.scene = scene;
setView(state.view);
}
@@ -746,6 +747,7 @@ function wireRebarPicking(): void {
function setStage(stage: 'shape' | 'plan' | 'rebar'): void {
state.stage = stage;
if (state.scene) setRebarView(state.scene, stage === 'rebar');
$<HTMLElement>('view-shape').hidden = stage !== 'shape';
$<HTMLElement>('view-plan').hidden = stage !== 'plan';
$<HTMLElement>('view-rebar').hidden = stage !== 'rebar';