Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1

This commit is contained in:
2026-11-01 12:06:01 +09:00
2 changed files with 16 additions and 1 deletions
@@ -124,6 +124,8 @@ export interface PlanMapEvents {
onMeasure: () => void;
/** 도구줄 끝 지형 칸(624-4 · 칩 + LAS 올리기 = `D03_PlanAnalysis_UI_LidarUpload`). */
terrain: HTMLElement;
/** 도구줄 「추천노선」 = 가이드 선 메뉴(636-2 · `D03_PlanAnalysis_UI_Guide`). */
recommend?: HTMLElement;
}
export interface PlanTools {
@@ -248,6 +250,7 @@ export function createPlanMap(events: PlanMapEvents): PlanMap {
slopes: markButton("slopes"),
measure: measureButton,
terrain: events.terrain,
recommend: events.recommend,
}),
});
const toolbar = tools.root;
+13 -1
View File
@@ -50,6 +50,7 @@ import {
type TerrainStart,
} from "./D03_PlanAnalysis_Api";
import { openPlan3d } from "./D03_PlanAnalysis_UI_3D";
import { createPlanGuide } from "./D03_PlanAnalysis_UI_Guide";
import { bindPlanInput, createPlanKit } from "./D03_PlanAnalysis_UI_Kit";
import { createPlanLayers } from "./D03_PlanAnalysis_UI_Layers";
import { createPlanTerrain } from "./D03_PlanAnalysis_UI_LidarUpload";
@@ -213,8 +214,15 @@ export async function renderD03PlanAnalysis(root: HTMLElement): Promise<void> {
work,
onChange: () => (void backdrop.reterrain(), refresh()),
});
// 가이드 추천선(636-2) — 지점 차례 · 지형 칩 원천 · 보기만
const guide = createPlanGuide({
points: () => points,
grid: () => terrain.surface(surface)?.grid ?? null,
redraw: () => map.redraw(),
});
const map = createPlanMap({
terrain: terrain.root,
recommend: guide.root,
onUndo: undo,
onRedo: redo,
on3d: open3d,
@@ -317,7 +325,10 @@ export async function renderD03PlanAnalysis(root: HTMLElement): Promise<void> {
/** 겹 차례 = 키트(바탕 겹 아래 · 재기 · 보기 가운데 = 고르기 위 · 핀 그림 · 우클릭 메뉴 맨 위). */
const layerList = (): PlanMapLayer[] =>
kit.layers(backdrop.layers, [...(measuring ? [measure.layer] : []), viewWatch]);
kit.layers(
[...backdrop.layers, guide.layer],
[...(measuring ? [measure.layer] : []), viewWatch],
);
/** 점들이 받은 범위 안인가. */
const inside = (list: Vertex[]): boolean =>
@@ -574,6 +585,7 @@ export async function renderD03PlanAnalysis(root: HTMLElement): Promise<void> {
heightAt: z,
layers: backdrop.state,
terrain: terrain.state,
guide: guide.state,
};
// 키 = 등록부(588-3 · 한글 자판도 자판 자리로) · 되돌리기 · 다시하기 · 재기 끔 = 키트 `onKey` 먼저
const onKey = (event: KeyboardEvent): void => {