@aibee/crc-bmap 0.0.140 → 0.0.142
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 +7 -7
- package/lib/bmap.cjs.min.js.map +4 -4
- package/lib/bmap.esm.js +547 -348
- package/lib/bmap.esm.js.map +4 -4
- package/lib/bmap.esm.min.js +3693 -7
- package/lib/bmap.esm.min.js.map +4 -4
- package/lib/bmap.min.js +7 -7
- package/lib/bmap.min.js.map +4 -4
- package/lib/src/elements/floor.d.ts +1 -0
- package/lib/src/elements/index.d.ts +1 -0
- package/lib/src/elements/text-texture.d.ts +26 -0
- package/lib/src/factory/index.d.ts +1 -0
- package/lib/src/factory/text-texture.d.ts +20 -0
- package/lib/src/loader/AibeeLoader/type.d.ts +10 -1
- package/lib/src/utils/color.d.ts +1 -0
- package/lib/src/utils/create.d.ts +2 -0
- package/lib/src/utils/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 Vector321 } from "three";
|
|
458
458
|
|
|
459
459
|
// src/utils/timer.ts
|
|
460
460
|
var Timer = class {
|
|
@@ -952,6 +952,16 @@ function darkenColor(hexColor, factor = 0.85) {
|
|
|
952
952
|
let darkHexColor = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
|
|
953
953
|
return darkHexColor;
|
|
954
954
|
}
|
|
955
|
+
function hexToRgb(hex, opacity) {
|
|
956
|
+
hex = hex.replace(/^#/, "");
|
|
957
|
+
const r = parseInt(hex.substring(0, 2), 16);
|
|
958
|
+
const g = parseInt(hex.substring(2, 4), 16);
|
|
959
|
+
const b = parseInt(hex.substring(4, 6), 16);
|
|
960
|
+
if (opacity !== void 0) {
|
|
961
|
+
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
962
|
+
}
|
|
963
|
+
return `rgb(${r}, ${g}, ${b})`;
|
|
964
|
+
}
|
|
955
965
|
|
|
956
966
|
// src/utils/model.ts
|
|
957
967
|
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
|
|
@@ -2112,11 +2122,22 @@ function toWebWorker(obj) {
|
|
|
2112
2122
|
};
|
|
2113
2123
|
}
|
|
2114
2124
|
|
|
2125
|
+
// src/utils/create.ts
|
|
2126
|
+
import { BufferGeometry, Line, LineBasicMaterial } from "three";
|
|
2127
|
+
function createThreeLine(points, color = 16711680) {
|
|
2128
|
+
const material = new LineBasicMaterial({
|
|
2129
|
+
color
|
|
2130
|
+
});
|
|
2131
|
+
const geometry = new BufferGeometry().setFromPoints(points);
|
|
2132
|
+
const line = new Line(geometry, material);
|
|
2133
|
+
return line;
|
|
2134
|
+
}
|
|
2135
|
+
|
|
2115
2136
|
// src/context.ts
|
|
2116
2137
|
import {
|
|
2117
2138
|
EventDispatcher as EventDispatcher6,
|
|
2118
2139
|
Box2 as Box23,
|
|
2119
|
-
Vector3 as
|
|
2140
|
+
Vector3 as Vector320,
|
|
2120
2141
|
Vector2 as Vector210,
|
|
2121
2142
|
Raycaster as Raycaster4,
|
|
2122
2143
|
Box3 as Box310,
|
|
@@ -2134,8 +2155,8 @@ import {
|
|
|
2134
2155
|
ExtrudeGeometry,
|
|
2135
2156
|
Mesh,
|
|
2136
2157
|
Box3,
|
|
2137
|
-
Vector3 as
|
|
2138
|
-
BufferGeometry,
|
|
2158
|
+
Vector3 as Vector33,
|
|
2159
|
+
BufferGeometry as BufferGeometry2,
|
|
2139
2160
|
LineSegments,
|
|
2140
2161
|
Ray,
|
|
2141
2162
|
Vector2 as Vector24
|
|
@@ -2261,7 +2282,7 @@ var Graphic = class extends Object3D {
|
|
|
2261
2282
|
if (this.options.geometry.type === "point") {
|
|
2262
2283
|
return this.position.clone();
|
|
2263
2284
|
}
|
|
2264
|
-
const center2 = new
|
|
2285
|
+
const center2 = new Vector33();
|
|
2265
2286
|
const box = new Box3();
|
|
2266
2287
|
box.setFromObject(this);
|
|
2267
2288
|
box.getCenter(center2);
|
|
@@ -2269,10 +2290,10 @@ var Graphic = class extends Object3D {
|
|
|
2269
2290
|
}
|
|
2270
2291
|
getSize() {
|
|
2271
2292
|
if (this.options.geometry.type === "point") {
|
|
2272
|
-
return new
|
|
2293
|
+
return new Vector33(0, 0, 0);
|
|
2273
2294
|
}
|
|
2274
2295
|
const box = new Box3();
|
|
2275
|
-
const size = new
|
|
2296
|
+
const size = new Vector33();
|
|
2276
2297
|
box.setFromObject(this);
|
|
2277
2298
|
box.getSize(size);
|
|
2278
2299
|
return size;
|
|
@@ -2375,11 +2396,11 @@ var Graphic = class extends Object3D {
|
|
|
2375
2396
|
const box = new Box3().setFromObject(this);
|
|
2376
2397
|
const minOrigin = pos.clone().add(dir.clone().multiplyScalar(1e3));
|
|
2377
2398
|
const raycaster = new Ray(minOrigin, dir.clone().multiplyScalar(-1));
|
|
2378
|
-
const min = new
|
|
2399
|
+
const min = new Vector33();
|
|
2379
2400
|
raycaster.intersectBox(box, min);
|
|
2380
2401
|
const maxOrigin = pos.clone().add(dir.clone().multiplyScalar(-1e3));
|
|
2381
2402
|
const raycaster2 = new Ray(maxOrigin, dir.clone());
|
|
2382
|
-
const max = new
|
|
2403
|
+
const max = new Vector33();
|
|
2383
2404
|
raycaster2.intersectBox(box, max);
|
|
2384
2405
|
return {
|
|
2385
2406
|
max,
|
|
@@ -2391,14 +2412,14 @@ var Graphic = class extends Object3D {
|
|
|
2391
2412
|
const _max = max.clone().sub(min);
|
|
2392
2413
|
const maxValue = Math.max(_max.x, _max.y, _max.z) / 2;
|
|
2393
2414
|
const pos = this.getPosition();
|
|
2394
|
-
const dir = new
|
|
2415
|
+
const dir = new Vector33(-1, 0.2, 0).normalize();
|
|
2395
2416
|
const { max: __max, min: _min } = this.getMaxAndMin(pos, dir);
|
|
2396
2417
|
const material = this.context.materialFactory.createShaderMaterial({
|
|
2397
2418
|
gradualColor: this.options.gradualColor,
|
|
2398
2419
|
center: this.getPosition(),
|
|
2399
2420
|
maxValue,
|
|
2400
2421
|
opacity: this.options.fillOpacity,
|
|
2401
|
-
direction: new
|
|
2422
|
+
direction: new Vector33(-1, 0.2, 0),
|
|
2402
2423
|
max: __max,
|
|
2403
2424
|
min: _min
|
|
2404
2425
|
});
|
|
@@ -2407,7 +2428,7 @@ var Graphic = class extends Object3D {
|
|
|
2407
2428
|
return material;
|
|
2408
2429
|
}
|
|
2409
2430
|
const center2 = this.getCenter();
|
|
2410
|
-
const dir2 = new
|
|
2431
|
+
const dir2 = new Vector33(-1, 0.2, 1).normalize();
|
|
2411
2432
|
const { max: ___max, min: __min } = this.getMaxAndMin(center2, dir2);
|
|
2412
2433
|
const material1 = this.context.materialFactory.createShaderMaterial({
|
|
2413
2434
|
gradualColor: [
|
|
@@ -2417,7 +2438,7 @@ var Graphic = class extends Object3D {
|
|
|
2417
2438
|
center: this.getCenter(),
|
|
2418
2439
|
maxValue,
|
|
2419
2440
|
opacity: this.options.fillOpacity,
|
|
2420
|
-
direction: new
|
|
2441
|
+
direction: new Vector33(-1, 0.2, 1),
|
|
2421
2442
|
max: ___max,
|
|
2422
2443
|
min: __min
|
|
2423
2444
|
});
|
|
@@ -2455,8 +2476,8 @@ var Graphic = class extends Object3D {
|
|
|
2455
2476
|
for (let i = 0; i < curCds.length; i++) {
|
|
2456
2477
|
const cur = curCds[i];
|
|
2457
2478
|
const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
|
|
2458
|
-
points.push(new
|
|
2459
|
-
points.push(new
|
|
2479
|
+
points.push(new Vector33(cur[0], cur[1], height));
|
|
2480
|
+
points.push(new Vector33(next[0], next[1], height));
|
|
2460
2481
|
}
|
|
2461
2482
|
}
|
|
2462
2483
|
return points;
|
|
@@ -2466,7 +2487,7 @@ var Graphic = class extends Object3D {
|
|
|
2466
2487
|
this.lineGeometry.dispose();
|
|
2467
2488
|
}
|
|
2468
2489
|
const points = this.getBorderPoints();
|
|
2469
|
-
const lineGeometry = new
|
|
2490
|
+
const lineGeometry = new BufferGeometry2().setFromPoints(points);
|
|
2470
2491
|
this.lineGeometry = lineGeometry;
|
|
2471
2492
|
}
|
|
2472
2493
|
createBorder() {
|
|
@@ -2573,10 +2594,10 @@ var Shadow = class extends Object3D2 {
|
|
|
2573
2594
|
};
|
|
2574
2595
|
|
|
2575
2596
|
// src/elements/poi.ts
|
|
2576
|
-
import { EventDispatcher as EventDispatcher2, Vector3 as
|
|
2597
|
+
import { EventDispatcher as EventDispatcher2, Vector3 as Vector36 } from "three";
|
|
2577
2598
|
|
|
2578
2599
|
// src/elements/overlay.ts
|
|
2579
|
-
import { Box3 as Box32, EventDispatcher, Vector3 as
|
|
2600
|
+
import { Box3 as Box32, EventDispatcher, Vector3 as Vector35 } from "three";
|
|
2580
2601
|
import { debounce } from "lodash";
|
|
2581
2602
|
var defaultOptions = {
|
|
2582
2603
|
autoUpdate: true,
|
|
@@ -2598,7 +2619,7 @@ var Overlay = class extends EventDispatcher {
|
|
|
2598
2619
|
}
|
|
2599
2620
|
div;
|
|
2600
2621
|
element;
|
|
2601
|
-
position = new
|
|
2622
|
+
position = new Vector35();
|
|
2602
2623
|
clientPos = { x: 0, y: 0 };
|
|
2603
2624
|
visible = true;
|
|
2604
2625
|
options;
|
|
@@ -2625,28 +2646,28 @@ var Overlay = class extends EventDispatcher {
|
|
|
2625
2646
|
const centerX = (max.x + min.x) / 2;
|
|
2626
2647
|
const centerY = (max.y + min.y) / 2;
|
|
2627
2648
|
return {
|
|
2628
|
-
left: new
|
|
2629
|
-
leftTop: new
|
|
2630
|
-
top: new
|
|
2631
|
-
rightTop: new
|
|
2632
|
-
right: new
|
|
2633
|
-
rightBottom: new
|
|
2634
|
-
bottom: new
|
|
2635
|
-
leftBottom: new
|
|
2636
|
-
center: new
|
|
2649
|
+
left: new Vector35(min.x, centerY, max.z),
|
|
2650
|
+
leftTop: new Vector35(min.x, max.y, max.z),
|
|
2651
|
+
top: new Vector35(centerX, max.y, max.z),
|
|
2652
|
+
rightTop: new Vector35(max.x, max.y, max.z),
|
|
2653
|
+
right: new Vector35(max.x, centerY, max.z),
|
|
2654
|
+
rightBottom: new Vector35(max.x, min.y, max.z),
|
|
2655
|
+
bottom: new Vector35(centerX, min.y, max.z),
|
|
2656
|
+
leftBottom: new Vector35(min.x, min.y, max.z),
|
|
2657
|
+
center: new Vector35(centerX, centerY, max.z)
|
|
2637
2658
|
};
|
|
2638
2659
|
}
|
|
2639
2660
|
const { x, y, z } = this.element?.getPosition?.() || this.position;
|
|
2640
2661
|
return {
|
|
2641
|
-
left: new
|
|
2642
|
-
leftTop: new
|
|
2643
|
-
top: new
|
|
2644
|
-
rightTop: new
|
|
2645
|
-
right: new
|
|
2646
|
-
rightBottom: new
|
|
2647
|
-
bottom: new
|
|
2648
|
-
leftBottom: new
|
|
2649
|
-
center: new
|
|
2662
|
+
left: new Vector35(x, y, z),
|
|
2663
|
+
leftTop: new Vector35(x, y, z),
|
|
2664
|
+
top: new Vector35(x, y, z),
|
|
2665
|
+
rightTop: new Vector35(x, y, z),
|
|
2666
|
+
right: new Vector35(x, y, z),
|
|
2667
|
+
rightBottom: new Vector35(x, y, z),
|
|
2668
|
+
bottom: new Vector35(x, y, z),
|
|
2669
|
+
leftBottom: new Vector35(x, y, z),
|
|
2670
|
+
center: new Vector35(x, y, z)
|
|
2650
2671
|
};
|
|
2651
2672
|
}
|
|
2652
2673
|
getPlacementScreenPosition() {
|
|
@@ -2810,7 +2831,7 @@ var Overlay = class extends EventDispatcher {
|
|
|
2810
2831
|
return this.element.getPosition();
|
|
2811
2832
|
}
|
|
2812
2833
|
const box = new Box32().setFromObject(this.element);
|
|
2813
|
-
const center2 = box.getCenter(new
|
|
2834
|
+
const center2 = box.getCenter(new Vector35());
|
|
2814
2835
|
return center2;
|
|
2815
2836
|
} else {
|
|
2816
2837
|
return this.position;
|
|
@@ -2955,7 +2976,7 @@ var Poi = class extends EventDispatcher2 {
|
|
|
2955
2976
|
options;
|
|
2956
2977
|
visible = true;
|
|
2957
2978
|
size = { width: 0, height: 0 };
|
|
2958
|
-
position = new
|
|
2979
|
+
position = new Vector36();
|
|
2959
2980
|
userData = {};
|
|
2960
2981
|
showTextStatus = true;
|
|
2961
2982
|
disposed = false;
|
|
@@ -3148,7 +3169,7 @@ var Poi = class extends EventDispatcher2 {
|
|
|
3148
3169
|
};
|
|
3149
3170
|
|
|
3150
3171
|
// src/elements/floor.ts
|
|
3151
|
-
import { Box3 as Box35, Object3D as Object3D8, Vector3 as
|
|
3172
|
+
import { Box3 as Box35, Object3D as Object3D8, Vector3 as Vector310 } from "three";
|
|
3152
3173
|
|
|
3153
3174
|
// src/elements/heatmap.ts
|
|
3154
3175
|
import {
|
|
@@ -3248,13 +3269,13 @@ var HeatmapElement = class extends Object3D5 {
|
|
|
3248
3269
|
};
|
|
3249
3270
|
|
|
3250
3271
|
// src/elements/model.ts
|
|
3251
|
-
import { Object3D as Object3D6, Vector3 as
|
|
3272
|
+
import { Object3D as Object3D6, Vector3 as Vector37 } from "three";
|
|
3252
3273
|
var Model = class extends Object3D6 {
|
|
3253
3274
|
constructor(context, options) {
|
|
3254
3275
|
super();
|
|
3255
3276
|
this.context = context;
|
|
3256
3277
|
this.options = options;
|
|
3257
|
-
this.position.copy(options.position || new
|
|
3278
|
+
this.position.copy(options.position || new Vector37(0, 0, 0));
|
|
3258
3279
|
this.loadModel();
|
|
3259
3280
|
}
|
|
3260
3281
|
model = null;
|
|
@@ -3271,7 +3292,7 @@ var Model = class extends Object3D6 {
|
|
|
3271
3292
|
};
|
|
3272
3293
|
|
|
3273
3294
|
// src/layer/graphic-layer.ts
|
|
3274
|
-
import { Box3 as Box34, Vector3 as
|
|
3295
|
+
import { Box3 as Box34, Vector3 as Vector38 } from "three";
|
|
3275
3296
|
|
|
3276
3297
|
// src/layer/layer.ts
|
|
3277
3298
|
import { Object3D as Object3D7 } from "three";
|
|
@@ -3295,7 +3316,7 @@ var GraphicLayer = class extends Layer {
|
|
|
3295
3316
|
}
|
|
3296
3317
|
getCenter() {
|
|
3297
3318
|
const box = new Box34().setFromObject(this);
|
|
3298
|
-
return box.getCenter(new
|
|
3319
|
+
return box.getCenter(new Vector38());
|
|
3299
3320
|
}
|
|
3300
3321
|
createGraphic(options) {
|
|
3301
3322
|
const graphic = new Graphic(this.context, options);
|
|
@@ -3481,7 +3502,7 @@ var PoiLayer = class extends Layer {
|
|
|
3481
3502
|
|
|
3482
3503
|
// src/layer/poi-layer2.ts
|
|
3483
3504
|
import { debounce as debounce3 } from "lodash";
|
|
3484
|
-
import { Vector2 as Vector26, Vector3 as
|
|
3505
|
+
import { Vector2 as Vector26, Vector3 as Vector39 } from "three";
|
|
3485
3506
|
var PoiLayer2 = class extends Layer {
|
|
3486
3507
|
pois = [];
|
|
3487
3508
|
debounceCollisionDetection;
|
|
@@ -3607,7 +3628,7 @@ var PoiLayer2 = class extends Layer {
|
|
|
3607
3628
|
m4.multiply(camera.matrixWorldInverse);
|
|
3608
3629
|
const pois = this.pois.filter((item) => {
|
|
3609
3630
|
if (item.visible) {
|
|
3610
|
-
const vector = new
|
|
3631
|
+
const vector = new Vector39().setFromMatrixPosition(item.matrixWorld);
|
|
3611
3632
|
vector.applyMatrix4(m4);
|
|
3612
3633
|
item.screenPosition = vector;
|
|
3613
3634
|
return isValid(vector.x) && isValid(vector.y) && isValid(vector.z);
|
|
@@ -3665,6 +3686,7 @@ var Floor = class extends Object3D8 {
|
|
|
3665
3686
|
this.glbModelLayer = new Layer(this.context);
|
|
3666
3687
|
this.laneLayer = new Layer(this.context);
|
|
3667
3688
|
this.mergeGraphicLayer = new Layer(this.context);
|
|
3689
|
+
this.textTextureLayer = new Layer(this.context);
|
|
3668
3690
|
this.groundUpper.add(this.graphicLayer);
|
|
3669
3691
|
this.groundUpper.add(this.poiLayer);
|
|
3670
3692
|
this.groundUpper.add(this.poiLayer2);
|
|
@@ -3673,6 +3695,7 @@ var Floor = class extends Object3D8 {
|
|
|
3673
3695
|
this.groundUpper.add(this.glbModelLayer);
|
|
3674
3696
|
this.groundUpper.add(this.laneLayer);
|
|
3675
3697
|
this.groundUpper.add(this.mergeGraphicLayer);
|
|
3698
|
+
this.groundUpper.add(this.textTextureLayer);
|
|
3676
3699
|
this.add(this.groundUpper);
|
|
3677
3700
|
this.add(this.groundLayer);
|
|
3678
3701
|
this.add(this.models);
|
|
@@ -3685,6 +3708,7 @@ var Floor = class extends Object3D8 {
|
|
|
3685
3708
|
glbModelLayer;
|
|
3686
3709
|
laneLayer;
|
|
3687
3710
|
mergeGraphicLayer;
|
|
3711
|
+
textTextureLayer;
|
|
3688
3712
|
grounds = /* @__PURE__ */ new Set();
|
|
3689
3713
|
groundLayer;
|
|
3690
3714
|
shadow = new Shadow();
|
|
@@ -3697,7 +3721,7 @@ var Floor = class extends Object3D8 {
|
|
|
3697
3721
|
key = "";
|
|
3698
3722
|
box = new Box35();
|
|
3699
3723
|
getPosition() {
|
|
3700
|
-
return this.box.getCenter(new
|
|
3724
|
+
return this.box.getCenter(new Vector310());
|
|
3701
3725
|
}
|
|
3702
3726
|
createGround(options) {
|
|
3703
3727
|
const ground = new Graphic(this.context, options);
|
|
@@ -3722,7 +3746,7 @@ var Floor = class extends Object3D8 {
|
|
|
3722
3746
|
return !!(this.grounds.size || this.graphicLayer.children.length);
|
|
3723
3747
|
}
|
|
3724
3748
|
getCenter() {
|
|
3725
|
-
return new Box35().setFromObject(this).getCenter(new
|
|
3749
|
+
return new Box35().setFromObject(this).getCenter(new Vector310());
|
|
3726
3750
|
}
|
|
3727
3751
|
addModel(options) {
|
|
3728
3752
|
const model = new Model(this.context, options);
|
|
@@ -3732,8 +3756,8 @@ var Floor = class extends Object3D8 {
|
|
|
3732
3756
|
}
|
|
3733
3757
|
addShadow() {
|
|
3734
3758
|
const box = new Box35().setFromObject(this.groundUpper);
|
|
3735
|
-
const center2 = box.getCenter(new
|
|
3736
|
-
const size = box.getSize(new
|
|
3759
|
+
const center2 = box.getCenter(new Vector310());
|
|
3760
|
+
const size = box.getSize(new Vector310());
|
|
3737
3761
|
this.shadow.setPosition(center2);
|
|
3738
3762
|
this.shadow.changeLightCamera(size);
|
|
3739
3763
|
}
|
|
@@ -3780,6 +3804,7 @@ var Floor = class extends Object3D8 {
|
|
|
3780
3804
|
this.glbModelLayer.dispose();
|
|
3781
3805
|
this.laneLayer.dispose();
|
|
3782
3806
|
this.mergeGraphicLayer.dispose();
|
|
3807
|
+
this.textTextureLayer.dispose();
|
|
3783
3808
|
this.grounds.forEach((ground) => ground.dispose());
|
|
3784
3809
|
this.heatmap?.dispose();
|
|
3785
3810
|
this.groundUpper.clear();
|
|
@@ -3791,7 +3816,7 @@ var Floor = class extends Object3D8 {
|
|
|
3791
3816
|
};
|
|
3792
3817
|
|
|
3793
3818
|
// src/elements/base-svg.ts
|
|
3794
|
-
import { EventDispatcher as EventDispatcher3, Vector3 as
|
|
3819
|
+
import { EventDispatcher as EventDispatcher3, Vector3 as Vector311 } from "three";
|
|
3795
3820
|
var BaseSvg = class extends EventDispatcher3 {
|
|
3796
3821
|
constructor(context) {
|
|
3797
3822
|
super();
|
|
@@ -3829,7 +3854,7 @@ var BaseSvg = class extends EventDispatcher3 {
|
|
|
3829
3854
|
const { clientWidth, clientHeight } = renderer.domElement;
|
|
3830
3855
|
const nx = x / clientWidth * 2 - 1;
|
|
3831
3856
|
const ny = 1 - y / clientHeight * 2;
|
|
3832
|
-
const v = new
|
|
3857
|
+
const v = new Vector311(nx, ny, 0);
|
|
3833
3858
|
return v.unproject(camera);
|
|
3834
3859
|
}
|
|
3835
3860
|
getSvgCoordinate(vector) {
|
|
@@ -4181,14 +4206,14 @@ var SelectBox = class extends BaseSvg {
|
|
|
4181
4206
|
|
|
4182
4207
|
// src/elements/wall.ts
|
|
4183
4208
|
import {
|
|
4184
|
-
BufferGeometry as
|
|
4209
|
+
BufferGeometry as BufferGeometry3,
|
|
4185
4210
|
Color as Color3,
|
|
4186
4211
|
ExtrudeGeometry as ExtrudeGeometry2,
|
|
4187
4212
|
LineSegments as LineSegments2,
|
|
4188
4213
|
Mesh as Mesh4,
|
|
4189
4214
|
Object3D as Object3D9,
|
|
4190
4215
|
ShaderMaterial as ShaderMaterial2,
|
|
4191
|
-
Vector3 as
|
|
4216
|
+
Vector3 as Vector312
|
|
4192
4217
|
} from "three";
|
|
4193
4218
|
import { mergeGeometries } from "three/examples/jsm/utils/BufferGeometryUtils";
|
|
4194
4219
|
var Wall = class extends Object3D9 {
|
|
@@ -4319,8 +4344,8 @@ var Wall = class extends Object3D9 {
|
|
|
4319
4344
|
for (let i = 0; i < curCds.length; i++) {
|
|
4320
4345
|
const cur = curCds[i];
|
|
4321
4346
|
const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
|
|
4322
|
-
points.push(new
|
|
4323
|
-
points.push(new
|
|
4347
|
+
points.push(new Vector312(cur[0], cur[1], _height));
|
|
4348
|
+
points.push(new Vector312(next[0], next[1], _height));
|
|
4324
4349
|
}
|
|
4325
4350
|
}
|
|
4326
4351
|
return points;
|
|
@@ -4328,7 +4353,7 @@ var Wall = class extends Object3D9 {
|
|
|
4328
4353
|
initLineGeometry() {
|
|
4329
4354
|
const geometries = this.options.map((option) => {
|
|
4330
4355
|
const points = this.getBorderPoints(option);
|
|
4331
|
-
return new
|
|
4356
|
+
return new BufferGeometry3().setFromPoints(points);
|
|
4332
4357
|
});
|
|
4333
4358
|
this.lineGeometry = mergeGeometries(geometries);
|
|
4334
4359
|
}
|
|
@@ -4414,7 +4439,7 @@ var GroundTexture = class extends Object3D10 {
|
|
|
4414
4439
|
const texture = await this.context.textureFactory.getTexture(iconUrl);
|
|
4415
4440
|
const material = new MeshBasicMaterial3({
|
|
4416
4441
|
map: texture,
|
|
4417
|
-
alphaTest:
|
|
4442
|
+
alphaTest: 1,
|
|
4418
4443
|
side: DoubleSide3
|
|
4419
4444
|
});
|
|
4420
4445
|
return material;
|
|
@@ -4432,7 +4457,7 @@ var GroundTexture = class extends Object3D10 {
|
|
|
4432
4457
|
};
|
|
4433
4458
|
|
|
4434
4459
|
// src/elements/glb-model.ts
|
|
4435
|
-
import { Box3 as Box38, Mesh as Mesh6, Object3D as Object3D11, Vector3 as
|
|
4460
|
+
import { Box3 as Box38, Mesh as Mesh6, Object3D as Object3D11, Vector3 as Vector313 } from "three";
|
|
4436
4461
|
var defaultGlbOptions = {
|
|
4437
4462
|
url: "",
|
|
4438
4463
|
geometry: { type: "polygon", cds: [], coords: [], curveCpt: [], curveIndex: [] },
|
|
@@ -4457,7 +4482,7 @@ var GlbModel = class extends Object3D11 {
|
|
|
4457
4482
|
const object = await loadModel(this.options.url);
|
|
4458
4483
|
object.scene.rotation.set(Math.PI / 2, 0, 0);
|
|
4459
4484
|
const box = new Box38().setFromObject(object.scene);
|
|
4460
|
-
const size = box.getSize(new
|
|
4485
|
+
const size = box.getSize(new Vector313());
|
|
4461
4486
|
const max = Math.max(size.x, size.y);
|
|
4462
4487
|
const scale = this.options.width / max;
|
|
4463
4488
|
this.scale.set(scale, scale, scale);
|
|
@@ -4488,9 +4513,9 @@ var GlbModel = class extends Object3D11 {
|
|
|
4488
4513
|
};
|
|
4489
4514
|
|
|
4490
4515
|
// src/elements/lane.ts
|
|
4491
|
-
import { BufferGeometry as
|
|
4516
|
+
import { BufferGeometry as BufferGeometry4, LineSegments as LineSegments3, Mesh as Mesh7, Object3D as Object3D12, ShapeGeometry as ShapeGeometry2, Vector3 as Vector314 } from "three";
|
|
4492
4517
|
import { mergeGeometries as mergeGeometries3 } from "three/examples/jsm/utils/BufferGeometryUtils";
|
|
4493
|
-
import { Line2 } from "three/examples/jsm/lines/Line2";
|
|
4518
|
+
import { Line2 as Line22 } from "three/examples/jsm/lines/Line2";
|
|
4494
4519
|
import { LineGeometry } from "three/examples/jsm/lines/LineGeometry";
|
|
4495
4520
|
var Lane = class extends Object3D12 {
|
|
4496
4521
|
constructor(context, options) {
|
|
@@ -4553,8 +4578,8 @@ var Lane = class extends Object3D12 {
|
|
|
4553
4578
|
for (let i = 0; i < curCds.length; i++) {
|
|
4554
4579
|
const cur = curCds[i];
|
|
4555
4580
|
const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
|
|
4556
|
-
points.push(new
|
|
4557
|
-
points.push(new
|
|
4581
|
+
points.push(new Vector314(cur[0], cur[1], _height));
|
|
4582
|
+
points.push(new Vector314(next[0], next[1], _height));
|
|
4558
4583
|
}
|
|
4559
4584
|
}
|
|
4560
4585
|
return points;
|
|
@@ -4584,7 +4609,7 @@ var Lane = class extends Object3D12 {
|
|
|
4584
4609
|
const geometry = new LineGeometry();
|
|
4585
4610
|
const vec = option.geometry.otherCoords[1].map((item) => [...item, option.airHeight + (option.deltaHeight || 0)]).flat(2);
|
|
4586
4611
|
geometry.setPositions(vec);
|
|
4587
|
-
const line = new
|
|
4612
|
+
const line = new Line22(geometry, material);
|
|
4588
4613
|
line.computeLineDistances();
|
|
4589
4614
|
line.position.z += 1e-3;
|
|
4590
4615
|
this.add(line);
|
|
@@ -4595,7 +4620,7 @@ var Lane = class extends Object3D12 {
|
|
|
4595
4620
|
initLineGeometry() {
|
|
4596
4621
|
const geometries = this.options.map((option) => {
|
|
4597
4622
|
const points = this.getBorderPoints(option);
|
|
4598
|
-
return new
|
|
4623
|
+
return new BufferGeometry4().setFromPoints(points);
|
|
4599
4624
|
});
|
|
4600
4625
|
this.lineGeometry = mergeGeometries3(geometries);
|
|
4601
4626
|
}
|
|
@@ -4631,8 +4656,8 @@ import {
|
|
|
4631
4656
|
Object3D as Object3D13,
|
|
4632
4657
|
ExtrudeGeometry as ExtrudeGeometry3,
|
|
4633
4658
|
Mesh as Mesh8,
|
|
4634
|
-
Vector3 as
|
|
4635
|
-
BufferGeometry as
|
|
4659
|
+
Vector3 as Vector315,
|
|
4660
|
+
BufferGeometry as BufferGeometry5,
|
|
4636
4661
|
LineSegments as LineSegments4,
|
|
4637
4662
|
ShaderMaterial as ShaderMaterial3,
|
|
4638
4663
|
Color as Color4
|
|
@@ -4762,8 +4787,8 @@ var MergeGraphic = class extends Object3D13 {
|
|
|
4762
4787
|
for (let i = 0; i < curCds.length; i++) {
|
|
4763
4788
|
const cur = curCds[i];
|
|
4764
4789
|
const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
|
|
4765
|
-
points.push(new
|
|
4766
|
-
points.push(new
|
|
4790
|
+
points.push(new Vector315(cur[0], cur[1], height));
|
|
4791
|
+
points.push(new Vector315(next[0], next[1], height));
|
|
4767
4792
|
}
|
|
4768
4793
|
}
|
|
4769
4794
|
});
|
|
@@ -4774,7 +4799,7 @@ var MergeGraphic = class extends Object3D13 {
|
|
|
4774
4799
|
this.lineGeometry.dispose();
|
|
4775
4800
|
}
|
|
4776
4801
|
const points = this.getBorderPoints();
|
|
4777
|
-
const lineGeometry = new
|
|
4802
|
+
const lineGeometry = new BufferGeometry5().setFromPoints(points);
|
|
4778
4803
|
this.lineGeometry = lineGeometry;
|
|
4779
4804
|
}
|
|
4780
4805
|
createBorder() {
|
|
@@ -5030,6 +5055,389 @@ var Poi2 = class extends Object3D14 {
|
|
|
5030
5055
|
}
|
|
5031
5056
|
};
|
|
5032
5057
|
|
|
5058
|
+
// src/elements/text-texture.ts
|
|
5059
|
+
import {
|
|
5060
|
+
DoubleSide as DoubleSide5,
|
|
5061
|
+
Matrix4 as Matrix42,
|
|
5062
|
+
Mesh as Mesh9,
|
|
5063
|
+
MeshBasicMaterial as MeshBasicMaterial6,
|
|
5064
|
+
Object3D as Object3D15,
|
|
5065
|
+
PlaneGeometry as PlaneGeometry3
|
|
5066
|
+
} from "three";
|
|
5067
|
+
import { mergeGeometries as mergeGeometries5 } from "three/examples/jsm/utils/BufferGeometryUtils";
|
|
5068
|
+
|
|
5069
|
+
// src/factory/material.ts
|
|
5070
|
+
import { LineMaterial } from "three/examples/jsm/lines/LineMaterial";
|
|
5071
|
+
import {
|
|
5072
|
+
Color as Color5,
|
|
5073
|
+
LineBasicMaterial as LineBasicMaterial6,
|
|
5074
|
+
MeshStandardMaterial as MeshStandardMaterial2,
|
|
5075
|
+
MeshBasicMaterial as MeshBasicMaterial5,
|
|
5076
|
+
ShaderMaterial as ShaderMaterial4,
|
|
5077
|
+
DoubleSide as DoubleSide4,
|
|
5078
|
+
Vector2 as Vector28
|
|
5079
|
+
} from "three";
|
|
5080
|
+
function vectorToString(vector) {
|
|
5081
|
+
return `${vector.x}-${vector.y}-${vector.z}`;
|
|
5082
|
+
}
|
|
5083
|
+
var MaterialFactory = class {
|
|
5084
|
+
constructor(context) {
|
|
5085
|
+
this.context = context;
|
|
5086
|
+
}
|
|
5087
|
+
lineMaterialMap = /* @__PURE__ */ new Map();
|
|
5088
|
+
meshStandardMaterialMap = /* @__PURE__ */ new Map();
|
|
5089
|
+
meshBasicMaterialMap = /* @__PURE__ */ new Map();
|
|
5090
|
+
shaderMaterialMap = /* @__PURE__ */ new Map();
|
|
5091
|
+
groundTextureMaterialMap = /* @__PURE__ */ new Map();
|
|
5092
|
+
line2MaterialMap = /* @__PURE__ */ new Map();
|
|
5093
|
+
generateLineMaterialKey({ color, opacity }) {
|
|
5094
|
+
return `${color}-${opacity}`;
|
|
5095
|
+
}
|
|
5096
|
+
createLineMaterial({ color, opacity }) {
|
|
5097
|
+
const key = this.generateLineMaterialKey({ color, opacity });
|
|
5098
|
+
if (this.lineMaterialMap.has(key)) {
|
|
5099
|
+
return this.lineMaterialMap.get(key);
|
|
5100
|
+
}
|
|
5101
|
+
const lineMaterial = new LineBasicMaterial6({
|
|
5102
|
+
color: new Color5(color).convertLinearToSRGB(),
|
|
5103
|
+
transparent: true,
|
|
5104
|
+
opacity
|
|
5105
|
+
});
|
|
5106
|
+
this.lineMaterialMap.set(key, lineMaterial);
|
|
5107
|
+
return lineMaterial;
|
|
5108
|
+
}
|
|
5109
|
+
createMeshStandardMaterial({ color, opacity }) {
|
|
5110
|
+
const key = `${color}-${opacity}`;
|
|
5111
|
+
if (this.meshStandardMaterialMap.has(key)) {
|
|
5112
|
+
return this.meshStandardMaterialMap.get(key);
|
|
5113
|
+
}
|
|
5114
|
+
const material = new MeshStandardMaterial2({
|
|
5115
|
+
color: new Color5(color).convertLinearToSRGB(),
|
|
5116
|
+
roughness: 1,
|
|
5117
|
+
transparent: true,
|
|
5118
|
+
opacity,
|
|
5119
|
+
depthWrite: true
|
|
5120
|
+
});
|
|
5121
|
+
this.meshStandardMaterialMap.set(key, material);
|
|
5122
|
+
return material;
|
|
5123
|
+
}
|
|
5124
|
+
createMeshBasicMaterial({ color, opacity }) {
|
|
5125
|
+
const key = `${color}-${opacity}`;
|
|
5126
|
+
if (this.meshBasicMaterialMap.has(key)) {
|
|
5127
|
+
return this.meshBasicMaterialMap.get(key);
|
|
5128
|
+
}
|
|
5129
|
+
const material = new MeshBasicMaterial5({
|
|
5130
|
+
color,
|
|
5131
|
+
transparent: true,
|
|
5132
|
+
opacity,
|
|
5133
|
+
depthWrite: true
|
|
5134
|
+
});
|
|
5135
|
+
this.meshBasicMaterialMap.set(key, material);
|
|
5136
|
+
return material;
|
|
5137
|
+
}
|
|
5138
|
+
createShaderMaterial({
|
|
5139
|
+
gradualColor,
|
|
5140
|
+
center: center2,
|
|
5141
|
+
maxValue,
|
|
5142
|
+
opacity,
|
|
5143
|
+
direction,
|
|
5144
|
+
max,
|
|
5145
|
+
min
|
|
5146
|
+
}) {
|
|
5147
|
+
const key = `${gradualColor.toString()}-${vectorToString(
|
|
5148
|
+
center2
|
|
5149
|
+
)}-${maxValue}-${opacity}-${vectorToString(direction)}`;
|
|
5150
|
+
if (this.shaderMaterialMap.has(key)) {
|
|
5151
|
+
return this.shaderMaterialMap.get(key);
|
|
5152
|
+
}
|
|
5153
|
+
const vertexShader = `
|
|
5154
|
+
uniform vec3 uColor;
|
|
5155
|
+
uniform vec3 uGradualColor;
|
|
5156
|
+
uniform vec3 center;
|
|
5157
|
+
uniform vec3 uDirection;
|
|
5158
|
+
uniform vec3 uMax;
|
|
5159
|
+
uniform vec3 uMin;
|
|
5160
|
+
uniform float maxValue;
|
|
5161
|
+
varying vec3 vColor;
|
|
5162
|
+
|
|
5163
|
+
void main() {
|
|
5164
|
+
vec3 lineVec = uMax - uMin; // \u7EBF\u6BB5AB\u7684\u65B9\u5411\u5411\u91CF
|
|
5165
|
+
vec3 AP = position - uMin; // \u5411\u91CFAP
|
|
5166
|
+
float t = dot(AP, lineVec) / dot(lineVec, lineVec); // \u53C2\u6570t
|
|
5167
|
+
t = clamp(t, 0.0, 1.0); // \u9650\u5236t\u5728[0, 1]\u8303\u56F4\u5185\uFF0C\u786E\u4FDD\u6700\u77ED\u8DDD\u79BB\u5728\u7EBF\u6BB5AB\u4E0A
|
|
5168
|
+
|
|
5169
|
+
vec3 closestPoint = uMin + t * lineVec; // \u6700\u77ED\u8DDD\u79BB\u70B9\u7684\u4F4D\u7F6E
|
|
5170
|
+
vec3 vecAP = closestPoint - uMin; // \u5411\u91CFAP'
|
|
5171
|
+
float distance = length(vecAP);
|
|
5172
|
+
float maxLen = length(lineVec);
|
|
5173
|
+
|
|
5174
|
+
// vec3 direction = normalize(uDirection);
|
|
5175
|
+
// float gradient = dot(normalize(normal), normalize(uDirection));
|
|
5176
|
+
// vec3 currentPosition = position - center;
|
|
5177
|
+
// float colorFactor = (dot(direction, currentPosition) / maxValue) * 0.5 + 0.5;
|
|
5178
|
+
float colorFactor = distance / maxLen;
|
|
5179
|
+
|
|
5180
|
+
vColor = mix(uColor, uGradualColor, 1.0 - t);
|
|
5181
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
5182
|
+
}
|
|
5183
|
+
`;
|
|
5184
|
+
const fragmentShader = `
|
|
5185
|
+
varying vec3 vColor;
|
|
5186
|
+
uniform float opacity;
|
|
5187
|
+
|
|
5188
|
+
void main() {
|
|
5189
|
+
gl_FragColor = vec4(vColor.x, vColor.y, vColor.z, opacity);
|
|
5190
|
+
}
|
|
5191
|
+
`;
|
|
5192
|
+
const material = new ShaderMaterial4({
|
|
5193
|
+
uniforms: {
|
|
5194
|
+
uColor: {
|
|
5195
|
+
value: new Color5(gradualColor[0]).convertLinearToSRGB()
|
|
5196
|
+
},
|
|
5197
|
+
uGradualColor: {
|
|
5198
|
+
value: new Color5(gradualColor[1]).convertLinearToSRGB()
|
|
5199
|
+
},
|
|
5200
|
+
center: {
|
|
5201
|
+
value: center2
|
|
5202
|
+
},
|
|
5203
|
+
maxValue: {
|
|
5204
|
+
value: maxValue
|
|
5205
|
+
},
|
|
5206
|
+
opacity: {
|
|
5207
|
+
value: opacity
|
|
5208
|
+
},
|
|
5209
|
+
uDirection: {
|
|
5210
|
+
value: direction
|
|
5211
|
+
},
|
|
5212
|
+
uMax: {
|
|
5213
|
+
value: max
|
|
5214
|
+
},
|
|
5215
|
+
uMin: {
|
|
5216
|
+
value: min
|
|
5217
|
+
}
|
|
5218
|
+
},
|
|
5219
|
+
vertexShader,
|
|
5220
|
+
fragmentShader,
|
|
5221
|
+
side: DoubleSide4
|
|
5222
|
+
});
|
|
5223
|
+
this.shaderMaterialMap.set(key, material);
|
|
5224
|
+
return material;
|
|
5225
|
+
}
|
|
5226
|
+
async createGroundTextureMaterial({ url, opacity }) {
|
|
5227
|
+
const key = `${url}-${opacity}`;
|
|
5228
|
+
if (this.groundTextureMaterialMap.has(key)) {
|
|
5229
|
+
return this.groundTextureMaterialMap.get(key);
|
|
5230
|
+
}
|
|
5231
|
+
const texture = await this.context.textureFactory.getTexture(url);
|
|
5232
|
+
const material = new MeshBasicMaterial5({
|
|
5233
|
+
map: texture,
|
|
5234
|
+
alphaTest: 0.2,
|
|
5235
|
+
side: DoubleSide4
|
|
5236
|
+
});
|
|
5237
|
+
texture.needsUpdate = true;
|
|
5238
|
+
this.groundTextureMaterialMap.set(key, material);
|
|
5239
|
+
return material;
|
|
5240
|
+
}
|
|
5241
|
+
createLine2MaterialMap({ color, width, dashed }) {
|
|
5242
|
+
const key = `${color}-${width}-${dashed}`;
|
|
5243
|
+
if (this.line2MaterialMap.has(key)) {
|
|
5244
|
+
return this.line2MaterialMap.get(key);
|
|
5245
|
+
}
|
|
5246
|
+
const material = new LineMaterial({
|
|
5247
|
+
color: parseInt(color.slice(1), 16),
|
|
5248
|
+
dashed,
|
|
5249
|
+
linewidth: width,
|
|
5250
|
+
worldUnits: true,
|
|
5251
|
+
dashSize: 1,
|
|
5252
|
+
gapSize: 3,
|
|
5253
|
+
dashScale: 1,
|
|
5254
|
+
resolution: new Vector28(this.context.clientSize.width, this.context.clientSize.height)
|
|
5255
|
+
});
|
|
5256
|
+
this.line2MaterialMap.set(key, material);
|
|
5257
|
+
return material;
|
|
5258
|
+
}
|
|
5259
|
+
dispose() {
|
|
5260
|
+
this.lineMaterialMap.forEach((val, _) => {
|
|
5261
|
+
val.dispose();
|
|
5262
|
+
});
|
|
5263
|
+
this.lineMaterialMap.clear();
|
|
5264
|
+
this.meshStandardMaterialMap.forEach((val, _) => {
|
|
5265
|
+
val.dispose();
|
|
5266
|
+
});
|
|
5267
|
+
this.meshStandardMaterialMap.clear();
|
|
5268
|
+
this.meshBasicMaterialMap.forEach((val, _) => {
|
|
5269
|
+
val.dispose();
|
|
5270
|
+
});
|
|
5271
|
+
this.meshBasicMaterialMap.clear();
|
|
5272
|
+
this.shaderMaterialMap.forEach((val, _) => {
|
|
5273
|
+
val.dispose();
|
|
5274
|
+
});
|
|
5275
|
+
this.shaderMaterialMap.clear();
|
|
5276
|
+
this.groundTextureMaterialMap.forEach((val, _) => {
|
|
5277
|
+
val.dispose();
|
|
5278
|
+
val.map?.dispose();
|
|
5279
|
+
});
|
|
5280
|
+
this.groundTextureMaterialMap.clear();
|
|
5281
|
+
this.line2MaterialMap.forEach((val, _) => {
|
|
5282
|
+
val.dispose();
|
|
5283
|
+
});
|
|
5284
|
+
this.line2MaterialMap.clear();
|
|
5285
|
+
}
|
|
5286
|
+
};
|
|
5287
|
+
|
|
5288
|
+
// src/factory/text-texture.ts
|
|
5289
|
+
import { DataTexture as DataTexture2, LinearFilter as LinearFilter2, RGBAFormat as RGBAFormat2 } from "three";
|
|
5290
|
+
var TextTextureFactory = class {
|
|
5291
|
+
static canvas = null;
|
|
5292
|
+
static ctx = null;
|
|
5293
|
+
static options = {
|
|
5294
|
+
width: 1024,
|
|
5295
|
+
height: 64,
|
|
5296
|
+
font: "54px sans-serif",
|
|
5297
|
+
textBaseline: "hanging",
|
|
5298
|
+
lineWidth: 12,
|
|
5299
|
+
fillStyle: "rgba(0,0,0,1)",
|
|
5300
|
+
strokeStyle: "white"
|
|
5301
|
+
};
|
|
5302
|
+
static getCanvas() {
|
|
5303
|
+
if (this.canvas) {
|
|
5304
|
+
return this.canvas;
|
|
5305
|
+
} else {
|
|
5306
|
+
const canvas2 = document.createElement("canvas");
|
|
5307
|
+
this.canvas = canvas2;
|
|
5308
|
+
return canvas2;
|
|
5309
|
+
}
|
|
5310
|
+
}
|
|
5311
|
+
static getCtx() {
|
|
5312
|
+
if (this.ctx) {
|
|
5313
|
+
return this.ctx;
|
|
5314
|
+
}
|
|
5315
|
+
const canvas2 = this.getCanvas();
|
|
5316
|
+
const ctx2 = canvas2.getContext("2d");
|
|
5317
|
+
this.ctx = ctx2;
|
|
5318
|
+
return ctx2;
|
|
5319
|
+
}
|
|
5320
|
+
static getMergedOptions(options) {
|
|
5321
|
+
return {
|
|
5322
|
+
...this.options,
|
|
5323
|
+
...options
|
|
5324
|
+
};
|
|
5325
|
+
}
|
|
5326
|
+
static setCtxStyle(options) {
|
|
5327
|
+
const canvas2 = this.getCanvas();
|
|
5328
|
+
const ctx2 = this.getCtx();
|
|
5329
|
+
canvas2.width = options.width;
|
|
5330
|
+
canvas2.height = options.height;
|
|
5331
|
+
ctx2.font = options.font;
|
|
5332
|
+
ctx2.textBaseline = options.textBaseline;
|
|
5333
|
+
ctx2.lineWidth = options.lineWidth;
|
|
5334
|
+
ctx2.fillStyle = options.fillStyle;
|
|
5335
|
+
ctx2.strokeStyle = options.strokeStyle;
|
|
5336
|
+
}
|
|
5337
|
+
static getTextureByText(text, options) {
|
|
5338
|
+
const mergedOptions = this.getMergedOptions(options);
|
|
5339
|
+
const canvas2 = this.getCanvas();
|
|
5340
|
+
const ctx2 = this.getCtx();
|
|
5341
|
+
ctx2.clearRect(0, 0, canvas2.width, canvas2.height);
|
|
5342
|
+
this.setCtxStyle(mergedOptions);
|
|
5343
|
+
const y = hasChinese(text) ? 4 : 8;
|
|
5344
|
+
if (mergedOptions.lineWidth) {
|
|
5345
|
+
ctx2.strokeText(text, 2, y);
|
|
5346
|
+
}
|
|
5347
|
+
ctx2.fillText(text, 2, y);
|
|
5348
|
+
let width = Math.ceil(ctx2.measureText(text).width);
|
|
5349
|
+
width = width % 2 === 0 ? width : width + 1;
|
|
5350
|
+
width += 2;
|
|
5351
|
+
const imageData = ctx2.getImageData(0, 0, width, 64);
|
|
5352
|
+
const texture = new DataTexture2(
|
|
5353
|
+
Uint8Array.from(imageData.data),
|
|
5354
|
+
width,
|
|
5355
|
+
64,
|
|
5356
|
+
RGBAFormat2
|
|
5357
|
+
);
|
|
5358
|
+
texture.flipY = true;
|
|
5359
|
+
texture.minFilter = LinearFilter2;
|
|
5360
|
+
texture.magFilter = LinearFilter2;
|
|
5361
|
+
return texture;
|
|
5362
|
+
}
|
|
5363
|
+
static dispose() {
|
|
5364
|
+
this.ctx = null;
|
|
5365
|
+
this.canvas = null;
|
|
5366
|
+
}
|
|
5367
|
+
};
|
|
5368
|
+
|
|
5369
|
+
// src/elements/text-texture.ts
|
|
5370
|
+
var defaultTextTextureOptions = {
|
|
5371
|
+
airHeight: 0,
|
|
5372
|
+
deltaHeight: 0,
|
|
5373
|
+
height: 0,
|
|
5374
|
+
geometry: {
|
|
5375
|
+
cds: [],
|
|
5376
|
+
type: "polygon",
|
|
5377
|
+
coords: [],
|
|
5378
|
+
curveCpt: [],
|
|
5379
|
+
curveIndex: []
|
|
5380
|
+
},
|
|
5381
|
+
texts: [],
|
|
5382
|
+
fillColor: "#ffffff",
|
|
5383
|
+
fillOpacity: 0,
|
|
5384
|
+
strokeColor: "#ffffff",
|
|
5385
|
+
strokeOpacity: 0,
|
|
5386
|
+
secondHeight: 0,
|
|
5387
|
+
secondRotate: 0
|
|
5388
|
+
};
|
|
5389
|
+
var TextTexture = class extends Object3D15 {
|
|
5390
|
+
constructor(context, options) {
|
|
5391
|
+
super();
|
|
5392
|
+
this.context = context;
|
|
5393
|
+
this.options = options.map((item) => ({ ...defaultTextTextureOptions, ...item }));
|
|
5394
|
+
this.init();
|
|
5395
|
+
}
|
|
5396
|
+
options;
|
|
5397
|
+
mesh;
|
|
5398
|
+
async init() {
|
|
5399
|
+
const textures = this.options.map((options) => {
|
|
5400
|
+
return TextTextureFactory.getTextureByText(options.texts[0], {
|
|
5401
|
+
fillStyle: hexToRgb(options.fillColor, options.fillOpacity),
|
|
5402
|
+
strokeStyle: hexToRgb(options.strokeColor, options.strokeOpacity),
|
|
5403
|
+
lineWidth: 6,
|
|
5404
|
+
font: "54px sans-serif"
|
|
5405
|
+
});
|
|
5406
|
+
});
|
|
5407
|
+
const geometries = textures.map((item, index) => {
|
|
5408
|
+
const options = this.options[index];
|
|
5409
|
+
const { width, height } = item.image;
|
|
5410
|
+
const aspect = width / height;
|
|
5411
|
+
const secondWidth = options.secondHeight * aspect;
|
|
5412
|
+
const geometry2 = new PlaneGeometry3(secondWidth, options.secondHeight);
|
|
5413
|
+
const center2 = getCenter(options.geometry.coords[0]);
|
|
5414
|
+
const matrix = new Matrix42().makeTranslation(center2[0], center2[1], options.airHeight + options.deltaHeight + options.height).multiply(new Matrix42().makeRotationZ(options.secondRotate));
|
|
5415
|
+
geometry2.applyMatrix4(matrix);
|
|
5416
|
+
return geometry2;
|
|
5417
|
+
});
|
|
5418
|
+
const geometry = mergeGeometries5(geometries, true);
|
|
5419
|
+
geometries.forEach((geometry2) => geometry2.dispose());
|
|
5420
|
+
const materials = textures.map((texture) => {
|
|
5421
|
+
const material = new MeshBasicMaterial6({
|
|
5422
|
+
map: texture,
|
|
5423
|
+
alphaTest: 1,
|
|
5424
|
+
side: DoubleSide5
|
|
5425
|
+
});
|
|
5426
|
+
texture.needsUpdate = true;
|
|
5427
|
+
return material;
|
|
5428
|
+
});
|
|
5429
|
+
const mesh = new Mesh9(geometry, materials);
|
|
5430
|
+
this.mesh = mesh;
|
|
5431
|
+
this.position.z += 4e-3;
|
|
5432
|
+
this.add(mesh);
|
|
5433
|
+
}
|
|
5434
|
+
dispose() {
|
|
5435
|
+
this.mesh?.geometry.dispose();
|
|
5436
|
+
(this.mesh?.material).forEach((item) => item.dispose());
|
|
5437
|
+
this.clear();
|
|
5438
|
+
}
|
|
5439
|
+
};
|
|
5440
|
+
|
|
5033
5441
|
// src/operations/selection/box-selection.ts
|
|
5034
5442
|
import { Frustum as Frustum2 } from "three";
|
|
5035
5443
|
var BoxSelection = class extends BaseSvg {
|
|
@@ -5287,7 +5695,7 @@ var Selection = class extends EventDispatcher4 {
|
|
|
5287
5695
|
};
|
|
5288
5696
|
|
|
5289
5697
|
// src/operations/hover/hover-helper.ts
|
|
5290
|
-
import { EventDispatcher as EventDispatcher5, Vector2 as
|
|
5698
|
+
import { EventDispatcher as EventDispatcher5, Vector2 as Vector29 } from "three";
|
|
5291
5699
|
var HoverHelper = class extends EventDispatcher5 {
|
|
5292
5700
|
constructor(context) {
|
|
5293
5701
|
super();
|
|
@@ -5319,7 +5727,7 @@ var HoverHelper = class extends EventDispatcher5 {
|
|
|
5319
5727
|
resGraphic = graphic;
|
|
5320
5728
|
}
|
|
5321
5729
|
} else if (poi instanceof Poi2) {
|
|
5322
|
-
const { x, y } = poi.box.getCenter(new
|
|
5730
|
+
const { x, y } = poi.box.getCenter(new Vector29());
|
|
5323
5731
|
let curDistance = Math.sqrt((x - e.offsetX) ** 2 + (y - e.offsetY) ** 2);
|
|
5324
5732
|
if (curDistance < distance) {
|
|
5325
5733
|
distance = curDistance;
|
|
@@ -5396,227 +5804,8 @@ var HoverHelper = class extends EventDispatcher5 {
|
|
|
5396
5804
|
}
|
|
5397
5805
|
};
|
|
5398
5806
|
|
|
5399
|
-
// src/factory/material.ts
|
|
5400
|
-
import { LineMaterial } from "three/examples/jsm/lines/LineMaterial";
|
|
5401
|
-
import {
|
|
5402
|
-
Color as Color5,
|
|
5403
|
-
LineBasicMaterial as LineBasicMaterial5,
|
|
5404
|
-
MeshStandardMaterial as MeshStandardMaterial2,
|
|
5405
|
-
MeshBasicMaterial as MeshBasicMaterial5,
|
|
5406
|
-
ShaderMaterial as ShaderMaterial4,
|
|
5407
|
-
DoubleSide as DoubleSide4,
|
|
5408
|
-
Vector2 as Vector29
|
|
5409
|
-
} from "three";
|
|
5410
|
-
function vectorToString(vector) {
|
|
5411
|
-
return `${vector.x}-${vector.y}-${vector.z}`;
|
|
5412
|
-
}
|
|
5413
|
-
var MaterialFactory = class {
|
|
5414
|
-
constructor(context) {
|
|
5415
|
-
this.context = context;
|
|
5416
|
-
}
|
|
5417
|
-
lineMaterialMap = /* @__PURE__ */ new Map();
|
|
5418
|
-
meshStandardMaterialMap = /* @__PURE__ */ new Map();
|
|
5419
|
-
meshBasicMaterialMap = /* @__PURE__ */ new Map();
|
|
5420
|
-
shaderMaterialMap = /* @__PURE__ */ new Map();
|
|
5421
|
-
groundTextureMaterialMap = /* @__PURE__ */ new Map();
|
|
5422
|
-
line2MaterialMap = /* @__PURE__ */ new Map();
|
|
5423
|
-
generateLineMaterialKey({ color, opacity }) {
|
|
5424
|
-
return `${color}-${opacity}`;
|
|
5425
|
-
}
|
|
5426
|
-
createLineMaterial({ color, opacity }) {
|
|
5427
|
-
const key = this.generateLineMaterialKey({ color, opacity });
|
|
5428
|
-
if (this.lineMaterialMap.has(key)) {
|
|
5429
|
-
return this.lineMaterialMap.get(key);
|
|
5430
|
-
}
|
|
5431
|
-
const lineMaterial = new LineBasicMaterial5({
|
|
5432
|
-
color: new Color5(color).convertLinearToSRGB(),
|
|
5433
|
-
transparent: true,
|
|
5434
|
-
opacity
|
|
5435
|
-
});
|
|
5436
|
-
this.lineMaterialMap.set(key, lineMaterial);
|
|
5437
|
-
return lineMaterial;
|
|
5438
|
-
}
|
|
5439
|
-
createMeshStandardMaterial({ color, opacity }) {
|
|
5440
|
-
const key = `${color}-${opacity}`;
|
|
5441
|
-
if (this.meshStandardMaterialMap.has(key)) {
|
|
5442
|
-
return this.meshStandardMaterialMap.get(key);
|
|
5443
|
-
}
|
|
5444
|
-
const material = new MeshStandardMaterial2({
|
|
5445
|
-
color: new Color5(color).convertLinearToSRGB(),
|
|
5446
|
-
roughness: 1,
|
|
5447
|
-
transparent: true,
|
|
5448
|
-
opacity,
|
|
5449
|
-
depthWrite: true
|
|
5450
|
-
});
|
|
5451
|
-
this.meshStandardMaterialMap.set(key, material);
|
|
5452
|
-
return material;
|
|
5453
|
-
}
|
|
5454
|
-
createMeshBasicMaterial({ color, opacity }) {
|
|
5455
|
-
const key = `${color}-${opacity}`;
|
|
5456
|
-
if (this.meshBasicMaterialMap.has(key)) {
|
|
5457
|
-
return this.meshBasicMaterialMap.get(key);
|
|
5458
|
-
}
|
|
5459
|
-
const material = new MeshBasicMaterial5({
|
|
5460
|
-
color,
|
|
5461
|
-
transparent: true,
|
|
5462
|
-
opacity,
|
|
5463
|
-
depthWrite: true
|
|
5464
|
-
});
|
|
5465
|
-
this.meshBasicMaterialMap.set(key, material);
|
|
5466
|
-
return material;
|
|
5467
|
-
}
|
|
5468
|
-
createShaderMaterial({
|
|
5469
|
-
gradualColor,
|
|
5470
|
-
center: center2,
|
|
5471
|
-
maxValue,
|
|
5472
|
-
opacity,
|
|
5473
|
-
direction,
|
|
5474
|
-
max,
|
|
5475
|
-
min
|
|
5476
|
-
}) {
|
|
5477
|
-
const key = `${gradualColor.toString()}-${vectorToString(
|
|
5478
|
-
center2
|
|
5479
|
-
)}-${maxValue}-${opacity}-${vectorToString(direction)}`;
|
|
5480
|
-
if (this.shaderMaterialMap.has(key)) {
|
|
5481
|
-
return this.shaderMaterialMap.get(key);
|
|
5482
|
-
}
|
|
5483
|
-
const vertexShader = `
|
|
5484
|
-
uniform vec3 uColor;
|
|
5485
|
-
uniform vec3 uGradualColor;
|
|
5486
|
-
uniform vec3 center;
|
|
5487
|
-
uniform vec3 uDirection;
|
|
5488
|
-
uniform vec3 uMax;
|
|
5489
|
-
uniform vec3 uMin;
|
|
5490
|
-
uniform float maxValue;
|
|
5491
|
-
varying vec3 vColor;
|
|
5492
|
-
|
|
5493
|
-
void main() {
|
|
5494
|
-
vec3 lineVec = uMax - uMin; // \u7EBF\u6BB5AB\u7684\u65B9\u5411\u5411\u91CF
|
|
5495
|
-
vec3 AP = position - uMin; // \u5411\u91CFAP
|
|
5496
|
-
float t = dot(AP, lineVec) / dot(lineVec, lineVec); // \u53C2\u6570t
|
|
5497
|
-
t = clamp(t, 0.0, 1.0); // \u9650\u5236t\u5728[0, 1]\u8303\u56F4\u5185\uFF0C\u786E\u4FDD\u6700\u77ED\u8DDD\u79BB\u5728\u7EBF\u6BB5AB\u4E0A
|
|
5498
|
-
|
|
5499
|
-
vec3 closestPoint = uMin + t * lineVec; // \u6700\u77ED\u8DDD\u79BB\u70B9\u7684\u4F4D\u7F6E
|
|
5500
|
-
vec3 vecAP = closestPoint - uMin; // \u5411\u91CFAP'
|
|
5501
|
-
float distance = length(vecAP);
|
|
5502
|
-
float maxLen = length(lineVec);
|
|
5503
|
-
|
|
5504
|
-
// vec3 direction = normalize(uDirection);
|
|
5505
|
-
// float gradient = dot(normalize(normal), normalize(uDirection));
|
|
5506
|
-
// vec3 currentPosition = position - center;
|
|
5507
|
-
// float colorFactor = (dot(direction, currentPosition) / maxValue) * 0.5 + 0.5;
|
|
5508
|
-
float colorFactor = distance / maxLen;
|
|
5509
|
-
|
|
5510
|
-
vColor = mix(uColor, uGradualColor, 1.0 - t);
|
|
5511
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
5512
|
-
}
|
|
5513
|
-
`;
|
|
5514
|
-
const fragmentShader = `
|
|
5515
|
-
varying vec3 vColor;
|
|
5516
|
-
uniform float opacity;
|
|
5517
|
-
|
|
5518
|
-
void main() {
|
|
5519
|
-
gl_FragColor = vec4(vColor.x, vColor.y, vColor.z, opacity);
|
|
5520
|
-
}
|
|
5521
|
-
`;
|
|
5522
|
-
const material = new ShaderMaterial4({
|
|
5523
|
-
uniforms: {
|
|
5524
|
-
uColor: {
|
|
5525
|
-
value: new Color5(gradualColor[0]).convertLinearToSRGB()
|
|
5526
|
-
},
|
|
5527
|
-
uGradualColor: {
|
|
5528
|
-
value: new Color5(gradualColor[1]).convertLinearToSRGB()
|
|
5529
|
-
},
|
|
5530
|
-
center: {
|
|
5531
|
-
value: center2
|
|
5532
|
-
},
|
|
5533
|
-
maxValue: {
|
|
5534
|
-
value: maxValue
|
|
5535
|
-
},
|
|
5536
|
-
opacity: {
|
|
5537
|
-
value: opacity
|
|
5538
|
-
},
|
|
5539
|
-
uDirection: {
|
|
5540
|
-
value: direction
|
|
5541
|
-
},
|
|
5542
|
-
uMax: {
|
|
5543
|
-
value: max
|
|
5544
|
-
},
|
|
5545
|
-
uMin: {
|
|
5546
|
-
value: min
|
|
5547
|
-
}
|
|
5548
|
-
},
|
|
5549
|
-
vertexShader,
|
|
5550
|
-
fragmentShader,
|
|
5551
|
-
side: DoubleSide4
|
|
5552
|
-
});
|
|
5553
|
-
this.shaderMaterialMap.set(key, material);
|
|
5554
|
-
return material;
|
|
5555
|
-
}
|
|
5556
|
-
async createGroundTextureMaterial({ url, opacity }) {
|
|
5557
|
-
const key = `${url}-${opacity}`;
|
|
5558
|
-
if (this.groundTextureMaterialMap.has(key)) {
|
|
5559
|
-
return this.groundTextureMaterialMap.get(key);
|
|
5560
|
-
}
|
|
5561
|
-
const texture = await this.context.textureFactory.getTexture(url);
|
|
5562
|
-
const material = new MeshBasicMaterial5({
|
|
5563
|
-
map: texture,
|
|
5564
|
-
alphaTest: 0.2,
|
|
5565
|
-
side: DoubleSide4
|
|
5566
|
-
});
|
|
5567
|
-
texture.needsUpdate = true;
|
|
5568
|
-
this.groundTextureMaterialMap.set(key, material);
|
|
5569
|
-
return material;
|
|
5570
|
-
}
|
|
5571
|
-
createLine2MaterialMap({ color, width, dashed }) {
|
|
5572
|
-
const key = `${color}-${width}-${dashed}`;
|
|
5573
|
-
if (this.line2MaterialMap.has(key)) {
|
|
5574
|
-
return this.line2MaterialMap.get(key);
|
|
5575
|
-
}
|
|
5576
|
-
const material = new LineMaterial({
|
|
5577
|
-
color: parseInt(color.slice(1), 16),
|
|
5578
|
-
dashed,
|
|
5579
|
-
linewidth: width,
|
|
5580
|
-
worldUnits: true,
|
|
5581
|
-
dashSize: 1,
|
|
5582
|
-
gapSize: 3,
|
|
5583
|
-
dashScale: 1,
|
|
5584
|
-
resolution: new Vector29(this.context.clientSize.width, this.context.clientSize.height)
|
|
5585
|
-
});
|
|
5586
|
-
this.line2MaterialMap.set(key, material);
|
|
5587
|
-
return material;
|
|
5588
|
-
}
|
|
5589
|
-
dispose() {
|
|
5590
|
-
this.lineMaterialMap.forEach((val, _) => {
|
|
5591
|
-
val.dispose();
|
|
5592
|
-
});
|
|
5593
|
-
this.lineMaterialMap.clear();
|
|
5594
|
-
this.meshStandardMaterialMap.forEach((val, _) => {
|
|
5595
|
-
val.dispose();
|
|
5596
|
-
});
|
|
5597
|
-
this.meshStandardMaterialMap.clear();
|
|
5598
|
-
this.meshBasicMaterialMap.forEach((val, _) => {
|
|
5599
|
-
val.dispose();
|
|
5600
|
-
});
|
|
5601
|
-
this.meshBasicMaterialMap.clear();
|
|
5602
|
-
this.shaderMaterialMap.forEach((val, _) => {
|
|
5603
|
-
val.dispose();
|
|
5604
|
-
});
|
|
5605
|
-
this.shaderMaterialMap.clear();
|
|
5606
|
-
this.groundTextureMaterialMap.forEach((val, _) => {
|
|
5607
|
-
val.dispose();
|
|
5608
|
-
val.map?.dispose();
|
|
5609
|
-
});
|
|
5610
|
-
this.groundTextureMaterialMap.clear();
|
|
5611
|
-
this.line2MaterialMap.forEach((val, _) => {
|
|
5612
|
-
val.dispose();
|
|
5613
|
-
});
|
|
5614
|
-
this.line2MaterialMap.clear();
|
|
5615
|
-
}
|
|
5616
|
-
};
|
|
5617
|
-
|
|
5618
5807
|
// src/utils/camera-bound.ts
|
|
5619
|
-
import { Box3 as Box39, Vector3 as
|
|
5808
|
+
import { Box3 as Box39, Vector3 as Vector319 } from "three";
|
|
5620
5809
|
var CameraBound = class {
|
|
5621
5810
|
constructor(context) {
|
|
5622
5811
|
this.context = context;
|
|
@@ -5624,9 +5813,9 @@ var CameraBound = class {
|
|
|
5624
5813
|
this.changePrevCamera();
|
|
5625
5814
|
}
|
|
5626
5815
|
prevCamera = {
|
|
5627
|
-
position: new
|
|
5816
|
+
position: new Vector319(),
|
|
5628
5817
|
zoom: 1,
|
|
5629
|
-
target: new
|
|
5818
|
+
target: new Vector319()
|
|
5630
5819
|
};
|
|
5631
5820
|
enable = true;
|
|
5632
5821
|
box = new Box39();
|
|
@@ -5672,8 +5861,8 @@ var CameraBound = class {
|
|
|
5672
5861
|
const { min, max } = box;
|
|
5673
5862
|
const lb = vector3ToDevice(min, camera, w, h);
|
|
5674
5863
|
const rt = vector3ToDevice(max, camera, w, h);
|
|
5675
|
-
const lt = vector3ToDevice(new
|
|
5676
|
-
const rb = vector3ToDevice(new
|
|
5864
|
+
const lt = vector3ToDevice(new Vector319(min.x, max.y, max.z), camera, w, h);
|
|
5865
|
+
const rb = vector3ToDevice(new Vector319(max.x, min.y, min.z), camera, w, h);
|
|
5677
5866
|
const left = Math.min(lb.x, rt.x, lt.x, rb.x);
|
|
5678
5867
|
const right = Math.max(lb.x, rt.x, lt.x, rb.x);
|
|
5679
5868
|
const top = Math.min(lb.y, rt.y, lt.y, rb.y);
|
|
@@ -5712,7 +5901,7 @@ var CameraBound = class {
|
|
|
5712
5901
|
};
|
|
5713
5902
|
|
|
5714
5903
|
// src/factory/texture.ts
|
|
5715
|
-
import { LinearFilter as
|
|
5904
|
+
import { LinearFilter as LinearFilter3, RGBAFormat as RGBAFormat3, TextureLoader as TextureLoader2 } from "three";
|
|
5716
5905
|
var TextureFactory = class {
|
|
5717
5906
|
constructor(context) {
|
|
5718
5907
|
this.context = context;
|
|
@@ -5725,9 +5914,9 @@ var TextureFactory = class {
|
|
|
5725
5914
|
}
|
|
5726
5915
|
const texturePromise = this.loader.loadAsync(url).then((texture) => {
|
|
5727
5916
|
this.textureMap.set(url, texture);
|
|
5728
|
-
texture.format =
|
|
5729
|
-
texture.magFilter =
|
|
5730
|
-
texture.minFilter =
|
|
5917
|
+
texture.format = RGBAFormat3;
|
|
5918
|
+
texture.magFilter = LinearFilter3;
|
|
5919
|
+
texture.minFilter = LinearFilter3;
|
|
5731
5920
|
texture.colorSpace = "srgb";
|
|
5732
5921
|
return texture;
|
|
5733
5922
|
});
|
|
@@ -5820,7 +6009,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
5820
6009
|
/**
|
|
5821
6010
|
* 获取两个点之间的像素数
|
|
5822
6011
|
*/
|
|
5823
|
-
getRatio(point1 = new
|
|
6012
|
+
getRatio(point1 = new Vector320(0, 0, 0), point22 = new Vector320(100, 0, 0)) {
|
|
5824
6013
|
const { clientWidth, clientHeight } = this.container;
|
|
5825
6014
|
const device1 = vector3ToDevice(point1, this.camera, clientWidth, clientHeight);
|
|
5826
6015
|
const device2 = vector3ToDevice(point22, this.camera, clientWidth, clientHeight);
|
|
@@ -6023,7 +6212,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
6023
6212
|
);
|
|
6024
6213
|
}
|
|
6025
6214
|
getCameraLookAt() {
|
|
6026
|
-
return new
|
|
6215
|
+
return new Vector320().subVectors(this.control.target, this.camera.position);
|
|
6027
6216
|
}
|
|
6028
6217
|
/**
|
|
6029
6218
|
* 按照一个中心点设置相机的放大缩小
|
|
@@ -6078,10 +6267,10 @@ var Context = class extends EventDispatcher6 {
|
|
|
6078
6267
|
const boundingBox = new Box310().setFromObject(object);
|
|
6079
6268
|
this.setPolarAngle(polar, 0);
|
|
6080
6269
|
const { max, min } = boundingBox;
|
|
6081
|
-
const leftTop = new
|
|
6082
|
-
const rightTop = new
|
|
6083
|
-
const rightBottom = new
|
|
6084
|
-
const leftBottom = new
|
|
6270
|
+
const leftTop = new Vector320(min.x, max.y, max.z);
|
|
6271
|
+
const rightTop = new Vector320(max.x, max.y, max.z);
|
|
6272
|
+
const rightBottom = new Vector320(max.x, min.y, min.z);
|
|
6273
|
+
const leftBottom = new Vector320(min.x, min.y, min.z);
|
|
6085
6274
|
const leftTop2d = vector3ToDevice(leftTop, this.camera, width, height);
|
|
6086
6275
|
const rightTop2d = vector3ToDevice(rightTop, this.camera, width, height);
|
|
6087
6276
|
const leftBottom2d = vector3ToDevice(leftBottom, this.camera, width, height);
|
|
@@ -6096,7 +6285,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
6096
6285
|
const xScale = (width - right - left) / size.x;
|
|
6097
6286
|
const yScale = (height - top - bottom) / size.y;
|
|
6098
6287
|
const scale = Math.min(xScale, yScale);
|
|
6099
|
-
const center2 = new
|
|
6288
|
+
const center2 = new Vector320((max.x + min.x) / 2, (max.y + min.y) / 2, (max.z + min.z) / 2);
|
|
6100
6289
|
return { zoom: scale * this.camera.zoom, center: center2 };
|
|
6101
6290
|
}
|
|
6102
6291
|
/**
|
|
@@ -6557,7 +6746,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
6557
6746
|
this.context.fitCameraToGround(void 0, 0);
|
|
6558
6747
|
const basicZoom = this.context.camera.zoom;
|
|
6559
6748
|
this.context.control.minZoom = basicZoom;
|
|
6560
|
-
this.context.control.maxZoom = basicZoom *
|
|
6749
|
+
this.context.control.maxZoom = basicZoom * 30;
|
|
6561
6750
|
if (this.type === "3d") {
|
|
6562
6751
|
this.context.fitCameraToGround(this.config.defaultPadding, 0, false);
|
|
6563
6752
|
}
|
|
@@ -6656,7 +6845,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
6656
6845
|
} = this.context;
|
|
6657
6846
|
const device = vector3ToDevice(position, camera, width, height);
|
|
6658
6847
|
const offsetX = device.x - width / 2;
|
|
6659
|
-
const v3 = new
|
|
6848
|
+
const v3 = new Vector321();
|
|
6660
6849
|
v3.setFromMatrixColumn(this.context.camera.matrix, 0);
|
|
6661
6850
|
v3.normalize();
|
|
6662
6851
|
v3.multiplyScalar(offsetX / this.context.camera.zoom);
|
|
@@ -6928,6 +7117,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
6928
7117
|
clearCanvas();
|
|
6929
7118
|
disposeLoader();
|
|
6930
7119
|
this.unRegistryEvent();
|
|
7120
|
+
TextTextureFactory.dispose();
|
|
6931
7121
|
}
|
|
6932
7122
|
};
|
|
6933
7123
|
|
|
@@ -7030,21 +7220,21 @@ function Worker2() {
|
|
|
7030
7220
|
|
|
7031
7221
|
// src/plugins/navigation/path.ts
|
|
7032
7222
|
import {
|
|
7033
|
-
Mesh as
|
|
7034
|
-
Object3D as
|
|
7223
|
+
Mesh as Mesh10,
|
|
7224
|
+
Object3D as Object3D18,
|
|
7035
7225
|
TextureLoader as TextureLoader3,
|
|
7036
7226
|
Color as Color8,
|
|
7037
7227
|
Vector2 as Vector212,
|
|
7038
|
-
Vector3 as
|
|
7228
|
+
Vector3 as Vector323,
|
|
7039
7229
|
NormalBlending,
|
|
7040
7230
|
RepeatWrapping
|
|
7041
7231
|
} from "three";
|
|
7042
7232
|
|
|
7043
7233
|
// src/external/meshLine.js
|
|
7044
7234
|
import {
|
|
7045
|
-
BufferGeometry as
|
|
7046
|
-
Matrix4 as
|
|
7047
|
-
Vector3 as
|
|
7235
|
+
BufferGeometry as BufferGeometry6,
|
|
7236
|
+
Matrix4 as Matrix43,
|
|
7237
|
+
Vector3 as Vector322,
|
|
7048
7238
|
Ray as Ray2,
|
|
7049
7239
|
Sphere,
|
|
7050
7240
|
LineSegments as LineSegments5,
|
|
@@ -7055,7 +7245,7 @@ import {
|
|
|
7055
7245
|
Color as Color7,
|
|
7056
7246
|
Vector2 as Vector211
|
|
7057
7247
|
} from "three";
|
|
7058
|
-
var MeshLine = class extends
|
|
7248
|
+
var MeshLine = class extends BufferGeometry6 {
|
|
7059
7249
|
constructor() {
|
|
7060
7250
|
super();
|
|
7061
7251
|
this.isMeshLine = true;
|
|
@@ -7071,7 +7261,7 @@ var MeshLine = class extends BufferGeometry5 {
|
|
|
7071
7261
|
this._points = [];
|
|
7072
7262
|
this._geom = null;
|
|
7073
7263
|
this.widthCallback = null;
|
|
7074
|
-
this.matrixWorld = new
|
|
7264
|
+
this.matrixWorld = new Matrix43();
|
|
7075
7265
|
Object.defineProperties(this, {
|
|
7076
7266
|
// this is now a bufferGeometry
|
|
7077
7267
|
// add getter to support previous api
|
|
@@ -7124,7 +7314,7 @@ MeshLine.prototype.setPoints = function(points, wcb) {
|
|
|
7124
7314
|
this.widthCallback = wcb;
|
|
7125
7315
|
this.positions = [];
|
|
7126
7316
|
this.counters = [];
|
|
7127
|
-
if (points.length && points[0] instanceof
|
|
7317
|
+
if (points.length && points[0] instanceof Vector322) {
|
|
7128
7318
|
for (var j = 0; j < points.length; j++) {
|
|
7129
7319
|
var p = points[j];
|
|
7130
7320
|
var c = j / points.length;
|
|
@@ -7145,10 +7335,10 @@ MeshLine.prototype.setPoints = function(points, wcb) {
|
|
|
7145
7335
|
this.process();
|
|
7146
7336
|
};
|
|
7147
7337
|
function MeshLineRaycast(raycaster, intersects) {
|
|
7148
|
-
var inverseMatrix = new
|
|
7338
|
+
var inverseMatrix = new Matrix43();
|
|
7149
7339
|
var ray = new Ray2();
|
|
7150
7340
|
var sphere = new Sphere();
|
|
7151
|
-
var interRay = new
|
|
7341
|
+
var interRay = new Vector322();
|
|
7152
7342
|
var geometry = this.geometry;
|
|
7153
7343
|
if (!geometry.boundingSphere) geometry.computeBoundingSphere();
|
|
7154
7344
|
sphere.copy(geometry.boundingSphere);
|
|
@@ -7158,9 +7348,9 @@ function MeshLineRaycast(raycaster, intersects) {
|
|
|
7158
7348
|
}
|
|
7159
7349
|
inverseMatrix.copy(this.matrixWorld).invert();
|
|
7160
7350
|
ray.copy(raycaster.ray).applyMatrix4(inverseMatrix);
|
|
7161
|
-
var vStart = new
|
|
7162
|
-
var vEnd = new
|
|
7163
|
-
var interSegment = new
|
|
7351
|
+
var vStart = new Vector322();
|
|
7352
|
+
var vEnd = new Vector322();
|
|
7353
|
+
var interSegment = new Vector322();
|
|
7164
7354
|
var step = this instanceof LineSegments5 ? 2 : 1;
|
|
7165
7355
|
var index = geometry.index;
|
|
7166
7356
|
var attributes = geometry.attributes;
|
|
@@ -7214,8 +7404,8 @@ MeshLine.prototype.getDistance = function(i) {
|
|
|
7214
7404
|
let maxLength = 0;
|
|
7215
7405
|
for (let k = 0; k < i; k++) {
|
|
7216
7406
|
const index = 6 * k;
|
|
7217
|
-
const p0 = new
|
|
7218
|
-
const p1 = new
|
|
7407
|
+
const p0 = new Vector322(this.positions[index], this.positions[index + 1], this.positions[index + 2]);
|
|
7408
|
+
const p1 = new Vector322(this.positions[index + 6], this.positions[index + 7], this.positions[index + 8]);
|
|
7219
7409
|
const distance = p0.distanceTo(p1);
|
|
7220
7410
|
maxLength += distance;
|
|
7221
7411
|
}
|
|
@@ -7695,7 +7885,7 @@ var defaultConfig2 = {
|
|
|
7695
7885
|
lineWidth: 8,
|
|
7696
7886
|
color: 16777215
|
|
7697
7887
|
};
|
|
7698
|
-
var Path2 = class extends
|
|
7888
|
+
var Path2 = class extends Object3D18 {
|
|
7699
7889
|
constructor(navigation, config) {
|
|
7700
7890
|
super();
|
|
7701
7891
|
this.navigation = navigation;
|
|
@@ -7751,7 +7941,7 @@ var Path2 = class extends Object3D17 {
|
|
|
7751
7941
|
}
|
|
7752
7942
|
} = this;
|
|
7753
7943
|
const screenPoints = points.map(
|
|
7754
|
-
([x, y]) => vector3ToDevice(new
|
|
7944
|
+
([x, y]) => vector3ToDevice(new Vector323(x, y, 0), camera, width, height)
|
|
7755
7945
|
).map(({ x, y }) => [x, y]);
|
|
7756
7946
|
const pointLength = getPathLength(screenPoints);
|
|
7757
7947
|
return pointLength / 32;
|
|
@@ -7815,7 +8005,7 @@ var Path2 = class extends Object3D17 {
|
|
|
7815
8005
|
blending: NormalBlending,
|
|
7816
8006
|
repeat: new Vector212(this.getRepeat(), 1)
|
|
7817
8007
|
});
|
|
7818
|
-
const mesh = this.mesh = new
|
|
8008
|
+
const mesh = this.mesh = new Mesh10(lineGeometry, material);
|
|
7819
8009
|
mesh.renderOrder = 9;
|
|
7820
8010
|
this.add(mesh);
|
|
7821
8011
|
return mesh;
|
|
@@ -7831,7 +8021,7 @@ var Path2 = class extends Object3D17 {
|
|
|
7831
8021
|
|
|
7832
8022
|
// src/plugins/navigation/navigation.ts
|
|
7833
8023
|
import { Group as TweenGroup2, Tween as Tween2 } from "@tweenjs/tween.js";
|
|
7834
|
-
import { Vector3 as
|
|
8024
|
+
import { Vector3 as Vector324 } from "three";
|
|
7835
8025
|
var defaultConfig3 = {
|
|
7836
8026
|
path: {},
|
|
7837
8027
|
speed: 10,
|
|
@@ -8111,8 +8301,8 @@ var Navigation = class extends Plugin {
|
|
|
8111
8301
|
this.animationPathOptions.cPathIndex = prevCPathIndex + pastRouteIndex;
|
|
8112
8302
|
if (this.startPoi) {
|
|
8113
8303
|
this.startPoi.position.setX(pos2[0]).setY(pos2[1]);
|
|
8114
|
-
const target = new
|
|
8115
|
-
const offset = new
|
|
8304
|
+
const target = new Vector324(pos2[0], pos2[1], 0);
|
|
8305
|
+
const offset = new Vector324();
|
|
8116
8306
|
offset.setFromMatrixColumn(this.bmap.context.camera.matrix, 1);
|
|
8117
8307
|
offset.normalize();
|
|
8118
8308
|
offset.multiplyScalar(150 / this.bmap.context.camera.zoom);
|
|
@@ -8142,10 +8332,10 @@ var Navigation = class extends Plugin {
|
|
|
8142
8332
|
const p2 = path[2];
|
|
8143
8333
|
const angle = calc_angle(p0, p1, p2);
|
|
8144
8334
|
if (Math.abs(angle) >= 179 && Math.abs(angle) <= 180) {
|
|
8145
|
-
const v1 = new
|
|
8146
|
-
const v2 = new
|
|
8335
|
+
const v1 = new Vector324(p2[0] - p1[0], p2[1] - p1[1], 0).normalize();
|
|
8336
|
+
const v2 = new Vector324(0, 1, 0).normalize();
|
|
8147
8337
|
const angle2 = v1.angleTo(v2);
|
|
8148
|
-
const cross = new
|
|
8338
|
+
const cross = new Vector324().crossVectors(v2, v1);
|
|
8149
8339
|
const sign = Object.is(cross.y, 0) ? -1 : 1;
|
|
8150
8340
|
const finalAngle = sign * angle2;
|
|
8151
8341
|
return finalAngle;
|
|
@@ -8185,7 +8375,7 @@ var Navigation = class extends Plugin {
|
|
|
8185
8375
|
this.bmap.context.control.target.copy(this.startPoi.position);
|
|
8186
8376
|
this.bmap.context.setAzimuthalAngle(start.azimuthal, 0);
|
|
8187
8377
|
const target = control.target.clone();
|
|
8188
|
-
const offset = new
|
|
8378
|
+
const offset = new Vector324();
|
|
8189
8379
|
offset.setFromMatrixColumn(this.bmap.context.camera.matrix, 1);
|
|
8190
8380
|
offset.normalize();
|
|
8191
8381
|
offset.multiplyScalar(offsetDistance);
|
|
@@ -8226,18 +8416,18 @@ var Navigation = class extends Plugin {
|
|
|
8226
8416
|
return;
|
|
8227
8417
|
}
|
|
8228
8418
|
if (Math.abs(offsetX) >= 1) {
|
|
8229
|
-
const xv3 = new
|
|
8419
|
+
const xv3 = new Vector324();
|
|
8230
8420
|
xv3.setFromMatrixColumn(camera.matrix, 0);
|
|
8231
8421
|
xv3.normalize();
|
|
8232
8422
|
xv3.multiplyScalar(offsetX / camera.zoom);
|
|
8233
|
-
target.add(new
|
|
8423
|
+
target.add(new Vector324(xv3.x, 0, 0));
|
|
8234
8424
|
}
|
|
8235
8425
|
if (Math.abs(offsetY) >= 1) {
|
|
8236
|
-
const v3 = new
|
|
8426
|
+
const v3 = new Vector324();
|
|
8237
8427
|
v3.setFromMatrixColumn(camera.matrix, 1);
|
|
8238
8428
|
v3.normalize();
|
|
8239
8429
|
v3.multiplyScalar(offsetY / camera.zoom);
|
|
8240
|
-
target.add(new
|
|
8430
|
+
target.add(new Vector324(0, v3.y, 0));
|
|
8241
8431
|
}
|
|
8242
8432
|
return this.bmap.context.setCameraPosition(target, duration);
|
|
8243
8433
|
}
|
|
@@ -8540,14 +8730,14 @@ function translatePosToCenter(cds, center2) {
|
|
|
8540
8730
|
return [cds[0] - center2[0], cds[1] - center2[1]];
|
|
8541
8731
|
}
|
|
8542
8732
|
|
|
8543
|
-
// src/assets/icon/parkingSpace/half.
|
|
8544
|
-
var half_default = 'data:image/svg+xml,<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1722508608758" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1737" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M671.672075 807.841824l-12.086033-1.711297-5.561715 10.695605a235.303309 235.303309 0 1 1-328.889852-310.172544l8.128659-4.813022v-9.519089c0.855648-28.236397-13.369506-48.45109-38.183309-54.226717l-6.738232-1.497385-5.989538 3.52955a314.450786 314.450786 0 1 0 438.519803 419.695539l3.850418-6.952143-2.887813-7.807792a60.216256 60.216256 0 0 0-50.162388-37.220705z" fill="%23ffffff" p-id="1738"></path><path d="M893.498922 805.167922c-2.994769-21.39121-16.578188-37.541573-30.268562-35.616364l-70.911861 9.839956-57.64931-189.633075a10.695605 10.695605 0 0 1 0-1.069561 37.969398 37.969398 0 0 0-35.830277-25.99032H435.620074V414.029649h157.760173v-78.826609H435.620074v-50.162387a39.466782 39.466782 0 1 0-78.826609 0v305.787346a44.065892 44.065892 0 0 0-1.711297 11.337341 39.680694 39.680694 0 0 0 17.540793 33.156376A37.755486 37.755486 0 0 0 407.918457 641.846035h260.117113l61.71364 203.216494a30.268562 30.268562 0 0 0 28.98509 19.145133h0.855648a48.985871 48.985871 0 0 0 16.364276-2.139121h0.641736l97.330005-13.369506c13.79733-2.887813 22.567726-21.92599 19.572957-43.531113zM406.955852 197.229736a98.613478 98.613478 0 1 0-98.506521-98.506521 98.506522 98.506522 0 0 0 98.506521 98.506521z" fill="%23ffffff" p-id="1739"></path></svg>';
|
|
8733
|
+
// src/assets/icon/parkingSpace/half.png
|
|
8734
|
+
var half_default = "data:image/png;base64,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";
|
|
8545
8735
|
|
|
8546
|
-
// src/assets/icon/parkingSpace/power.
|
|
8547
|
-
var power_default =
|
|
8736
|
+
// src/assets/icon/parkingSpace/power.png
|
|
8737
|
+
var power_default = "data:image/png;base64,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";
|
|
8548
8738
|
|
|
8549
|
-
// src/assets/icon/parkingSpace/mechanical.
|
|
8550
|
-
var mechanical_default = 'data:image/svg+xml,<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1722508689425" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9597" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M354.1 768.4l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m0 0l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m0 0l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m0 0l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m0 0l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m0 0l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m375.5-7.1l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m0 0l-63.1 7.1c-0.1 0.3-0.2 0.7-0.2 1.1v15.9c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-23.5c0.1-0.2 0.1-0.4 0-0.6z m-375.5 7.1l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z m0 0l-63.1-7.1v24.1c0 0.3 0 0.6 0.1 0.9h63.1c0.1-0.3 0.1-0.6 0.1-0.9v-15.9c0-0.3-0.1-0.7-0.2-1.1z" p-id="9598" fill="%23ffffff"></path><path d="M354.3 769.6v15.9c0 0.3 0 0.6-0.1 0.9h-63.1c-0.1-0.3-0.1-0.6-0.1-0.9V762v-0.6l63.1 7.1c0.1 0.3 0.2 0.7 0.2 1.1z" p-id="9599" fill="%23ffffff"></path><path d="M354.3 769.6v15.9c0 0.3 0 0.6-0.1 0.9h-63.1c-0.1-0.3-0.1-0.6-0.1-0.9V762v-0.6l63.1 7.1c0.1 0.3 0.2 0.7 0.2 1.1zM729.7 761.9v23.5c0 0.3 0 0.6-0.1 0.9h-63.1c-0.1-0.3-0.1-0.6-0.1-0.9v-15.9c0-0.4 0.1-0.8 0.2-1.1l63.1-7.1v0.6z" p-id="9600" fill="%23ffffff"></path><path d="M729.7 761.9v23.5c0 0.3 0 0.6-0.1 0.9h-63.1c-0.1-0.3-0.1-0.6-0.1-0.9v-15.9c0-0.4 0.1-0.8 0.2-1.1l63.1-7.1v0.6zM158.3 132.8h50.6v38h-50.6zM253.8 132.8h50.6v38h-50.6zM353.8 132.8h50.6v38h-50.6zM441.3 132.8h139.2v38H441.3zM614.8 132.8h50.6v38h-50.6zM711.6 132.8h50.6v38h-50.6zM809.1 132.8h50.6v38h-50.6z" p-id="9601" fill="%23ffffff"></path><path d="M158.3 132.8h50.6v38h-50.6zM253.8 132.8h50.6v38h-50.6zM353.8 132.8h50.6v38h-50.6zM441.3 132.8h139.2v38H441.3zM614.8 132.8h50.6v38h-50.6zM711.6 132.8h50.6v38h-50.6zM809.1 132.8h50.6v38h-50.6z" p-id="9602" fill="%23ffffff"></path><path d="M967.6 202.4V101.2c0-24.4-19.8-44.3-44.3-44.3H100.7c-24.5 0-44.3 19.8-44.3 44.3v101.3c0 24 19.2 43.6 43 44.3v673.8h-24c-10.5 0-19 8.5-19 19s8.5 19 19 19h873.2c10.5 0 19-8.5 19-19s-8.5-19-19-19h-22.8v-674c23.3-1.3 41.8-20.6 41.8-44.2z m-873.2 0V101.2c0-3.5 2.8-6.3 6.3-6.3h822.6c3.5 0.1 6.3 2.9 6.3 6.3v101.3c0 3.5-2.8 6.3-6.3 6.3H100.7c-3.4-0.1-6.3-3-6.3-6.4zM253 785.5V762c0-11.9 4.9-23 13.5-30.4 7.5-6.6 17.5-9.5 27.4-8.1l66.7 7.5c18.3 2.8 31.6 19.3 31.6 38.6v15.9c0 21.4-16.1 38.9-35.9 38.9H289c-19.9-0.1-36-17.5-36-38.9z m60.3 116c0 10.5-8.5 19-19 19s-19-8.5-19-19V884l38 0.2v17.3z m34.5 19c2.1-6 3.5-12.3 3.5-19v-17.1l159.7 0.8h0.2l155.2-0.8v17.1c0 6.7 1.4 13 3.5 19H347.8z m394.5-19c0 10.5-8.5 19-19 19s-19-8.5-19-19v-17.3l38-0.2v17.5z m25.3-116.1c0 21.4-16.1 38.9-35.9 38.9h-67.3c-19.8 0-35.9-17.4-35.9-38.9v-15.9c0-19.3 13.3-35.8 30.9-38.5l68.1-7.7c9.1-1.4 19 1.6 26.7 8.2 8.6 7.4 13.5 18.5 13.5 30.4v23.5zM611.1 661.7c4.1-12.8 15.9-22.1 30-22.1s26 9.4 30 22.1h-60z m98.8-0.2c-4.7-33.8-33.8-59.9-68.8-59.9-35.1 0-64.2 26.2-68.9 60.1H315.9c-27 0-45.6-10.5-63.7-26.7 2.9-7.8 5.7-15.4 8.2-22.2 3.7-10 6.7-18.2 8.3-22.7 0.9-2.6 1.7-5.2 2.2-7.8l27.9-75.6c20.8-54.4 74.5-55.6 76.7-55.7h270c0.6 0 55.3 0.6 77.9 55.4l27.9 75.8c0.6 2.7 1.3 5.2 2.2 7.8l8.3 22.6c2.4 6.4 5.1 13.9 7.9 21.6-19.7 16.3-35.4 26.3-59.8 27.3z m178 259H776.8c2.1-6 3.5-12.3 3.5-19v-17.7h2c15.1 0.1 29.6-5.8 40.3-16.5 11.3-11.2 17.6-26.4 17.5-42.3v-83.2c0-17.6-13.8-62.2-13.9-62.7-2.7-8.4-15.1-42.4-28.8-79.5l-8.2-22.4c-0.4-1.1-0.7-2.3-0.9-3.5-0.2-1.1-0.5-2.1-0.9-3.1l-28.7-77.9c-32.3-78.7-110-79.6-113.2-79.6h-270c-3.3 0-81.9 0.9-112.2 80.3l-28.4 77.2c-0.4 1-0.7 2.1-0.9 3.1-0.2 1.2-0.5 2.3-0.9 3.5-1.6 4.4-4.6 12.6-8.3 22.5-10.6 28.8-25.2 68.1-28.7 79.5-0.2 0.4-13.9 44.9-13.9 62.6V825c-0.1 15.9 6.2 31.1 17.5 42.3 10.3 10.2 23.9 15.6 37.8 16.3v17.9c0 6.7 1.4 13 3.5 19H137.4V246.7h750.5v673.8z" p-id="9603" fill="%23ffffff"></path><path d="M441.3 132.8h139.2v38H441.3zM353.8 132.8h50.6v38h-50.6zM253.8 132.8h50.6v38h-50.6zM158.3 132.8h50.6v38h-50.6zM809.1 132.8h50.6v38h-50.6zM711.6 132.8h50.6v38h-50.6zM614.8 132.8h50.6v38h-50.6z" p-id="9604" fill="%23ffffff"></path></svg>';
|
|
8739
|
+
// src/assets/icon/parkingSpace/mechanical.png
|
|
8740
|
+
var mechanical_default = "data:image/png;base64,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";
|
|
8551
8741
|
|
|
8552
8742
|
// src/loader/AibeeLoader/index.ts
|
|
8553
8743
|
var defaultAibeeLoaderOption = {
|
|
@@ -8719,11 +8909,11 @@ var AibeeLoader = class {
|
|
|
8719
8909
|
{}
|
|
8720
8910
|
);
|
|
8721
8911
|
Object.values(group).forEach((options) => {
|
|
8722
|
-
const
|
|
8912
|
+
const mergeGeometries6 = new MergeGraphic(
|
|
8723
8913
|
this.bmap.context,
|
|
8724
8914
|
options
|
|
8725
8915
|
);
|
|
8726
|
-
floor.mergeGraphicLayer.add(
|
|
8916
|
+
floor.mergeGraphicLayer.add(mergeGeometries6);
|
|
8727
8917
|
});
|
|
8728
8918
|
break;
|
|
8729
8919
|
case "ground":
|
|
@@ -8915,6 +9105,11 @@ var AibeeLoader = class {
|
|
|
8915
9105
|
floor.userData.parkingSpaces = parkingSpacesGraphics;
|
|
8916
9106
|
floor.userData.parkingSpacesGraphicMap = parkingSpacesGraphicMap;
|
|
8917
9107
|
break;
|
|
9108
|
+
case "text":
|
|
9109
|
+
transformGraphicData(layer.elements, center2);
|
|
9110
|
+
const textTexture = new TextTexture(this.bmap.context, layer.elements);
|
|
9111
|
+
floor.textTextureLayer.add(textTexture);
|
|
9112
|
+
break;
|
|
8918
9113
|
}
|
|
8919
9114
|
});
|
|
8920
9115
|
floor.userData.center = center2;
|
|
@@ -8967,6 +9162,7 @@ export {
|
|
|
8967
9162
|
SplitLoad,
|
|
8968
9163
|
SvgLine,
|
|
8969
9164
|
SvgPolygon,
|
|
9165
|
+
TextTexture,
|
|
8970
9166
|
Timer,
|
|
8971
9167
|
UniqueKey,
|
|
8972
9168
|
Wall,
|
|
@@ -8982,11 +9178,13 @@ export {
|
|
|
8982
9178
|
createRect,
|
|
8983
9179
|
createSvg,
|
|
8984
9180
|
createSvgElement,
|
|
9181
|
+
createThreeLine,
|
|
8985
9182
|
darkenColor,
|
|
8986
9183
|
defaultAibeeLoaderOption,
|
|
8987
9184
|
defaultConfig,
|
|
8988
9185
|
defaultGraphicOptions,
|
|
8989
9186
|
defaultOptions3 as defaultOptions,
|
|
9187
|
+
defaultTextTextureOptions,
|
|
8990
9188
|
dispose,
|
|
8991
9189
|
disposeLoader,
|
|
8992
9190
|
distancePointToSegment,
|
|
@@ -9003,6 +9201,7 @@ export {
|
|
|
9003
9201
|
getTextureByText,
|
|
9004
9202
|
getTextureByUrl,
|
|
9005
9203
|
hasChinese,
|
|
9204
|
+
hexToRgb,
|
|
9006
9205
|
initCamera,
|
|
9007
9206
|
initCanvas,
|
|
9008
9207
|
initControl,
|