fix(B04): 3D 카메라 맞춤에 계획노선을 포함한다

계획노선은 최고 표고 평면에 있어 지형 상자 위로 걸친다. 지형만 보고 카메라를
맞추면 노선이 프레임 밖으로 밀려 보이지 않는다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-01 14:52:15 +09:00
co-authored by Claude Opus 5
parent ba0b1a0c41
commit bc279dd360
@@ -417,10 +417,15 @@ export function createSurfaceTerrainViewer(): SurfaceTerrainViewer {
routeGroup.add(
new THREE.Line(new THREE.BufferGeometry().setFromPoints(vertices), material),
);
// 노선은 지형 로딩과 따로 도착한다. 지형이 이미 떠 있으면 노선까지 담도록 다시 맞춘다.
if (terrainMesh) fitCamera(terrainMesh);
}
const getFitParams = (object: THREE.Object3D) => {
const box = new THREE.Box3().setFromObject(object);
// 계획노선은 최고 표고 평면에 있어 지형 상자 위·밖으로 걸친다. 지형만 보고 맞추면
// 노선이 화면 밖으로 밀려 보이지 않는다 — 프레임에 같이 넣는다.
if (routeGroup.children.length > 0) box.expandByObject(routeGroup);
const center = box.getCenter(new THREE.Vector3());
const size = box.getSize(new THREE.Vector3());
const span = Math.max(size.x, size.y, size.z, 1);