@realsee/dnalogel 4.0.0-webgpu.16 → 4.0.0-webgpu.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/floorplan.js +1 -1
  3. package/dist/index.js +18 -18
  4. package/dist/internal/{BasePlugin-89hE8Cux.js → BasePlugin-Cr_atQUC.js} +2 -2
  5. package/dist/internal/{BasePlugin-89hE8Cux.js.map → BasePlugin-Cr_atQUC.js.map} +1 -1
  6. package/dist/internal/BasePluginWithData-CIQpqYGe.js +7 -0
  7. package/dist/internal/{BasePluginWithData-BLOUilj_.js.map → BasePluginWithData-CIQpqYGe.js.map} +1 -1
  8. package/dist/internal/{Controller-Bt2czarX.js → Controller-5BvatEWD.js} +5 -4
  9. package/dist/internal/{Controller-Bt2czarX.js.map → Controller-5BvatEWD.js.map} +1 -1
  10. package/dist/internal/{Controller-CTQsxSIv.js → Controller-BDT5_ZNe.js} +2 -2
  11. package/dist/internal/{Controller-CTQsxSIv.js.map → Controller-BDT5_ZNe.js.map} +1 -1
  12. package/dist/internal/{Controller-B-10xO2H.js → Controller-Cq-mYkzT.js} +2 -2
  13. package/dist/internal/{Controller-B-10xO2H.js.map → Controller-Cq-mYkzT.js.map} +1 -1
  14. package/dist/internal/{Rectangle-CrP2ewnA.js → Rectangle-Z2T_h74M.js} +2 -2
  15. package/dist/internal/{Rectangle-CrP2ewnA.js.map → Rectangle-Z2T_h74M.js.map} +1 -1
  16. package/dist/internal/{Work-BeXbgDwp.js → Work-PKaUMpXd.js} +4 -4
  17. package/dist/internal/{Work-BeXbgDwp.js.map → Work-PKaUMpXd.js.map} +1 -1
  18. package/dist/internal/{area-maker-CPQF8Zvc.js → area-maker-BTGqxG6D.js} +2 -2
  19. package/dist/internal/{area-maker-CPQF8Zvc.js.map → area-maker-BTGqxG6D.js.map} +1 -1
  20. package/dist/internal/{controller-18q1jMVV.js → controller-B0hqJtoB.js} +3 -3
  21. package/dist/internal/{controller-18q1jMVV.js.map → controller-B0hqJtoB.js.map} +1 -1
  22. package/dist/internal/{cruise-CVIrFchH.js → cruise-BkSbiLjd.js} +2 -2
  23. package/dist/internal/{cruise-CVIrFchH.js.map → cruise-BkSbiLjd.js.map} +1 -1
  24. package/dist/internal/{current-pano-image-BaYriyS_.js → current-pano-image-DqyUFIP6.js} +2 -2
  25. package/dist/internal/{current-pano-image-BaYriyS_.js.map → current-pano-image-DqyUFIP6.js.map} +1 -1
  26. package/dist/internal/{floorplan-CofR5nkn.js → floorplan-Dkp7omYn.js} +2 -2
  27. package/dist/internal/{floorplan-CofR5nkn.js.map → floorplan-Dkp7omYn.js.map} +1 -1
  28. package/dist/internal/{measure-BEPx6Dxe.js → measure-KVSCjRnS.js} +2 -2
  29. package/dist/internal/{measure-BEPx6Dxe.js.map → measure-KVSCjRnS.js.map} +1 -1
  30. package/dist/internal/{measure-v2-sRY76hly.js → measure-v2-DqjBlSeF.js} +2 -2
  31. package/dist/internal/{measure-v2-sRY76hly.js.map → measure-v2-DqjBlSeF.js.map} +1 -1
  32. package/dist/internal/{model-maker-ggAsocXZ.js → model-maker-L5eqUgkU.js} +2 -2
  33. package/dist/internal/{model-maker-ggAsocXZ.js.map → model-maker-L5eqUgkU.js.map} +1 -1
  34. package/dist/internal/object3d-helper-CUhRRdCQ.js +7 -0
  35. package/dist/internal/{object3d-helper-DFamC2FE.js.map → object3d-helper-CUhRRdCQ.js.map} +1 -1
  36. package/dist/internal/{pano-compass-DGHhaCBJ.js → pano-compass-dmcsnFDQ.js} +2 -2
  37. package/dist/internal/{pano-compass-DGHhaCBJ.js.map → pano-compass-dmcsnFDQ.js.map} +1 -1
  38. package/dist/internal/{pano-door-label-CWY7Kxkk.js → pano-door-label-C0sd66vf.js} +2 -2
  39. package/dist/internal/{pano-door-label-CWY7Kxkk.js.map → pano-door-label-C0sd66vf.js.map} +1 -1
  40. package/dist/internal/{pano-measure-CQ_ZZzz5.js → pano-measure-NbB7-uVE.js} +2 -2
  41. package/dist/internal/{pano-measure-CQ_ZZzz5.js.map → pano-measure-NbB7-uVE.js.map} +1 -1
  42. package/dist/internal/{pano-measure-v2-CzOdP5Yv.js → pano-measure-v2-CRPvPs0e.js} +2 -2
  43. package/dist/internal/{pano-measure-v2-CzOdP5Yv.js.map → pano-measure-v2-CRPvPs0e.js.map} +1 -1
  44. package/dist/internal/pano-ruler-BW78w4lv.js +240 -0
  45. package/dist/internal/pano-ruler-BW78w4lv.js.map +1 -0
  46. package/dist/internal/{pano-tag-C6g7mXhw.js → pano-tag-j8ZPJDDK.js} +2 -2
  47. package/dist/internal/{pano-tag-C6g7mXhw.js.map → pano-tag-j8ZPJDDK.js.map} +1 -1
  48. package/dist/internal/{pano-video-DTbKV54W.js → pano-video-Dcspq4j1.js} +2 -2
  49. package/dist/internal/{pano-video-DTbKV54W.js.map → pano-video-Dcspq4j1.js.map} +1 -1
  50. package/dist/internal/{pipeline-CkYhFOhG.js → pipeline-CD2YkN5U.js} +2 -2
  51. package/dist/internal/{pipeline-CkYhFOhG.js.map → pipeline-CD2YkN5U.js.map} +1 -1
  52. package/dist/internal/{sculpt-rEvaT1IE.js → sculpt-CbEBEh9F.js} +2 -2
  53. package/dist/internal/{sculpt-rEvaT1IE.js.map → sculpt-CbEBEh9F.js.map} +1 -1
  54. package/dist/plugins/area-maker.js +1 -1
  55. package/dist/plugins/cruise.js +2 -2
  56. package/dist/plugins/current-pano-image.js +1 -1
  57. package/dist/plugins/guide-line.js +1 -1
  58. package/dist/plugins/measure-v2.js +1 -1
  59. package/dist/plugins/measure.js +2 -2
  60. package/dist/plugins/model-maker.js +1 -1
  61. package/dist/plugins/object3d-helper.js +2 -2
  62. package/dist/plugins/pano-compass.js +1 -1
  63. package/dist/plugins/pano-door-label.js +1 -1
  64. package/dist/plugins/pano-measure-v2.js +1 -1
  65. package/dist/plugins/pano-measure.js +1 -1
  66. package/dist/plugins/pano-ruler.js +1 -1
  67. package/dist/plugins/pano-tag.js +2 -2
  68. package/dist/plugins/pano-video.js +1 -1
  69. package/dist/plugins/pipeline.js +1 -1
  70. package/dist/plugins/sculpt.js +2 -2
  71. package/dist/types/PanoRulerPlugin/room-height.d.ts +19 -0
  72. package/package.json +1 -1
  73. package/dist/internal/BasePluginWithData-BLOUilj_.js +0 -7
  74. package/dist/internal/object3d-helper-DFamC2FE.js +0 -7
  75. package/dist/internal/pano-ruler-fzlUTkVu.js +0 -236
  76. package/dist/internal/pano-ruler-fzlUTkVu.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 4.0.0-webgpu.18
