@realsee/dnalogel 2.0.0-alpha.22 → 2.0.0-alpha.23

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 (43) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/PanoMeasurePlugin/index.js +1 -1
  3. package/dist/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +1 -2
  4. package/dist/floorplan/PanoFloorplanRadarPlugin/index.js +47 -41
  5. package/dist/index.es.js +48 -42
  6. package/dist/index.js +48 -42
  7. package/dist/index.umd.js +48 -42
  8. package/docs/classes/ModelRoomLabelController.html +6 -6
  9. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -1
  10. package/docs/enums/ModelFloorplanErrorType.html +1 -1
  11. package/docs/interfaces/LineJson.html +1 -1
  12. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -1
  13. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -1
  14. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -1
  15. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -1
  16. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -1
  17. package/docs/interfaces/ModelFloorplanParameterType.html +1 -1
  18. package/docs/interfaces/ModelFloorplanViewEvent.html +2 -2
  19. package/docs/interfaces/ModelItemLabelPluginData.html +1 -1
  20. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +1 -1
  21. package/docs/interfaces/ModelItemLabelPluginParametersType.html +1 -1
  22. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -1
  23. package/docs/interfaces/ModelTVVideoPluginData.html +1 -1
  24. package/docs/interfaces/ModelTVVideoPluginExportType.html +1 -1
  25. package/docs/interfaces/ModelTVVideoPluginParameterType.html +1 -1
  26. package/docs/interfaces/PanoCompassPluginData.html +1 -1
  27. package/docs/interfaces/PanoCompassPluginParameterType.html +1 -1
  28. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +6 -6
  29. package/docs/interfaces/PanoRulerPluginExportType.html +1 -1
  30. package/docs/interfaces/PanoRulerPluginOptions.html +1 -1
  31. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -1
  32. package/docs/interfaces/PanoSpatialTagPluginData.html +1 -1
  33. package/docs/interfaces/PanoSpatialTagPluginExportType.html +1 -1
  34. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +1 -1
  35. package/docs/interfaces/PointJson.html +1 -1
  36. package/docs/interfaces/RoomLabel.html +7 -7
  37. package/docs/interfaces/TopviewFloorplanPluginParameterType.html +8 -8
  38. package/docs/modules.html +12 -12
  39. package/libs/PanoMeasurePlugin/index.js +1 -1
  40. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.js +46 -30
  41. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +1 -2
  42. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +1 -11
  43. package/package.json +1 -1
@@ -64,58 +64,54 @@ function create_fragment(ctx) {
64
64
  };
65
65
  }
66
66
 
