@realsee/dnalogel 0.1.7-alpha.4 → 0.1.7-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.
@@ -16,7 +16,10 @@ export interface GLTFViewerConfig {
16
16
  ambientLight?: THREE.AmbientLight | false;
17
17
  minFov?: number;
18
18
  maxFov?: number;
19
- toneMapping?: boolean;
19
+ toneMapping?: {
20
+ toneMapping?: THREE.ToneMapping;
21
+ toneMappingExposure?: number;
22
+ };
20
23
  }
21
24
  export interface GLTFViewerState {
22
25
  fov: number;
@@ -43,14 +46,16 @@ export declare class GLTFViewer extends Subscribe<GLTFViewerEventMap> {
43
46
  latitude?: number;
44
47
  longitude?: number;
45
48
  });
49
+ set minFov(fov: number);
50
+ get minFov(): number;
51
+ set maxFov(fov: number);
52
+ get maxFov(): number;
46
53
  /**
47
54
  *
48
55
  * @param url glTF 模型CDN地址
49
56
  * @param options adaptive 是否开启自适应fov
50
57
  */
51
- load(url: string, options?: {
52
- adaptive: boolean;
53
- }): void;
58
+ load(url: string): void;
54
59
  /**
55
60
  * 挂载
56
61
  * @param container
@@ -66,4 +71,8 @@ export declare class GLTFViewer extends Subscribe<GLTFViewerEventMap> {
66
71
  * 销毁
67
72
  */
68
73
  dispose(): void;
74
+ /**
75
+ * 响应式fov
76
+ */
77
+ fitFov(): void;
69
78
  }
@@ -23,12 +23,12 @@ Object.defineProperty(exports, "__esModule", {
23
23
  });
24
24
  exports.GLTFViewer = void 0;
25
25
 
26
+ require("core-js/modules/es.object.assign.js");
27
+
26
28
  require("core-js/modules/es.function.bind.js");
27
29
 
28
30
  require("core-js/modules/web.timers.js");
29
31
 
30
- require("core-js/modules/es.object.assign.js");
31
-
32
32
  require("core-js/modules/es.object.to-string.js");
33
33
 
34
34
  require("core-js/modules/es.promise.js");
@@ -77,6 +77,8 @@ var _uuid = _interopRequireDefault(require("./uuid"));
77
77
 
78
78
  var _Subscribe2 = require("./Subscribe");
79
79
 
80
+ var _formatRad = require("./formatRad");
81
+
80
82
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
81
83
 
