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 |
init(viewport: any): void |
||||
|
|
||||
destory(): 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