feat(rebar): select several bars on ③ and show only the selected ones (선택만 보기)

The 철근표 has a selection checkbox per row. Select-all / clear and 선택만 보기 sit above the table. In 선택만 보기 the other
bars are hidden in 3D and the members stay at 50% for context. A 3D click or an alert [보기] selects one bar; the
selection clears when the member tab or the pier changes. The selection is screen state and is not saved to the project.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-23 09:57:04 +09:00
1 parent b3533b69df
commit f398b4341f
4 files changed
+78 -24

No files matched your search

+13 -3
View File
@@ -74,15 +74,25 @@ describe('3D 철근 모델 (③)', () => {
expect(rb.byName.get('띠철근 커플러')!.length).toBe(35);
});
it('highlight dims the other bars and keeps the chosen one', () => {
rb.highlight('P3');
it('show dims the other bars and keeps the chosen one', () => {
rb.show(new Set(['P3']), false);
const p3 = (rb.byName.get('P3')![0].material as THREE.MeshStandardMaterial).opacity;
const c1 = (rb.byName.get('C1')![0].material as THREE.MeshStandardMaterial).opacity;
expect(p3).toBe(1);
expect(c1).toBeLessThan(1);
rb.highlight(null);
rb.show(null, false);
expect((rb.byName.get('C1')![0].material as THREE.MeshStandardMaterial).opacity).toBe(1);
});
it('선택만 보기: with isolate on, only the selected names stay visible; several names can be selected', () => {
rb.show(new Set(['P3', 'C1']), true);
expect(rb.byName.get('P3')!.every((m) => m.visible)).toBe(true);
expect(rb.byName.get('C1')!.every((m) => m.visible)).toBe(true);
expect(rb.byName.get('C9')!.every((m) => !m.visible)).toBe(true);
rb.show(null, true);
expect(rb.byName.get('C9')!.every((m) => m.visible)).toBe(true);
rb.show(null, false);
});
});
describe('받침블럭 S1 · S2 in 3D (받침블럭철근.md §3–5)', () => {