feat(b05): 3D 흑백 지형 · 등고선 처음 값 꺼짐 — 단추 · 뷰어 두 곳(176-2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QND7Co43B24zK2P937rdxt
This commit is contained in:
@@ -62,13 +62,13 @@ export function createViewControls(callbacks: ViewControlCallbacks): {
|
||||
toggleButton("지표면", true, callbacks.onSurfaceVisible),
|
||||
// 예상형상(2026-08-23): ON=공사 후 형상(기본), OFF=원지반 완전체.
|
||||
toggleButton("예상형상", true, callbacks.onCorridorVisible),
|
||||
toggleButton("등고선", true, callbacks.onContoursVisible),
|
||||
// 등고선 · 흑백 지형 기본 꺼짐(176-2) — 뷰어 처음 값과 맞춘다.
|
||||
toggleButton("등고선", false, callbacks.onContoursVisible),
|
||||
toggleButton("축 표시", false, callbacks.onAxesVisible),
|
||||
toggleButton(L("B05_Route_Field_StationLines"), true, callbacks.onStationLinesVisible),
|
||||
toggleButton(L("B05_Route_Field_StationLabels"), true, callbacks.onStationLabelsVisible),
|
||||
// 무지개 고도색이 헷갈릴 때 명도만 남기는 흑백 표시(2026-08-05 사용자 요청).
|
||||
// 기본 켜짐(2026-08-23 사용자 확정) — 예상형상 색이 지형 고도색에 묻히지 않는다.
|
||||
toggleButton("흑백 지형", true, callbacks.onSurfaceGrayscale),
|
||||
toggleButton("흑백 지형", false, callbacks.onSurfaceGrayscale),
|
||||
);
|
||||
// [3D 업데이트](2026-09-01 사용자 지시) — 계획선을 고칠 때마다 3D가 따라오면 조작이
|
||||
// 무거워, 갱신을 이 버튼으로 모았다. 편집이 쌓이면 is-pending으로 알리고, 누르는 동안은
|
||||
|
||||
@@ -182,6 +182,7 @@ export function createRouteViewer(): RouteViewer {
|
||||
return heightIndex.triangleCount > 0 ? heightIndex : null;
|
||||
}
|
||||
const contours = new THREE.Group();
|
||||
contours.visible = false; // 기본 꺼짐(176-2) — 패널 토글 처음 값과 맞춘다.
|
||||
scene.add(contours);
|
||||
let bounds: ModelBounds | null = null;
|
||||
let current: { projectId: string; modelId: number; smooth: boolean; interval: number } | null =
|
||||
@@ -386,8 +387,8 @@ export function createRouteViewer(): RouteViewer {
|
||||
|
||||
// 지표면 흑백 표시(2026-08-05 사용자 요청). 정점색 배열을 한 번 바꿔치기하는 것뿐이라
|
||||
// (원본은 색 버퍼 열쇠 `ORIGINAL_COLORS`에 보관, 재질·셰이더 교체 없음) 로딩·회전 속도에 영향이 없다.
|
||||
// 기본 흑백 지형(2026-08-23 사용자 확정) — 패널 토글 초기값과 맞춘다.
|
||||
let surfaceGrayscale = true;
|
||||
// 기본 꺼짐(176-2) — 패널 토글 초기값과 맞춘다.
|
||||
let surfaceGrayscale = false;
|
||||
function applySurfaceGrayscale(): void {
|
||||
[terrain, corridor.clipped()].forEach((target) => applyGrayscaleTo(target));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""PLAN 176-2 — B05 3D 흑백 지형 · 등고선 처음 값 false(단추 · 뷰어 두 곳 다)."""
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..")
|
||||
|
||||
|
||||
def _read(name):
|
||||
with open(os.path.join(ROOT, "B05_Profile", name), encoding="utf-8") as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
def test_panel_buttons_start_off():
|
||||
src = _read("B05_Profile_UI_Panel_View.ts")
|
||||
assert re.search(r'toggleButton\("등고선", false,', src)
|
||||
assert re.search(r'toggleButton\("흑백 지형", false,', src)
|
||||
|
||||
|
||||
def test_viewer_starts_off():
|
||||
src = _read("B05_Profile_UI_Viewer.ts")
|
||||
assert "let surfaceGrayscale = false;" in src
|
||||
# 등고선 그룹은 만들자마자 숨김(적재 때 선은 그대로 만들고 단추로 켬)
|
||||
assert re.search(
|
||||
r"const contours = new THREE\.Group\(\);\s*\n\s*contours\.visible = false;", src
|
||||
)
|
||||
Reference in New Issue
Block a user