4
+
5
+ - 全景标尺按房间 ID 计算地面和屋顶高度,避免多个同名 `OTHER` 房间共享同一高度。
6
+ - 射线未命中时按“地面高度 + 2.7m”回退,修复无命中房间显示为 `4.2m` 的问题。
7
+ - 增加同名房间隔离、默认层高回退和无效射线过滤测试。
8
+
9
+ ## 4.0.0-webgpu.17
10
+
11
+ - 测量辅助线和面积预览先挂载到所属 Five 再更新标签,清空当前测量时先完成标签清理再移除几何体,避免 `Five not found`。
12
+ - 增加预览与清空标签归属回归,以及移动端连续端点拖动松手确认测试。
13
+
3
14
  ## 4.0.0-webgpu.16
4
15
 
5
16
  - 全景 V2 的 Edit/Mixed 清空均重置工作上下文;加载数据先结束旧会话,避免待保存线段混入导入结果。
package/dist/floorplan.js CHANGED
@@ -1 +1 @@
1
- export { l as FLOOR_PLAN_ATTACHED_TO, t as FLOOR_TYPE_MAP, i as FloorplanGuidePlugin, s as MapviewFloorplanPlugin, c as ModelFloorplanPlugin, a as PanoFloorplanRadarPlugin, n as ROOM_FETILE_TYPE_MAP, r as ROOM_TYPE_MAP, o as TopviewFloorplanPlugin } from "./internal/floorplan-CofR5nkn.js";
1
+ export { l as FLOOR_PLAN_ATTACHED_TO, t as FLOOR_TYPE_MAP, i as FloorplanGuidePlugin, s as MapviewFloorplanPlugin, c as ModelFloorplanPlugin, a as PanoFloorplanRadarPlugin, n as ROOM_FETILE_TYPE_MAP, r as ROOM_TYPE_MAP, o as TopviewFloorplanPlugin } from "./internal/floorplan-Dkp7omYn.js";
package/dist/index.js CHANGED
@@ -15,41 +15,41 @@ import { t as I } from "./internal/tween.esm-CJDtohfp.js";
15
15
  import { n as L, t as R } from "./internal/BetterTween-DmptqE8m.js";
