diff --git a/src/designer/Viewport.ts b/src/designer/Viewport.ts index 04ddaa0..38cff37 100644 --- a/src/designer/Viewport.ts +++ b/src/designer/Viewport.ts @@ -13,7 +13,7 @@ import { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer' import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer' import { getAllItemTypes } from '@/runtime/DefineItemType.ts' import type { ItemTypeDefineOption } from '@/model/itemType/ItemTypeDefine.ts' -import type ItemTypeBaseToolbox from '@/model/itemType/ItemTypeBaseToolbox.ts' +import type Toolbox from '@/model/itemType/Toolbox.ts' /** * 编辑器对象 @@ -33,11 +33,11 @@ export default class Viewport { dragControl: EsDragControls animationFrameId: any = null - currentTool: ItemTypeBaseToolbox | null = null + currentTool: Toolbox | null = null tools: ITool[] = [ new MouseMoveInspect() ] - toolbox: Record = {} + toolbox: Record = {} /** * 监听窗口大小变化 diff --git a/src/model/itemType/ItemTypeBase.ts b/src/model/itemType/ItemType.ts similarity index 88% rename from src/model/itemType/ItemTypeBase.ts rename to src/model/itemType/ItemType.ts index e921386..aa8dfeb 100644 --- a/src/model/itemType/ItemTypeBase.ts +++ b/src/model/itemType/ItemType.ts @@ -1,11 +1,10 @@ -import { type Object3D } from 'three' +import * as THREE from 'three' import type WorldModel from '@/model/WorldModel.ts' import type { ItemJson, ItemTypeDefineOption } from '@/model/itemType/ItemTypeDefine.ts' -import * as THREE from 'three' import type Viewport from '@/designer/Viewport.ts' -import type ItemTypeBaseToolbox from '@/model/itemType/ItemTypeBaseToolbox.ts' +import type Toolbox from '@/model/itemType/Toolbox.ts' -export default abstract class ItemTypeBase { +export default abstract class ItemType { /** * 所有点的数组 @@ -25,7 +24,7 @@ export default abstract class ItemTypeBase { abstract loadFromJson(item: ItemJson): undefined | THREE.Object3D - abstract createToolbox(viewport: Viewport): ItemTypeBaseToolbox + abstract createToolbox(viewport: Viewport): Toolbox abstract getDefaultScale(): THREE.Vector3 diff --git a/src/model/itemType/ItemTypeDefine.ts b/src/model/itemType/ItemTypeDefine.ts index 44d9d7b..fcfa569 100644 --- a/src/model/itemType/ItemTypeDefine.ts +++ b/src/model/itemType/ItemTypeDefine.ts @@ -1,4 +1,4 @@ -import type ItemTypeBase from '@/model/itemType/ItemTypeBase.ts' +import type ItemType from '@/model/itemType/ItemType.ts' export type ActionType = /** @@ -22,7 +22,7 @@ export interface ItemTypeDefineOption { name: string label: string actionType: ActionType - clazz: ItemTypeBase + clazz: ItemType } /** diff --git a/src/model/itemType/ItemTypeLineBase.ts b/src/model/itemType/ItemTypeLine.ts similarity index 98% rename from src/model/itemType/ItemTypeLineBase.ts rename to src/model/itemType/ItemTypeLine.ts index 2f49dd6..1237957 100644 --- a/src/model/itemType/ItemTypeLineBase.ts +++ b/src/model/itemType/ItemTypeLine.ts @@ -1,5 +1,5 @@ import * as THREE from 'three' -import ItemTypeBase from '@/model/itemType/ItemTypeBase.ts' +import ItemType from '@/model/itemType/ItemType.ts' import type { ItemJson } from '@/model/itemType/ItemTypeDefine.ts' import type WorldModel from '@/model/WorldModel.ts' import type Viewport from '@/designer/Viewport.ts' @@ -11,7 +11,7 @@ let pmFn * ILineType 接口定义了线类型的基本方法 * 用于创建点和线, 以及处理拖拽事件, 以及交互事件 */ -export default abstract class ItemTypeLineBase extends ItemTypeBase { +export default abstract class ItemTypeLine extends ItemType { private relationPoints: THREE.Mesh[] = [] private dragViewport: Viewport | undefined private dragPoint: THREE.Mesh | undefined diff --git a/src/model/itemType/ItemTypeBaseToolbox.ts b/src/model/itemType/Toolbox.ts similarity index 96% rename from src/model/itemType/ItemTypeBaseToolbox.ts rename to src/model/itemType/Toolbox.ts index eb14d7d..89e0c0f 100644 --- a/src/model/itemType/ItemTypeBaseToolbox.ts +++ b/src/model/itemType/Toolbox.ts @@ -1,6 +1,6 @@ import * as THREE from 'three' import type Viewport from '@/designer/Viewport.ts' -import type ItemTypeBase from '@/model/itemType/ItemTypeBase.ts' +import type ItemType from '@/model/itemType/ItemType.ts' import type { ItemJson } from '@/model/itemType/ItemTypeDefine.ts' let pdFn, pmFn, puFn @@ -8,7 +8,7 @@ let pdFn, pmFn, puFn /** * 单元类型工具箱 */ -export default abstract class ItemTypeBaseToolbox { +export default abstract class Toolbox { /** * 测量工具所在的视图窗口,从这里可以取到 所有 Three.js 相关的对象. * 比如: @@ -60,7 +60,7 @@ export default abstract class ItemTypeBaseToolbox { _itemType: any - get itemType(): ItemTypeBase { + get itemType(): ItemType { return this._itemType } @@ -80,7 +80,7 @@ export default abstract class ItemTypeBaseToolbox { /** * 单元工具初始化 */ - init(viewport: any, itemType: ItemTypeBase): void { + init(viewport: any, itemType: ItemType): void { this.viewport = viewport this.canvas = this.viewport.renderer.domElement as HTMLCanvasElement this._itemType = itemType @@ -156,7 +156,7 @@ export default abstract class ItemTypeBaseToolbox { obj.name = this.getTempPointName() obj.userData = { mode: this.mode, - type: ItemTypeBaseToolbox.TMP_TYPE + type: Toolbox.TMP_TYPE } return obj } diff --git a/src/model/itemType/ItemTypeLineToolbox.ts b/src/model/itemType/ToolboxLine.ts similarity index 81% rename from src/model/itemType/ItemTypeLineToolbox.ts rename to src/model/itemType/ToolboxLine.ts index c6d783e..a399568 100644 --- a/src/model/itemType/ItemTypeLineToolbox.ts +++ b/src/model/itemType/ToolboxLine.ts @@ -1,20 +1,17 @@ import * as THREE from 'three' -import type { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer' -import ItemTypeBaseToolbox from '@/model/itemType/ItemTypeBaseToolbox.ts' -import type ItemTypeLineBase from '@/model/itemType/ItemTypeLineBase.ts' - -let pdFn, pmFn, puFn +import Toolbox from '@/model/itemType/Toolbox.ts' +import type ItemTypeLine from '@/model/itemType/ItemTypeLine.ts' /** * 线条工具箱 */ -export default class ItemTypeLineToolbox extends ItemTypeBaseToolbox { +export default class ToolboxLine extends Toolbox { /** * 临时线条 */ tempLine?: THREE.Line - get itemType(): ItemTypeLineBase { + get itemType(): ItemTypeLine { return this._itemType } diff --git a/src/model/itemType/measure/Measure.ts b/src/model/itemType/measure/Measure.ts index 91ca50a..38fd467 100644 --- a/src/model/itemType/measure/Measure.ts +++ b/src/model/itemType/measure/Measure.ts @@ -1,16 +1,16 @@ import * as THREE from 'three' import { Material } from 'three' -import ItemTypeLineBase from '@/model/itemType/ItemTypeLineBase.ts' +import ItemTypeLine from '@/model/itemType/ItemTypeLine.ts' import WorldModel from '@/model/WorldModel.ts' import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer' import { numberToString } from '@/utils/webutils.ts' import { findObject3DById } from '@/model/ModelUtils.ts' import Viewport from '@/designer/Viewport.ts' -import ItemTypeLineToolbox from '@/model/itemType/ItemTypeLineToolbox.ts' +import ToolboxLine from '@/model/itemType/ToolboxLine.ts' import MeasureToolbox from '@/model/itemType/measure/MeasureToolbox.ts' -import ItemTypeBaseToolbox from '@/model/itemType/ItemTypeBaseToolbox.ts' +import Toolbox from '@/model/itemType/Toolbox.ts' -export default class Measure extends ItemTypeLineBase { +export default class Measure extends ItemTypeLine { /** * 当前测绘内容组, 所有测量点、线、标签都在这个组中. 但不包括临时点、线 */ @@ -59,7 +59,7 @@ export default class Measure extends ItemTypeLineBase { return [] } - createToolbox(viewport: Viewport): ItemTypeLineToolbox { + createToolbox(viewport: Viewport): ToolboxLine { const toolbox = new MeasureToolbox(this.group) toolbox.init(viewport, this) return toolbox @@ -178,7 +178,7 @@ export default class Measure extends ItemTypeLineBase { const obj = new CSS2DObject(div) obj.name = MeasureToolbox.TMP_LABEL_NAME obj.userData = { - type: ItemTypeBaseToolbox.TMP_TYPE + type: Toolbox.TMP_TYPE } return obj } diff --git a/src/model/itemType/measure/MeasureToolbox.ts b/src/model/itemType/measure/MeasureToolbox.ts index 59394a6..aa5d135 100644 --- a/src/model/itemType/measure/MeasureToolbox.ts +++ b/src/model/itemType/measure/MeasureToolbox.ts @@ -1,14 +1,14 @@ import * as THREE from 'three' -import ItemTypeLineToolbox from '@/model/itemType/ItemTypeLineToolbox.ts' +import ToolboxLine from '@/model/itemType/ToolboxLine.ts' import { numberToString } from '@/utils/webutils.ts' import type Measure from './Measure.ts' import type { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer' -import ItemTypeBaseToolbox from '@/model/itemType/ItemTypeBaseToolbox.ts' +import Toolbox from '@/model/itemType/Toolbox.ts' /** * 测量工具箱,用于处理测量相关的操作 */ -export default class MeasureToolbox extends ItemTypeLineToolbox { +export default class MeasureToolbox extends ToolboxLine { group: THREE.Group @@ -71,7 +71,7 @@ export default class MeasureToolbox extends ItemTypeLineToolbox { this.tempLabel.name = MeasureToolbox.TMP_LABEL_NAME this.tempLabel.userData = { mode: this.mode, - type: ItemTypeBaseToolbox.TMP_TYPE + type: Toolbox.TMP_TYPE } this.viewport.scene.add(this.tempLabel) }