원격 전체 통합: B07 CAD 도각 분리·유역도 정리·도면층 국문화 + 용화 실무문서 #5
@@ -144,17 +144,9 @@ def build_sheet_surface_model(
|
||||
stem = f"dtm_{SHEET_SOURCE_FILTER}"
|
||||
model_path = models_dir / f"{stem}.npz"
|
||||
preview_path = models_dir / f"{stem}_preview.glb"
|
||||
atomic_npz(
|
||||
model_path,
|
||||
x=x_coords,
|
||||
y=y_coords,
|
||||
z=z_grid,
|
||||
valid_mask=valid_grid,
|
||||
resolution=np.array([SHEET_SURFACE_GRID_M], np.float32),
|
||||
)
|
||||
|
||||
vertices, faces = _preview_mesh(x_coords, y_coords, z_grid, valid_grid)
|
||||
finite_z = z_grid[valid_grid]
|
||||
# bounds를 npz에 같이 넣는다 — 등고선 API가 이 값을 화면 원점으로 쓴다. 없으면
|
||||
# LAS structured.npz로 폴백해 메시(glb) 원점과 어긋난다(LAS 없는 설계는 아예 실패).
|
||||
bounds = np.array(
|
||||
[
|
||||
[x_coords[0], x_coords[-1]],
|
||||
@@ -162,6 +154,17 @@ def build_sheet_surface_model(
|
||||
[float(finite_z.min()), float(finite_z.max())],
|
||||
]
|
||||
)
|
||||
atomic_npz(
|
||||
model_path,
|
||||
x=x_coords,
|
||||
y=y_coords,
|
||||
z=z_grid,
|
||||
valid_mask=valid_grid,
|
||||
bounds=bounds,
|
||||
resolution=np.array([SHEET_SURFACE_GRID_M], np.float32),
|
||||
)
|
||||
|
||||
vertices, faces = _preview_mesh(x_coords, y_coords, z_grid, valid_grid)
|
||||
write_glb(preview_path, vertices, faces, bounds)
|
||||
|
||||
logger.info(
|
||||
|
||||
Reference in New Issue
Block a user