16
16
  import { i as z, n as B, r as V, t as H } from "./internal/animationFrame-CacKXN8l.js";
17
17
  import { t as U } from "./internal/equal-BiDAilPV.js";
18
- import { n as W, r as G, t as K } from "./internal/area-maker-CPQF8Zvc.js";
18
+ import { n as W, r as G, t as K } from "./internal/area-maker-BTGqxG6D.js";
19
19
  import { a as q, c as se, i as ce, n as le, o as ue, r as de, s as fe, t as pe } from "./internal/boundingBox-CIqXgNXW.js";
20
20
  import { t as J } from "./internal/CSS3DRenderPlugin-BuQ7tgJe.js";
21
21
  import { t as me } from "./internal/lookObject-DuRab5wf.js";
22
22
  import { t as he } from "./internal/camera-movement-C1pwfMk_.js";
23
- import { r as ge } from "./internal/Work-BeXbgDwp.js";
24
- import { t as _e } from "./internal/object3d-helper-DFamC2FE.js";
25
- import { r as ve } from "./internal/sculpt-rEvaT1IE.js";
26
- import { t as ye } from "./internal/pano-tag-C6g7mXhw.js";
27
- import { n as be, t as xe } from "./internal/cruise-CVIrFchH.js";
28
- import { t as Se } from "./internal/current-pano-image-BaYriyS_.js";
23
+ import { r as ge } from "./internal/Work-PKaUMpXd.js";
24
+ import { t as _e } from "./internal/object3d-helper-CUhRRdCQ.js";
25
+ import { r as ve } from "./internal/sculpt-CbEBEh9F.js";
26
+ import { t as ye } from "./internal/pano-tag-j8ZPJDDK.js";
27
+ import { n as be, t as xe } from "./internal/cruise-BkSbiLjd.js";
28
+ import { t as Se } from "./internal/current-pano-image-DqyUFIP6.js";
29
29
  import { t as Ce } from "./internal/digital-performance-v2-Cspjjn51.js";
30
30
  import { t as we } from "./internal/digital-performance-B4DdvGbx.js";
31
31
  import { t as Te } from "./internal/item-label-DXeKI9sZ.js";
32
- import { t as Ee } from "./internal/measure-BEPx6Dxe.js";
32
+ import { t as Ee } from "./internal/measure-KVSCjRnS.js";
33
33
  import { t as De } from "./internal/model-chassis-compass-rfKL38y2.js";
