Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user