@aibee/crc-bmap 0.0.114 → 0.0.115
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.
- package/lib/bmap.cjs.min.js +5 -3691
- package/lib/bmap.cjs.min.js.map +4 -4
- package/lib/bmap.esm.js +646 -247
- package/lib/bmap.esm.js.map +4 -4
- package/lib/bmap.esm.min.js +5 -5
- package/lib/bmap.esm.min.js.map +4 -4
- package/lib/bmap.min.js +4 -4
- package/lib/bmap.min.js.map +4 -4
- package/lib/src/elements/floor.d.ts +4 -6
- package/lib/src/elements/index.d.ts +2 -0
- package/lib/src/elements/model.d.ts +0 -5
- package/lib/src/elements/wall.d.ts +29 -2
- package/lib/src/index.d.ts +1 -0
- package/lib/src/loader/AibeeLoader/index.d.ts +3 -2
- package/lib/src/loader/AibeeLoader/type.d.ts +115 -0
- package/lib/src/loader/AibeeLoader/utils.d.ts +3 -0
- package/lib/src/plugins/index.d.ts +1 -0
- package/package.json +1 -1
package/lib/bmap.esm.js
CHANGED
|
@@ -454,7 +454,7 @@ var require_Graph = __commonJS({
|
|
|
454
454
|
});
|
|
455
455
|
|
|
456
456
|
// src/bmap.ts
|
|
457
|
-
import { EventDispatcher as EventDispatcher7, Vector3 as
|
|
457
|
+
import { EventDispatcher as EventDispatcher7, Vector3 as Vector315 } from "three";
|
|
458
458
|
|
|
459
459
|
// src/utils/timer.ts
|
|
460
460
|
var Timer = class {
|
|
@@ -1619,7 +1619,7 @@ function toWebWorker(obj) {
|
|
|
1619
1619
|
import {
|
|
1620
1620
|
EventDispatcher as EventDispatcher6,
|
|
1621
1621
|
Box2,
|
|
1622
|
-
Vector3 as
|
|
1622
|
+
Vector3 as Vector314,
|
|
1623
1623
|
Vector2 as Vector25,
|
|
1624
1624
|
Raycaster as Raycaster3,
|
|
1625
1625
|
Box3 as Box38,
|
|
@@ -2613,20 +2613,141 @@ var Poi = class extends EventDispatcher2 {
|
|
|
2613
2613
|
};
|
|
2614
2614
|
|
|
2615
2615
|
// src/elements/floor.ts
|
|
2616
|
-
import { Box3 as Box35,
|
|
2616
|
+
import { Box3 as Box35, Object3D as Object3D8, Vector3 as Vector38 } from "three";
|
|
2617
|
+
|
|
2618
|
+
// src/elements/heatmap.ts
|
|
2619
|
+
import {
|
|
2620
|
+
MeshBasicMaterial as MeshBasicMaterial2,
|
|
2621
|
+
Object3D as Object3D5,
|
|
2622
|
+
PlaneGeometry as PlaneGeometry2,
|
|
2623
|
+
Texture,
|
|
2624
|
+
DoubleSide as DoubleSide3,
|
|
2625
|
+
Mesh as Mesh3,
|
|
2626
|
+
Matrix3,
|
|
2627
|
+
Vector2 as Vector24
|
|
2628
|
+
} from "three";
|
|
2629
|
+
import { create } from "@mars3d/heatmap.js";
|
|
2630
|
+
import { featureCollection as featureCollection2, point as point2, bbox, center as getCenter2 } from "@turf/turf";
|
|
2631
|
+
var HeatmapElement = class extends Object3D5 {
|
|
2632
|
+
constructor(context) {
|
|
2633
|
+
super();
|
|
2634
|
+
this.context = context;
|
|
2635
|
+
this.div = document.createElement("div");
|
|
2636
|
+
}
|
|
2637
|
+
heatmap;
|
|
2638
|
+
div;
|
|
2639
|
+
plane;
|
|
2640
|
+
clearHeatmap() {
|
|
2641
|
+
if (this.div.firstChild) {
|
|
2642
|
+
this.div.removeChild(this.div.firstChild);
|
|
2643
|
+
}
|
|
2644
|
+
this.heatmap = void 0;
|
|
2645
|
+
}
|
|
2646
|
+
loadData(data) {
|
|
2647
|
+
this.clearHeatmap();
|
|
2648
|
+
const { width, height, leftTop, center: center2 } = this.getBox(data);
|
|
2649
|
+
this.heatmap = create({
|
|
2650
|
+
width,
|
|
2651
|
+
height,
|
|
2652
|
+
container: this.div,
|
|
2653
|
+
...this.context.config.heatMap
|
|
2654
|
+
});
|
|
2655
|
+
this.heatmap.setData(this.transformData(data, leftTop));
|
|
2656
|
+
this.initPlane(width, height);
|
|
2657
|
+
this.position.set(center2[0], center2[1], this.position.z);
|
|
2658
|
+
}
|
|
2659
|
+
initPlane(width, height) {
|
|
2660
|
+
if (this.plane) {
|
|
2661
|
+
this.remove(this.plane);
|
|
2662
|
+
}
|
|
2663
|
+
const geometry = new PlaneGeometry2(width, height);
|
|
2664
|
+
const texture = new Texture(this.div.firstChild);
|
|
2665
|
+
texture.needsUpdate = true;
|
|
2666
|
+
const material = new MeshBasicMaterial2({
|
|
2667
|
+
transparent: true,
|
|
2668
|
+
side: DoubleSide3,
|
|
2669
|
+
map: texture
|
|
2670
|
+
});
|
|
2671
|
+
material.needsUpdate = true;
|
|
2672
|
+
this.plane = new Mesh3(geometry, material);
|
|
2673
|
+
this.add(this.plane);
|
|
2674
|
+
}
|
|
2675
|
+
getTransMatrix({ x, y }) {
|
|
2676
|
+
return new Matrix3().makeScale(1, -1).multiply(new Matrix3().makeTranslation(0 - x, 0 - y));
|
|
2677
|
+
}
|
|
2678
|
+
/**
|
|
2679
|
+
* 所有点的坐标减去左上角从00点开始画canvas
|
|
2680
|
+
* @param data
|
|
2681
|
+
* @param leftTop
|
|
2682
|
+
* @returns
|
|
2683
|
+
*/
|
|
2684
|
+
transformData(data, leftTop) {
|
|
2685
|
+
const matrix = this.getTransMatrix(leftTop);
|
|
2686
|
+
const $data = data.data.map((item) => {
|
|
2687
|
+
const vector = new Vector24(item.x, item.y).applyMatrix3(matrix);
|
|
2688
|
+
return {
|
|
2689
|
+
x: vector.x,
|
|
2690
|
+
y: vector.y,
|
|
2691
|
+
value: item.value
|
|
2692
|
+
};
|
|
2693
|
+
});
|
|
2694
|
+
return {
|
|
2695
|
+
data: $data,
|
|
2696
|
+
max: data.max,
|
|
2697
|
+
min: data.min
|
|
2698
|
+
};
|
|
2699
|
+
}
|
|
2700
|
+
getBox(data) {
|
|
2701
|
+
const features = featureCollection2(data.data.map((item) => point2([item.x, item.y])));
|
|
2702
|
+
const box = bbox(features);
|
|
2703
|
+
const width = box[2] - box[0];
|
|
2704
|
+
const height = box[3] - box[1];
|
|
2705
|
+
const leftTop = { x: box[0], y: box[3] };
|
|
2706
|
+
const center2 = getCenter2(features);
|
|
2707
|
+
return { width, height, leftTop, center: center2.geometry.coordinates };
|
|
2708
|
+
}
|
|
2709
|
+
dispose() {
|
|
2710
|
+
this.div = null;
|
|
2711
|
+
this.heatmap = void 0;
|
|
2712
|
+
}
|
|
2713
|
+
};
|
|
2714
|
+
|
|
2715
|
+
// src/elements/model.ts
|
|
2716
|
+
import { Object3D as Object3D6, Vector3 as Vector36 } from "three";
|
|
2717
|
+
var Model = class extends Object3D6 {
|
|
2718
|
+
constructor(context, options) {
|
|
2719
|
+
super();
|
|
2720
|
+
this.context = context;
|
|
2721
|
+
this.options = options;
|
|
2722
|
+
this.position.copy(options.position || new Vector36(0, 0, 0));
|
|
2723
|
+
this.loadModel();
|
|
2724
|
+
}
|
|
2725
|
+
model = null;
|
|
2726
|
+
async loadModel() {
|
|
2727
|
+
const object = await loadModel(this.options.modelUrl);
|
|
2728
|
+
object.scene.rotation.set(Math.PI / 2, Math.PI / 2, 0);
|
|
2729
|
+
this.add(object.scene);
|
|
2730
|
+
this.model = object;
|
|
2731
|
+
}
|
|
2732
|
+
dispose() {
|
|
2733
|
+
dispose(this);
|
|
2734
|
+
this.model = null;
|
|
2735
|
+
}
|
|
2736
|
+
};
|
|
2617
2737
|
|
|
2618
2738
|
// src/layer/graphic-layer.ts
|
|
2619
|
-
import { Box3 as
|
|
2739
|
+
import { Box3 as Box34, Vector3 as Vector37 } from "three";
|
|
2620
2740
|
|
|
2621
2741
|
// src/layer/layer.ts
|
|
2622
|
-
import { Object3D as
|
|
2623
|
-
var Layer = class extends
|
|
2742
|
+
import { Object3D as Object3D7 } from "three";
|
|
2743
|
+
var Layer = class extends Object3D7 {
|
|
2624
2744
|
constructor(context) {
|
|
2625
2745
|
super();
|
|
2626
2746
|
this.context = context;
|
|
2627
2747
|
}
|
|
2628
2748
|
dispose() {
|
|
2629
2749
|
dispose(this);
|
|
2750
|
+
this.children.forEach((item) => item.dispose?.());
|
|
2630
2751
|
this.clear();
|
|
2631
2752
|
}
|
|
2632
2753
|
};
|
|
@@ -2638,8 +2759,8 @@ var GraphicLayer = class extends Layer {
|
|
|
2638
2759
|
super(context);
|
|
2639
2760
|
}
|
|
2640
2761
|
getCenter() {
|
|
2641
|
-
const box = new
|
|
2642
|
-
return box.getCenter(new
|
|
2762
|
+
const box = new Box34().setFromObject(this);
|
|
2763
|
+
return box.getCenter(new Vector37());
|
|
2643
2764
|
}
|
|
2644
2765
|
createGraphic(options) {
|
|
2645
2766
|
const graphic = new Graphic(this.context, options);
|
|
@@ -2823,215 +2944,32 @@ var PoiLayer = class extends Layer {
|
|
|
2823
2944
|
}
|
|
2824
2945
|
};
|
|
2825
2946
|
|
|
2826
|
-
// src/elements/heatmap.ts
|
|
2827
|
-
import {
|
|
2828
|
-
MeshBasicMaterial as MeshBasicMaterial2,
|
|
2829
|
-
Object3D as Object3D6,
|
|
2830
|
-
PlaneGeometry as PlaneGeometry2,
|
|
2831
|
-
Texture,
|
|
2832
|
-
DoubleSide as DoubleSide3,
|
|
2833
|
-
Mesh as Mesh3,
|
|
2834
|
-
Matrix3,
|
|
2835
|
-
Vector2 as Vector24
|
|
2836
|
-
} from "three";
|
|
2837
|
-
import { create } from "@mars3d/heatmap.js";
|
|
2838
|
-
import { featureCollection as featureCollection2, point as point2, bbox, center as getCenter2 } from "@turf/turf";
|
|
2839
|
-
var HeatmapElement = class extends Object3D6 {
|
|
2840
|
-
constructor(context) {
|
|
2841
|
-
super();
|
|
2842
|
-
this.context = context;
|
|
2843
|
-
this.div = document.createElement("div");
|
|
2844
|
-
}
|
|
2845
|
-
heatmap;
|
|
2846
|
-
div;
|
|
2847
|
-
plane;
|
|
2848
|
-
clearHeatmap() {
|
|
2849
|
-
if (this.div.firstChild) {
|
|
2850
|
-
this.div.removeChild(this.div.firstChild);
|
|
2851
|
-
}
|
|
2852
|
-
this.heatmap = void 0;
|
|
2853
|
-
}
|
|
2854
|
-
loadData(data) {
|
|
2855
|
-
this.clearHeatmap();
|
|
2856
|
-
const { width, height, leftTop, center: center2 } = this.getBox(data);
|
|
2857
|
-
this.heatmap = create({
|
|
2858
|
-
width,
|
|
2859
|
-
height,
|
|
2860
|
-
container: this.div,
|
|
2861
|
-
...this.context.config.heatMap
|
|
2862
|
-
});
|
|
2863
|
-
this.heatmap.setData(this.transformData(data, leftTop));
|
|
2864
|
-
this.initPlane(width, height);
|
|
2865
|
-
this.position.set(center2[0], center2[1], this.position.z);
|
|
2866
|
-
}
|
|
2867
|
-
initPlane(width, height) {
|
|
2868
|
-
if (this.plane) {
|
|
2869
|
-
this.remove(this.plane);
|
|
2870
|
-
}
|
|
2871
|
-
const geometry = new PlaneGeometry2(width, height);
|
|
2872
|
-
const texture = new Texture(this.div.firstChild);
|
|
2873
|
-
texture.needsUpdate = true;
|
|
2874
|
-
const material = new MeshBasicMaterial2({
|
|
2875
|
-
transparent: true,
|
|
2876
|
-
side: DoubleSide3,
|
|
2877
|
-
map: texture
|
|
2878
|
-
});
|
|
2879
|
-
material.needsUpdate = true;
|
|
2880
|
-
this.plane = new Mesh3(geometry, material);
|
|
2881
|
-
this.add(this.plane);
|
|
2882
|
-
}
|
|
2883
|
-
getTransMatrix({ x, y }) {
|
|
2884
|
-
return new Matrix3().makeScale(1, -1).multiply(new Matrix3().makeTranslation(0 - x, 0 - y));
|
|
2885
|
-
}
|
|
2886
|
-
/**
|
|
2887
|
-
* 所有点的坐标减去左上角从00点开始画canvas
|
|
2888
|
-
* @param data
|
|
2889
|
-
* @param leftTop
|
|
2890
|
-
* @returns
|
|
2891
|
-
*/
|
|
2892
|
-
transformData(data, leftTop) {
|
|
2893
|
-
const matrix = this.getTransMatrix(leftTop);
|
|
2894
|
-
const $data = data.data.map((item) => {
|
|
2895
|
-
const vector = new Vector24(item.x, item.y).applyMatrix3(matrix);
|
|
2896
|
-
return {
|
|
2897
|
-
x: vector.x,
|
|
2898
|
-
y: vector.y,
|
|
2899
|
-
value: item.value
|
|
2900
|
-
};
|
|
2901
|
-
});
|
|
2902
|
-
return {
|
|
2903
|
-
data: $data,
|
|
2904
|
-
max: data.max,
|
|
2905
|
-
min: data.min
|
|
2906
|
-
};
|
|
2907
|
-
}
|
|
2908
|
-
getBox(data) {
|
|
2909
|
-
const features = featureCollection2(data.data.map((item) => point2([item.x, item.y])));
|
|
2910
|
-
const box = bbox(features);
|
|
2911
|
-
const width = box[2] - box[0];
|
|
2912
|
-
const height = box[3] - box[1];
|
|
2913
|
-
const leftTop = { x: box[0], y: box[3] };
|
|
2914
|
-
const center2 = getCenter2(features);
|
|
2915
|
-
return { width, height, leftTop, center: center2.geometry.coordinates };
|
|
2916
|
-
}
|
|
2917
|
-
dispose() {
|
|
2918
|
-
this.div = null;
|
|
2919
|
-
this.heatmap = void 0;
|
|
2920
|
-
}
|
|
2921
|
-
};
|
|
2922
|
-
|
|
2923
|
-
// src/elements/model.ts
|
|
2924
|
-
import { Box3 as Box34, Object3D as Object3D7, Vector3 as Vector37 } from "three";
|
|
2925
|
-
var Model = class extends Object3D7 {
|
|
2926
|
-
constructor(context, options) {
|
|
2927
|
-
super();
|
|
2928
|
-
this.context = context;
|
|
2929
|
-
this.options = options;
|
|
2930
|
-
this.position.copy(options.position || new Vector37(0, 0, 0));
|
|
2931
|
-
this.loadModel();
|
|
2932
|
-
}
|
|
2933
|
-
poi = null;
|
|
2934
|
-
model = null;
|
|
2935
|
-
async loadModel() {
|
|
2936
|
-
const object = await loadModel(this.options.modelUrl);
|
|
2937
|
-
object.scene.rotation.set(Math.PI / 2, Math.PI / 2, 0);
|
|
2938
|
-
this.add(object.scene);
|
|
2939
|
-
this.model = object;
|
|
2940
|
-
this.initPoi();
|
|
2941
|
-
}
|
|
2942
|
-
initPoi() {
|
|
2943
|
-
if (!this.options.icon) {
|
|
2944
|
-
return;
|
|
2945
|
-
}
|
|
2946
|
-
const poi = this.context.currentFloor?.addPoi({
|
|
2947
|
-
icon: this.options.icon,
|
|
2948
|
-
icon_size: this.options.icon_size,
|
|
2949
|
-
built_in: true,
|
|
2950
|
-
level: 0
|
|
2951
|
-
});
|
|
2952
|
-
this.poi = poi || null;
|
|
2953
|
-
if (this.model && poi) {
|
|
2954
|
-
poi.position = new Box34().setFromObject(this).getCenter(new Vector37());
|
|
2955
|
-
}
|
|
2956
|
-
}
|
|
2957
|
-
dispose() {
|
|
2958
|
-
dispose(this);
|
|
2959
|
-
this.model = null;
|
|
2960
|
-
if (this.poi) {
|
|
2961
|
-
this.context.currentFloor?.poiLayer.removePoi(this.poi);
|
|
2962
|
-
this.poi = null;
|
|
2963
|
-
}
|
|
2964
|
-
}
|
|
2965
|
-
};
|
|
2966
|
-
|
|
2967
|
-
// src/elements/ground-texture.ts
|
|
2968
|
-
import { Euler, Mesh as Mesh4, Object3D as Object3D8, PlaneGeometry as PlaneGeometry3 } from "three";
|
|
2969
|
-
var defaultOptions4 = {
|
|
2970
|
-
uuid: "",
|
|
2971
|
-
url: "",
|
|
2972
|
-
name: "",
|
|
2973
|
-
angleX: 0,
|
|
2974
|
-
angleY: 0,
|
|
2975
|
-
angleZ: 0,
|
|
2976
|
-
width: 0,
|
|
2977
|
-
height: 0,
|
|
2978
|
-
center: [0, 0],
|
|
2979
|
-
opacity: 1,
|
|
2980
|
-
visible: true
|
|
2981
|
-
};
|
|
2982
|
-
var GroundTexture = class extends Object3D8 {
|
|
2983
|
-
constructor(context, options) {
|
|
2984
|
-
super();
|
|
2985
|
-
this.context = context;
|
|
2986
|
-
this.options = proxyOptions(
|
|
2987
|
-
{ ...defaultOptions4, ...options },
|
|
2988
|
-
this
|
|
2989
|
-
);
|
|
2990
|
-
this.init();
|
|
2991
|
-
}
|
|
2992
|
-
options;
|
|
2993
|
-
mesh;
|
|
2994
|
-
async init() {
|
|
2995
|
-
const { width, height, center: center2, url, opacity, angleX, angleY, angleZ } = this.options;
|
|
2996
|
-
const planeGeometry = new PlaneGeometry3(width, height);
|
|
2997
|
-
const planeMaterial = await this.context.materialFactory.createGroundTextureMaterial({
|
|
2998
|
-
url,
|
|
2999
|
-
opacity
|
|
3000
|
-
});
|
|
3001
|
-
const mesh = new Mesh4(planeGeometry, planeMaterial);
|
|
3002
|
-
this.mesh = mesh;
|
|
3003
|
-
this.mesh.position.set(center2[0], center2[1], 0);
|
|
3004
|
-
mesh.setRotationFromEuler(new Euler(angleX, angleY, angleZ));
|
|
3005
|
-
this.add(mesh);
|
|
3006
|
-
}
|
|
3007
|
-
dispose() {
|
|
3008
|
-
this.mesh?.geometry.dispose();
|
|
3009
|
-
this.clear();
|
|
3010
|
-
}
|
|
3011
|
-
};
|
|
3012
|
-
|
|
3013
2947
|
// src/elements/floor.ts
|
|
3014
|
-
var Floor = class extends
|
|
2948
|
+
var Floor = class extends Object3D8 {
|
|
3015
2949
|
constructor(context) {
|
|
3016
2950
|
super();
|
|
3017
2951
|
this.context = context;
|
|
3018
2952
|
this.graphicLayer = new GraphicLayer(this.context);
|
|
3019
2953
|
this.poiLayer = new PoiLayer(this.context);
|
|
2954
|
+
this.wallLayer = new Layer(this.context);
|
|
2955
|
+
this.textureLayer = new Layer(this.context);
|
|
3020
2956
|
this.groundUpper.add(this.graphicLayer);
|
|
3021
2957
|
this.groundUpper.add(this.poiLayer);
|
|
3022
|
-
this.groundUpper.add(this.
|
|
2958
|
+
this.groundUpper.add(this.wallLayer);
|
|
2959
|
+
this.groundUpper.add(this.textureLayer);
|
|
3023
2960
|
this.add(this.groundUpper);
|
|
3024
2961
|
this.add(this.models);
|
|
3025
2962
|
}
|
|
3026
2963
|
graphicLayer;
|
|
3027
2964
|
poiLayer;
|
|
2965
|
+
wallLayer;
|
|
2966
|
+
textureLayer;
|
|
3028
2967
|
grounds = /* @__PURE__ */ new Set();
|
|
3029
2968
|
shadow = new Shadow();
|
|
3030
2969
|
heatmap;
|
|
3031
|
-
groundUpper = new
|
|
3032
|
-
models = new
|
|
2970
|
+
groundUpper = new Object3D8();
|
|
2971
|
+
models = new Object3D8();
|
|
3033
2972
|
modelMap = /* @__PURE__ */ new Map();
|
|
3034
|
-
groundTextures = new Group2();
|
|
3035
2973
|
groundMaxHeight = 0;
|
|
3036
2974
|
name = "";
|
|
3037
2975
|
key = "";
|
|
@@ -3084,10 +3022,6 @@ var Floor = class extends Object3D9 {
|
|
|
3084
3022
|
addPoi(poiOptions) {
|
|
3085
3023
|
return this.poiLayer.createPoi(poiOptions);
|
|
3086
3024
|
}
|
|
3087
|
-
addGroundTexture(options) {
|
|
3088
|
-
const groundTexture = new GroundTexture(this.context, options);
|
|
3089
|
-
this.groundTextures.add(groundTexture);
|
|
3090
|
-
}
|
|
3091
3025
|
addHeatmap(data) {
|
|
3092
3026
|
if (!this.heatmap) {
|
|
3093
3027
|
this.heatmap = new HeatmapElement(this.context);
|
|
@@ -3115,9 +3049,9 @@ var Floor = class extends Object3D9 {
|
|
|
3115
3049
|
this.shadow.dispose();
|
|
3116
3050
|
this.graphicLayer.dispose();
|
|
3117
3051
|
this.poiLayer.dispose();
|
|
3052
|
+
this.wallLayer.dispose();
|
|
3053
|
+
this.textureLayer.dispose();
|
|
3118
3054
|
this.grounds.forEach((ground) => ground.dispose());
|
|
3119
|
-
this.groundTextures.children.forEach((groundTexture) => groundTexture.dispose());
|
|
3120
|
-
this.groundTextures.clear();
|
|
3121
3055
|
this.heatmap?.dispose();
|
|
3122
3056
|
this.groundUpper.clear();
|
|
3123
3057
|
this.models.children.forEach((model) => model.dispose());
|
|
@@ -3516,6 +3450,154 @@ var SelectBox = class extends BaseSvg {
|
|
|
3516
3450
|
}
|
|
3517
3451
|
};
|
|
3518
3452
|
|
|
3453
|
+
// src/elements/wall.ts
|
|
3454
|
+
import { BufferGeometry as BufferGeometry2, ExtrudeGeometry as ExtrudeGeometry2, LineSegments as LineSegments2, Mesh as Mesh4, Object3D as Object3D9, Vector3 as Vector310 } from "three";
|
|
3455
|
+
import { mergeGeometries } from "three/examples/jsm/utils/BufferGeometryUtils";
|
|
3456
|
+
var Wall = class extends Object3D9 {
|
|
3457
|
+
constructor(context, options) {
|
|
3458
|
+
super();
|
|
3459
|
+
this.context = context;
|
|
3460
|
+
this.options = options;
|
|
3461
|
+
if (!options.length) {
|
|
3462
|
+
return;
|
|
3463
|
+
}
|
|
3464
|
+
this.init();
|
|
3465
|
+
}
|
|
3466
|
+
geometry;
|
|
3467
|
+
material;
|
|
3468
|
+
lineMaterial;
|
|
3469
|
+
lineGeometry;
|
|
3470
|
+
Mesh;
|
|
3471
|
+
LineMesh;
|
|
3472
|
+
initGeometry() {
|
|
3473
|
+
const geometries = this.options.map((option) => {
|
|
3474
|
+
const shape = initShape(
|
|
3475
|
+
option.geometry.coords[0],
|
|
3476
|
+
option.geometry.coords.slice(1)
|
|
3477
|
+
);
|
|
3478
|
+
const geometry = new ExtrudeGeometry2(shape, {
|
|
3479
|
+
steps: 1,
|
|
3480
|
+
bevelEnabled: false,
|
|
3481
|
+
depth: option.height,
|
|
3482
|
+
curveSegments: 4
|
|
3483
|
+
});
|
|
3484
|
+
return geometry;
|
|
3485
|
+
});
|
|
3486
|
+
this.geometry = mergeGeometries(geometries);
|
|
3487
|
+
}
|
|
3488
|
+
initMaterial() {
|
|
3489
|
+
const { fillColor, fillOpacity, height } = this.options[0];
|
|
3490
|
+
const material = this.context.materialFactory.createMeshBasicMaterial({
|
|
3491
|
+
color: fillColor,
|
|
3492
|
+
opacity: fillOpacity
|
|
3493
|
+
});
|
|
3494
|
+
const material1 = this.context.materialFactory.createMeshBasicMaterial({
|
|
3495
|
+
color: darkenColor(fillColor),
|
|
3496
|
+
opacity: fillOpacity
|
|
3497
|
+
});
|
|
3498
|
+
this.material = [material, material1];
|
|
3499
|
+
return [material, material1];
|
|
3500
|
+
}
|
|
3501
|
+
initLineMaterial() {
|
|
3502
|
+
const { strokeColor, strokeOpacity } = this.options[0];
|
|
3503
|
+
const lineMaterial = this.context.materialFactory.createLineMaterial({
|
|
3504
|
+
color: strokeColor,
|
|
3505
|
+
opacity: strokeOpacity
|
|
3506
|
+
});
|
|
3507
|
+
this.lineMaterial = lineMaterial;
|
|
3508
|
+
return lineMaterial;
|
|
3509
|
+
}
|
|
3510
|
+
getBorderPoints(option) {
|
|
3511
|
+
const { height, deltaHeight, geometry } = option;
|
|
3512
|
+
const points = [];
|
|
3513
|
+
const _height = height + (deltaHeight || 0);
|
|
3514
|
+
const { coords } = geometry;
|
|
3515
|
+
for (let j = 0; j < coords.length; j++) {
|
|
3516
|
+
const curCds = coords[j];
|
|
3517
|
+
for (let i = 0; i < curCds.length; i++) {
|
|
3518
|
+
const cur = curCds[i];
|
|
3519
|
+
const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
|
|
3520
|
+
points.push(new Vector310(cur[0], cur[1], _height));
|
|
3521
|
+
points.push(new Vector310(next[0], next[1], _height));
|
|
3522
|
+
}
|
|
3523
|
+
}
|
|
3524
|
+
return points;
|
|
3525
|
+
}
|
|
3526
|
+
initLineGeometry() {
|
|
3527
|
+
const geometries = this.options.map((option) => {
|
|
3528
|
+
const points = this.getBorderPoints(option);
|
|
3529
|
+
return new BufferGeometry2().setFromPoints(points);
|
|
3530
|
+
});
|
|
3531
|
+
this.lineGeometry = mergeGeometries(geometries);
|
|
3532
|
+
}
|
|
3533
|
+
createBorder() {
|
|
3534
|
+
const line = new LineSegments2(this.lineGeometry, this.lineMaterial);
|
|
3535
|
+
this.LineMesh = line;
|
|
3536
|
+
this.add(line);
|
|
3537
|
+
return line;
|
|
3538
|
+
}
|
|
3539
|
+
init() {
|
|
3540
|
+
this.initGeometry();
|
|
3541
|
+
this.initMaterial();
|
|
3542
|
+
const mesh = new Mesh4(this.geometry, this.material);
|
|
3543
|
+
this.add(mesh);
|
|
3544
|
+
this.initLineMaterial();
|
|
3545
|
+
this.initLineGeometry();
|
|
3546
|
+
this.createBorder();
|
|
3547
|
+
}
|
|
3548
|
+
dispose() {
|
|
3549
|
+
this.geometry?.dispose();
|
|
3550
|
+
this.lineGeometry?.dispose();
|
|
3551
|
+
this.clear();
|
|
3552
|
+
}
|
|
3553
|
+
};
|
|
3554
|
+
|
|
3555
|
+
// src/elements/ground-texture.ts
|
|
3556
|
+
import { Euler, Mesh as Mesh5, Object3D as Object3D10, PlaneGeometry as PlaneGeometry3 } from "three";
|
|
3557
|
+
var defaultOptions4 = {
|
|
3558
|
+
uuid: "",
|
|
3559
|
+
url: "",
|
|
3560
|
+
name: "",
|
|
3561
|
+
angleX: 0,
|
|
3562
|
+
angleY: 0,
|
|
3563
|
+
angleZ: 0,
|
|
3564
|
+
width: 0,
|
|
3565
|
+
height: 0,
|
|
3566
|
+
center: [0, 0],
|
|
3567
|
+
opacity: 1,
|
|
3568
|
+
visible: true
|
|
3569
|
+
};
|
|
3570
|
+
var GroundTexture = class extends Object3D10 {
|
|
3571
|
+
constructor(context, options) {
|
|
3572
|
+
super();
|
|
3573
|
+
this.context = context;
|
|
3574
|
+
this.options = proxyOptions(
|
|
3575
|
+
{ ...defaultOptions4, ...options },
|
|
3576
|
+
this
|
|
3577
|
+
);
|
|
3578
|
+
this.init();
|
|
3579
|
+
}
|
|
3580
|
+
options;
|
|
3581
|
+
mesh;
|
|
3582
|
+
async init() {
|
|
3583
|
+
const { width, height, center: center2, url, opacity, angleX, angleY, angleZ } = this.options;
|
|
3584
|
+
const planeGeometry = new PlaneGeometry3(width, height);
|
|
3585
|
+
const planeMaterial = await this.context.materialFactory.createGroundTextureMaterial({
|
|
3586
|
+
url,
|
|
3587
|
+
opacity
|
|
3588
|
+
});
|
|
3589
|
+
const mesh = new Mesh5(planeGeometry, planeMaterial);
|
|
3590
|
+
this.mesh = mesh;
|
|
3591
|
+
this.mesh.position.set(center2[0], center2[1], 0);
|
|
3592
|
+
mesh.setRotationFromEuler(new Euler(angleX, angleY, angleZ));
|
|
3593
|
+
this.add(mesh);
|
|
3594
|
+
}
|
|
3595
|
+
dispose() {
|
|
3596
|
+
this.mesh?.geometry.dispose();
|
|
3597
|
+
this.clear();
|
|
3598
|
+
}
|
|
3599
|
+
};
|
|
3600
|
+
|
|
3519
3601
|
// src/operations/selection/box-selection.ts
|
|
3520
3602
|
import { Frustum } from "three";
|
|
3521
3603
|
var BoxSelection = class extends BaseSvg {
|
|
@@ -3876,9 +3958,9 @@ var HoverHelper = class extends EventDispatcher5 {
|
|
|
3876
3958
|
// src/factory/material.ts
|
|
3877
3959
|
import {
|
|
3878
3960
|
Color as Color4,
|
|
3879
|
-
LineBasicMaterial as
|
|
3961
|
+
LineBasicMaterial as LineBasicMaterial3,
|
|
3880
3962
|
MeshStandardMaterial as MeshStandardMaterial2,
|
|
3881
|
-
MeshBasicMaterial as
|
|
3963
|
+
MeshBasicMaterial as MeshBasicMaterial5,
|
|
3882
3964
|
ShaderMaterial as ShaderMaterial2,
|
|
3883
3965
|
DoubleSide as DoubleSide4
|
|
3884
3966
|
} from "three";
|
|
@@ -3902,7 +3984,7 @@ var MaterialFactory = class {
|
|
|
3902
3984
|
if (this.lineMaterialMap.has(key)) {
|
|
3903
3985
|
return this.lineMaterialMap.get(key);
|
|
3904
3986
|
}
|
|
3905
|
-
const lineMaterial = new
|
|
3987
|
+
const lineMaterial = new LineBasicMaterial3({
|
|
3906
3988
|
color: new Color4(color).convertLinearToSRGB(),
|
|
3907
3989
|
transparent: true,
|
|
3908
3990
|
opacity
|
|
@@ -3930,7 +4012,7 @@ var MaterialFactory = class {
|
|
|
3930
4012
|
if (this.meshBasicMaterialMap.has(key)) {
|
|
3931
4013
|
return this.meshBasicMaterialMap.get(key);
|
|
3932
4014
|
}
|
|
3933
|
-
const material = new
|
|
4015
|
+
const material = new MeshBasicMaterial5({
|
|
3934
4016
|
color,
|
|
3935
4017
|
transparent: true,
|
|
3936
4018
|
opacity,
|
|
@@ -4033,7 +4115,7 @@ var MaterialFactory = class {
|
|
|
4033
4115
|
return this.groundTextureMaterialMap.get(key);
|
|
4034
4116
|
}
|
|
4035
4117
|
const texture = await this.context.textureFactory.getTexture(url);
|
|
4036
|
-
const material = new
|
|
4118
|
+
const material = new MeshBasicMaterial5({
|
|
4037
4119
|
map: texture,
|
|
4038
4120
|
transparent: true,
|
|
4039
4121
|
opacity
|
|
@@ -4067,7 +4149,7 @@ var MaterialFactory = class {
|
|
|
4067
4149
|
};
|
|
4068
4150
|
|
|
4069
4151
|
// src/utils/camera-bound.ts
|
|
4070
|
-
import { Box3 as Box37, Vector3 as
|
|
4152
|
+
import { Box3 as Box37, Vector3 as Vector313 } from "three";
|
|
4071
4153
|
var CameraBound = class {
|
|
4072
4154
|
constructor(context) {
|
|
4073
4155
|
this.context = context;
|
|
@@ -4075,9 +4157,9 @@ var CameraBound = class {
|
|
|
4075
4157
|
this.changePrevCamera();
|
|
4076
4158
|
}
|
|
4077
4159
|
prevCamera = {
|
|
4078
|
-
position: new
|
|
4160
|
+
position: new Vector313(),
|
|
4079
4161
|
zoom: 1,
|
|
4080
|
-
target: new
|
|
4162
|
+
target: new Vector313()
|
|
4081
4163
|
};
|
|
4082
4164
|
enable = true;
|
|
4083
4165
|
setEnable(enable) {
|
|
@@ -4110,16 +4192,17 @@ var CameraBound = class {
|
|
|
4110
4192
|
this.context.removeEventListener("control-change", this.onCameraChange);
|
|
4111
4193
|
}
|
|
4112
4194
|
getCurFloorScreenPosition() {
|
|
4113
|
-
|
|
4195
|
+
const floors = this.context.scene.children.filter((el) => el instanceof Floor);
|
|
4196
|
+
if (!floors.length) {
|
|
4114
4197
|
return null;
|
|
4115
4198
|
}
|
|
4116
|
-
const box = new Box37().setFromObject(this.context.
|
|
4117
|
-
const { camera,
|
|
4199
|
+
const box = new Box37().setFromObject(this.context.scene);
|
|
4200
|
+
const { camera, clientSize: { width: w, height: h } } = this.context;
|
|
4118
4201
|
const { min, max } = box;
|
|
4119
4202
|
const lb = vector3ToDevice(min, camera, w, h);
|
|
4120
4203
|
const rt = vector3ToDevice(max, camera, w, h);
|
|
4121
|
-
const lt = vector3ToDevice(new
|
|
4122
|
-
const rb = vector3ToDevice(new
|
|
4204
|
+
const lt = vector3ToDevice(new Vector313(min.x, max.y, max.z), camera, w, h);
|
|
4205
|
+
const rb = vector3ToDevice(new Vector313(max.x, min.y, min.z), camera, w, h);
|
|
4123
4206
|
const left = Math.min(lb.x, rt.x, lt.x, rb.x);
|
|
4124
4207
|
const right = Math.max(lb.x, rt.x, lt.x, rb.x);
|
|
4125
4208
|
const top = Math.min(lb.y, rt.y, lt.y, rb.y);
|
|
@@ -4134,9 +4217,23 @@ var CameraBound = class {
|
|
|
4134
4217
|
checkDistanceToScreenEdge({ left, right, top, bottom }) {
|
|
4135
4218
|
const { width, height } = this.context.clientSize;
|
|
4136
4219
|
const [pt, pr, pb, pl] = this.context.config.cameraBound.padding;
|
|
4137
|
-
|
|
4220
|
+
const checkedRight = right >= pl;
|
|
4221
|
+
const checkedLeft = width - left >= pr;
|
|
4222
|
+
const checkedTop = height - top >= pb;
|
|
4223
|
+
const checkedBottom = bottom >= pt;
|
|
4224
|
+
return checkedRight && checkedLeft && checkedTop && checkedBottom;
|
|
4138
4225
|
}
|
|
4139
4226
|
onCameraChange = () => {
|
|
4227
|
+
const bound = this.getCurFloorScreenPosition();
|
|
4228
|
+
if (bound) {
|
|
4229
|
+
const { left, right, top, bottom } = bound;
|
|
4230
|
+
const isInBound = this.checkDistanceToScreenEdge({ left, right, top, bottom });
|
|
4231
|
+
if (isInBound) {
|
|
4232
|
+
this.changePrevCamera();
|
|
4233
|
+
} else {
|
|
4234
|
+
this.backToPrevCamera();
|
|
4235
|
+
}
|
|
4236
|
+
}
|
|
4140
4237
|
};
|
|
4141
4238
|
dispose() {
|
|
4142
4239
|
this.unRegistryEvent();
|
|
@@ -4235,7 +4332,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
4235
4332
|
/**
|
|
4236
4333
|
* 获取两个点之间的像素数
|
|
4237
4334
|
*/
|
|
4238
|
-
getRatio(point1 = new
|
|
4335
|
+
getRatio(point1 = new Vector314(0, 0, 0), point22 = new Vector314(100, 0, 0)) {
|
|
4239
4336
|
const { clientWidth, clientHeight } = this.container;
|
|
4240
4337
|
const device1 = vector3ToDevice(point1, this.camera, clientWidth, clientHeight);
|
|
4241
4338
|
const device2 = vector3ToDevice(point22, this.camera, clientWidth, clientHeight);
|
|
@@ -4436,7 +4533,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
4436
4533
|
);
|
|
4437
4534
|
}
|
|
4438
4535
|
getCameraLookAt() {
|
|
4439
|
-
return new
|
|
4536
|
+
return new Vector314().subVectors(this.control.target, this.camera.position);
|
|
4440
4537
|
}
|
|
4441
4538
|
/**
|
|
4442
4539
|
* 按照一个中心点设置相机的放大缩小
|
|
@@ -4491,10 +4588,10 @@ var Context = class extends EventDispatcher6 {
|
|
|
4491
4588
|
const boundingBox = new Box38().setFromObject(object);
|
|
4492
4589
|
this.setPolarAngle(polar, 0);
|
|
4493
4590
|
const { max, min } = boundingBox;
|
|
4494
|
-
const leftTop = new
|
|
4495
|
-
const rightTop = new
|
|
4496
|
-
const rightBottom = new
|
|
4497
|
-
const leftBottom = new
|
|
4591
|
+
const leftTop = new Vector314(min.x, max.y, max.z);
|
|
4592
|
+
const rightTop = new Vector314(max.x, max.y, max.z);
|
|
4593
|
+
const rightBottom = new Vector314(max.x, min.y, min.z);
|
|
4594
|
+
const leftBottom = new Vector314(min.x, min.y, min.z);
|
|
4498
4595
|
const leftTop2d = vector3ToDevice(leftTop, this.camera, width, height);
|
|
4499
4596
|
const rightTop2d = vector3ToDevice(rightTop, this.camera, width, height);
|
|
4500
4597
|
const leftBottom2d = vector3ToDevice(leftBottom, this.camera, width, height);
|
|
@@ -4509,7 +4606,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
4509
4606
|
const xScale = (width - right - left) / size.x;
|
|
4510
4607
|
const yScale = (height - top - bottom) / size.y;
|
|
4511
4608
|
const scale = Math.min(xScale, yScale);
|
|
4512
|
-
const center2 = new
|
|
4609
|
+
const center2 = new Vector314((max.x + min.x) / 2, (max.y + min.y) / 2, (max.z + min.z) / 2);
|
|
4513
4610
|
return { zoom: scale * this.camera.zoom, center: center2 };
|
|
4514
4611
|
}
|
|
4515
4612
|
/**
|
|
@@ -4969,6 +5066,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
4969
5066
|
this.context.control.addEventListener("change", this.onControlChange);
|
|
4970
5067
|
this.onControlChange();
|
|
4971
5068
|
this.context.cameraBound.setEnable(true);
|
|
5069
|
+
this.context.cameraBound.changePrevCamera();
|
|
4972
5070
|
}
|
|
4973
5071
|
onControlChange = () => {
|
|
4974
5072
|
const {
|
|
@@ -5059,7 +5157,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
5059
5157
|
} = this.context;
|
|
5060
5158
|
const device = vector3ToDevice(position, camera, width, height);
|
|
5061
5159
|
const offsetX = device.x - width / 2;
|
|
5062
|
-
const v3 = new
|
|
5160
|
+
const v3 = new Vector315();
|
|
5063
5161
|
v3.setFromMatrixColumn(this.context.camera.matrix, 0);
|
|
5064
5162
|
v3.normalize();
|
|
5065
5163
|
v3.multiplyScalar(offsetX / this.context.camera.zoom);
|
|
@@ -5432,24 +5530,24 @@ function Worker2() {
|
|
|
5432
5530
|
|
|
5433
5531
|
// src/plugins/navigation/path.ts
|
|
5434
5532
|
import {
|
|
5435
|
-
Mesh as
|
|
5436
|
-
Object3D as
|
|
5533
|
+
Mesh as Mesh6,
|
|
5534
|
+
Object3D as Object3D13,
|
|
5437
5535
|
TextureLoader as TextureLoader2,
|
|
5438
5536
|
Color as Color7,
|
|
5439
5537
|
Vector2 as Vector27,
|
|
5440
|
-
Vector3 as
|
|
5538
|
+
Vector3 as Vector317,
|
|
5441
5539
|
NormalBlending,
|
|
5442
5540
|
RepeatWrapping
|
|
5443
5541
|
} from "three";
|
|
5444
5542
|
|
|
5445
5543
|
// src/external/meshLine.js
|
|
5446
5544
|
import {
|
|
5447
|
-
BufferGeometry as
|
|
5545
|
+
BufferGeometry as BufferGeometry3,
|
|
5448
5546
|
Matrix4,
|
|
5449
|
-
Vector3 as
|
|
5547
|
+
Vector3 as Vector316,
|
|
5450
5548
|
Ray as Ray2,
|
|
5451
5549
|
Sphere,
|
|
5452
|
-
LineSegments as
|
|
5550
|
+
LineSegments as LineSegments3,
|
|
5453
5551
|
BufferAttribute,
|
|
5454
5552
|
ShaderChunk,
|
|
5455
5553
|
ShaderMaterial as ShaderMaterial3,
|
|
@@ -5457,7 +5555,7 @@ import {
|
|
|
5457
5555
|
Color as Color6,
|
|
5458
5556
|
Vector2 as Vector26
|
|
5459
5557
|
} from "three";
|
|
5460
|
-
var MeshLine = class extends
|
|
5558
|
+
var MeshLine = class extends BufferGeometry3 {
|
|
5461
5559
|
constructor() {
|
|
5462
5560
|
super();
|
|
5463
5561
|
this.isMeshLine = true;
|
|
@@ -5526,7 +5624,7 @@ MeshLine.prototype.setPoints = function(points, wcb) {
|
|
|
5526
5624
|
this.widthCallback = wcb;
|
|
5527
5625
|
this.positions = [];
|
|
5528
5626
|
this.counters = [];
|
|
5529
|
-
if (points.length && points[0] instanceof
|
|
5627
|
+
if (points.length && points[0] instanceof Vector316) {
|
|
5530
5628
|
for (var j = 0; j < points.length; j++) {
|
|
5531
5629
|
var p = points[j];
|
|
5532
5630
|
var c = j / points.length;
|
|
@@ -5550,7 +5648,7 @@ function MeshLineRaycast(raycaster, intersects) {
|
|
|
5550
5648
|
var inverseMatrix = new Matrix4();
|
|
5551
5649
|
var ray = new Ray2();
|
|
5552
5650
|
var sphere = new Sphere();
|
|
5553
|
-
var interRay = new
|
|
5651
|
+
var interRay = new Vector316();
|
|
5554
5652
|
var geometry = this.geometry;
|
|
5555
5653
|
if (!geometry.boundingSphere) geometry.computeBoundingSphere();
|
|
5556
5654
|
sphere.copy(geometry.boundingSphere);
|
|
@@ -5560,10 +5658,10 @@ function MeshLineRaycast(raycaster, intersects) {
|
|
|
5560
5658
|
}
|
|
5561
5659
|
inverseMatrix.copy(this.matrixWorld).invert();
|
|
5562
5660
|
ray.copy(raycaster.ray).applyMatrix4(inverseMatrix);
|
|
5563
|
-
var vStart = new
|
|
5564
|
-
var vEnd = new
|
|
5565
|
-
var interSegment = new
|
|
5566
|
-
var step = this instanceof
|
|
5661
|
+
var vStart = new Vector316();
|
|
5662
|
+
var vEnd = new Vector316();
|
|
5663
|
+
var interSegment = new Vector316();
|
|
5664
|
+
var step = this instanceof LineSegments3 ? 2 : 1;
|
|
5567
5665
|
var index = geometry.index;
|
|
5568
5666
|
var attributes = geometry.attributes;
|
|
5569
5667
|
if (index !== null) {
|
|
@@ -5616,8 +5714,8 @@ MeshLine.prototype.getDistance = function(i) {
|
|
|
5616
5714
|
let maxLength = 0;
|
|
5617
5715
|
for (let k = 0; k < i; k++) {
|
|
5618
5716
|
const index = 6 * k;
|
|
5619
|
-
const p0 = new
|
|
5620
|
-
const p1 = new
|
|
5717
|
+
const p0 = new Vector316(this.positions[index], this.positions[index + 1], this.positions[index + 2]);
|
|
5718
|
+
const p1 = new Vector316(this.positions[index + 6], this.positions[index + 7], this.positions[index + 8]);
|
|
5621
5719
|
const distance = p0.distanceTo(p1);
|
|
5622
5720
|
maxLength += distance;
|
|
5623
5721
|
}
|
|
@@ -6080,7 +6178,7 @@ var defaultConfig2 = {
|
|
|
6080
6178
|
lineWidth: 8,
|
|
6081
6179
|
color: 16777215
|
|
6082
6180
|
};
|
|
6083
|
-
var Path2 = class extends
|
|
6181
|
+
var Path2 = class extends Object3D13 {
|
|
6084
6182
|
constructor(navigation, config) {
|
|
6085
6183
|
super();
|
|
6086
6184
|
this.navigation = navigation;
|
|
@@ -6129,7 +6227,7 @@ var Path2 = class extends Object3D12 {
|
|
|
6129
6227
|
}
|
|
6130
6228
|
} = this;
|
|
6131
6229
|
const screenPoints = points.map(
|
|
6132
|
-
([x, y]) => vector3ToDevice(new
|
|
6230
|
+
([x, y]) => vector3ToDevice(new Vector317(x, y, 0), camera, width, height)
|
|
6133
6231
|
).map(({ x, y }) => [x, y]);
|
|
6134
6232
|
const pointLength = getPathLength(screenPoints);
|
|
6135
6233
|
return pointLength / 32;
|
|
@@ -6185,7 +6283,7 @@ var Path2 = class extends Object3D12 {
|
|
|
6185
6283
|
blending: NormalBlending,
|
|
6186
6284
|
repeat: new Vector27(this.getRepeat(), 1)
|
|
6187
6285
|
});
|
|
6188
|
-
const mesh = this.mesh = new
|
|
6286
|
+
const mesh = this.mesh = new Mesh6(lineGeometry, material);
|
|
6189
6287
|
this.add(mesh);
|
|
6190
6288
|
return mesh;
|
|
6191
6289
|
}
|
|
@@ -6579,7 +6677,304 @@ var SplitLoad = class extends Plugin {
|
|
|
6579
6677
|
return Array.from(this.bmap.context.currentFloor.userData.graphicMap.values());
|
|
6580
6678
|
}
|
|
6581
6679
|
};
|
|
6680
|
+
|
|
6681
|
+
// src/plugins/mul-floors/mul-floors.ts
|
|
6682
|
+
import { Group as Group4 } from "three";
|
|
6683
|
+
var MulFloors = class extends Plugin {
|
|
6684
|
+
poiLayer;
|
|
6685
|
+
floors = [];
|
|
6686
|
+
group = new Group4();
|
|
6687
|
+
constructor(bmap) {
|
|
6688
|
+
super(bmap);
|
|
6689
|
+
this.poiLayer = new PoiLayer(bmap.context);
|
|
6690
|
+
}
|
|
6691
|
+
show(floors) {
|
|
6692
|
+
let height = floors[0].userData.height;
|
|
6693
|
+
floors.forEach((floor) => {
|
|
6694
|
+
floor.poiLayer.pois.forEach((poi) => {
|
|
6695
|
+
this.poiLayer.pushPoi(poi);
|
|
6696
|
+
});
|
|
6697
|
+
floor.poiLayer.pois.length = 0;
|
|
6698
|
+
floor.poiLayer.dispose();
|
|
6699
|
+
floor.position.z = height;
|
|
6700
|
+
height += floor.userData.height;
|
|
6701
|
+
});
|
|
6702
|
+
const { scene, currentFloor } = this.bmap.context;
|
|
6703
|
+
if (currentFloor) {
|
|
6704
|
+
scene.remove(currentFloor);
|
|
6705
|
+
currentFloor.dispose();
|
|
6706
|
+
}
|
|
6707
|
+
this.group.add(this.poiLayer, ...floors);
|
|
6708
|
+
scene.add(this.group);
|
|
6709
|
+
this.floors = floors;
|
|
6710
|
+
}
|
|
6711
|
+
hide() {
|
|
6712
|
+
const { scene } = this.bmap.context;
|
|
6713
|
+
scene.remove(this.group);
|
|
6714
|
+
this.poiLayer.clear(true);
|
|
6715
|
+
this.floors.forEach((floor) => {
|
|
6716
|
+
floor.dispose();
|
|
6717
|
+
});
|
|
6718
|
+
this.floors = [];
|
|
6719
|
+
this.group.clear();
|
|
6720
|
+
}
|
|
6721
|
+
fitCamera() {
|
|
6722
|
+
const { context, config, type } = this.bmap;
|
|
6723
|
+
context.cameraBound.setEnable(false);
|
|
6724
|
+
context.control.minZoom = 0;
|
|
6725
|
+
context.control.maxZoom = Infinity;
|
|
6726
|
+
context.camera.zoom = 1;
|
|
6727
|
+
context.setAzimuthalAngle(config.control.defaultAzimuthal, 0);
|
|
6728
|
+
context.setPolarAngle(config.control.defaultPolar, 0);
|
|
6729
|
+
context.fitCameraToObject(this.group, void 0, 0);
|
|
6730
|
+
const basicZoom = context.camera.zoom;
|
|
6731
|
+
context.control.minZoom = basicZoom;
|
|
6732
|
+
context.control.maxZoom = basicZoom * 25;
|
|
6733
|
+
if (type === "3d") {
|
|
6734
|
+
context.fitCameraToObject(this.group, config.defaultPadding, 0, false);
|
|
6735
|
+
}
|
|
6736
|
+
this.bmap.basicZoom = context.camera.zoom;
|
|
6737
|
+
context.control.addEventListener(
|
|
6738
|
+
"change",
|
|
6739
|
+
this.bmap.onControlChange.bind(this.bmap)
|
|
6740
|
+
);
|
|
6741
|
+
this.bmap.onControlChange();
|
|
6742
|
+
context.cameraBound.setEnable(true);
|
|
6743
|
+
}
|
|
6744
|
+
dispose() {
|
|
6745
|
+
this.poiLayer.dispose();
|
|
6746
|
+
this.floors.forEach((item) => item.dispose());
|
|
6747
|
+
this.floors = [];
|
|
6748
|
+
}
|
|
6749
|
+
};
|
|
6750
|
+
|
|
6751
|
+
// src/utils/index-db.ts
|
|
6752
|
+
var _db;
|
|
6753
|
+
function createDb(database = "aibee_map") {
|
|
6754
|
+
return new Promise((resolve, reject) => {
|
|
6755
|
+
if (_db) {
|
|
6756
|
+
return resolve(_db);
|
|
6757
|
+
}
|
|
6758
|
+
const request = indexedDB.open(database);
|
|
6759
|
+
request.onupgradeneeded = function(event) {
|
|
6760
|
+
_db = event.target.result;
|
|
6761
|
+
resolve(_db);
|
|
6762
|
+
};
|
|
6763
|
+
request.onsuccess = (event) => {
|
|
6764
|
+
_db = event.target.result;
|
|
6765
|
+
};
|
|
6766
|
+
request.onerror = (event) => {
|
|
6767
|
+
reject(event);
|
|
6768
|
+
};
|
|
6769
|
+
});
|
|
6770
|
+
}
|
|
6771
|
+
function createStore(storeName, db = _db) {
|
|
6772
|
+
if (!db) {
|
|
6773
|
+
return;
|
|
6774
|
+
}
|
|
6775
|
+
if (!db.objectStoreNames.contains(storeName)) {
|
|
6776
|
+
db.createObjectStore(storeName, { keyPath: "key" });
|
|
6777
|
+
}
|
|
6778
|
+
}
|
|
6779
|
+
|
|
6780
|
+
// src/loader/AibeeLoader/zstd.worker.ts
|
|
6781
|
+
function Worker3() {
|
|
6782
|
+
return inlineWorker('var L=Object.defineProperty;var k=(g,A,Q)=>A in g?L(g,A,{enumerable:!0,configurable:!0,writable:!0,value:Q}):g[A]=Q;var s=(g,A,Q)=>k(g,typeof A!="symbol"?A+"":A,Q);function a(g,A){return new Promise((Q,I)=>{let B=new XMLHttpRequest;B.open("GET",g,!0),Object.keys(A.headers||{}).forEach(C=>{B.setRequestHeader(C,A.headers[C])}),A.responseType&&(B.responseType=A.responseType),B.onload=()=>{if(B.status>=200&&B.status<300)if(A.responseType==="arraybuffer")Q(B.response);else try{let C=JSON.parse(B.responseText);Q(C)}catch(C){I(C)}else I(B.statusText)},B.onerror=()=>{I(B.statusText)},B.send()})}function F(g){return g.replace(/[A-Z]/g,A=>"_"+A.toLowerCase()).replace(/^_/,"")}var D=class g{constructor(){s(this,"keySet",new Set)}static createKey(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}genUniqueKey(){let A=g.createKey();for(;this.keySet.has(A);)A=g.createKey();return A}removeKey(A){this.keySet.delete(A)}dispose(){this.keySet.clear()}};var H=new D;function h(g){let A={};for(let I in g)I.startsWith("on")&&(A[F(I.slice(2))]=g[I]);let Q=async({data:I})=>{if(A[I.type])try{let B=await A[I.type](I.data);self.postMessage({type:`${I.type}_result`,key:I.key,data:B})}catch(B){self.postMessage({type:`${I.type}_result`,key:I.key,error:B})}else self.postMessage({type:`${I.type}_result`,key:I.key,error:"no_event"})};return self.addEventListener("message",Q),()=>{self.removeEventListener("message",Q)}}var i,E,w,G={env:{emscripten_notify_memory_growth:function(g){w=new Uint8Array(E.exports.memory.buffer)}}},o=class{init(){return i||(typeof fetch!="undefined"?i=fetch("data:application/wasm;base64,"+y).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,G)).then(this._init):i=WebAssembly.instantiate(Buffer.from(y,"base64"),G).then(this._init),i)}_init(A){E=A.instance,G.env.emscripten_notify_memory_growth(0)}decode(A,Q=0){if(!E)throw new Error("ZSTDDecoder: Await .init() before decoding.");let I=A.byteLength,B=E.exports.malloc(I);w.set(A,B),Q=Q||Number(E.exports.ZSTD_findDecompressedSize(B,I));let C=E.exports.malloc(Q),S=E.exports.ZSTD_decompress(C,Q,B,I),N=w.slice(C,C+S);return E.exports.free(B),E.exports.free(C),N}},y="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var R=new o,J=R.init();h({async onDecode(g){try{let A=await a(g,{responseType:"arraybuffer"}),Q=new Uint8Array(A);await J;let I=R.decode(Q),B=new TextDecoder().decode(I);return JSON.parse(B)}catch(A){return console.error(A),"error"}}});\n');
|
|
6783
|
+
}
|
|
6784
|
+
|
|
6785
|
+
// src/loader/AibeeLoader/utils.ts
|
|
6786
|
+
function transformGraphicData(data, center2, baseIndex = 0) {
|
|
6787
|
+
data.forEach((item) => {
|
|
6788
|
+
item.geometry.coords = JSON.parse(
|
|
6789
|
+
JSON.stringify(item.geometry.cds)
|
|
6790
|
+
);
|
|
6791
|
+
if (item.geometry.type === "polygon") {
|
|
6792
|
+
item.geometry.coords.map((cds) => {
|
|
6793
|
+
if (Array.isArray(cds)) {
|
|
6794
|
+
cds.forEach((coord) => {
|
|
6795
|
+
coord[0] -= center2[0];
|
|
6796
|
+
coord[1] -= center2[1];
|
|
6797
|
+
});
|
|
6798
|
+
}
|
|
6799
|
+
});
|
|
6800
|
+
} else {
|
|
6801
|
+
item.geometry.coords = translatePosToCenter(item.geometry.cds, center2);
|
|
6802
|
+
}
|
|
6803
|
+
});
|
|
6804
|
+
for (let i = 0; i < data.length; i++) {
|
|
6805
|
+
const item = data[i];
|
|
6806
|
+
item.deltaHeight = 1e-5 * (baseIndex + i + 1);
|
|
6807
|
+
}
|
|
6808
|
+
}
|
|
6809
|
+
function translatePosToCenter(cds, center2) {
|
|
6810
|
+
return [cds[0] - center2[0], cds[1] - center2[1]];
|
|
6811
|
+
}
|
|
6812
|
+
|
|
6813
|
+
// src/loader/AibeeLoader/index.ts
|
|
6814
|
+
var defaultAibeeLoaderOption = {
|
|
6815
|
+
loadRoadNetwork: false
|
|
6816
|
+
};
|
|
6817
|
+
var VersionStoreName = "version";
|
|
6818
|
+
var MapDataStoreName = "map_data";
|
|
6819
|
+
var RoadNetworkDataStoreName = "road_network_data";
|
|
6820
|
+
var AibeeLoader = class {
|
|
6821
|
+
constructor(bmap) {
|
|
6822
|
+
this.bmap = bmap;
|
|
6823
|
+
this.initDb();
|
|
6824
|
+
}
|
|
6825
|
+
placeId = null;
|
|
6826
|
+
canUseZstd = localStorage.getItem("canUseZstd") !== "0";
|
|
6827
|
+
// 是不是可以使用zstd 默认是可以的 如果解压缩失败了就要标记本机不可以使用,之后不在尝试
|
|
6828
|
+
worker = Worker3();
|
|
6829
|
+
async initDb() {
|
|
6830
|
+
try {
|
|
6831
|
+
await createDb();
|
|
6832
|
+
createStore(VersionStoreName);
|
|
6833
|
+
createStore(MapDataStoreName);
|
|
6834
|
+
createStore(RoadNetworkDataStoreName);
|
|
6835
|
+
} catch (e) {
|
|
6836
|
+
console.log("[\u6253\u5F00indexDb\u9519\u8BEF]", e);
|
|
6837
|
+
}
|
|
6838
|
+
}
|
|
6839
|
+
async load(placeId) {
|
|
6840
|
+
this.clear();
|
|
6841
|
+
this.placeId = placeId;
|
|
6842
|
+
}
|
|
6843
|
+
async getFloorData(floor) {
|
|
6844
|
+
if (this.canUseZstd) {
|
|
6845
|
+
const res = await triggerWorker(this.worker, "decode", "");
|
|
6846
|
+
if (res === "error") {
|
|
6847
|
+
this.setCanUseZstd(false);
|
|
6848
|
+
return this.getFloorData(floor);
|
|
6849
|
+
}
|
|
6850
|
+
} else {
|
|
6851
|
+
}
|
|
6852
|
+
return new Floor(this.bmap.context);
|
|
6853
|
+
}
|
|
6854
|
+
async getRoadNetworkData() {
|
|
6855
|
+
}
|
|
6856
|
+
// 空闲时间请求其他数据
|
|
6857
|
+
async getOtherDataByFreeTime() {
|
|
6858
|
+
}
|
|
6859
|
+
// 获取多楼层数据
|
|
6860
|
+
async getMulFloorsData(floor) {
|
|
6861
|
+
return [];
|
|
6862
|
+
}
|
|
6863
|
+
async getDataByUrl(url) {
|
|
6864
|
+
const data = await fetch(url).then((res) => res.json());
|
|
6865
|
+
return this.getDataByJson(data);
|
|
6866
|
+
}
|
|
6867
|
+
getDataByJson(data) {
|
|
6868
|
+
const floor = new Floor(this.bmap.context);
|
|
6869
|
+
let center2 = [0, 0];
|
|
6870
|
+
data.layers.forEach((layer) => {
|
|
6871
|
+
switch (layer.l_type) {
|
|
6872
|
+
case "range":
|
|
6873
|
+
const data2 = layer.elements[0];
|
|
6874
|
+
center2 = [data2.center_x, data2.center_y];
|
|
6875
|
+
break;
|
|
6876
|
+
case "graph":
|
|
6877
|
+
const graphics = [];
|
|
6878
|
+
const graphicMap = /* @__PURE__ */ new Map();
|
|
6879
|
+
transformGraphicData(layer.elements, center2);
|
|
6880
|
+
layer.elements.forEach((options) => {
|
|
6881
|
+
const graphic = floor.addGraphic(options);
|
|
6882
|
+
graphics.push(graphic);
|
|
6883
|
+
graphicMap.set(options.id, graphic);
|
|
6884
|
+
});
|
|
6885
|
+
floor.userData.graphics = graphics;
|
|
6886
|
+
floor.userData.graphicMap = graphicMap;
|
|
6887
|
+
break;
|
|
6888
|
+
case "ground":
|
|
6889
|
+
transformGraphicData(layer.elements, center2);
|
|
6890
|
+
const grounds = layer.elements.map((options) => new Graphic(this.bmap.context, options));
|
|
6891
|
+
floor.addGrounds(grounds);
|
|
6892
|
+
break;
|
|
6893
|
+
case "wall":
|
|
6894
|
+
transformGraphicData(layer.elements, center2);
|
|
6895
|
+
const wallGroup = layer.elements.reduce((obj, options) => {
|
|
6896
|
+
const { fillColor, fillOpacity, strokeColor, strokeOpacity } = options;
|
|
6897
|
+
const key = `${fillColor}-${fillOpacity}-${strokeColor}-${strokeOpacity}`;
|
|
6898
|
+
if (obj[key]) {
|
|
6899
|
+
obj[key].push(options);
|
|
6900
|
+
} else {
|
|
6901
|
+
obj[key] = [options];
|
|
6902
|
+
}
|
|
6903
|
+
return obj;
|
|
6904
|
+
}, {});
|
|
6905
|
+
Object.values(wallGroup).forEach((optionArray) => {
|
|
6906
|
+
const wall = new Wall(this.bmap.context, optionArray);
|
|
6907
|
+
floor.wallLayer.add(wall);
|
|
6908
|
+
});
|
|
6909
|
+
break;
|
|
6910
|
+
case "lane":
|
|
6911
|
+
break;
|
|
6912
|
+
case "texture2d":
|
|
6913
|
+
case "texture3d":
|
|
6914
|
+
layer.elements.forEach((options) => {
|
|
6915
|
+
options.center = translatePosToCenter(options.center, center2);
|
|
6916
|
+
const texture = new GroundTexture(this.bmap.context, options);
|
|
6917
|
+
floor.textureLayer.add(texture);
|
|
6918
|
+
});
|
|
6919
|
+
break;
|
|
6920
|
+
case "glb":
|
|
6921
|
+
break;
|
|
6922
|
+
case "store":
|
|
6923
|
+
layer.elements.map((options) => {
|
|
6924
|
+
const pos = translatePosToCenter(options.geometry.cds, center2);
|
|
6925
|
+
floor.poiLayer.createPoi({
|
|
6926
|
+
icon: options.poi_info.icon,
|
|
6927
|
+
texts: [{ text: options.store_name || options.poi_info.name }],
|
|
6928
|
+
position: { x: pos[0], y: pos[1], z: options.airHeight }
|
|
6929
|
+
});
|
|
6930
|
+
});
|
|
6931
|
+
break;
|
|
6932
|
+
case "facility":
|
|
6933
|
+
layer.elements.map((options) => {
|
|
6934
|
+
const pos = translatePosToCenter(options.geometry.cds, center2);
|
|
6935
|
+
floor.poiLayer.createPoi({
|
|
6936
|
+
icon: options.poi_info.icon,
|
|
6937
|
+
texts: [{ text: options.store_name || options.poi_info.name }],
|
|
6938
|
+
position: { x: pos[0], y: pos[1], z: options.airHeight }
|
|
6939
|
+
});
|
|
6940
|
+
});
|
|
6941
|
+
break;
|
|
6942
|
+
case "parkingSpace":
|
|
6943
|
+
transformGraphicData(layer.elements, center2);
|
|
6944
|
+
let parkingSpacesGraphics = [];
|
|
6945
|
+
let parkingSpacesGraphicMap = /* @__PURE__ */ new Map();
|
|
6946
|
+
layer.elements.forEach((options) => {
|
|
6947
|
+
const graphic = floor.addGraphic(options);
|
|
6948
|
+
parkingSpacesGraphics.push(graphic);
|
|
6949
|
+
parkingSpacesGraphicMap.set(options.id, graphic);
|
|
6950
|
+
const pos = translatePosToCenter([options.center_x, options.center_y], center2);
|
|
6951
|
+
floor.poiLayer.createPoi({
|
|
6952
|
+
texts: [{ text: options.poi_info.name }],
|
|
6953
|
+
position: { x: pos[0], y: pos[1], z: options.airHeight }
|
|
6954
|
+
});
|
|
6955
|
+
});
|
|
6956
|
+
floor.userData.parkingSpaces = parkingSpacesGraphics;
|
|
6957
|
+
floor.userData.parkingSpacesGraphicMap = parkingSpacesGraphicMap;
|
|
6958
|
+
break;
|
|
6959
|
+
}
|
|
6960
|
+
});
|
|
6961
|
+
floor.userData.center = center2;
|
|
6962
|
+
floor.userData.height = data.floorHeight;
|
|
6963
|
+
return floor;
|
|
6964
|
+
}
|
|
6965
|
+
clear() {
|
|
6966
|
+
this.placeId = null;
|
|
6967
|
+
}
|
|
6968
|
+
setCanUseZstd(bool) {
|
|
6969
|
+
this.canUseZstd = bool;
|
|
6970
|
+
localStorage.setItem("canUseZstd", "0");
|
|
6971
|
+
}
|
|
6972
|
+
dispose() {
|
|
6973
|
+
this.clear();
|
|
6974
|
+
}
|
|
6975
|
+
};
|
|
6582
6976
|
export {
|
|
6977
|
+
AibeeLoader,
|
|
6583
6978
|
BMap,
|
|
6584
6979
|
BaseSvg,
|
|
6585
6980
|
Context,
|
|
@@ -6588,12 +6983,14 @@ export {
|
|
|
6588
6983
|
Floor,
|
|
6589
6984
|
Graphic,
|
|
6590
6985
|
GraphicLayer,
|
|
6986
|
+
GroundTexture,
|
|
6591
6987
|
HeatmapElement,
|
|
6592
6988
|
HooksName,
|
|
6593
6989
|
HoverHelper,
|
|
6594
6990
|
Layer,
|
|
6595
6991
|
MapTypePolar,
|
|
6596
6992
|
Model,
|
|
6993
|
+
MulFloors,
|
|
6597
6994
|
Navigation,
|
|
6598
6995
|
Overlay,
|
|
6599
6996
|
PathDirection,
|
|
@@ -6608,6 +7005,7 @@ export {
|
|
|
6608
7005
|
SvgPolygon,
|
|
6609
7006
|
Timer,
|
|
6610
7007
|
UniqueKey,
|
|
7008
|
+
Wall,
|
|
6611
7009
|
addAlphaToHexColor,
|
|
6612
7010
|
calc_angle,
|
|
6613
7011
|
calc_direction,
|
|
@@ -6621,7 +7019,9 @@ export {
|
|
|
6621
7019
|
createSvg,
|
|
6622
7020
|
createSvgElement,
|
|
6623
7021
|
darkenColor,
|
|
7022
|
+
defaultAibeeLoaderOption,
|
|
6624
7023
|
defaultConfig,
|
|
7024
|
+
defaultOptions4 as defaultOptions,
|
|
6625
7025
|
dispose,
|
|
6626
7026
|
disposeLoader,
|
|
6627
7027
|
distancePointToSegment,
|
|
@@ -6665,4 +7065,3 @@ export {
|
|
|
6665
7065
|
vector3ToDevice,
|
|
6666
7066
|
xhrGet
|
|
6667
7067
|
};
|
|
6668
|
-
//# sourceMappingURL=bmap.esm.js.map
|