34
34
  import { t as Oe } from "./internal/model-entry-door-guide-DnGTLY2s.js";
35
35
  import { t as ke } from "./internal/model-item-label-BwJ5Dgnp.js";
36
- import { t as Ae } from "./internal/model-maker-ggAsocXZ.js";
36
+ import { t as Ae } from "./internal/model-maker-L5eqUgkU.js";
37
37
  import { t as je } from "./internal/model-room-label-5NtOduW1.js";
38
38
  import { t as Me } from "./internal/model-tv-video-E71WR84A.js";
39
39
  import { t as Ne } from "./internal/model-view-BWUU0-uq.js";
40
- import { t as Pe } from "./internal/pano-compass-DGHhaCBJ.js";
40
+ import { t as Pe } from "./internal/pano-compass-dmcsnFDQ.js";
41
41
  import { t as Fe } from "./internal/pano-cursor-raycaster-DydRx7wS.js";
42
- import { t as Ie } from "./internal/pano-door-label-CWY7Kxkk.js";
43
- import { t as Le } from "./internal/pano-measure-CQ_ZZzz5.js";
42
+ import { t as Ie } from "./internal/pano-door-label-C0sd66vf.js";
43
+ import { t as Le } from "./internal/pano-measure-NbB7-uVE.js";
44
44
  import { t as Re } from "./internal/pano-ruler-pro-D9yTbHJz.js";
45
- import { t as ze } from "./internal/pano-ruler-fzlUTkVu.js";
45
+ import { t as ze } from "./internal/pano-ruler-BW78w4lv.js";
46
46
  import { t as Be } from "./internal/pano-spatial-tag-gwN_WDLJ.js";
47
- import { t as Ve } from "./internal/pano-video-DTbKV54W.js";
48
- import { t as He } from "./internal/pipeline-CkYhFOhG.js";
47
+ import { t as Ve } from "./internal/pano-video-Dcspq4j1.js";
48
+ import { t as He } from "./internal/pipeline-CD2YkN5U.js";
49
49
  import { t as Ue } from "./internal/components-Ed73WMB0.js";
50
- import { a as We, c as Ge, i as Y, o as Ke, s as qe } from "./internal/floorplan-CofR5nkn.js";
51
- import { t as Je } from "./internal/measure-v2-sRY76hly.js";
52
- import { t as Ye } from "./internal/pano-measure-v2-CzOdP5Yv.js";
50
+ import { a as We, c as Ge, i as Y, o as Ke, s as qe } from "./internal/floorplan-Dkp7omYn.js";
51
+ import { t as Je } from "./internal/measure-v2-DqjBlSeF.js";
52
+ import { t as Ye } from "./internal/pano-measure-v2-CRPvPs0e.js";
53
53
  import * as X from "three/webgpu";
54
54
  //#region src/shared-utils/three/getCoords.ts
