From 46c6a4ff07917beddc5a1e9f496bf14eb22c2a25 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Fri, 30 May 2025 17:13:32 +0800 Subject: [PATCH] =?UTF-8?q?Q=E7=82=B9=E4=BD=8D=E7=9A=84=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/model/itemType/ToolboxLine.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/model/itemType/ToolboxLine.ts b/src/model/itemType/ToolboxLine.ts index 74e00ff..3dd461f 100644 --- a/src/model/itemType/ToolboxLine.ts +++ b/src/model/itemType/ToolboxLine.ts @@ -59,6 +59,29 @@ export default class ToolboxLine extends Toolbox { } onMouseClicked(e: MouseEvent): THREE.Vector3 | undefined { + + const point = this.lastMovePosition + // 如果正式的点命中到同类型的节点上,则不添加新的点,只牵线到该点 + if (point) { + let catchPoint = null + const vv = this.itemType.pointArray.some(p => { + if (p.position.x === point.x && p.position.z === point.z) { + catchPoint = p + return true + } + }) + + if (vv && catchPoint) { + // 如果捕获到点,则将线条连接到该点 + if (this.startPoint) { + this.afterAddPoint(this.startPoint, catchPoint) + } + this.tempLine && this.viewport.scene.remove(this.tempLine) + this.tempLine = undefined + return + } + } + const r = super.onMouseClicked(e) if (!r) { return