diff --git a/B05_Profile/B05_Profile_UI_Corridor_Tin.ts b/B05_Profile/B05_Profile_UI_Corridor_Tin.ts index a5a4d8860..0c4e4b920 100644 --- a/B05_Profile/B05_Profile_UI_Corridor_Tin.ts +++ b/B05_Profile/B05_Profile_UI_Corridor_Tin.ts @@ -287,7 +287,9 @@ export function tinTerrain( let c = triangles[t + 2]; const cx = (pslg.x[a] + pslg.x[b] + pslg.x[c]) / 3; const cz = (pslg.z[a] + pslg.z[b] + pslg.z[c]) / 3; - if (removedGrid.find(cx, cz) < 0) continue; // 버린 자리 밖(볼록 껍질 채움) + // 버린 지형 자리 밖(볼록 껍질 채움)은 뺀다 — 설계 구역 안은 지형 빈 곳(DTM 결측) 위라도 남긴다. + const inDesign = outer.contains(cx, cz); + if (!inDesign && removedGrid.find(cx, cz) < 0) continue; if (road.contains({ x: cx, z: cz }) || holes.contains(cx, cz)) continue; // 위를 보게 감기(씬 Y-up) — 평면 (x, z) 에서 시계 방향이면 뒤집는다. const turn = @@ -296,7 +298,7 @@ export function tinTerrain( if (turn > 0) [b, c] = [c, b]; // 구역 — 설계 구역 안이면 꼬리표 다수결(없으면 높이 차 부호) · 밖이면 원지반. let zone = 0; - if (outer.contains(cx, cz)) { + if (inDesign) { let fill = 0; let cut = 0; [a, b, c].forEach((id) => {