55
55
  function Xe(e, t) {
@@ -3,7 +3,7 @@ import { t } from "./FiveUtil-DyTBRHpM.js";
3
3
  import { n } from "./defaultUrls-CfMtGzqM.js";
4
4
  //#region src/base/BasePlugin.ts
5
5
  var r = class {
6
- VERSION = "4.0.0-webgpu.16";
6
+ VERSION = "4.0.0-webgpu.18";
7
7
  NAME;
8
8
  five;
9
9
  workUtil;
@@ -30,4 +30,4 @@ var r = class {
30
30
  //#endregion
31
31
  export { r as t };
32
32
 
33
- //# sourceMappingURL=BasePlugin-89hE8Cux.js.map
33
+ //# sourceMappingURL=BasePlugin-Cr_atQUC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasePlugin-89hE8Cux.js","names":["Subscribe","Controller","workCode","DEFAULT_STATIC_PREFIX","five","FiveUtil","config"],"sources":["../../src/base/BasePlugin.ts"],"sourcesContent":["import type { PlaybackManager } from '../shared-utils/playback'\nimport type { Five } from '@realsee/five-webgpu'\nimport { Subscribe } from '../shared-utils/Subscribe'\nimport { DEFAULT_STATIC_PREFIX } from '../shared-utils'\nimport type { WorkUtil } from '../shared-utils/Utils/WorkUtil'\nimport { FiveUtil } from '../shared-utils/Utils/FiveUtil'\n\n/**\n * 基本属性字段\n */\ninterface State {\n /**\n * 插件是否启用\n */\n enabled: boolean\n\n /**\n * 插件UI是否展示\n */\n visible?: boolean\n\n /**\n * 插件的配置项\n */\n config?: unknown\n}\n\ninterface BaseOptions {\n /** 是否是用户行为 */\n userAction?: boolean\n [key: string]: unknown\n}\n\ninterface Config {\n mediaManager?: PlaybackManager\n /** 静态资源前缀 */\n staticPrefix?: string\n\n /** 国际化转换函数 */\n i18n?: (key: string) => string\n}\n\n/**\n * 插件基本事件\n */\n\ntype EventMap<PluginState> = {\n /**\n * 插件被销毁\n */\n dispose: () => void\n\n /**\n * 插件状态变化\n * @param params.state 最新的State\n * @param params.prevState 上一个State\n * @param params.userAction 是否是用户触发\n */\n stateChange: (params: { state: PluginState; prevState?: PluginState; userAction: boolean }) => void\n}\n\ndeclare const __DNALOGEL_VERSION__: string\n\n/**\n * plugin 的基本控制器\n */\nabstract class Controller<PluginState extends State = State, PluginEventMap extends EventMap<PluginState> = EventMap<PluginState>> {\n /**\n * @realsee/dnalogel 版本号\n */\n public readonly VERSION: string = __DNALOGEL_VERSION__\n\n public NAME?: string\n\n public five: Five\n\n public workUtil: WorkUtil\n\n public fiveUtil: FiveUtil\n\n public set workCode(workCode: string) {\n this.workUtil.workCode = workCode\n this.onWorkCodeChange()\n }\n\n public get workCode() {\n return this.workUtil.workCode\n }\n\n /**\n * @description: 插件事件钩子\n */\n public hooks: Subscribe<PluginEventMap> = new Subscribe()\n\n public readonly staticPrefix: string = DEFAULT_STATIC_PREFIX\n\n /**\n * 当前状态\n * @description\n * ```text\n * 可以通过 plugin.state 和 plugin.setState 来获取和设置。\n * 通过 state 设置后,plugin 会通过合适的动画运动来达到设置的效果。\n * 来迎合一些通过数据驱动的场景。\n * ```\n */\n public abstract state: PluginState\n\n public constructor(five: Five, config?: Config) {\n this.five = five\n this.fiveUtil = new FiveUtil(five)\n this.workUtil = this.fiveUtil.workUtil\n if (config?.staticPrefix) this.staticPrefix = config.staticPrefix\n }\n\n public updateFive(five: Five) {\n this.five = five\n this.fiveUtil.five = five\n this.workUtil.five = five\n }\n\n /**\n * 获取当前的插件状态,如果当初插件内存在需要通过动画变更的 state 值,则通过此方法可以得到中间状态\n */\n public getCurrentState() {\n return this.state\n }\n\n /**\n * 插件自身DOM添加到父容器\n * @param wrapper\n */\n public appendTo?(wrapper: Element): void\n\n /**\n * 展示UI\n */\n public show?(options?: BaseOptions): Promise<void> | void\n\n /**\n * 隐藏UI\n */\n public hide?(options?: BaseOptions): Promise<void> | void\n\n /**\n * 设置state\n * @param state 插件的目标状态\n * @param options 配置项\n */\n public setState?(state: Partial<PluginState>, options?: BaseOptions): void\n\n protected onWorkCodeChange() {}\n\n /**\n * 启用插件,让插件能够响应交互\n */\n public abstract enable(options?: BaseOptions): void\n\n /**\n * 禁用插件,让插件停止响应交互\n */\n public abstract disable(options?: BaseOptions): void\n\n /**\n * 插件进行销毁\n */\n public abstract dispose(): void\n}\n\nexport type { State, Config, EventMap, BaseOptions }\nexport { Controller }\n"],"mappings":";;;;AAkEA,IAAeC,IAAf,MAAmI;CAIjI,UAAA;CAEA;CAEA;CAEA;CAEA;CAEA,IAAW,SAAS,GAAkB;EAEpC,AADA,KAAK,SAAS,WAAWC,GACzB,KAAK,iBAAiB;CACxB;CAEA,IAAW,WAAW;EACpB,OAAO,KAAK,SAAS;CACvB;CAKA,QAA0C,IAAIF,EAAU;CAExD,eAAuCG;CAavC,YAAmB,GAAY,GAAiB;EAI9C,AAHA,KAAK,OAAOC,GACZ,KAAK,WAAW,IAAIC,EAASD,CAAI,GACjC,KAAK,WAAW,KAAK,SAAS,UAC1BE,GAAQ,iBAAc,KAAK,eAAeA,EAAO;CACvD;CAEA,WAAkB,GAAY;EAG5B,AAFA,KAAK,OAAOF,GACZ,KAAK,SAAS,OAAOA,GACrB,KAAK,SAAS,OAAOA;CACvB;CAKA,kBAAyB;EACvB,OAAO,KAAK;CACd;CAyBA,mBAA6B,CAAC;AAgBhC"}
1
+ {"version":3,"file":"BasePlugin-Cr_atQUC.js","names":["Subscribe","Controller","workCode","DEFAULT_STATIC_PREFIX","five","FiveUtil","config"],"sources":["../../src/base/BasePlugin.ts"],"sourcesContent":["import type { PlaybackManager } from '../shared-utils/playback'\nimport type { Five } from '@realsee/five-webgpu'\nimport { Subscribe } from '../shared-utils/Subscribe'\nimport { DEFAULT_STATIC_PREFIX } from '../shared-utils'\nimport type { WorkUtil } from '../shared-utils/Utils/WorkUtil'\nimport { FiveUtil } from '../shared-utils/Utils/FiveUtil'\n\n/**\n * 基本属性字段\n */\ninterface State {\n /**\n * 插件是否启用\n */\n enabled: boolean\n\n /**\n * 插件UI是否展示\n */\n visible?: boolean\n\n /**\n * 插件的配置项\n */\n config?: unknown\n}\n\ninterface BaseOptions {\n /** 是否是用户行为 */\n userAction?: boolean\n [key: string]: unknown\n}\n\ninterface Config {\n mediaManager?: PlaybackManager\n /** 静态资源前缀 */\n staticPrefix?: string\n\n /** 国际化转换函数 */\n i18n?: (key: string) => string\n}\n\n/**\n * 插件基本事件\n */\n\ntype EventMap<PluginState> = {\n /**\n * 插件被销毁\n */\n dispose: () => void\n\n /**\n * 插件状态变化\n * @param params.state 最新的State\n * @param params.prevState 上一个State\n * @param params.userAction 是否是用户触发\n */\n stateChange: (params: { state: PluginState; prevState?: PluginState; userAction: boolean }) => void\n}\n\ndeclare const __DNALOGEL_VERSION__: string\n\n/**\n * plugin 的基本控制器\n */\nabstract class Controller<PluginState extends State = State, PluginEventMap extends EventMap<PluginState> = EventMap<PluginState>> {\n /**\n * @realsee/dnalogel 版本号\n */\n public readonly VERSION: string = __DNALOGEL_VERSION__\n\n public NAME?: string\n\n public five: Five\n\n public workUtil: WorkUtil\n\n public fiveUtil: FiveUtil\n\n public set workCode(workCode: string) {\n this.workUtil.workCode = workCode\n this.onWorkCodeChange()\n }\n\n public get workCode() {\n return this.workUtil.workCode\n }\n\n /**\n * @description: 插件事件钩子\n */\n public hooks: Subscribe<PluginEventMap> = new Subscribe()\n\n public readonly staticPrefix: string = DEFAULT_STATIC_PREFIX\n\n /**\n * 当前状态\n * @description\n * ```text\n * 可以通过 plugin.state 和 plugin.setState 来获取和设置。\n * 通过 state 设置后,plugin 会通过合适的动画运动来达到设置的效果。\n * 来迎合一些通过数据驱动的场景。\n * ```\n */\n public abstract state: PluginState\n\n public constructor(five: Five, config?: Config) {\n this.five = five\n this.fiveUtil = new FiveUtil(five)\n this.workUtil = this.fiveUtil.workUtil\n if (config?.staticPrefix) this.staticPrefix = config.staticPrefix\n }\n\n public updateFive(five: Five) {\n this.five = five\n this.fiveUtil.five = five\n this.workUtil.five = five\n }\n\n /**\n * 获取当前的插件状态,如果当初插件内存在需要通过动画变更的 state 值,则通过此方法可以得到中间状态\n */\n public getCurrentState() {\n return this.state\n }\n\n /**\n * 插件自身DOM添加到父容器\n * @param wrapper\n */\n public appendTo?(wrapper: Element): void\n\n /**\n * 展示UI\n */\n public show?(options?: BaseOptions): Promise<void> | void\n\n /**\n * 隐藏UI\n */\n public hide?(options?: BaseOptions): Promise<void> | void\n\n /**\n * 设置state\n * @param state 插件的目标状态\n * @param options 配置项\n */\n public setState?(state: Partial<PluginState>, options?: BaseOptions): void\n\n protected onWorkCodeChange() {}\n\n /**\n * 启用插件,让插件能够响应交互\n */\n public abstract enable(options?: BaseOptions): void\n\n /**\n * 禁用插件,让插件停止响应交互\n */\n public abstract disable(options?: BaseOptions): void\n\n /**\n * 插件进行销毁\n */\n public abstract dispose(): void\n}\n\nexport type { State, Config, EventMap, BaseOptions }\nexport { Controller }\n"],"mappings":";;;;AAkEA,IAAeC,IAAf,MAAmI;CAIjI,UAAA;CAEA;CAEA;CAEA;CAEA;CAEA,IAAW,SAAS,GAAkB;EAEpC,AADA,KAAK,SAAS,WAAWC,GACzB,KAAK,iBAAiB;CACxB;CAEA,IAAW,WAAW;EACpB,OAAO,KAAK,SAAS;CACvB;CAKA,QAA0C,IAAIF,EAAU;CAExD,eAAuCG;CAavC,YAAmB,GAAY,GAAiB;EAI9C,AAHA,KAAK,OAAOC,GACZ,KAAK,WAAW,IAAIC,EAASD,CAAI,GACjC,KAAK,WAAW,KAAK,SAAS,UAC1BE,GAAQ,iBAAc,KAAK,eAAeA,EAAO;CACvD;CAEA,WAAkB,GAAY;EAG5B,AAFA,KAAK,OAAOF,GACZ,KAAK,SAAS,OAAOA,GACrB,KAAK,SAAS,OAAOA;CACvB;CAKA,kBAAyB;EACvB,OAAO,KAAK;CACd;CAyBA,mBAA6B,CAAC;AAgBhC"}
@@ -0,0 +1,7 @@
1
+ import { t as e } from "./BasePlugin-Cr_atQUC.js";
2
+ //#region src/base/BasePluginWithData.ts
3
+ var t = class extends e {};
4
+ //#endregion
5
+ export { t };
6
+
7
+ //# sourceMappingURL=BasePluginWithData-CIQpqYGe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasePluginWithData-BLOUilj_.js","names":["BasePlugin.Controller","Controller$1","Controller"],"sources":["../../src/base/BasePluginWithData.ts"],"sourcesContent":["import * as BasePlugin from './BasePlugin'\n\ntype State = BasePlugin.State\ntype Config = BasePlugin.Config\n\ninterface EventMap<PluginState, PluginData> extends BasePlugin.EventMap<PluginState> {\n /** 数据变更 */\n dataChange: (data: PluginData, prevData?: PluginData) => void\n /** 数据加载完成 */\n dataLoaded: (data: PluginData) => void\n}\n\nabstract class Controller<\n PluginState extends State,\n PluginEventMap extends EventMap<PluginState, PluginData>,\n PluginServerData,\n PluginData,\n> extends BasePlugin.Controller<PluginState, PluginEventMap> {\n protected abstract data?: PluginData\n\n /**\n * 加载插件依赖数据\n * @param serverData 插件数据\n * @param state 插件 State\n */\n public abstract load(serverData: PluginServerData, state?: PluginState, userAction?: boolean): Promise<void>\n}\n\nexport type { State, EventMap, Config }\nexport type { BaseOptions } from './BasePlugin'\nexport { Controller }\n"],"mappings":";;AAYA,IAAeE,IAAf,cAKUF,EAAmD,CAS7D"}
1
+ {"version":3,"file":"BasePluginWithData-CIQpqYGe.js","names":["BasePlugin.Controller","Controller$1","Controller"],"sources":["../../src/base/BasePluginWithData.ts"],"sourcesContent":["import * as BasePlugin from './BasePlugin'\n\ntype State = BasePlugin.State\ntype Config = BasePlugin.Config\n\ninterface EventMap<PluginState, PluginData> extends BasePlugin.EventMap<PluginState> {\n /** 数据变更 */\n dataChange: (data: PluginData, prevData?: PluginData) => void\n /** 数据加载完成 */\n dataLoaded: (data: PluginData) => void\n}\n\nabstract class Controller<\n PluginState extends State,\n PluginEventMap extends EventMap<PluginState, PluginData>,\n PluginServerData,\n PluginData,\n> extends BasePlugin.Controller<PluginState, PluginEventMap> {\n protected abstract data?: PluginData\n\n /**\n * 加载插件依赖数据\n * @param serverData 插件数据\n * @param state 插件 State\n */\n public abstract load(serverData: PluginServerData, state?: PluginState, userAction?: boolean): Promise<void>\n}\n\nexport type { State, EventMap, Config }\nexport type { BaseOptions } from './BasePlugin'\nexport { Controller }\n"],"mappings":";;AAYA,IAAeE,IAAf,cAKUF,EAAmD,CAS7D"}
@@ -527,6 +527,7 @@ var $ = class extends e {
527
527
  cssStyle: "pointer-events: none;"
528
528
  }), n.setPoints([e.points.at(-1), r.point]), r.isAdsorbed) a.removeFromParent(), o.removeFromParent(), s.removeFromParent(), c = null, l = !1;
529
529
  else {
530
+ this.group.addIfNotExists(a, o, s);
530
531
  let t = e.points.at(-1);
531
532
  if (Math.abs(r.point.y - t.y) > .2) {
532
533
  let e = new p.Vector3(r.point.x, t.y, r.point.z);
@@ -559,12 +560,11 @@ var $ = class extends e {
559
560
  cssStyle: "pointer-events: none; opacity: 0.5;"
560
561
  }), a.setPoints([t, e]), o.setPoints([e, r.point]), s.position.copy(e), c = e.clone(), l = !0;
561
562
  }
562
- this.group.addIfNotExists(a, o, s);
563
563
  }
