@realsee/dnalogel 2.0.0-alpha.5 → 2.0.0-alpha.8

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 (141) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +44 -5
  3. package/dist/dnalogel.cjs.js +7 -2
  4. package/dist/dnalogel.es.js +3675 -191
  5. package/dist/dnalogel.umd.js +7 -2
  6. package/dist/style.css +1 -1
  7. package/docs/.nojekyll +1 -0
  8. package/docs/assets/highlight.css +78 -0
  9. package/docs/assets/icons.css +1043 -0
  10. package/docs/assets/icons.png +0 -0
  11. package/docs/assets/icons@2x.png +0 -0
  12. package/docs/assets/main.js +52 -0
  13. package/docs/assets/search.js +1 -0
  14. package/docs/assets/style.css +1413 -0
  15. package/docs/assets/widgets.png +0 -0
  16. package/docs/assets/widgets@2x.png +0 -0
  17. package/docs/classes/ModelRoomLabelController.html +20 -0
  18. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -0
  19. package/docs/enums/ModelFloorplanErrorType.html +1 -0
  20. package/docs/index.html +43 -0
  21. package/docs/interfaces/LineJson.html +1 -0
  22. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -0
  23. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -0
  24. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -0
  25. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -0
  26. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -0
  27. package/docs/interfaces/ModelFloorplanParameterType.html +1 -0
  28. package/docs/interfaces/ModelFloorplanViewEvent.html +5 -0
  29. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -0
  30. package/docs/interfaces/PanoCompassPluginData.html +1 -0
  31. package/docs/interfaces/PanoCompassPluginParameterType.html +1 -0
  32. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +11 -0
  33. package/docs/interfaces/PanoRulerPluginExportType.html +1 -0
  34. package/docs/interfaces/PanoRulerPluginOptions.html +1 -0
  35. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -0
  36. package/docs/interfaces/PointJson.html +1 -0
  37. package/docs/interfaces/RoomLabel.html +13 -0
  38. package/docs/interfaces/TopviewFloorplanPluginParameterType.html +1 -0
  39. package/docs/modules.html +26 -0
  40. package/libs/CSS3DRenderPlugin/index.js +1 -1
  41. package/libs/ModelEntryDoorGuidePlugin/index.js +1 -0
  42. package/libs/ModelViewPlugin/index.js +6 -6
  43. package/libs/PanoCompassPlugin/Assets/roomInfoIcon.d.ts +1 -0
  44. package/libs/PanoCompassPlugin/Assets/roomInfoIcon.js +1 -0
  45. package/libs/PanoCompassPlugin/getRoomInfoInstance.d.ts +8 -0
  46. package/libs/PanoCompassPlugin/getRoomInfoInstance.js +48 -0
  47. package/libs/PanoCompassPlugin/index.d.ts +29 -3
  48. package/libs/PanoCompassPlugin/index.js +126 -44
  49. package/libs/PanoMeasurePlugin/Controller/BaseController.d.ts +36 -0
  50. package/libs/PanoMeasurePlugin/Controller/BaseController.js +69 -0
  51. package/libs/PanoMeasurePlugin/Controller/EditController.d.ts +52 -0
  52. package/libs/PanoMeasurePlugin/Controller/EditController.js +216 -0
  53. package/libs/PanoMeasurePlugin/Controller/ShortcutKeyController.d.ts +12 -0
  54. package/libs/PanoMeasurePlugin/Controller/ShortcutKeyController.js +44 -0
  55. package/libs/PanoMeasurePlugin/Controller/WatchController.d.ts +25 -0
  56. package/libs/PanoMeasurePlugin/Controller/WatchController.js +223 -0
  57. package/libs/PanoMeasurePlugin/Controller/index.d.ts +61 -0
  58. package/libs/PanoMeasurePlugin/Controller/index.js +176 -0
  59. package/libs/PanoMeasurePlugin/Model/index.d.ts +38 -0
  60. package/libs/PanoMeasurePlugin/Model/index.js +114 -0
  61. package/libs/PanoMeasurePlugin/Model/line.d.ts +30 -0
  62. package/libs/PanoMeasurePlugin/Model/line.js +64 -0
  63. package/libs/PanoMeasurePlugin/Model/point.d.ts +16 -0
  64. package/libs/PanoMeasurePlugin/Model/point.js +28 -0
  65. package/libs/PanoMeasurePlugin/Model/polyline.d.ts +16 -0
  66. package/libs/PanoMeasurePlugin/Model/polyline.js +48 -0
  67. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.d.ts +2 -0
  68. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.js +15 -0
  69. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.d.ts +2 -0
  70. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.js +2 -0
  71. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.d.ts +2 -0
  72. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.js +2 -0
  73. package/libs/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +22 -0
  74. package/libs/PanoMeasurePlugin/Modules/DeleteDom/index.js +108 -0
  75. package/libs/PanoMeasurePlugin/Modules/FiveHelper.d.ts +11 -0
  76. package/libs/PanoMeasurePlugin/Modules/FiveHelper.js +33 -0
  77. package/libs/PanoMeasurePlugin/Modules/GuideController.d.ts +18 -0
  78. package/libs/PanoMeasurePlugin/Modules/GuideController.js +75 -0
  79. package/libs/PanoMeasurePlugin/Modules/Magnifier.d.ts +24 -0
  80. package/libs/PanoMeasurePlugin/Modules/Magnifier.js +103 -0
  81. package/libs/PanoMeasurePlugin/Modules/UIController/HTML.d.ts +6 -0
  82. package/libs/PanoMeasurePlugin/Modules/UIController/HTML.js +117 -0
  83. package/libs/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +18 -0
  84. package/libs/PanoMeasurePlugin/Modules/UIController/MainBtnController.js +102 -0
  85. package/libs/PanoMeasurePlugin/Modules/UIController/Revoke/index.d.ts +12 -0
  86. package/libs/PanoMeasurePlugin/Modules/UIController/Revoke/index.js +35 -0
  87. package/libs/PanoMeasurePlugin/Modules/UIController/index.d.ts +16 -0
  88. package/libs/PanoMeasurePlugin/Modules/UIController/index.js +69 -0
  89. package/libs/PanoMeasurePlugin/Modules/UIController/style.d.ts +17 -0
  90. package/libs/PanoMeasurePlugin/Modules/UIController/style.js +78 -0
  91. package/libs/PanoMeasurePlugin/index.d.ts +7 -0
  92. package/libs/PanoMeasurePlugin/index.js +5 -0
  93. package/libs/PanoMeasurePlugin/typings/data.d.ts +28 -0
  94. package/libs/PanoMeasurePlugin/typings/data.js +1 -0
  95. package/libs/PanoMeasurePlugin/typings/event.type.d.ts +28 -0
  96. package/libs/PanoMeasurePlugin/typings/event.type.js +1 -0
  97. package/libs/PanoMeasurePlugin/typings/utils.type.d.ts +1 -0
  98. package/libs/PanoMeasurePlugin/typings/utils.type.js +1 -0
  99. package/libs/PanoMeasurePlugin/utils/clearGroup.d.ts +2 -0
  100. package/libs/PanoMeasurePlugin/utils/clearGroup.js +3 -0
  101. package/libs/PanoMeasurePlugin/utils/constants.d.ts +4 -0
  102. package/libs/PanoMeasurePlugin/utils/constants.js +31 -0
  103. package/libs/PanoMeasurePlugin/utils/distanceDom.d.ts +28 -0
  104. package/libs/PanoMeasurePlugin/utils/distanceDom.js +114 -0
  105. package/libs/PanoMeasurePlugin/utils/findAssociatedLines.d.ts +2 -0
  106. package/libs/PanoMeasurePlugin/utils/findAssociatedLines.js +21 -0
  107. package/libs/PanoMeasurePlugin/utils/findClosestPoint.d.ts +10 -0
  108. package/libs/PanoMeasurePlugin/utils/findClosestPoint.js +27 -0
  109. package/libs/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +4 -0
  110. package/libs/PanoMeasurePlugin/utils/getIntersectionFromEvent.js +9 -0
  111. package/libs/PanoMeasurePlugin/utils/getPointFromHammerEvent.d.ts +10 -0
  112. package/libs/PanoMeasurePlugin/utils/getPointFromHammerEvent.js +14 -0
  113. package/libs/PanoMeasurePlugin/utils/ironbox.d.ts +1 -0
  114. package/libs/PanoMeasurePlugin/utils/ironbox.js +1 -0
  115. package/libs/PanoMeasurePlugin/utils/isNDCPointInScreen.d.ts +2 -0
  116. package/libs/PanoMeasurePlugin/utils/isNDCPointInScreen.js +6 -0
  117. package/libs/PanoMeasurePlugin/utils/line.d.ts +17 -0
  118. package/libs/PanoMeasurePlugin/utils/line.js +32 -0
  119. package/libs/PanoMeasurePlugin/utils/math.d.ts +17 -0
  120. package/libs/PanoMeasurePlugin/utils/math.js +44 -0
  121. package/libs/PanoMeasurePlugin/utils/mouseGroup.d.ts +2 -0
  122. package/libs/PanoMeasurePlugin/utils/mouseGroup.js +21 -0
  123. package/libs/PanoMeasurePlugin/utils/ndc2Screen.d.ts +5 -0
  124. package/libs/PanoMeasurePlugin/utils/ndc2Screen.js +6 -0
  125. package/libs/PanoRulerPlugin/index.js +1 -0
  126. package/libs/PanoRulerPlugin/style.d.ts +1 -1
  127. package/libs/PanoRulerPlugin/style.js +1 -0
  128. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte +3 -3
  129. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte.map +1 -1
  130. package/libs/floorplan/ModelFloorplanPlugin/Controller.d.ts +2 -0
  131. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +3 -2
  132. package/libs/floorplan/TopviewFloorplanPlugin/Controller.d.ts +2 -0
  133. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +4 -3
  134. package/libs/floorplan/constant.d.ts +5 -0
  135. package/libs/floorplan/constant.js +6 -0
  136. package/libs/floorplan/typings/floorplanServerData.d.ts +4 -0
  137. package/libs/index.d.ts +3 -0
  138. package/libs/index.js +3 -0
  139. package/libs/shared-utils/getPxmm.d.ts +6 -1
  140. package/libs/shared-utils/getPxmm.js +26 -12
  141. package/package.json +4 -3
