8 changed files with 105 additions and 26 deletions
@ -0,0 +1,11 @@ |
|||
export interface ITools { |
|||
/** |
|||
* 开始运行工具, 进入 cursor 状态 |
|||
*/ |
|||
init(viewport: any): void |
|||
|
|||
/** |
|||
* 停止运行工具, 鼠标点击右键, 或者 ESC 退出 cursor 状态 |
|||
*/ |
|||
destory(): void |
|||
} |
|||
@ -1,4 +1,4 @@ |
|||
export interface ITools { |
|||
export interface ITool { |
|||
init(viewport: any): void |
|||
|
|||
destory(): void |
|||
@ -0,0 +1,29 @@ |
|||
import type { ITool } from '@/designer/model2DEditor/tools/ITool.ts' |
|||
import Viewport from '@/designer/Viewport.ts' |
|||
|
|||
export default class RulerInspect implements ITool { |
|||
viewport: Viewport |
|||
|
|||
mouseMove(event: MouseEvent) { |
|||
const viewer = document.querySelector('.viewer') as HTMLElement |
|||
const rect = viewer.getBoundingClientRect() |
|||
|
|||
const mouseX = event.clientX - rect.left |
|||
const mouseY = event.clientY - rect.top |
|||
|
|||
console.log(`Mouse Position: (${mouseX}, ${mouseY})`) |
|||
} |
|||
|
|||
init(viewport: Viewport) { |
|||
this.viewport = viewport |
|||
const viewerDom = this.viewport.viewerDom |
|||
|
|||
system.msg('进入鼠标测距模式') |
|||
} |
|||
|
|||
destory(): void { |
|||
const viewerDom = this.viewport.viewerDom |
|||
viewerDom.removeEventListener('mousemove', this.mouseMove) |
|||
system.msg('退出鼠标测距模式') |
|||
} |
|||
} |
|||
Loading…
Reference in new issue