564
564
  }
565
565
  if (e.points.length >= 2) {
566
566
  let t = [...e.points, r.point];
567
- m(t) ? (i.setStyle({ ...this.polygonStyle }), i.setPoints(t), this.group.addIfNotExists(i)) : i.removeFromParent();
567
+ m(t) ? (this.group.addIfNotExists(i), i.setStyle({ ...this.polygonStyle }), i.setPoints(t)) : i.removeFromParent();
568
568
  }
569
569
  }
570
570
  }, x = (t) => {
@@ -645,7 +645,8 @@ var $ = class extends e {
645
645
  this.emit("undo");
646
646
  };
647
647
  clearCurrentMeasure = () => {
648
- this.currentMeasureMesh?.removeFromParent(), this.currentMeasureMesh = null, this.pointSelector.disable();
648
+ let e = this.currentMeasureMesh;
649
+ this.pointSelector.disable(), e && (this.removeMeshEventListeners(e), e.removeFromParent(), this.publishInteraction(this.currentMeasureMesh ? "drawing" : "idle"));
649
650
  };
650
651
  clear = () => {
651
652
  this.cleanupPendingPress?.(), this.cancelRepositioning(), this.currentMeasureMesh = null, this.pointSelector.disable(), this.group.children.forEach(this.removeMeshEventListeners), this.group.removeChildren(), this.cursor.removeDeleteButton(), this.publishInteraction("idle");
@@ -955,4 +956,4 @@ var $ = class extends e {
955
956
  //#endregion
956
957
  export { m as n, $ as t };
957
958
 
958
- //# sourceMappingURL=Controller-Bt2czarX.js.map
959
+ //# sourceMappingURL=Controller-5BvatEWD.js.map