67
+ function getCameraRotateTransform(longitude) {
68
+ // 为什么要加 45 ==> 因为 UI 给的图初始角度是 -45
69
+ const rotate = Math.floor(longitude / Math.PI * 180) * -1 + 45;
70
+
71
+ return `rotate(${rotate}deg)`;
72
+ }
73
+
67
74
  function instance($$self, $$props, $$invalidate) {
75
+ let positionTransform;
76
+ let rotateTransform;
68
77
  let { five } = $$props;
69
78
  let { pxmm } = $$props;
70
79
  let { floorplanData } = $$props;
71
80
  let { cameraImageUrl } = $$props;
81
+ let panoIndex = five.getCurrentState().panoIndex;
82
+ let longitude = five.getCurrentState().longitude;
72
83
 
73
84
  /** 获取相机在当前 Five 状态下的位移 */
74
- function getCameraPositionTransform(panoIndex) {
75
- const observer = floorplanData.observers[panoIndex];
85
+ function getCameraPositionTransform(floorplanData, panoIndex) {
76
86
  const bounding = floorplanData.bounding;
87
+ const floorplanObserver = floorplanData.observers[panoIndex];
88
+ if (!floorplanObserver) return '';
77
89
  const clientWidth = (bounding.max.x - bounding.min.x) * pxmm;
78
90
  const clientHeight = (bounding.max.y - bounding.min.y) * pxmm;
79
- if (!observer) return '';
80
- const left = Math.floor(observer.positionInImage.x * clientWidth);
81
- const top = Math.floor(observer.positionInImage.y * clientHeight);
91
+ const left = Math.floor(floorplanObserver.positionInImage.x * clientWidth);
92
+ const top = Math.floor(floorplanObserver.positionInImage.y * clientHeight);
82
93
  return `translate(${left}px, ${top}px)`;
83
94
  }
84
95
 
85
- /** 获取相机在当前 Five 状态下的旋转 */
86
- function getCameraRotationTransform() {
87
- const { longitude } = five.getCurrentState();
88
-
89
- // 为什么要加 45 ==> 因为 UI 给的图初始角度是 -45
90
- const rotate = Math.floor(longitude / Math.PI * 180) * -1 + 45;
91
-
92
- return `rotate(${rotate}deg)`;
96
+ function onFivePanoWillArrive(_panoIndex) {
97
+ $$invalidate(6, panoIndex = _panoIndex);
93
98
  }
94
99
 
95
- const changePosition = panoIndex => {
96
- $$invalidate(2, positionTransform = getCameraPositionTransform(panoIndex));
97
- };
98
-
99
- const changeRotate = throttle(
100
- () => {
101
- $$invalidate(1, rotateTransform = getCameraRotationTransform());
100
+ const onFiveCameraDirectionUpdate = throttle(
101
+ pose => {
102
+ $$invalidate(7, longitude = pose.longitude);
102
103
  },
103
104
  1000 / 60
104
105
  );
105
106
 
106
- // 初始状态,不能等 mount 之后再计算,那样第一次 camera 展示的时候也会有动画
107
- let rotateTransform = getCameraRotationTransform();
108
-
109
- let positionTransform = getCameraPositionTransform(five.getCurrentState().panoIndex);
110
-
111
107
  onMount(() => {
112
- five.on('panoWillArrive', changePosition);
113
- five.on('cameraDirectionUpdate', changeRotate);
108
+ five.on('panoWillArrive', onFivePanoWillArrive);
109
+ five.on('cameraDirectionUpdate', onFiveCameraDirectionUpdate);
114
110
  });
115
111
 
116
112
  onDestroy(() => {
117
- five.off('panoWillArrive', changePosition);
118
- five.off('cameraDirectionUpdate', changeRotate);
113
+ five.off('panoWillArrive', onFivePanoWillArrive);
114
+ five.off('cameraDirectionUpdate', onFiveCameraDirectionUpdate);
119
115
  });
120
116
 
121
117
  $$self.$$set = $$props => {
@@ -125,7 +121,27 @@ function instance($$self, $$props, $$invalidate) {
125
121
  if ('cameraImageUrl' in $$props) $$invalidate(0, cameraImageUrl = $$props.cameraImageUrl);
126
122
  };
127
123
 
128
- return [cameraImageUrl, rotateTransform, positionTransform, five, pxmm, floorplanData];
124
+ $$self.$$.update = () => {
125
+ if ($$self.$$.dirty & /*floorplanData, panoIndex*/ 96) {
126
+ // 初始状态,不能等 mount 之后再计算,那样第一次 camera 展示的时候也会有动画
127
+ $: $$invalidate(2, positionTransform = getCameraPositionTransform(floorplanData, panoIndex));
128
+ }
129
+
130
+ if ($$self.$$.dirty & /*longitude*/ 128) {
131
+ $: $$invalidate(1, rotateTransform = getCameraRotateTransform(longitude));
132
+ }
133
+ };
134
+
135
+ return [
136
+ cameraImageUrl,
137
+ rotateTransform,
138
+ positionTransform,
139
+ five,
140
+ pxmm,
141
+ floorplanData,
142
+ panoIndex,
143
+ longitude
144
+ ];
129
145
  }
130
146
 
131
147
  class Component extends SvelteComponent {
@@ -14,8 +14,7 @@ export default class PanoFloorplanRadarPluginController {
14
14
  private wrapperSelector;
15
15
  private data?;
16
16
  private wrapper;
17
- private extraObjects?;
18
- private originExtraObjects?;
17
+ private extraObjects;
19
18
  private configs;
20
19
  constructor(five: Five, params?: PanoFloorplanRadarPluginControllerParameter);
21
20
  dispose: () => void;
@@ -36,13 +36,7 @@ export default class PanoFloorplanRadarPluginController {
36
36
  enumerable: true,
37
37
  configurable: true,
38
38
  writable: true,
39
- value: void 0
40
- });
41
- Object.defineProperty(this, "originExtraObjects", {
42
- enumerable: true,
43
- configurable: true,
44
- writable: true,
45
- value: void 0
39
+ value: []
46
40
  });
47
41
  Object.defineProperty(this, "configs", {
48
42
  enumerable: true,
@@ -103,7 +97,6 @@ export default class PanoFloorplanRadarPluginController {
103
97
  this.render();
104
98
  }
105
99
  setExtraObjectsWith3DPositions(data) {
106
- this.originExtraObjects = data;
107
100
  if (!this.data)
108
101
  return;
109
102
  this.extraObjects = formatExtraObjects(data, this.five, this.data);
@@ -118,9 +111,6 @@ export default class PanoFloorplanRadarPluginController {
118
111
  }
119
112
  if (!this.data || !this.wrapper)
120
113
  return;
121
- if (!this.extraObjects && this.originExtraObjects) {
122
- this.extraObjects = formatExtraObjects(this.originExtraObjects, this.five, this.data);
123
- }
124
114
  const props = {
125
115
  five: this.five,
126
116
  floorplanData: this.data,
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "repository": "https://github.com/realsee-developer/dnalogel.git",
8
8
  "description": "如视 VR 看房插件合集",
9
9
  "private": false,
10
- "version": "2.0.0-alpha.22",
10
+ "version": "2.0.0-alpha.23",
11
11
  "license": "SEE LICENSE IN TERMS.txt",
12
12
  "scripts": {
13
13
  "build": "yarn run tsb && yarn run build:rollup && yarn build:docs",