82
84
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -102,7 +104,10 @@ var Controller = /*#__PURE__*/function () {
102
104
  (0, _defineProperty2["default"])(this, "longitude", 0);
103
105
  (0, _defineProperty2["default"])(this, "latitude", 0);
104
106
  (0, _defineProperty2["default"])(this, "needsRender", false);
105
- this.config = config; // 异步事件回调
107
+ this.config = Object.assign({
108
+ maxFov: 120,
109
+ minFov: 1
110
+ }, config); // 异步事件回调
106
111
 
107
112
  this.callbacks = callbacks; // 默认状态参数
108
113
 
@@ -135,8 +140,11 @@ var Controller = /*#__PURE__*/function () {
135
140
  this.renderer.outputEncoding = THREE.sRGBEncoding;
136
141
 
137
142
  if (config.toneMapping) {
138
- this.renderer.toneMapping = THREE.ReinhardToneMapping;
139
- this.renderer.toneMappingExposure = 1.5;
143
+ var _config$toneMapping = config.toneMapping,
144
+ toneMapping = _config$toneMapping.toneMapping,
145
+ toneMappingExposure = _config$toneMapping.toneMappingExposure;
146
+ if (toneMapping) this.renderer.toneMapping = toneMapping;
147
+ if (toneMappingExposure !== undefined) this.renderer.toneMappingExposure = toneMappingExposure;
140
148
  }
141
149
 
142
150
  if (config.backgroundColor) {
@@ -149,10 +157,10 @@ var Controller = /*#__PURE__*/function () {
149
157
  } // 相机
150
158
 
151
159
 
152
- this.camera = new THREE.PerspectiveCamera(this.fov, 1, 0.1, 1000); // 光照
160
+ this.camera = new THREE.PerspectiveCamera(this.fov, 1, 0.1, 1500); // 光照
153
161
 
154
162
  if (config.pointLight !== false) {
155
- this.pointLight = config.pointLight || new THREE.PointLight(0xfffffff, 1, 10000);
163
+ this.pointLight = config.pointLight || new THREE.PointLight(0xfffffff, 1, 1500);
156
164
  this.scene.add(this.pointLight);
157
165
  }
158
166
 
@@ -267,18 +275,14 @@ var Controller = /*#__PURE__*/function () {
267
275
 
268
276
  this.target = object;
269
277
  this.target.scene.visible = false;
270
- this.scene.add(this.target.scene); // {
271
- // const boxHelper = new THREE.BoxHelper(this.target.scene, 0x2bb8aa)
272
- // this.scene.add(boxHelper)
273
- // const axesHelper = new THREE.AxesHelper(300)
274
- // this.scene.add(axesHelper)
275
- // }
276
-
278
+ this.scene.add(this.target.scene);
277
279
  setTimeout(function () {
278
280
  if (object === _this3.target) {
279
281
  _this3.target.scene.visible = true;
280
282
 
281
283
  _this3.update({});
284
+
285
+ _this3.callbacks.loaded(object);
282
286
  }
283
287
  }, 50);
284
288
  }
@@ -348,7 +352,9 @@ var Controller = /*#__PURE__*/function () {
348
352
  if (!center || !radius) return;
349
353
  var box = new THREE.Box3();
350
354
  box.expandByObject(this.target.scene);
351
- box.getCenter(center); // 距离
355
+ box.getCenter(center);
356
+ longitude = (0, _formatRad.formatRad)(longitude);
357
+ latitude = Math.max(-Math.PI / 2 + 0.01, Math.min(+Math.PI / 2, latitude)); // 距离
352
358
 
353
359
  var distance = radius / Math.sin(Math.PI / 4) * 3;
354
360
  {// debug
@@ -388,34 +394,13 @@ var Controller = /*#__PURE__*/function () {
388
394
  fov = calcFov(d, radius * 2, this.renderer.domElement.offsetWidth / this.renderer.domElement.offsetHeight);
389
395
  }
390
396
 
397
+ fov = Math.max(this.minFov, Math.min(this.maxFov, fov));
398
+
391
399
  if (fov !== this.fov) {
392
- fov = Math.max(this.minFov, Math.min(this.maxFov, fov));
393
400
  this.camera.fov = fov;
394
401
  this.camera.updateProjectionMatrix();
395
402
  }
396
403
 
397
- this.camera.updateProjectionMatrix(); // const center = new THREE.Vector3()
398
- // const box = new THREE.Box3()
399
- // if (this.target) {
400
- // box.expandByObject(this.target.scene)
401
- // box.getCenter(center)
402
- // }
403
- // longitude = formatRad(longitude)
404
- // latitude = Math.max(-Math.PI / 2 + 0.01, Math.min(+Math.PI / 2, latitude))
405
- // const distance = Math.max(center.distanceTo(box.min), center.distanceTo(box.max))
406
- // const direction = coordsToDirection({ longitude, latitude })
407
- // direction.setLength(distance * 3)
408
- // this.camera.position.copy(center.clone().add(direction))
409
- // this.camera.lookAt(center)
410
- // const lightDirection = coordsToDirection({ longitude, latitude: -Math.PI / 6 })
411
- // lightDirection.setLength(distance * 3)
412
- // if (this.pointLight) this.pointLight.position.copy(center.clone().add(lightDirection))
413
- // if (fov !== this.fov) {
414
- // fov = Math.max(25, Math.min(this.maxFov, fov))
415
- // this.camera.fov = fov
416
- // this.camera.updateProjectionMatrix()
417
- // }
418
-
419
404
  var needsRender = this.fov !== fov || this.longitude !== longitude || this.latitude !== latitude;
420
405
  Object.assign(this, {
421
406
  longitude: longitude,
@@ -574,8 +559,6 @@ var Controller = /*#__PURE__*/function () {
574
559
  loader.load(url, function (gltf) {
575
560
  _this6.setTarget(gltf);
576
561
 
577
- _this6.callbacks.loaded(gltf);
578
-
579
562
  resolve(true);
580
563
  }, function (xhr) {
581
564
  _this6.callbacks.progressing(xhr.loaded / xhr.total * 100);
@@ -684,18 +667,41 @@ var GLTFViewer = /*#__PURE__*/function (_Subscribe) {
684
667
  longitude: longitude === undefined ? controller.longitude : longitude
685
668
  });
686
669
  }
670
+ }, {
671
+ key: "minFov",
672
+ get: function get() {
673
+ var controller = caches[this.uuid];
674
+ if (!controller) throw new Error(ERROR_NO_CONTROLLER);
675
+ return controller.minFov;
676
+ },
677
+ set: function set(fov) {
678
+ var controller = caches[this.uuid];
679
+ if (!controller) throw new Error(ERROR_NO_CONTROLLER);
680
+ controller.config.minFov = fov;
681
+ controller.update({});
682
+ }
683
+ }, {
684
+ key: "maxFov",
685
+ get: function get() {
686
+ var controller = caches[this.uuid];
687
+ if (!controller) throw new Error(ERROR_NO_CONTROLLER);
688
+ return controller.maxFov;
689
+ }
687
690
  /**
688
691
  *
689
692
  * @param url glTF 模型CDN地址
690
693
  * @param options adaptive 是否开启自适应fov
691
694
  */
692
-
695
+ ,
696
+ set: function set(fov) {
697
+ var controller = caches[this.uuid];
698
+ if (!controller) throw new Error(ERROR_NO_CONTROLLER);
699
+ controller.config.maxFov = fov;
700
+ controller.update({});
701
+ }
693
702
  }, {
694
703
  key: "load",
695
704
  value: function load(url) {
696
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
697
- adaptive: true
698
- };
699
705
  var controller = caches[this.uuid];
700
706
  if (!controller) throw new Error(ERROR_NO_CONTROLLER);
701
707
  controller.load(url);
@@ -737,6 +743,19 @@ var GLTFViewer = /*#__PURE__*/function (_Subscribe) {
737
743
  if (controller.dispose) controller.dispose();
738
744
  delete caches[this.uuid];
739
745
  }
746
+ /**
747
+ * 响应式fov
748
+ */
749
+
750
+ }, {
751
+ key: "fitFov",
752
+ value: function fitFov() {
753
+ var controller = caches[this.uuid];
754
+ if (!controller) throw new Error(ERROR_NO_CONTROLLER);
755
+ controller.update({
756
+ fov: 0
757
+ });
758
+ }
740
759
  }]);
741
760
  return GLTFViewer;
742
761
  }(_Subscribe2.Subscribe);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@realsee/dnalogel",
3
- "version": "0.1.7-alpha.4",
3
+ "version": "0.1.7-alpha.8",
4
4
  "description": "如视前端 Components、Plugins 兼部分 SDKs \"Dnalogel\" 库。",
5
5
  "author": "BEIKE REALSEE TECHNOLOGY (HK) LIMITED",
6
6
  "peerDependencies": {
@@ -47,6 +47,8 @@ var _centerPoint = _interopRequireDefault(require("../../shared-utils/three/cent
47
47
 
48
48
  var _transformPositionToVector = _interopRequireDefault(require("../../shared-utils/three/transformPositionToVector3"));
49
49
 
50
+ var _createResizeObserver = _interopRequireDefault(require("./utils/createResizeObserver"));
51
+
50
52
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
53
 
52
54
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -125,13 +127,19 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
125
127
  var render = function () {
126
128
  if (!inited) {
127
129
  var css3DRendererSetSize = function css3DRendererSetSize() {
128
- var rendererWidth = (0, _evenNumber["default"])(fiveElement.clientWidth);
129
- var rendererHeight = (0, _evenNumber["default"])(fiveElement.clientHeight);
130
+ // 这里evenNumber策略是遇到奇数会加1,不知道为啥会触发滚动条显示,导致fiveElement变小,fiveElement变小又触发了这里的resize,宽高变小,滚动条消失,然后又触发resize。。。无限循环
131
+ // 为了规避上面这种情况,evenNumber设置了一个参数,遇到奇数可选择减一
132
+ var rendererWidth = (0, _evenNumber["default"])(fiveElement.clientWidth, {
133
+ smaller: true
134
+ });
135
+ var rendererHeight = (0, _evenNumber["default"])(fiveElement.clientHeight, {
136
+ smaller: true
137
+ });
130
138
  css3DRenderer.setSize(rendererWidth, rendererHeight);
131
139
  };
132
140
 
133
141
  css3DRendererSetSize();
134
- resizeObserver = new ResizeObserver(css3DRendererSetSize);
142
+ resizeObserver = (0, _createResizeObserver["default"])(css3DRendererSetSize, fiveElement);
135
143
  css3DRenderer.domElement.style.position = 'absolute';
136
144
  css3DRenderer.domElement.style.top = '0';
137
145
  css3DRenderer.domElement.style.userSelect = 'none';
@@ -144,10 +152,10 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
144
152
  };
145
153
 
146
154
  return function () {
147
- var _resizeObserver;
155
+ var _resizeObserver, _resizeObserver$obser;
148
156
 
149
157
  scene.add(css3DObject);
150
- (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 ? void 0 : _resizeObserver.observe(fiveElement);
158
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 ? void 0 : (_resizeObserver$obser = _resizeObserver.observe) === null || _resizeObserver$obser === void 0 ? void 0 : _resizeObserver$obser.call(_resizeObserver);
151
159
  renderEveryFrame();
152
160
 
153
161
  if (mode === 'behind' && mesh) {
@@ -190,9 +198,9 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
190
198
  if (mode === 'behind') state.behindMode = undefined;
191
199
 
192
200
  if (!state.behindMode && !state.frontMode) {
193
- var _resizeObserver2;
201
+ var _resizeObserver2, _resizeObserver2$unob;
194
202
 
195
- (_resizeObserver2 = resizeObserver) === null || _resizeObserver2 === void 0 ? void 0 : _resizeObserver2.unobserve(fiveElement);
203
+ (_resizeObserver2 = resizeObserver) === null || _resizeObserver2 === void 0 ? void 0 : (_resizeObserver2$unob = _resizeObserver2.unobserve) === null || _resizeObserver2$unob === void 0 ? void 0 : _resizeObserver2$unob.call(_resizeObserver2);
196
204
  }
197
205
  }
198
206
 
@@ -209,9 +217,6 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
209
217
  state.disposeCallbacks.push(dispose);
210
218
  }
211
219
 
212
- console.log({
213
- autoRender: autoRender
214
- });
215
220
  if (autoRender) render();
216
221
  return {
217
222
  container: container,
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @description: 究极简陋的 ResizeObserver polyfill
3
+ */
4
+ export default function createResizeObserver(func: () => any, element?: HTMLElement): {
5
+ observe: () => void;
6
+ unobserve: () => void;
7
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = createResizeObserver;
9
+
10
+ /**
11
+ * @description: 究极简陋的 ResizeObserver polyfill
12
+ */
13
+ function createResizeObserver(func, element) {
14
+ if (!element || typeof ResizeObserver === 'undefined') {
15
+ return {
16
+ observe: function observe() {
17
+ return window.addEventListener('resize', func);
18
+ },
19
+ unobserve: function unobserve() {
20
+ return window.removeEventListener('resize', func);
21
+ }
22
+ };
23
+ } else {
24
+ var observer = new ResizeObserver(func);
25
+ return {
26
+ observe: function observe() {
27
+ return observer.observe(element);
28
+ },
29
+ unobserve: function unobserve() {
30
+ return observer.unobserve(element);
31
+ }
32
+ };
33
+ }
34
+ }
@@ -15,5 +15,5 @@ export interface ModelChassisCompassPluginExportType {
15
15
  /**
16
16
  * 模型底盘指南针插件
17
17
  */
18
- declare const ModelChassisCompassPlugin: FivePlugin<ModelChassisCompassPluginParameterType, ModelChassisCompassPluginExportType>;
18
+ export declare const ModelChassisCompassPlugin: FivePlugin<ModelChassisCompassPluginParameterType, ModelChassisCompassPluginExportType>;
19
19
  export default ModelChassisCompassPlugin;
@@ -21,7 +21,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
21
21
  Object.defineProperty(exports, "__esModule", {
22
22
  value: true
23
23
  });
24
- exports["default"] = void 0;
24
+ exports["default"] = exports.ModelChassisCompassPlugin = void 0;
25
25
 
26
26
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
27
27
 
@@ -153,5 +153,6 @@ var ModelChassisCompassPlugin = function ModelChassisCompassPlugin(five, params)
153
153
  };
154
154
  };
155
155
 
156
+ exports.ModelChassisCompassPlugin = ModelChassisCompassPlugin;
156
157
  var _default = ModelChassisCompassPlugin;
157
158
  exports["default"] = _default;
@@ -1 +1 @@
1
- export declare const FLOORPLANE_EXTRA_OBJECT_IMAGE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC";
1
+ export declare const FLOORPLAN_EXTRA_OBJECT_IMAGE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC";
@@ -5,6 +5,6 @@ require("core-js/modules/es.object.define-property.js");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.FLOORPLANE_EXTRA_OBJECT_IMAGE = void 0;
9
- var FLOORPLANE_EXTRA_OBJECT_IMAGE = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC';
10
- exports.FLOORPLANE_EXTRA_OBJECT_IMAGE = FLOORPLANE_EXTRA_OBJECT_IMAGE;
8
+ exports.FLOORPLAN_EXTRA_OBJECT_IMAGE = void 0;
9
+ var FLOORPLAN_EXTRA_OBJECT_IMAGE = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC';
10
+ exports.FLOORPLAN_EXTRA_OBJECT_IMAGE = FLOORPLAN_EXTRA_OBJECT_IMAGE;
@@ -620,8 +620,8 @@ var ModelFloorplanPluginController = /*#__PURE__*/function () {
620
620
  floorplanData: this.floorplanData,
621
621
  onRoomHeightClick: this.handleClick,
622
622
  cameraImage: cameraImage,
623
- hoverEnable: hoverEnable !== null && hoverEnable !== void 0 ? hoverEnable : true,
624
623
  getLabelElement: getLabelElement,
624
+ hoverEnable: hoverEnable !== null && hoverEnable !== void 0 ? hoverEnable : false,
625
625
  roomLabelsEnable: roomLabelsEnable !== null && roomLabelsEnable !== void 0 ? roomLabelsEnable : true,
626
626
  compassEnable: compassEnable !== null && compassEnable !== void 0 ? compassEnable : true,
627
627
  ruleLabelsEnable: ruleLabelsEnable !== null && ruleLabelsEnable !== void 0 ? ruleLabelsEnable : true,
@@ -96,7 +96,7 @@ function RulesItem(props) {
96
96
  if (isTop) return "translate(".concat(translateMain, "px, ").concat(-translateSecond, "px)");
97
97
  if (isBottom) return "translate(".concat(translateMain, "px, ").concat(translateSecond, "px)");
98
98
  if (isLeft) return "translate(".concat(-translateSecond, "px, ").concat(-translateMain, "px)");
99
- if (isRight) return "translate(".concat(translateSecond, "px, ").concat(translateMain, "px)");
99
+ if (isRight) return "translate(".concat(translateSecond, "px, ").concat(-translateMain - lengthPx, "px)");
100
100
  }(); // 把点位的户型图坐标转成距离起始位置的像素值
101
101
 
102
102
 
@@ -116,8 +116,7 @@ function RulesItem(props) {
116
116
  transform: "".concat(transform, " ").concat(isRow ? '' : 'rotate(-90deg)'),
117
117
  transformOrigin: "".concat(isRight ? 'right top' : '').concat(isLeft ? 'left bottom' : ''),
118
118
  left: isRow ? 0 : undefined,
119
- top: isRight ? 0 : undefined,
120
- bottom: isLeft ? 0 : undefined
119
+ bottom: !isRow ? 0 : undefined
121
120
  }, (0, _defineProperty2["default"])(_rulesStyle, type, 0), (0, _defineProperty2["default"])(_rulesStyle, "width", lengthPx + 'px'), (0, _defineProperty2["default"])(_rulesStyle, "height", (0, _px2rem["default"])(5)), (0, _defineProperty2["default"])(_rulesStyle, "display", 'flex'), (0, _defineProperty2["default"])(_rulesStyle, "alignItems", 'center'), _rulesStyle);
122
121
  var ruleLineStyle = {
123
122
  background: '#fff',
@@ -19,7 +19,7 @@ export default class PanoFloorplanRadarPluginController {
19
19
  private wrapper;
20
20
  private size;
21
21
  private extraObjects?;
22
- private orginExtraObjects?;
22
+ private originExtraObjects?;
23
23
  private configs;
24
24
  constructor(five: Five, params?: PanoFloorplanRadarPluginControllerParameter);
25
25
  dispose: () => void;
@@ -153,7 +153,7 @@ var PanoFloorplanRadarPluginController = /*#__PURE__*/function () {
153
153
  }, {
154
154
  key: "setExtraObjectsWith3DPositions",
155
155
  value: function setExtraObjectsWith3DPositions(data) {
156
- this.orginExtraObjects = data;
156
+ this.originExtraObjects = data;
157
157
  if (!this.data) return;
158
158
  this.extraObjects = (0, _formatData.formatExtraObjects)(data, this.five, this.data);
159
159
  this.render();
@@ -188,8 +188,8 @@ var PanoFloorplanRadarPluginController = /*#__PURE__*/function () {
188
188
  value: function render() {
189
189
  if (!this.data || !this.pxmm || !this.wrapper) return;
190
190
 
191
- if (!this.extraObjects && this.orginExtraObjects) {
192
- this.extraObjects = (0, _formatData.formatExtraObjects)(this.orginExtraObjects, this.five, this.data);
191
+ if (!this.extraObjects && this.originExtraObjects) {
192
+ this.extraObjects = (0, _formatData.formatExtraObjects)(this.originExtraObjects, this.five, this.data);
193
193
  }
194
194
 
195
195
  var props = {
@@ -7,6 +7,9 @@ export interface TopviewFloorplanPluginParameterType {
7
7
  scale?: number;
8
8
  hoverEnable?: boolean;
9
9
  autoShowEnable?: boolean;
10
+ compassEnable?: boolean;
11
+ ruleLabelsEnable?: boolean;
12
+ roomLabelsEnable?: boolean;
10
13
  cameraImage?: {
11
14
  style: React.CSSProperties;
12
15
  };
@@ -238,6 +238,13 @@ var TopviewFloorplanPluginController = /*#__PURE__*/function () {
238
238
  value: function render(duration) {
239
239
  if (!this.container) return;
240
240
  if (this.size.width === 0) return;
241
+ var _this$configs = this.configs,
242
+ cameraImage = _this$configs.cameraImage,
243
+ hoverEnable = _this$configs.hoverEnable,
244
+ getLabelElement = _this$configs.getLabelElement,
245
+ roomLabelsEnable = _this$configs.roomLabelsEnable,
246
+ compassEnable = _this$configs.compassEnable,
247
+ ruleLabelsEnable = _this$configs.ruleLabelsEnable;
241
248
  var props = {
242
249
  five: this.five,
243
250
  pxmm: this.pxmm,
@@ -247,9 +254,12 @@ var TopviewFloorplanPluginController = /*#__PURE__*/function () {
247
254
  floorIndex: this.floorIndex,
248
255
  floorplanData: this.floorplanData,
249
256
  onRoomHeightClick: this.handleClick,
250
- cameraImage: this.configs.cameraImage,
251
- hoverEnable: this.configs.hoverEnable,
252
- getLabelElement: this.configs.getLabelElement,
257
+ cameraImage: cameraImage,
258
+ hoverEnable: hoverEnable !== null && hoverEnable !== void 0 ? hoverEnable : false,
259
+ roomLabelsEnable: roomLabelsEnable !== null && roomLabelsEnable !== void 0 ? roomLabelsEnable : true,
260
+ compassEnable: compassEnable !== null && compassEnable !== void 0 ? compassEnable : true,
261
+ ruleLabelsEnable: ruleLabelsEnable !== null && ruleLabelsEnable !== void 0 ? ruleLabelsEnable : true,
262
+ getLabelElement: getLabelElement,
253
263
  lastPanoramaLongitude: this.lastPanoramaLongitude
254
264
  };
255
265
 
@@ -1,5 +1,5 @@
1
1
  /** 房屋数据映射表 */
2
- export declare const ROOM_DETILE_TYPE_MAP: ({
2
+ export declare const ROOM_FETILE_TYPE_MAP: ({
3
3
  type: number;
4
4
  floorType: number;
5
5
  roomType: string;
@@ -5,10 +5,10 @@ require("core-js/modules/es.object.define-property.js");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ROOM_TYPE_MAP = exports.ROOM_DETILE_TYPE_MAP = exports.FLOOR_TYPE_MAP = void 0;
8
+ exports.ROOM_TYPE_MAP = exports.ROOM_FETILE_TYPE_MAP = exports.FLOOR_TYPE_MAP = void 0;
9
9
 
10
10
  /** 房屋数据映射表 */
11
- var ROOM_DETILE_TYPE_MAP = [{
11
+ var ROOM_FETILE_TYPE_MAP = [{
12
12
  type: 0,
13
13
  floorType: 1,
14
14
  roomType: '100900000012',
@@ -308,7 +308,7 @@ var ROOM_DETILE_TYPE_MAP = [{
308
308
  }];
309
309
  /** 地板信息映射表 */
310
310
 
311
- exports.ROOM_DETILE_TYPE_MAP = ROOM_DETILE_TYPE_MAP;
311
+ exports.ROOM_FETILE_TYPE_MAP = ROOM_FETILE_TYPE_MAP;
312
312
  var FLOOR_TYPE_MAP = [{
313
313
  type: 0,
314
314
  description: '木质地板'
@@ -199,7 +199,7 @@ function formatExtraObjects(data, five, floorplanData) {
199
199
  var extraObjects = data.map(function (object) {
200
200
  var position = object.position;
201
201
  var icon = object.icon ? object.icon : {
202
- url: _floorplanExtraObject.FLOORPLANE_EXTRA_OBJECT_IMAGE,
202
+ url: _floorplanExtraObject.FLOORPLAN_EXTRA_OBJECT_IMAGE,
203
203
  width: 45,
204
204
  height: 48
205
205
  };
@@ -1 +1,3 @@
1
- export default function evenNumber(num: number): number;
1
+ export default function evenNumber(num: number, config?: {
2
+ smaller?: boolean;
3
+ }): number;
@@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = evenNumber;
9
9
 
10
- function evenNumber(num) {
10
+ require("core-js/modules/es.number.constructor.js");
11
+
12
+ function evenNumber(num, config) {
11
13
  var roundNum = Math.round(num);
12
- return roundNum % 2 === 0 ? roundNum : roundNum + 1;
14
+ return roundNum % 2 === 0 ? roundNum : roundNum + Number(config !== null && config !== void 0 && config.smaller ? -1 : 1);
13
15
  }