@@ -1,6 +1,7 @@
1
1
  import type { Five } from '@realsee/five';
2
2
  import type { FloorplanServerData } from '../typings/floorplanServerData';
3
3
  import type { FloorplanRoomItem } from '../typings/floorplanData';
4
+ import { FLOOR_PLAN_ATTACHED_TO } from '../constant';
4
5
  export interface TopviewFloorplanPluginParameterType {
5
6
  selector?: string | Element;
6
7
  scale?: number;
@@ -12,6 +13,7 @@ export interface TopviewFloorplanPluginParameterType {
12
13
  ruleLabelsEnable?: boolean;
13
14
  roomLabelsEnable?: boolean;
14
15
  preventRoomClick?: boolean;
16
+ attachedTo?: FLOOR_PLAN_ATTACHED_TO;
15
17
  getLabelElement?: (room: FloorplanRoomItem) => Element | null;
16
18
  }
17
19
  export declare type TopviewFloorplanPluginReturnType = TopviewFloorplanPluginController;
@@ -62,6 +62,7 @@ export class TopviewFloorplanPluginController {
62
62
  if (shownFloor === null)
63
63
  return;
64
64
  this.floorIndex = shownFloor;
65
+ this.updateSize();
65
66
  this.render();
66
67
  };
67
68
  /** panoIndex 改变时,更新 floorIndex */
@@ -109,8 +110,8 @@ export class TopviewFloorplanPluginController {
109
110
  };
110
111
  show() {
111
112
  this.visible = true;
112
- this.updateSize();
113
113
  this.five.model.show(this.floorIndex);
114
+ this.updateSize();
114
115
  const renderDuration = 500;
115
116
  const modelOpacity = this.configs.modelOpacity;
116
117
  if (typeof modelOpacity === 'number') {
@@ -142,7 +143,8 @@ export class TopviewFloorplanPluginController {
142
143
  const width = max.x - min.x;
143
144
  const height = max.y - min.y;
144
145
  // 每毫米对应的 px 值
145
- const pxmm = getPxmm(this.five, this.wrapper);
146
+ const options = this.configs.attachedTo ? { attachedTo: this.configs.attachedTo } : undefined;
147
+ const pxmm = getPxmm(this.five, this.wrapper, this.floorIndex, options);
146
148
  const _width = Math.ceil(width * pxmm);
147
149
  const _height = Math.ceil(height * pxmm);
148
150
  this.pxmm = pxmm;
@@ -157,7 +159,6 @@ export class TopviewFloorplanPluginController {
157
159
  return;
158
160
  const { getLabelElement, cameraImageUrl, preventRoomClick, hoverEnable, compassEnable, roomLabelsEnable, ruleLabelsEnable, } = this.configs;
159
161
  const handleClick = preventRoomClick ? () => false : undefined;
160
- console.log('🚀 ~ TopviewFloorplanPluginController ~ handleClick', handleClick);
161
162
  const props = {
162
163
  five: this.five,
163
164
  pxmm: this.pxmm,
@@ -0,0 +1,5 @@
1
+ export declare enum FLOOR_PLAN_ATTACHED_TO {
2
+ FLOOR = 1,
3
+ CEILING = 2,
4
+ BOUNDING_CENTER = 3
5
+ }
@@ -0,0 +1,6 @@
1
+ export var FLOOR_PLAN_ATTACHED_TO;
2
+ (function (FLOOR_PLAN_ATTACHED_TO) {
3
+ FLOOR_PLAN_ATTACHED_TO[FLOOR_PLAN_ATTACHED_TO["FLOOR"] = 1] = "FLOOR";
4
+ FLOOR_PLAN_ATTACHED_TO[FLOOR_PLAN_ATTACHED_TO["CEILING"] = 2] = "CEILING";
5
+ FLOOR_PLAN_ATTACHED_TO[FLOOR_PLAN_ATTACHED_TO["BOUNDING_CENTER"] = 3] = "BOUNDING_CENTER";
6
+ })(FLOOR_PLAN_ATTACHED_TO || (FLOOR_PLAN_ATTACHED_TO = {}));
@@ -79,6 +79,10 @@ export interface FloorplanServerRoomItem {
79
79
  * @description 单位是平方毫米
80
80
  */
81
81
  size: number;
82
+ /** 房屋类型
83
+ * @description 对应关系参考上方 ROOM_DETAILS_TYPE_MAP
84
+ */
85
+ type: number;
82
86
  name: string;
83
87
  /** 围成房间区域的坐标路径
84
88
  * @description 坐标类型是户型图坐标
package/libs/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export type { PanoCursorRaycasterPluginExportType } from './PanoCursorRaycasterP
4
4
  export { default as PanoCursorRaycasterPlugin } from './PanoCursorRaycasterPlugin';
5
5
  export type { ModelRoomLabelController, ModelRoomLabelPluginData, RoomLabel, ModelRoomLabelPluginReturnType, ModelRoomLabelPluginParameters, } from './ModelRoomLabelPlugin';
6
6
  export { default as ModelRoomLabelPlugin } from './ModelRoomLabelPlugin';
7
+ export * from './floorplan/constant';
7
8
  export type { TopviewFloorplanPluginReturnType, TopviewFloorplanPluginParameterType, } from './floorplan/TopviewFloorplanPlugin';
8
9
  export { default as TopviewFloorplanPlugin } from './floorplan/TopviewFloorplanPlugin';
9
10
  export type { PanoFloorplanRadarPluginReturnType, PanoFloorplanRadarPluginParameterType, } from './floorplan/PanoFloorplanRadarPlugin';
@@ -19,3 +20,5 @@ export type { PanoRulerPluginParameterType, PanoRulerPluginExportType, PanoRuler
19
20
  export { default as PanoRulerPlugin } from './PanoRulerPlugin';
20
21
  export type { PanoCompassPluginParameterType, PanoCompassPluginExportType, PanoCompassPluginData, } from './PanoCompassPlugin';
21
22
  export { default as PanoCompassPlugin } from './PanoCompassPlugin';
23
+ export type { PluginReturns, PluginEvent, LineJson, PointJson } from './PanoMeasurePlugin';
24
+ export { default as PanoMeasurePlugin } from './PanoMeasurePlugin';
package/libs/index.js CHANGED
@@ -2,6 +2,8 @@ export { default as ModelViewPlugin } from './ModelViewPlugin';
2
2
  export { default as CSS3DRenderPlugin } from './CSS3DRenderPlugin';
3
3
  export { default as PanoCursorRaycasterPlugin } from './PanoCursorRaycasterPlugin';
4
4
  export { default as ModelRoomLabelPlugin } from './ModelRoomLabelPlugin';
5
+ // floorplan
6
+ export * from './floorplan/constant';
5
7
  export { default as TopviewFloorplanPlugin } from './floorplan/TopviewFloorplanPlugin';
6
8
  export { default as PanoFloorplanRadarPlugin } from './floorplan/PanoFloorplanRadarPlugin';
7
9
  export { default as ModelFloorplanPlugin } from './floorplan/ModelFloorplanPlugin';
@@ -10,3 +12,4 @@ export { default as ModelEntryDoorGuidePlugin } from './ModelEntryDoorGuidePlugi
10
12
  export { default as CameraMovementPlugin } from './CameraMovementPlugin';
11
13
  export { default as PanoRulerPlugin } from './PanoRulerPlugin';
12
14
  export { default as PanoCompassPlugin } from './PanoCompassPlugin';
15
+ export { default as PanoMeasurePlugin } from './PanoMeasurePlugin';
@@ -1,6 +1,11 @@
1
1
  import type { Five } from '@realsee/five';
2
+ import { FLOOR_PLAN_ATTACHED_TO } from '../floorplan/constant';
3
+ interface GetPxmmOption {
4
+ attachedTo: FLOOR_PLAN_ATTACHED_TO;
5
+ }
2
6
  /**
3
7
  * 获取「在俯视图」状态下,模型 mm 与屏幕像素 px 的对应关系,即每 mm 对应多少 px
4
8
  * @param five five
5
9
  */
6
- export default function getPxmm(five: Five, container: Element): number;
10
+ export default function getPxmm(five: Five, container: Element, floorIndex: number, options?: GetPxmmOption): number;
11
+ export {};
@@ -1,20 +1,34 @@
1
+ import { FLOOR_PLAN_ATTACHED_TO } from '../floorplan/constant';
1
2
  import * as THREE from 'three';
2
3
  /**
3
4
  * 获取「在俯视图」状态下,模型 mm 与屏幕像素 px 的对应关系,即每 mm 对应多少 px
4
5
  * @param five five
5
6
  */
6
- export default function getPxmm(five, container) {
7
- const boundingCenter = new THREE.Vector3(0, 0, 0);
8
- five.model.bounding.getCenter(boundingCenter);
9
- const { y: boundingCenterY } = boundingCenter;
10
- const { longitude } = five.getCurrentState();
11
- // 因为模型可能经过旋转,所以屏幕水平方向上的 1m 对应 X 轴距离需要转换
12
- const X = 1 / Math.abs(Math.cos(longitude));
13
- // 模型绕 (boundingCenterX, boundingCenterY, boundingCenterZ) 旋转
14
- const originPosition = new THREE.Vector3(0, boundingCenterY, 0);
15
- const originPositionXUnit = new THREE.Vector3(X, boundingCenterY, 0);
16
- const mouse = originPosition.project(five.camera);
17
- const xUnitMouse = originPositionXUnit.project(five.camera);
7
+ export default function getPxmm(five, container, floorIndex, options) {
8
+ const maxFloorIndex = Math.max(...five.work.observers.map((ob) => ob.floorIndex));
9
+ function getFloorY(floorIndex) {
10
+ return floorIndex > maxFloorIndex
11
+ ? five.model.bounding.max.y
12
+ : Math.max(...five.work.observers
13
+ .filter((ob) => ob.floorIndex === floorIndex)
14
+ .map((ob) => ob.standingPosition.y));
15
+ }
16
+ function getY() {
17
+ const currentFloorY = getFloorY(floorIndex);
18
+ const nextFloorY = getFloorY(floorIndex + 1);
19
+ const attachedTo = options?.attachedTo || FLOOR_PLAN_ATTACHED_TO.BOUNDING_CENTER;
20
+ if (attachedTo === FLOOR_PLAN_ATTACHED_TO.BOUNDING_CENTER)
21
+ return (five.model.bounding.max.y + five.model.bounding.min.y) / 2;
22
+ else if (attachedTo === FLOOR_PLAN_ATTACHED_TO.CEILING)
23
+ return nextFloorY;
24
+ else
25
+ return currentFloorY;
26
+ }
27
+ const y = getY();
28
+ const originPosition = new THREE.Vector3(0, y, 0);
29
+ const originPositionXUnit = new THREE.Vector3(1, y, 0);
30
+ const mouse = originPosition.clone().project(five.camera);
31
+ const xUnitMouse = originPositionXUnit.clone().project(five.camera);
18
32
  const pxmm = Math.abs((xUnitMouse.x - mouse.x) / 1000) * (container.getBoundingClientRect().width / 2);
19
33
  return pxmm;
20
34
  }
package/package.json CHANGED
@@ -5,11 +5,11 @@
5
5
  "author": "REALSEE-DEVELOPER",
6
6
  "repository": "https://github.com/realsee-developer/dnalogel.git",
7
7
  "private": false,
8
- "version": "2.0.0-alpha.5",
8
+ "version": "2.0.0-alpha.8",
9
9
  "license": "SEE LICENSE IN TERMS.txt",
10
10
  "scripts": {
11
- "build:dev": "yarn tsb && vite build --watch",
12
- "build": "yarn tsb && vite build",
11
+ "build": "yarn tsb && vite build && yarn build:docs",
12
+ "build:dev": "yarn build:svelte && tsc --watch",
13
13
  "tsb": "tsc && yarn build:svelte",
14
14
  "build:svelte": "svelte-strip strip src/ libs",
15
15
  "build:docs": "typedoc --options ./typedoc.json",
@@ -19,6 +19,7 @@
19
19
  "files": [
20
20
  "libs",
21
21
  "dist",
22
+ "docs",
22
23
  "TERMS.txt"
23
24
  ],
24
25
  "devDependencies": {