@soonspacejs/plugin-tiles 2.15.10 → 2.15.11

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/dist/index.esm.js CHANGED
@@ -1,25 +1,25 @@
1
1
  import R from "soonspacejs";
2
- import { TilesRenderer as x } from "um-3d-tiles-renderer";
3
- import { GLTFLoader as ae } from "three/examples/jsm/loaders/GLTFLoader.js";
4
- import { MathUtils as f, MeshBasicMaterial as oe, Color as L, PerspectiveCamera as q, Matrix4 as P, Vector3 as me, Box3 as ve, Sphere as le, MeshStandardMaterial as _e, ShaderMaterial as V } from "three";
5
- import { TilesFadePlugin as z, UpdateOnChangePlugin as B, QuantizedMeshPlugin as U, ImageOverlayPlugin as de, XYZTilesOverlay as he, ReorientationPlugin as j, StyledGeoJSONOverlay as Z, CesiumIonOverlay as Oe, TMSTilesOverlay as Me, UrlTemplateTilesOverlay as Se, WMSTilesOverlay as we, WMTSCapabilitiesLoader as Ce, WMTSTilesOverlay as be, CesiumIonAuthPlugin as ue } from "um-3d-tiles-renderer/plugins";
6
- import { CesiumGroundTextPrimitive as E, CesiumGroundPolylinePrimitive as I, CesiumGroundPolygonPrimitive as K, CesiumGroundCirclePrimitive as ee, CesiumGroundPointPrimitive as Te, initializeApproximateTerrainHeights as Pe, updateTerrainLogDepthUniforms as xe, CesiumGlobeDepth as ke, CESIUM_GROUND_NON_PICKABLE_LAYER as Ee } from "cesium-to-three/ground";
7
- import { createFineArrow as W, createCurvedArrow as ce, createSwallowtailAttackArrow as pe, createAttackArrow as ge, createAssaultDirectionArrow as fe } from "cesium-to-three/arrow";
8
- class Ie {
2
+ import { TilesRenderer as T } from "um-3d-tiles-renderer";
3
+ import { GLTFLoader as oe } from "three/examples/jsm/loaders/GLTFLoader.js";
4
+ import { MathUtils as f, MeshBasicMaterial as le, Color as L, PerspectiveCamera as q, Matrix4 as b, Vector3 as ve, Box3 as _e, Sphere as de, MeshStandardMaterial as Oe, ShaderMaterial as V } from "three";
5
+ import { TilesFadePlugin as z, UpdateOnChangePlugin as B, QuantizedMeshPlugin as U, ImageOverlayPlugin as he, XYZTilesOverlay as ue, ReorientationPlugin as j, StyledGeoJSONOverlay as Z, CesiumIonOverlay as Me, TMSTilesOverlay as Se, UrlTemplateTilesOverlay as we, WMSTilesOverlay as Ce, WMTSCapabilitiesLoader as be, WMTSTilesOverlay as Te, CesiumIonAuthPlugin as ce } from "um-3d-tiles-renderer/plugins";
6
+ import { CesiumGroundTextPrimitive as k, CesiumGroundPolylinePrimitive as I, CesiumGroundPolygonPrimitive as K, CesiumGroundCirclePrimitive as ee, CesiumGroundPointPrimitive as Pe, initializeApproximateTerrainHeights as xe, updateTerrainLogDepthUniforms as ke, CesiumGlobeDepth as Ee, CESIUM_GROUND_NON_PICKABLE_LAYER as Ie } from "cesium-to-three/ground";
7
+ import { createFineArrow as W, createCurvedArrow as pe, createSwallowtailAttackArrow as ge, createAttackArrow as fe, createAssaultDirectionArrow as ye } from "cesium-to-three/arrow";
8
+ class Re {
9
9
  constructor(e) {
10
10
  this.parser = e, this.name = "KHR_texture_basisu_patch";
11
11
  }
12
12
  loadTexture(e) {
13
- const t = this.parser, r = t.json, n = r.textures[e].source, a = r.images[n];
14
- if (!a || a.mimeType !== "image/ktx2")
13
+ const t = this.parser, r = t.json, a = r.textures[e].source, n = r.images[a];
14
+ if (!n || n.mimeType !== "image/ktx2")
15
15
  return null;
16
16
  const o = t.options.ktx2Loader;
17
17
  if (!o)
18
18
  throw new Error(`${R.utils.consoleSspTitle}请使用 setModelKtx2DecoderPath 设置 ktx2 解压库路径`);
19
- return t.loadTextureImage(e, n, o);
19
+ return t.loadTextureImage(e, a, o);
20
20
  }
21
21
  }
22
- class _t {
22
+ class Mt {
23
23
  constructor(e) {
24
24
  this.ssp = e;
25
25
  const { controls: t, viewport: r } = e;
@@ -49,12 +49,12 @@ class _t {
49
49
  R.utils.warn(`${e} already loaded`);
50
50
  return;
51
51
  }
52
- const { ssp: t, ssp: { viewport: r } } = this, i = new x(e);
52
+ const { ssp: t, ssp: { viewport: r } } = this, i = new T(e);
53
53
  this.lruCache === null ? this.lruCache = i.lruCache : i.lruCache = this.lruCache, this.parseQueue === null ? this.parseQueue = i.parseQueue : i.parseQueue = this.parseQueue, this.downloadQueue === null ? this.downloadQueue = i.downloadQueue : i.downloadQueue = this.downloadQueue;
54
- const n = new ae(i.manager);
55
- n.register((h) => new Ie(h));
56
- const { dracoLoader: a, ktx2Loader: o, meshoptDecoder: d } = t.manager.store.modelManager.gltfLoader;
57
- a && n.setDRACOLoader(a), o && n.setKTX2Loader(o), d && n.setMeshoptDecoder(d), i.manager.addHandler(/\.gltf$/, n), this.tilesMap.set(e, i), i.setCamera(this._tilesCamera), i.setResolutionFromRenderer(this._tilesCamera, r.renderer), i.lruCache.maxSize = 600, i.lruCache.minSize = 300, i.lruCache.unloadPercent = 0.8, t.addObject(i.group);
54
+ const a = new oe(i.manager);
55
+ a.register((h) => new Re(h));
56
+ const { dracoLoader: n, ktx2Loader: o, meshoptDecoder: d } = t.manager.store.modelManager.gltfLoader;
57
+ n && a.setDRACOLoader(n), o && a.setKTX2Loader(o), d && a.setMeshoptDecoder(d), i.manager.addHandler(/\.gltf$/, a), this.tilesMap.set(e, i), i.setCamera(this._tilesCamera), i.setResolutionFromRenderer(this._tilesCamera, r.renderer), i.lruCache.maxSize = 600, i.lruCache.minSize = 300, i.lruCache.unloadPercent = 0.8, t.addObject(i.group);
58
58
  const l = () => {
59
59
  this.cameraTransitionStart || (this.needsUpdate = !0, t.render());
60
60
  };
@@ -69,27 +69,27 @@ class _t {
69
69
  return t ? (t.dispose(), this.tilesMap.delete(e), this.ssp.removeObject(t.group), !0) : !1;
70
70
  }
71
71
  }
72
- let Re = class {
72
+ let Ne = class {
73
73
  priority = -999;
74
74
  processTileModel(e) {
75
75
  e.traverse((t) => {
76
- t.material && (t.material = new oe());
76
+ t.material && (t.material = new le());
77
77
  });
78
78
  }
79
79
  };
80
- const Ne = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/";
81
- class Mt {
80
+ const Ae = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/";
81
+ class wt {
82
82
  constructor(e) {
83
- this.ssp = e, this.tiles = new x(Ne), this.tiles.fetchData = async (t, r) => {
83
+ this.ssp = e, this.tiles = new T(Ae), this.tiles.fetchData = async (t, r) => {
84
84
  if (/layer\.json$/.test(t)) {
85
- const i = await fetch(t, r).then((n) => n.json());
85
+ const i = await fetch(t, r).then((a) => a.json());
86
86
  return i.metadataAvailability = -1, new Response(JSON.stringify(i));
87
87
  }
88
88
  return fetch(t, r);
89
- }, this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), this.quantizedPlugin = new U({}), this.customMaterialPlugin = new Re(), this.imageOverlayPlugin = new de({
89
+ }, this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), this.quantizedPlugin = new U({}), this.customMaterialPlugin = new Ne(), this.imageOverlayPlugin = new he({
90
90
  renderer: e.viewport.renderer,
91
91
  overlays: [
92
- new he({
92
+ new ue({
93
93
  url: "https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"
94
94
  })
95
95
  ]
@@ -124,16 +124,16 @@ class Mt {
124
124
  }
125
125
  invalidate(e, t, r) {
126
126
  const i = () => {
127
- const a = f.degToRad(t), o = f.degToRad(e);
127
+ const n = f.degToRad(t), o = f.degToRad(e);
128
128
  this.reorientationPlugin.transformLatLonHeightToOrigin(
129
- a,
129
+ n,
130
130
  o,
131
131
  r
132
- ), this.ssp.render(), n();
133
- }, n = () => {
132
+ ), this.ssp.render(), a();
133
+ }, a = () => {
134
134
  this.tiles.removeEventListener("load-root-tileset", i), this.loedTilesSets.delete(i);
135
135
  };
136
- return this.tiles.addEventListener("load-root-tileset", i), this.loedTilesSets.add(i), this.tiles.root && i(), n;
136
+ return this.tiles.addEventListener("load-root-tileset", i), this.loedTilesSets.add(i), this.tiles.root && i(), a;
137
137
  }
138
138
  dispose() {
139
139
  this.disable(), this.loedTilesSets.forEach(
@@ -141,7 +141,7 @@ class Mt {
141
141
  ), this.loedTilesSets.clear(), this.tiles.removeEventListener("needs-render", this.render), this.tiles.removeEventListener("needs-update", this.render), this.tiles.dispose();
142
142
  }
143
143
  }
144
- class Ae {
144
+ class Le {
145
145
  // 使用较低的 priority 确保在 ImageOverlayPlugin 之后执行
146
146
  // ImageOverlayPlugin 默认 priority 是 -1
147
147
  priority = -999;
@@ -152,7 +152,7 @@ class Ae {
152
152
  */
153
153
  processTileModel(e) {
154
154
  e.traverse((t) => {
155
- t.material && (t.material = new oe());
155
+ t.material && (t.material = new le());
156
156
  });
157
157
  }
158
158
  /**
@@ -184,7 +184,7 @@ class Ae {
184
184
  e.needsUpdate = !0;
185
185
  }
186
186
  }
187
- var u = /* @__PURE__ */ ((s) => (s.GEOJSON = "geojson", s.CESIUM_ION = "cesiumIon", s.TMS = "tms", s.XYZ = "xyz", s.WMS = "wms", s.WMTS = "wmts", s.URL_TEMPLATE = "urlTemplate", s.PLOT = "plot", s))(u || {}), w = /* @__PURE__ */ ((s) => (s.QUANTIZED_MESH = "quantizedMesh", s.CESIUM_ION = "cesiumIon", s))(w || {});
187
+ var u = /* @__PURE__ */ ((s) => (s.GEOJSON = "geojson", s.CESIUM_ION = "cesiumIon", s.TMS = "tms", s.XYZ = "xyz", s.WMS = "wms", s.WMTS = "wmts", s.URL_TEMPLATE = "urlTemplate", s.PLOT = "plot", s))(u || {}), M = /* @__PURE__ */ ((s) => (s.QUANTIZED_MESH = "quantizedMesh", s.CESIUM_ION = "cesiumIon", s))(M || {});
188
188
  class N {
189
189
  constructor(e, t) {
190
190
  this.imageOverlayPlugin = e, this.resourceManager = t;
@@ -210,17 +210,17 @@ class N {
210
210
  ...this._getGeoJSONModeFlags(r)
211
211
  };
212
212
  e.color !== void 0 && (i.color = new L(e.color));
213
- const n = new Z(i);
214
- return t.addOverlay(n, e.order), this._instances.set(e.id, {
213
+ const a = new Z(i);
214
+ return t.addOverlay(a, e.order), this._instances.set(e.id, {
215
215
  id: e.id,
216
216
  type: e.type,
217
- instance: n,
217
+ instance: a,
218
218
  options: { ...e, mode: r }
219
219
  }), this.resourceManager?.addOverlay({
220
220
  id: e.id,
221
221
  type: e.type,
222
222
  options: e
223
- }), n;
223
+ }), a;
224
224
  }
225
225
  updateGeoJSONColor(e, t) {
226
226
  const r = this._instances.get(e);
@@ -231,62 +231,62 @@ class N {
231
231
  updateGeoJSONDefaultStyle(e, t) {
232
232
  const r = this._instances.get(e);
233
233
  if (!r || r.type !== u.GEOJSON) return !1;
234
- const i = r.instance, n = r.options, a = {
235
- ...n.defaultStyle || {},
234
+ const i = r.instance, a = r.options, n = {
235
+ ...a.defaultStyle || {},
236
236
  ...t
237
237
  }, o = {
238
- ...n,
239
- defaultStyle: a
238
+ ...a,
239
+ defaultStyle: n
240
240
  };
241
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { defaultStyle: a }), !0;
241
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { defaultStyle: n }), !0;
242
242
  }
243
243
  updateGeoJSONStrokeStyle(e, t) {
244
244
  const r = this._instances.get(e);
245
245
  if (!r || r.type !== u.GEOJSON) return !1;
246
- const i = r.instance, n = r.options, a = {
247
- ...n.defaultStyle || {},
246
+ const i = r.instance, a = r.options, n = {
247
+ ...a.defaultStyle || {},
248
248
  strokeStyle: t
249
249
  }, o = {
250
- ...n,
250
+ ...a,
251
251
  strokeStyle: t,
252
- defaultStyle: a
252
+ defaultStyle: n
253
253
  };
254
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeStyle: t, defaultStyle: a }), !0;
254
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeStyle: t, defaultStyle: n }), !0;
255
255
  }
256
256
  updateGeoJSONStrokeWidth(e, t) {
257
257
  const r = this._instances.get(e);
258
258
  if (!r || r.type !== u.GEOJSON) return !1;
259
- const i = r.instance, n = r.options, a = {
260
- ...n.defaultStyle || {},
259
+ const i = r.instance, a = r.options, n = {
260
+ ...a.defaultStyle || {},
261
261
  strokeWidth: t
262
262
  }, o = {
263
- ...n,
263
+ ...a,
264
264
  strokeWidth: t,
265
- defaultStyle: a
265
+ defaultStyle: n
266
266
  };
267
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeWidth: t, defaultStyle: a }), !0;
267
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeWidth: t, defaultStyle: n }), !0;
268
268
  }
269
269
  updateGeoJSONFillStyle(e, t) {
270
270
  const r = this._instances.get(e);
271
271
  if (!r || r.type !== u.GEOJSON) return !1;
272
- const i = r.instance, n = r.options, a = {
273
- ...n.defaultStyle || {},
272
+ const i = r.instance, a = r.options, n = {
273
+ ...a.defaultStyle || {},
274
274
  fillStyle: t
275
275
  }, o = {
276
- ...n,
276
+ ...a,
277
277
  fillStyle: t,
278
- defaultStyle: a
278
+ defaultStyle: n
279
279
  };
280
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { fillStyle: t, defaultStyle: a }), !0;
280
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { fillStyle: t, defaultStyle: n }), !0;
281
281
  }
282
282
  updateGeoJSONMode(e, t) {
283
283
  const r = this._instances.get(e);
284
284
  if (!r || r.type !== u.GEOJSON) return !1;
285
- const i = r.instance, n = {
285
+ const i = r.instance, a = {
286
286
  ...r.options,
287
287
  mode: t
288
- }, a = this._getGeoJSONModeFlags(t);
289
- return i.alphaInvert = a.alphaInvert, i.alphaMask = a.alphaMask, i.defaultStyle = this._buildGeoJSONDefaultStyle(n, t), i.requestUpdate?.(), this._updateOverlayOptions(e, { mode: t }), !0;
288
+ }, n = this._getGeoJSONModeFlags(t);
289
+ return i.alphaInvert = n.alphaInvert, i.alphaMask = n.alphaMask, i.defaultStyle = this._buildGeoJSONDefaultStyle(a, t), i.requestUpdate?.(), this._updateOverlayOptions(e, { mode: t }), !0;
290
290
  }
291
291
  setGeoJSON(e, t) {
292
292
  const r = this._instances.get(e);
@@ -301,8 +301,8 @@ class N {
301
301
  setMergedGeoJSON(e, t, r) {
302
302
  const i = this._instances.get(e);
303
303
  if (!i || i.type !== u.GEOJSON) return null;
304
- const a = i.instance.setMergedGeoJSON(t, r);
305
- return this._updateOverlayOptions(e, { geojson: a }), a;
304
+ const n = i.instance.setMergedGeoJSON(t, r);
305
+ return this._updateOverlayOptions(e, { geojson: n }), n;
306
306
  }
307
307
  getGeoJSONFeatureById(e, t) {
308
308
  const r = this._instances.get(e);
@@ -328,7 +328,7 @@ class N {
328
328
  addCesiumIonOverlay(e) {
329
329
  const t = this._getImageOverlayPluginForAdd(e.id);
330
330
  if (!t) return null;
331
- const r = new Oe({
331
+ const r = new Me({
332
332
  assetId: e.assetId,
333
333
  apiToken: e.apiToken,
334
334
  autoRefreshToken: e.autoRefreshToken ?? !0,
@@ -350,7 +350,7 @@ class N {
350
350
  addTMSOverlay(e) {
351
351
  const t = this._getImageOverlayPluginForAdd(e.id);
352
352
  if (!t) return null;
353
- const r = new Me({
353
+ const r = new Se({
354
354
  url: e.url,
355
355
  color: typeof e.color == "number" ? e.color : 16777215,
356
356
  opacity: e.opacity ?? 1
@@ -370,7 +370,7 @@ class N {
370
370
  addXYZOverlay(e) {
371
371
  const t = this._getImageOverlayPluginForAdd(e.id);
372
372
  if (!t) return null;
373
- const r = new he({
373
+ const r = new ue({
374
374
  url: e.url,
375
375
  color: typeof e.color == "number" ? e.color : 16777215,
376
376
  opacity: e.opacity ?? 1
@@ -421,7 +421,7 @@ class N {
421
421
  addUrlTemplateOverlay(e) {
422
422
  const t = this._getImageOverlayPluginForAdd(e.id);
423
423
  if (!t) return null;
424
- const r = new Se({
424
+ const r = new we({
425
425
  url: e.url,
426
426
  subdomains: e.subdomains,
427
427
  levels: e.levels,
@@ -453,7 +453,7 @@ class N {
453
453
  crs: e.crs || "EPSG:4326",
454
454
  format: e.format || "image/png",
455
455
  tileDimension: e.tileDimension || 256
456
- }, i = new we({
456
+ }, i = new Ce({
457
457
  url: e.url,
458
458
  layer: r.layer,
459
459
  crs: r.crs,
@@ -478,14 +478,14 @@ class N {
478
478
  async addWMTSOverlay(e) {
479
479
  const t = this._getImageOverlayPluginForAdd(e.id);
480
480
  if (!t) return null;
481
- const r = await new Ce().loadAsync(e.url), i = ["EPSG:4326", "EPSG:3857"];
482
- let n = e.layer || "";
483
- r.layers.find((o) => o.identifier === n) || (n = r.layers.find(
481
+ const r = await new be().loadAsync(e.url), i = ["EPSG:4326", "EPSG:3857"];
482
+ let a = e.layer || "";
483
+ r.layers.find((o) => o.identifier === a) || (a = r.layers.find(
484
484
  (o) => o?.tileMatrixSets?.some((d) => i.includes(d.supportedCRS))
485
485
  )?.identifier || r.layers[0].identifier);
486
- const a = new be({
486
+ const n = new Te({
487
487
  capabilities: r,
488
- layer: n,
488
+ layer: a,
489
489
  dimensions: e.dimensions || null,
490
490
  style: e.style || void 0,
491
491
  tileMatrixSet: e.tileMatrixSet || null,
@@ -493,16 +493,16 @@ class N {
493
493
  color: new L(typeof e.color == "number" ? e.color : 16777215),
494
494
  opacity: e.opacity ?? 1
495
495
  });
496
- return t.addOverlay(a, e.order), this._instances.set(e.id, {
496
+ return t.addOverlay(n, e.order), this._instances.set(e.id, {
497
497
  id: e.id,
498
498
  type: e.type,
499
- instance: a,
499
+ instance: n,
500
500
  options: { ...e }
501
501
  }), this.resourceManager?.addOverlay({
502
502
  id: e.id,
503
503
  type: e.type,
504
504
  options: e
505
- }), a;
505
+ }), n;
506
506
  }
507
507
  // =============== 通用方法 ===============
508
508
  /**
@@ -570,8 +570,8 @@ class N {
570
570
  if (!t) return !1;
571
571
  const r = this.imageOverlayPlugin.overlayInfo;
572
572
  let i = 0;
573
- return r.forEach((n) => {
574
- n.order > i && (i = n.order);
573
+ return r.forEach((a) => {
574
+ a.order > i && (i = a.order);
575
575
  }), this.imageOverlayPlugin.setOverlayOrder(t.instance, i + 1), this._updateOverlayOptions(e, { order: i + 1 }), !0;
576
576
  }
577
577
  /**
@@ -583,8 +583,8 @@ class N {
583
583
  if (!t) return !1;
584
584
  const r = this.imageOverlayPlugin.overlayInfo;
585
585
  let i = 1 / 0;
586
- return r.forEach((n) => {
587
- n.order < i && (i = n.order);
586
+ return r.forEach((a) => {
587
+ a.order < i && (i = a.order);
588
588
  }), this.imageOverlayPlugin.setOverlayOrder(t.instance, i - 1), this._updateOverlayOptions(e, { order: i - 1 }), !0;
589
589
  }
590
590
  // =============== 资源恢复 ===============
@@ -704,7 +704,7 @@ class N {
704
704
  this.disposeInstances(), this.resourceManager?.clear();
705
705
  }
706
706
  }
707
- class Le {
707
+ class De {
708
708
  /** Overlay 资源配置 */
709
709
  _overlays = /* @__PURE__ */ new Map();
710
710
  // =============== Overlay 资源管理 ===============
@@ -794,7 +794,7 @@ class Le {
794
794
  e.overlays && (this._overlays.clear(), e.overlays.forEach((t) => this._overlays.set(t.id, { ...t })));
795
795
  }
796
796
  }
797
- class De {
797
+ class Ge {
798
798
  /** 地形配置映射表 */
799
799
  _terrains = /* @__PURE__ */ new Map();
800
800
  /** 当前激活的地形 ID */
@@ -883,8 +883,8 @@ class De {
883
883
  this.clear();
884
884
  }
885
885
  }
886
- let Ge = 1;
887
- class _ {
886
+ let Fe = 1;
887
+ class O {
888
888
  /** 自增字符串 id('1' / '2' / '3' ...) */
889
889
  id;
890
890
  /**
@@ -898,7 +898,7 @@ class _ {
898
898
  */
899
899
  options;
900
900
  constructor(e) {
901
- this.id = String(Ge++), this.category = "", this.options = { ...e }, this.options.points && (this.options.points = this.options.points.map(
901
+ this.id = String(Fe++), this.category = "", this.options = { ...e }, this.options.points && (this.options.points = this.options.points.map(
902
902
  (t) => [t[0], t[1]]
903
903
  ));
904
904
  }
@@ -945,7 +945,7 @@ class _ {
945
945
  return this.options.points || [];
946
946
  }
947
947
  }
948
- class Fe extends _ {
948
+ class Je extends O {
949
949
  category = "point";
950
950
  constructor(e) {
951
951
  super(e);
@@ -964,7 +964,7 @@ class Fe extends _ {
964
964
  return this.getCenterPoints();
965
965
  }
966
966
  }
967
- class Je extends _ {
967
+ class Ue extends O {
968
968
  category = "line";
969
969
  constructor(e) {
970
970
  super(e);
@@ -974,7 +974,7 @@ class Je extends _ {
974
974
  this.options = { ...this.options, ...e };
975
975
  }
976
976
  }
977
- class Ue extends _ {
977
+ class We extends O {
978
978
  category = "polygon";
979
979
  constructor(e) {
980
980
  super(e);
@@ -984,7 +984,7 @@ class Ue extends _ {
984
984
  this.options = { ...this.options, ...e };
985
985
  }
986
986
  }
987
- class We extends _ {
987
+ class $e extends O {
988
988
  category = "rectangle";
989
989
  constructor(e) {
990
990
  super(e);
@@ -994,8 +994,8 @@ class We extends _ {
994
994
  this.options = { ...this.options, ...e };
995
995
  }
996
996
  }
997
- const $e = f.DEG2RAD, te = 111320;
998
- class ze extends _ {
997
+ const ze = f.DEG2RAD, te = 111320;
998
+ class Be extends O {
999
999
  category = "sector";
1000
1000
  constructor(e) {
1001
1001
  super(e);
@@ -1008,14 +1008,14 @@ class ze extends _ {
1008
1008
  getExtentPoints() {
1009
1009
  const e = this.options.points;
1010
1010
  if (!e || e.length === 0) return [];
1011
- const t = e[0][0], r = e[0][1], i = this.options.radius || 0, n = i / (te * Math.cos(r * $e)), a = i / te;
1011
+ const t = e[0][0], r = e[0][1], i = this.options.radius || 0, a = i / (te * Math.cos(r * ze)), n = i / te;
1012
1012
  return [
1013
- [t - n, r - a],
1014
- [t + n, r + a]
1013
+ [t - a, r - n],
1014
+ [t + a, r + n]
1015
1015
  ];
1016
1016
  }
1017
1017
  }
1018
- class Be extends _ {
1018
+ class je extends O {
1019
1019
  category = "arrow";
1020
1020
  /** generateCoords() 填充的闭合多边形顶点;初始为空 */
1021
1021
  generatedCoords = [];
@@ -1046,16 +1046,16 @@ class Be extends _ {
1046
1046
  this.generatedCoords = W(e[0], e[1]);
1047
1047
  break;
1048
1048
  case "assaultDirection":
1049
- this.generatedCoords = fe(e[0], e[1]);
1049
+ this.generatedCoords = ye(e[0], e[1]);
1050
1050
  break;
1051
1051
  case "attack":
1052
- this.generatedCoords = ge(e);
1052
+ this.generatedCoords = fe(e);
1053
1053
  break;
1054
1054
  case "swallowtailAttack":
1055
- this.generatedCoords = pe(e);
1055
+ this.generatedCoords = ge(e);
1056
1056
  break;
1057
1057
  case "curved":
1058
- this.generatedCoords = ce(e);
1058
+ this.generatedCoords = pe(e);
1059
1059
  break;
1060
1060
  default:
1061
1061
  this.generatedCoords = W(e[0], e[e.length - 1]);
@@ -1085,7 +1085,7 @@ class Be extends _ {
1085
1085
  };
1086
1086
  }
1087
1087
  }
1088
- class je extends _ {
1088
+ class Qe extends O {
1089
1089
  category = "text";
1090
1090
  constructor(e) {
1091
1091
  super(e);
@@ -1105,7 +1105,7 @@ class je extends _ {
1105
1105
  }
1106
1106
  }
1107
1107
  const He = f.DEG2RAD, re = 111320;
1108
- class Qe extends _ {
1108
+ class Xe extends O {
1109
1109
  category = "circle";
1110
1110
  constructor(e) {
1111
1111
  super(e);
@@ -1118,27 +1118,27 @@ class Qe extends _ {
1118
1118
  getExtentPoints() {
1119
1119
  const e = this.options.points;
1120
1120
  if (!e || e.length === 0) return [];
1121
- const t = e[0][0], r = e[0][1], i = this.options.radius || 0, n = i / (re * Math.cos(r * He)), a = i / re;
1121
+ const t = e[0][0], r = e[0][1], i = this.options.radius || 0, a = i / (re * Math.cos(r * He)), n = i / re;
1122
1122
  return [
1123
- [t - n, r - a],
1124
- [t + n, r + a]
1123
+ [t - a, r - n],
1124
+ [t + a, r + n]
1125
1125
  ];
1126
1126
  }
1127
1127
  }
1128
- const Xe = 3, Ye = 1e3;
1129
- function qe(s) {
1128
+ const Ye = 3, qe = 1e3;
1129
+ function Ve(s) {
1130
1130
  return Number.isFinite(s) ? Math.max(Math.round(s), 0) : 0;
1131
1131
  }
1132
- function Ve(s) {
1133
- const e = qe(s), t = Ye + e * Xe;
1132
+ function Ze(s) {
1133
+ const e = Ve(s), t = qe + e * Ye;
1134
1134
  if (!Number.isSafeInteger(t))
1135
1135
  throw new Error("Plot renderOrder exceeded JavaScript safe integer range.");
1136
1136
  return t;
1137
1137
  }
1138
1138
  function ie(s) {
1139
- return s instanceof I || s instanceof E ? s.group : s.classification.group;
1139
+ return s instanceof I || s instanceof k ? s.group : s.classification.group;
1140
1140
  }
1141
- function Ze(s) {
1141
+ function Ke(s) {
1142
1142
  const e = s.options, t = JSON.stringify(e.points ?? []);
1143
1143
  switch (s.category) {
1144
1144
  case "circle":
@@ -1150,22 +1150,34 @@ function Ze(s) {
1150
1150
  case "arrow":
1151
1151
  return `arrow|${t}|${e.arrowType}`;
1152
1152
  case "line":
1153
- return `line|${t}|${e.strokeStyle}|${e.startArrowStyle}|${e.endArrowStyle}`;
1153
+ return `line|${t}|${e.strokeStyle}|${e.showArrow}|${e.startArrowStyle}|${e.endArrowStyle}`;
1154
1154
  case "text":
1155
1155
  return `text|${t}|${e.content}|${e.fontSize}|${e.textAlign}|${e.verticalAlign}|${e.anchorX}|${e.anchorY}|${e.layoutDirection}|${e.rotation}|${e.boxWidth}|${e.boxHeight}|${JSON.stringify(e.padding)}|${e.offsetX}|${e.offsetY}|${e.scale}`;
1156
1156
  default:
1157
1157
  return `${s.category}|${t}`;
1158
1158
  }
1159
1159
  }
1160
- function se(s) {
1161
- const e = Math.max(s * 4, 1), t = Math.max(s * 3, 0.8);
1162
- return { lengthMeters: e, widthMetersArrow: t };
1160
+ function se(s, e = "solid") {
1161
+ return s === "unfilledArrow" ? "open" : s === "filledArrow" ? "solid" : e;
1163
1162
  }
1164
- function Ke(s, e) {
1163
+ function et(s) {
1164
+ if (s.showArrow === !1) return "none";
1165
+ const e = s.startArrowStyle !== void 0 && s.startArrowStyle !== null, t = s.endArrowStyle !== void 0 && s.endArrowStyle !== null;
1166
+ return e && t ? "both" : t ? "right" : e ? "left" : "none";
1167
+ }
1168
+ function ae(s) {
1169
+ const e = et(s), t = se(s.startArrowStyle), r = se(s.endArrowStyle);
1170
+ return {
1171
+ arrowMode: e,
1172
+ startArrowStyle: t,
1173
+ endArrowStyle: r
1174
+ };
1175
+ }
1176
+ function tt(s, e) {
1165
1177
  const t = s.options;
1166
1178
  return `${t.strokeColor}|${t.strokeWidth}|${t.strokeOpacity}|${t.fillColor}|${t.fillOpacity}|${e}|${t.fontColor ?? ""}|${t.fontSize ?? ""}`;
1167
1179
  }
1168
- class et {
1180
+ class rt {
1169
1181
  /** 标绘 id → 渲染记录 */
1170
1182
  _entries = /* @__PURE__ */ new Map();
1171
1183
  /** 由 GroundDecalManager 写入的标绘集合(引用共享) */
@@ -1209,14 +1221,14 @@ class et {
1209
1221
  this._shapes.has(t) || (this._scene.remove(r.group), r.primitive.dispose(), this._entries.delete(t));
1210
1222
  let e = 0;
1211
1223
  for (const [t, r] of this._shapes) {
1212
- const i = Ve(e);
1224
+ const i = Ze(e);
1213
1225
  e += 1;
1214
- const n = this._entries.get(t), a = Ze(r), o = Ke(r, this._opacity);
1215
- if (n !== void 0 && n.signature === a && (this._supportsStyleHotUpdate(n.primitive) || n.styleSignature === o)) {
1216
- this._refreshLightweight(n, i), n.styleSignature = o;
1226
+ const a = this._entries.get(t), n = Ke(r), o = tt(r, this._opacity);
1227
+ if (a !== void 0 && a.signature === n && (this._supportsStyleHotUpdate(a.primitive) || a.styleSignature === o)) {
1228
+ this._refreshLightweight(a, i), a.styleSignature = o;
1217
1229
  continue;
1218
1230
  }
1219
- n !== void 0 && (this._scene.remove(n.group), n.primitive.dispose(), this._entries.delete(t));
1231
+ a !== void 0 && (this._scene.remove(a.group), a.primitive.dispose(), this._entries.delete(t));
1220
1232
  const d = this._buildPrimitive(r, i);
1221
1233
  if (d === null) continue;
1222
1234
  const l = ie(d);
@@ -1225,10 +1237,10 @@ class et {
1225
1237
  plot: r,
1226
1238
  primitive: d,
1227
1239
  group: l,
1228
- signature: a,
1240
+ signature: n,
1229
1241
  styleSignature: o
1230
1242
  };
1231
- this._entries.set(t, h), d instanceof E && this._refreshLightweight(h, i);
1243
+ this._entries.set(t, h), d instanceof k && this._refreshLightweight(h, i);
1232
1244
  }
1233
1245
  }
1234
1246
  /**
@@ -1253,7 +1265,7 @@ class et {
1253
1265
  * 折线(setColor / setWidth)与文字(setText)支持;面类不支持,需重建。
1254
1266
  */
1255
1267
  _supportsStyleHotUpdate(e) {
1256
- return e instanceof I || e instanceof E;
1268
+ return e instanceof I || e instanceof k;
1257
1269
  }
1258
1270
  /**
1259
1271
  * 几何未变时的轻量刷新:
@@ -1263,17 +1275,20 @@ class et {
1263
1275
  */
1264
1276
  _refreshLightweight(e, t) {
1265
1277
  if (e.group.visible = e.plot.options.visible !== !1, e.primitive.setRenderOrder?.(t), e.primitive instanceof I) {
1266
- const r = e.plot.options;
1278
+ const r = e.plot.options, {
1279
+ startArrowStyle: i,
1280
+ endArrowStyle: a
1281
+ } = ae(r);
1267
1282
  e.primitive.setColor(
1268
1283
  r.strokeColor,
1269
1284
  (r.strokeOpacity ?? 100) * this._opacity
1270
1285
  );
1271
- const i = typeof r.strokeWidth == "number" && r.strokeWidth > 0 ? r.strokeWidth : 5;
1272
- e.primitive.setWidth(i);
1273
- const { lengthMeters: n, widthMetersArrow: a } = se(i);
1274
- e.primitive.setArrowSizeMeters(n, a), e.primitive.setVisible(r.visible !== !1);
1286
+ const n = typeof r.strokeWidth == "number" && r.strokeWidth > 0 ? r.strokeWidth : 5;
1287
+ e.primitive.setWidth(n), e.primitive.setArrowStyles(i, a);
1288
+ const o = Math.max(n * 4, 1), d = Math.max(n * 3, 0.8);
1289
+ e.primitive.setArrowSizeMeters(o, d), e.primitive.setVisible(r.visible !== !1);
1275
1290
  }
1276
- if (e.primitive instanceof E) {
1291
+ if (e.primitive instanceof k) {
1277
1292
  const r = e.plot.options;
1278
1293
  e.primitive.setText({
1279
1294
  content: r.content,
@@ -1308,18 +1323,18 @@ class et {
1308
1323
  * @returns 渲染图元;未知类型 / 退化情况返回 null。
1309
1324
  */
1310
1325
  _buildPrimitive(e, t) {
1311
- const r = e.options, i = r.points ?? [], n = this._opacity, a = (r.strokeOpacity ?? 100) * n, o = (r.fillOpacity ?? 100) * n, d = r.visible !== !1;
1326
+ const r = e.options, i = r.points ?? [], a = this._opacity, n = (r.strokeOpacity ?? 100) * a, o = (r.fillOpacity ?? 100) * a, d = r.visible !== !1;
1312
1327
  switch (e.category) {
1313
1328
  case "point": {
1314
1329
  if (i.length === 0) return null;
1315
1330
  const l = r;
1316
- return new Te({
1331
+ return new Pe({
1317
1332
  position: i[0],
1318
1333
  shape: l.pointStyle ?? "circle",
1319
1334
  size: l.size ?? 100,
1320
1335
  strokeColor: l.strokeColor,
1321
1336
  strokeWidth: l.strokeWidth ?? 0,
1322
- strokeOpacity: a,
1337
+ strokeOpacity: n,
1323
1338
  fillColor: l.fillColor,
1324
1339
  fillOpacity: o,
1325
1340
  visible: d,
@@ -1334,7 +1349,7 @@ class et {
1334
1349
  radius: l.radius ?? 100,
1335
1350
  strokeColor: l.strokeColor,
1336
1351
  strokeWidth: l.strokeWidth ?? 0,
1337
- strokeOpacity: a,
1352
+ strokeOpacity: n,
1338
1353
  fillColor: l.fillColor,
1339
1354
  fillOpacity: o,
1340
1355
  visible: d,
@@ -1349,7 +1364,7 @@ class et {
1349
1364
  radius: l.radius ?? 100,
1350
1365
  strokeColor: l.strokeColor,
1351
1366
  strokeWidth: l.strokeWidth ?? 0,
1352
- strokeOpacity: a,
1367
+ strokeOpacity: n,
1353
1368
  fillColor: l.fillColor,
1354
1369
  fillOpacity: o,
1355
1370
  visible: d,
@@ -1364,7 +1379,7 @@ class et {
1364
1379
  points: i,
1365
1380
  strokeColor: r.strokeColor,
1366
1381
  strokeWidth: r.strokeWidth ?? 0,
1367
- strokeOpacity: a,
1382
+ strokeOpacity: n,
1368
1383
  fillColor: r.fillColor,
1369
1384
  fillOpacity: o,
1370
1385
  visible: d,
@@ -1378,7 +1393,7 @@ class et {
1378
1393
  points: l,
1379
1394
  strokeColor: h.strokeColor,
1380
1395
  strokeWidth: h.strokeWidth ?? 0,
1381
- strokeOpacity: a,
1396
+ strokeOpacity: n,
1382
1397
  fillColor: h.fillColor,
1383
1398
  fillOpacity: o,
1384
1399
  visible: d,
@@ -1387,28 +1402,34 @@ class et {
1387
1402
  }
1388
1403
  case "line": {
1389
1404
  if (i.length < 2) return null;
1390
- const l = r, h = l.startArrowStyle ?? null, c = l.endArrowStyle ?? null, y = h !== null && c !== null ? "both" : c !== null ? "right" : h !== null ? "left" : "none", g = (h ?? c) === "unfilledArrow" ? "open" : "solid", p = l.strokeStyle === "dashed", v = p ? 60 : void 0, C = p ? 40 : void 0, M = typeof l.strokeWidth == "number" && l.strokeWidth > 0 ? l.strokeWidth : 5, { lengthMeters: b, widthMetersArrow: S } = se(M);
1405
+ const l = r, {
1406
+ arrowMode: h,
1407
+ startArrowStyle: c,
1408
+ endArrowStyle: y
1409
+ } = ae(l), _ = l.strokeStyle === "dashed", p = _ ? 60 : void 0, g = _ ? 40 : void 0, m = typeof l.strokeWidth == "number" && l.strokeWidth > 0 ? l.strokeWidth : 5, S = Math.max(m * 4, 1), w = Math.max(m * 3, 0.8);
1391
1410
  return new I({
1392
1411
  points: i,
1393
1412
  strokeColor: l.strokeColor,
1394
- strokeOpacity: a,
1413
+ strokeOpacity: n,
1395
1414
  widthMode: "world",
1396
- widthMeters: M,
1415
+ widthMeters: m,
1397
1416
  visible: d,
1398
- arrowMode: y,
1399
- arrowStyle: g,
1417
+ arrowMode: h,
1418
+ arrowStyle: c,
1419
+ startArrowStyle: c,
1420
+ endArrowStyle: y,
1400
1421
  arrowWidthMode: "world",
1401
- arrowLengthMeters: b,
1402
- arrowWidthMeters: S,
1403
- dashLengthMeters: v,
1404
- gapLengthMeters: C,
1422
+ arrowLengthMeters: S,
1423
+ arrowWidthMeters: w,
1424
+ dashLengthMeters: p,
1425
+ gapLengthMeters: g,
1405
1426
  renderOrder: t
1406
1427
  });
1407
1428
  }
1408
1429
  case "text": {
1409
1430
  if (i.length === 0) return null;
1410
1431
  const l = r;
1411
- return new E({
1432
+ return new k({
1412
1433
  points: [i[0]],
1413
1434
  content: l.content,
1414
1435
  fontColor: l.fontColor,
@@ -1416,7 +1437,7 @@ class et {
1416
1437
  fillColor: l.fillColor,
1417
1438
  fillOpacity: o,
1418
1439
  strokeColor: l.strokeColor,
1419
- strokeOpacity: a,
1440
+ strokeOpacity: n,
1420
1441
  strokeWidth: l.strokeWidth ?? 0,
1421
1442
  textAlign: l.textAlign,
1422
1443
  verticalAlign: l.verticalAlign,
@@ -1442,7 +1463,7 @@ class et {
1442
1463
  }
1443
1464
  }
1444
1465
  }
1445
- class tt {
1466
+ class it {
1446
1467
  /** 标绘 id → 实例;与桥接器的 shapes 共用同一引用 */
1447
1468
  _items = /* @__PURE__ */ new Map();
1448
1469
  /** 标绘管理器 id(对外常量,保持与参考项目一致) */
@@ -1456,7 +1477,7 @@ class tt {
1456
1477
  /** 合并同一帧内多次 _markDirty,值为 requestAnimationFrame 句柄 */
1457
1478
  _redrawTimer = null;
1458
1479
  constructor(e) {
1459
- this.ssp = e.ssp, this._bridge = new et({ scene: e.ssp.viewport.scene });
1480
+ this.ssp = e.ssp, this._bridge = new rt({ scene: e.ssp.viewport.scene });
1460
1481
  }
1461
1482
  /** 暴露内部桥接器,业务若需自定义场景接入可选择性使用 */
1462
1483
  get bridge() {
@@ -1489,42 +1510,42 @@ class tt {
1489
1510
  switch (e.type) {
1490
1511
  case "point": {
1491
1512
  const { type: r, ...i } = e;
1492
- t = new Fe(i);
1513
+ t = new Je(i);
1493
1514
  break;
1494
1515
  }
1495
1516
  case "line": {
1496
1517
  const { type: r, ...i } = e;
1497
- t = new Je(i);
1518
+ t = new Ue(i);
1498
1519
  break;
1499
1520
  }
1500
1521
  case "polygon": {
1501
1522
  const { type: r, ...i } = e;
1502
- t = new Ue(i);
1523
+ t = new We(i);
1503
1524
  break;
1504
1525
  }
1505
1526
  case "rectangle": {
1506
1527
  const { type: r, ...i } = e;
1507
- t = new We(i);
1528
+ t = new $e(i);
1508
1529
  break;
1509
1530
  }
1510
1531
  case "circle": {
1511
1532
  const { type: r, ...i } = e;
1512
- t = new Qe(i);
1533
+ t = new Xe(i);
1513
1534
  break;
1514
1535
  }
1515
1536
  case "sector": {
1516
1537
  const { type: r, ...i } = e;
1517
- t = new ze(i);
1538
+ t = new Be(i);
1518
1539
  break;
1519
1540
  }
1520
1541
  case "text": {
1521
1542
  const { type: r, ...i } = e;
1522
- t = new je(i);
1543
+ t = new Qe(i);
1523
1544
  break;
1524
1545
  }
1525
1546
  case "arrow": {
1526
1547
  const { type: r, ...i } = e;
1527
- t = new Be(i);
1548
+ t = new je(i);
1528
1549
  break;
1529
1550
  }
1530
1551
  default:
@@ -1594,8 +1615,8 @@ class tt {
1594
1615
  insertCoord(e, t, r) {
1595
1616
  const i = this._items.get(e);
1596
1617
  if (!i || !i.options.points) return;
1597
- const n = Math.max(0, Math.min(t, i.options.points.length));
1598
- i.options.points.splice(n, 0, [...r]), this._markDirty();
1618
+ const a = Math.max(0, Math.min(t, i.options.points.length));
1619
+ i.options.points.splice(a, 0, [...r]), this._markDirty();
1599
1620
  }
1600
1621
  /**
1601
1622
  * 删除指定下标顶点。多边形至少保留 3 点,其余至少 2 点;越界 / 触底静默返回。
@@ -1612,8 +1633,8 @@ class tt {
1612
1633
  translateCoords(e, t, r) {
1613
1634
  const i = this._items.get(e);
1614
1635
  if (!(!i || !i.options.points)) {
1615
- for (const n of i.options.points)
1616
- n[0] += t, n[1] += r;
1636
+ for (const a of i.options.points)
1637
+ a[0] += t, a[1] += r;
1617
1638
  this._markDirty();
1618
1639
  }
1619
1640
  }
@@ -1643,12 +1664,12 @@ class tt {
1643
1664
  findNearestCoord(e, t, r) {
1644
1665
  const i = this._items.get(e);
1645
1666
  if (!i || !i.options.points || i.options.points.length === 0) return -1;
1646
- let n = 0, a = 1 / 0;
1667
+ let a = 0, n = 1 / 0;
1647
1668
  for (let o = 0; o < i.options.points.length; o++) {
1648
1669
  const d = i.options.points[o][0] - t, l = i.options.points[o][1] - r, h = d * d + l * l;
1649
- h < a && (a = h, n = o);
1670
+ h < n && (n = h, a = o);
1650
1671
  }
1651
- return n;
1672
+ return a;
1652
1673
  }
1653
1674
  // ── 渲染接入 ──
1654
1675
  /**
@@ -1681,22 +1702,22 @@ class tt {
1681
1702
  }));
1682
1703
  }
1683
1704
  }
1684
- const rt = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/", it = "https://c.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png";
1685
- class St {
1705
+ const st = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/", at = "https://c.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png";
1706
+ class Ct {
1686
1707
  constructor(e, t = {}) {
1687
1708
  this.ssp = e, this.options = t;
1688
- const r = t.baseUrl || rt;
1689
- if (this.resourceManager = new Le(), this.terrainManager = new De(), t.imageryUrl !== !1) {
1690
- const i = t.imageryUrl || it;
1709
+ const r = t.baseUrl || st;
1710
+ if (this.resourceManager = new De(), this.terrainManager = new Ge(), t.imageryUrl !== !1) {
1711
+ const i = t.imageryUrl || at;
1691
1712
  this.resourceManager.addOverlay({
1692
1713
  id: this.defaultImageryId,
1693
1714
  type: u.XYZ,
1694
1715
  options: { id: this.defaultImageryId, url: i, type: u.XYZ }
1695
1716
  });
1696
1717
  }
1697
- this.groundDecalManager = new tt({ ssp: this.ssp }), Pe(), this._alphaClipMode = t.alphaClipMode ?? "alphaTest", this._currentTerrainConfig = {
1718
+ this.groundDecalManager = new it({ ssp: this.ssp }), xe(), this._alphaClipMode = t.alphaClipMode ?? "alphaTest", this._currentTerrainConfig = {
1698
1719
  id: this.defaultTerrainId,
1699
- type: w.QUANTIZED_MESH,
1720
+ type: M.QUANTIZED_MESH,
1700
1721
  url: r
1701
1722
  }, this.terrainManager.add(this._currentTerrainConfig), this.terrainManager.setCurrentId(this._currentTerrainConfig.id), this.tiles = this._initTilesRenderer(this._currentTerrainConfig), this._initPlugins(this.tiles, this._currentTerrainConfig);
1702
1723
  }
@@ -1716,8 +1737,8 @@ class St {
1716
1737
  * ECEF 相机投影才能与「重定向后地形」对齐,同时保持 reorientation 开启(地形不抖)。
1717
1738
  */
1718
1739
  _plotVirtualCamera = new q();
1719
- _reorientInverse = new P();
1720
- _virtualScale = new me();
1740
+ _reorientInverse = new b();
1741
+ _virtualScale = new ve();
1721
1742
  /** 资源管理器(存储配置) */
1722
1743
  resourceManager;
1723
1744
  /** 地形管理器(记录地形列表) */
@@ -1738,7 +1759,7 @@ class St {
1738
1759
  * 是否使用 Cesium Ion 地形
1739
1760
  */
1740
1761
  get isCesiumIon() {
1741
- return this._currentTerrainConfig.type === w.CESIUM_ION;
1762
+ return this._currentTerrainConfig.type === M.CESIUM_ION;
1742
1763
  }
1743
1764
  /**
1744
1765
  * 获取当前地形配置
@@ -1784,9 +1805,9 @@ class St {
1784
1805
  this._alphaClipMode = e, this.customMaterialPlugin && (this.customMaterialPlugin.alphaClipMode = e), this._updateAlphaClipMode(), this.render();
1785
1806
  }
1786
1807
  _initTilesRenderer(e) {
1787
- return e.type === w.CESIUM_ION ? new x() : (
1808
+ return e.type === M.CESIUM_ION ? new T() : (
1788
1809
  // Cesium Ion 由插件设置 URL
1789
- new x(e.url)
1810
+ new T(e.url)
1790
1811
  );
1791
1812
  }
1792
1813
  /**
@@ -1794,8 +1815,8 @@ class St {
1794
1815
  * @param config 地形配置
1795
1816
  */
1796
1817
  _initPlugins(e, t) {
1797
- if (this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), e.registerPlugin(this.tilesFadePlugin), e.registerPlugin(this.updateOnChangePlugin), t.type === w.CESIUM_ION ? e.registerPlugin(
1798
- new ue({
1818
+ if (this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), e.registerPlugin(this.tilesFadePlugin), e.registerPlugin(this.updateOnChangePlugin), t.type === M.CESIUM_ION ? e.registerPlugin(
1819
+ new ce({
1799
1820
  apiToken: t.apiToken,
1800
1821
  assetId: t.assetId || "1",
1801
1822
  autoRefreshToken: t.autoRefreshToken ?? !0,
@@ -1810,11 +1831,11 @@ class St {
1810
1831
  ), e.fetchData = async (r) => {
1811
1832
  const i = { method: "GET", mode: "cors" };
1812
1833
  if (/layer\.json$/.test(r)) {
1813
- const n = await fetch(r, i).then((a) => a.json());
1814
- return n.metadataAvailability = -1, new Response(JSON.stringify(n));
1834
+ const a = await fetch(r, i).then((n) => n.json());
1835
+ return a.metadataAvailability = -1, new Response(JSON.stringify(a));
1815
1836
  }
1816
1837
  return fetch(r, i);
1817
- }), this.options.useCustomMaterial !== !1 && (this.customMaterialPlugin = new Ae(), this.customMaterialPlugin.alphaClipMode = this._alphaClipMode, e.registerPlugin(this.customMaterialPlugin)), this.imageOverlayPlugin = new de({
1838
+ }), this.options.useCustomMaterial !== !1 && (this.customMaterialPlugin = new Le(), this.customMaterialPlugin.alphaClipMode = this._alphaClipMode, e.registerPlugin(this.customMaterialPlugin)), this.imageOverlayPlugin = new he({
1818
1839
  renderer: this.ssp.viewport.renderer,
1819
1840
  overlays: []
1820
1841
  }), e.registerPlugin(this.imageOverlayPlugin), this._ensureGlobeDepth(), this.overlayManager = new N(
@@ -1878,7 +1899,7 @@ class St {
1878
1899
  setTerrain(e, t = void 0) {
1879
1900
  if (t && (this.options = { ...this.options, ...t }), this.terrainManager.has(e.id) || this.terrainManager.add(e), this.terrainManager.setCurrentId(e.id), this.terrainManager.currentId === e.id) {
1880
1901
  const r = this.terrainManager.getCurrent();
1881
- e.type === w.QUANTIZED_MESH && r?.type === w.QUANTIZED_MESH && (r.url = e.url);
1902
+ e.type === M.QUANTIZED_MESH && r?.type === M.QUANTIZED_MESH && (r.url = e.url);
1882
1903
  }
1883
1904
  this._disposeTilesRenderer(), this._currentTerrainConfig = e, this.tiles = this._initTilesRenderer(e), this._initPlugins(this.tiles, e), this._enabled && this.ssp.addObject(this.tiles.group), this.render();
1884
1905
  }
@@ -2049,13 +2070,13 @@ class St {
2049
2070
  beforeRenderHandler = () => {
2050
2071
  const { camera: e, renderer: t, scene: r } = this.ssp.viewport;
2051
2072
  if (e.updateMatrixWorld(), this.tiles.setCamera(e), this.tiles.setResolutionFromRenderer(e, t), this.tiles.update(), this.groundDecalManager && e instanceof q) {
2052
- const i = this._ensureGlobeDepth(), n = t.domElement.width, a = t.domElement.height;
2053
- (i.target.width !== n || i.target.height !== a) && i.resize(n, a), xe(e.near, e.far), i.render(t, e, r, this.tiles.group);
2073
+ const i = this._ensureGlobeDepth(), a = t.domElement.width, n = t.domElement.height;
2074
+ (i.target.width !== a || i.target.height !== n) && i.resize(a, n), ke(e.near, e.far), i.render(t, e, r, this.tiles.group);
2054
2075
  const o = this._buildPlotVirtualCamera(e);
2055
2076
  this.groundDecalManager.update({
2056
2077
  depthTexture: i.target.texture,
2057
- width: n,
2058
- height: a,
2078
+ width: a,
2079
+ height: n,
2059
2080
  camera: o,
2060
2081
  pixelRatio: t.getPixelRatio()
2061
2082
  });
@@ -2087,7 +2108,7 @@ class St {
2087
2108
  _ensureGlobeDepth() {
2088
2109
  if (!this._globeDepth) {
2089
2110
  const { renderer: e } = this.ssp.viewport;
2090
- this._globeDepth = new ke(
2111
+ this._globeDepth = new Ee(
2091
2112
  e.domElement.width,
2092
2113
  e.domElement.height
2093
2114
  );
@@ -2095,7 +2116,7 @@ class St {
2095
2116
  return this._globeDepth;
2096
2117
  }
2097
2118
  enable() {
2098
- this._enabled = !0, this.ssp.viewport.camera.layers.enable(Ee), this.ssp.addObject(this.tiles.group), this.ssp.signals.beforeRender.add(this.beforeRenderHandler);
2119
+ this._enabled = !0, this.ssp.viewport.camera.layers.enable(Ie), this.ssp.addObject(this.tiles.group), this.ssp.signals.beforeRender.add(this.beforeRenderHandler);
2099
2120
  }
2100
2121
  disable() {
2101
2122
  this._enabled = !1, this.ssp.removeObject(this.tiles.group), this.ssp.signals.beforeRender.remove(this.beforeRenderHandler);
@@ -2112,13 +2133,13 @@ class St {
2112
2133
  lat: t,
2113
2134
  height: r
2114
2135
  };
2115
- const n = () => {
2136
+ const a = () => {
2116
2137
  const o = f.degToRad(t), d = f.degToRad(e);
2117
- i.transformLatLonHeightToOrigin(o, d, r), this.render(), a();
2118
- }, a = () => {
2119
- this.tiles.removeEventListener("load-root-tileset", n), this.loedTilesSets.delete(n);
2138
+ i.transformLatLonHeightToOrigin(o, d, r), this.render(), n();
2139
+ }, n = () => {
2140
+ this.tiles.removeEventListener("load-root-tileset", a), this.loedTilesSets.delete(a);
2120
2141
  };
2121
- return this.tiles.addEventListener("load-root-tileset", n), this.loedTilesSets.add(n), this.tiles.root && n(), a;
2142
+ return this.tiles.addEventListener("load-root-tileset", a), this.loedTilesSets.add(a), this.tiles.root && a(), n;
2122
2143
  }
2123
2144
  dispose() {
2124
2145
  this.disable(), this.terrainManager.dispose(), this.overlayManager.dispose(), this.groundDecalManager?.dispose(), this._globeDepth?.dispose(), this._globeDepth = void 0, this.loedTilesSets.forEach(
@@ -2126,12 +2147,12 @@ class St {
2126
2147
  ), this.loedTilesSets.clear(), this.tiles.removeEventListener("needs-render", this.render), this.tiles.removeEventListener("needs-update", this.render), this.tiles.dispose();
2127
2148
  }
2128
2149
  }
2129
- const T = {
2150
+ const C = {
2130
2151
  DEFAULT: 0,
2131
2152
  GRADIENT: 1,
2132
2153
  TOPOGRAPHIC_LINES: 2,
2133
2154
  LIGHTING: 3
2134
- }, st = {
2155
+ }, nt = {
2135
2156
  vertexShader: (
2136
2157
  /* glsl */
2137
2158
  `
@@ -2157,7 +2178,7 @@ const T = {
2157
2178
  }
2158
2179
  `
2159
2180
  )
2160
- }, nt = {
2181
+ }, ot = {
2161
2182
  vertexShader: (
2162
2183
  /* glsl */
2163
2184
  `
@@ -2204,9 +2225,9 @@ const T = {
2204
2225
  )
2205
2226
  };
2206
2227
  let D = null, G = null, F = null;
2207
- class at {
2228
+ class lt {
2208
2229
  constructor(e, t) {
2209
- this.ssp = e, this.options = t, "url" in this.options ? this.tiles = new x(this.options.url) : (this.tiles = new x(), this._initCesiumIon(this.options)), this._initBasePlugins(this.options);
2230
+ this.ssp = e, this.options = t, "url" in this.options ? this.tiles = new T(this.options.url) : (this.tiles = new T(), this._initCesiumIon(this.options)), this._initBasePlugins(this.options);
2210
2231
  }
2211
2232
  tiles;
2212
2233
  tilesFadePlugin;
@@ -2214,10 +2235,10 @@ class at {
2214
2235
  reorientationPlugin;
2215
2236
  options;
2216
2237
  // 用于模型居中
2217
- _box = new ve();
2218
- _sphere = new le();
2238
+ _box = new _e();
2239
+ _sphere = new de();
2219
2240
  // 当前材质类型
2220
- _materialType = T.DEFAULT;
2241
+ _materialType = C.DEFAULT;
2221
2242
  // 按需渲染标志
2222
2243
  _needsUpdate = !0;
2223
2244
  _cameraTransitionStart = !1;
@@ -2227,7 +2248,7 @@ class at {
2227
2248
  */
2228
2249
  _initCesiumIon(e) {
2229
2250
  this.tiles.registerPlugin(
2230
- new ue({
2251
+ new ce({
2231
2252
  apiToken: e.apiToken,
2232
2253
  assetId: e.assetId,
2233
2254
  autoRefreshToken: e.autoRefreshToken ?? !0
@@ -2256,10 +2277,10 @@ class at {
2256
2277
  * 设置 GLTF Loader
2257
2278
  */
2258
2279
  _setupGLTFLoader() {
2259
- const e = new ae(this.tiles.manager), t = this.ssp.manager?.store?.modelManager;
2280
+ const e = new oe(this.tiles.manager), t = this.ssp.manager?.store?.modelManager;
2260
2281
  if (t?.gltfLoader) {
2261
- const { dracoLoader: r, ktx2Loader: i, meshoptDecoder: n } = t.gltfLoader;
2262
- r && e.setDRACOLoader(r), i && e.setKTX2Loader(i), n && e.setMeshoptDecoder(n);
2282
+ const { dracoLoader: r, ktx2Loader: i, meshoptDecoder: a } = t.gltfLoader;
2283
+ r && e.setDRACOLoader(r), i && e.setKTX2Loader(i), a && e.setMeshoptDecoder(a);
2263
2284
  }
2264
2285
  this.tiles.manager.addHandler(/\.gltf$/, e);
2265
2286
  }
@@ -2300,7 +2321,7 @@ class at {
2300
2321
  onLoadModel = ({ scene: e }) => {
2301
2322
  e.traverse((t) => {
2302
2323
  t.isMesh && (t.originalMaterial = t.material);
2303
- }), this._materialType !== T.DEFAULT && this.updateMaterial(e);
2324
+ }), this._materialType !== C.DEFAULT && this.updateMaterial(e);
2304
2325
  };
2305
2326
  /**
2306
2327
  * 更新场景中所有网格的材质(参考 customMaterial.js)
@@ -2310,19 +2331,19 @@ class at {
2310
2331
  e.traverse((r) => {
2311
2332
  if (r.isMesh)
2312
2333
  switch (r.material && r.material !== r.originalMaterial && r.material.dispose(), t) {
2313
- case T.DEFAULT:
2334
+ case C.DEFAULT:
2314
2335
  r.material = r.originalMaterial, r.material && (r.material.side = 2), r.receiveShadow = !1, r.castShadow = !1;
2315
2336
  break;
2316
- case T.GRADIENT:
2317
- r.material = new V(st), r.material.side = 2, r.receiveShadow = !1, r.castShadow = !1;
2337
+ case C.GRADIENT:
2338
+ r.material = new V(nt), r.material.side = 2, r.receiveShadow = !1, r.castShadow = !1;
2318
2339
  break;
2319
- case T.TOPOGRAPHIC_LINES: {
2320
- const i = new V(nt);
2340
+ case C.TOPOGRAPHIC_LINES: {
2341
+ const i = new V(ot);
2321
2342
  i.extensions = { derivatives: !0 }, i.side = 2, r.material = i, r.receiveShadow = !1, r.castShadow = !1;
2322
2343
  break;
2323
2344
  }
2324
- case T.LIGHTING:
2325
- r.material = new _e(), r.material.side = 2, r.receiveShadow = !0, r.castShadow = !0;
2345
+ case C.LIGHTING:
2346
+ r.material = new Oe(), r.material.side = 2, r.receiveShadow = !0, r.castShadow = !0;
2326
2347
  break;
2327
2348
  }
2328
2349
  });
@@ -2368,13 +2389,13 @@ class at {
2368
2389
  lat: t,
2369
2390
  height: r
2370
2391
  };
2371
- const n = () => {
2392
+ const a = () => {
2372
2393
  const o = f.degToRad(t), d = f.degToRad(e);
2373
- i.transformLatLonHeightToOrigin(o, d, r), this.render(), a();
2374
- }, a = () => {
2375
- this.tiles.removeEventListener("load-root-tileset", n), this.loedTilesSets.delete(n);
2394
+ i.transformLatLonHeightToOrigin(o, d, r), this.render(), n();
2395
+ }, n = () => {
2396
+ this.tiles.removeEventListener("load-root-tileset", a), this.loedTilesSets.delete(a);
2376
2397
  };
2377
- return this.tiles.addEventListener("load-root-tileset", n), this.loedTilesSets.add(n), this.tiles.root && n(), a;
2398
+ return this.tiles.addEventListener("load-root-tileset", a), this.loedTilesSets.add(a), this.tiles.root && a(), n;
2378
2399
  }
2379
2400
  dispose() {
2380
2401
  this.disable(), this.loedTilesSets.forEach(
@@ -2383,7 +2404,7 @@ class at {
2383
2404
  }
2384
2405
  }
2385
2406
  const J = 2;
2386
- class wt {
2407
+ class bt {
2387
2408
  constructor(e) {
2388
2409
  this.ssp = e;
2389
2410
  const { controls: t, viewport: r } = e;
@@ -2404,12 +2425,12 @@ class wt {
2404
2425
  _downloadQueue = null;
2405
2426
  _referenceOrigin = null;
2406
2427
  _referencePlacements = /* @__PURE__ */ new WeakMap();
2407
- _referenceFrame = new P();
2408
- _targetFrame = new P();
2409
- _sourceFrame = new P();
2410
- _placementMatrix = new P();
2411
- _upCorrectionMatrix = new P();
2412
- _boundingSphere = new le();
2428
+ _referenceFrame = new b();
2429
+ _targetFrame = new b();
2430
+ _sourceFrame = new b();
2431
+ _placementMatrix = new b();
2432
+ _upCorrectionMatrix = new b();
2433
+ _boundingSphere = new de();
2413
2434
  _beforeRenderHandler = () => {
2414
2435
  this.needsUpdate && (this.needsUpdate = !1, this.ssp.viewport.camera.updateMatrixWorld(), this.tilesMap.forEach((e) => {
2415
2436
  e.tiles.setCamera(this.ssp.viewport.camera), e.tiles.setResolutionFromRenderer(this.ssp.viewport.camera, this.ssp.viewport.renderer), e.applyAutoCenter(), e.tiles.group.updateMatrixWorld(), e.tiles.update();
@@ -2433,8 +2454,8 @@ class wt {
2433
2454
  lat: e.lat,
2434
2455
  height: e.height ?? 0.1
2435
2456
  }, this.tilesMap.forEach((i) => {
2436
- const n = this._referencePlacements.get(i) ?? null;
2437
- this.applyReferencePlacement(i, n);
2457
+ const a = this._referencePlacements.get(i) ?? null;
2458
+ this.applyReferencePlacement(i, a);
2438
2459
  });
2439
2460
  }
2440
2461
  clearReferenceOrigin() {
@@ -2450,20 +2471,20 @@ class wt {
2450
2471
  const t = "url" in e ? e.url : e.assetId;
2451
2472
  if (this.tilesMap.has(t))
2452
2473
  return R.utils.warn(`${t} already loaded`), this.tilesMap.get(t);
2453
- const { ssp: r } = this, i = this._getReferencePlacement(e), n = this._getTilesRendererOptions(e, i), a = new at(r, {
2454
- ...n,
2474
+ const { ssp: r } = this, i = this._getReferencePlacement(e), a = this._getTilesRendererOptions(e, i), n = new lt(r, {
2475
+ ...a,
2455
2476
  _managedByPlugin: !0
2456
2477
  });
2457
- i && (this._referencePlacements.set(a, i), a.options.reorientation = i);
2458
- const { tiles: o } = a;
2459
- this._lruCache === null ? this._lruCache = o.lruCache : o.lruCache = this._lruCache, this._parseQueue === null ? this._parseQueue = o.parseQueue : o.parseQueue = this._parseQueue, this._downloadQueue === null ? this._downloadQueue = o.downloadQueue : o.downloadQueue = this._downloadQueue, o.lruCache.maxSize = 600, o.lruCache.minSize = 300, o.lruCache.unloadPercent = 0.8, this.tilesMap.set(t, a), o.setCamera(this._tilesCamera), o.setResolutionFromRenderer(this._tilesCamera, r.viewport.renderer), r.addObject(o.group), this._referenceOrigin && this.applyReferencePlacement(a, i);
2478
+ i && (this._referencePlacements.set(n, i), n.options.reorientation = i);
2479
+ const { tiles: o } = n;
2480
+ this._lruCache === null ? this._lruCache = o.lruCache : o.lruCache = this._lruCache, this._parseQueue === null ? this._parseQueue = o.parseQueue : o.parseQueue = this._parseQueue, this._downloadQueue === null ? this._downloadQueue = o.downloadQueue : o.downloadQueue = this._downloadQueue, o.lruCache.maxSize = 600, o.lruCache.minSize = 300, o.lruCache.unloadPercent = 0.8, this.tilesMap.set(t, n), o.setCamera(this._tilesCamera), o.setResolutionFromRenderer(this._tilesCamera, r.viewport.renderer), r.addObject(o.group), this._referenceOrigin && this.applyReferencePlacement(n, i);
2460
2481
  const d = () => {
2461
2482
  this.cameraTransitionStart || (this.needsUpdate = !0, r.render());
2462
2483
  };
2463
2484
  return o.addEventListener("load-model", d), new Promise((l) => {
2464
2485
  o.addEventListener("load-tile-set", () => {
2465
- const h = this._referencePlacements.get(a);
2466
- this._referenceOrigin && this.applyReferencePlacement(a, h ?? null), d(), l(a);
2486
+ const h = this._referencePlacements.get(n);
2487
+ this._referenceOrigin && this.applyReferencePlacement(n, h ?? null), d(), l(n);
2467
2488
  });
2468
2489
  });
2469
2490
  }
@@ -2497,24 +2518,24 @@ class wt {
2497
2518
  }), this.tilesMap.clear();
2498
2519
  }
2499
2520
  invalidate(e, t, r, i) {
2500
- (i ? [i] : Array.from(this.tilesMap.values())).forEach((a) => {
2501
- const o = this._referencePlacements.get(a) ?? null;
2502
- this._referenceOrigin ? this.applyReferencePlacement(a, {
2521
+ (i ? [i] : Array.from(this.tilesMap.values())).forEach((n) => {
2522
+ const o = this._referencePlacements.get(n) ?? null;
2523
+ this._referenceOrigin ? this.applyReferencePlacement(n, {
2503
2524
  ...o ?? {},
2504
2525
  lon: e,
2505
2526
  lat: t,
2506
2527
  height: r
2507
- }) : a.invalidate(e, t, r);
2528
+ }) : n.invalidate(e, t, r);
2508
2529
  });
2509
2530
  }
2510
2531
  applyReferencePlacement(e, t) {
2511
2532
  if (!this._referenceOrigin)
2512
2533
  return R.utils.warn("TilesRendererManager: reference origin is not set."), !1;
2513
- const { ellipsoid: r, group: i } = e.tiles, n = this._referenceOrigin, a = this._isGeoreferenced(e);
2534
+ const { ellipsoid: r, group: i } = e.tiles, a = this._referenceOrigin, n = this._isGeoreferenced(e);
2514
2535
  if (r.getObjectFrame(
2515
- f.degToRad(n.lat),
2516
- f.degToRad(n.lon),
2517
- n.height ?? 0.1,
2536
+ f.degToRad(a.lat),
2537
+ f.degToRad(a.lon),
2538
+ a.height ?? 0.1,
2518
2539
  0,
2519
2540
  0,
2520
2541
  0,
@@ -2530,8 +2551,8 @@ class wt {
2530
2551
  0,
2531
2552
  this._targetFrame,
2532
2553
  J
2533
- ), this._placementMatrix.multiply(this._targetFrame), a ? (this._sourceFrame.copy(this._getSourceFrame(e)).invert(), this._placementMatrix.multiply(this._sourceFrame)) : (this._getUpCorrectionMatrix(t.up ?? "+z"), this._placementMatrix.multiply(this._upCorrectionMatrix));
2534
- else if (!a)
2554
+ ), this._placementMatrix.multiply(this._targetFrame), n ? (this._sourceFrame.copy(this._getSourceFrame(e)).invert(), this._placementMatrix.multiply(this._sourceFrame)) : (this._getUpCorrectionMatrix(t.up ?? "+z"), this._placementMatrix.multiply(this._upCorrectionMatrix));
2555
+ else if (!n)
2535
2556
  return !1;
2536
2557
  return i.matrix.copy(this._placementMatrix), i.matrix.decompose(i.position, i.quaternion, i.scale), i.updateMatrixWorld(!0), t && (this._referencePlacements.set(e, t), e.options.reorientation = t), this.needsUpdate = !0, e.render(), !0;
2537
2558
  }
@@ -2601,101 +2622,101 @@ class wt {
2601
2622
  this.clear(), this.ssp.signals.beforeRender.remove(this._beforeRenderHandler), this.ssp.signals.cameraObjectChange.remove(this._onCameraObjectChange), this._lruCache = null, this._parseQueue = null, this._downloadQueue = null;
2602
2623
  }
2603
2624
  }
2604
- function Ct(s) {
2625
+ function Tt(s) {
2605
2626
  if (s == null) return [0, 0, 0, 0];
2606
2627
  const e = String(s).trim().toLowerCase();
2607
2628
  if (e === "" || e === "transparent") return [0, 0, 0, 0];
2608
2629
  const t = /^rgba\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]*\.?[0-9]+)\s*\)$/.exec(e);
2609
2630
  if (t !== null) {
2610
- const i = Number(t[1]) / 255, n = Number(t[2]) / 255, a = Number(t[3]) / 255, o = Number(t[4]);
2611
- return [m(i), m(n), m(a), m(o)];
2631
+ const i = Number(t[1]) / 255, a = Number(t[2]) / 255, n = Number(t[3]) / 255, o = Number(t[4]);
2632
+ return [v(i), v(a), v(n), v(o)];
2612
2633
  }
2613
2634
  const r = /^rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)$/.exec(e);
2614
2635
  if (r !== null) {
2615
- const i = Number(r[1]) / 255, n = Number(r[2]) / 255, a = Number(r[3]) / 255;
2616
- return [m(i), m(n), m(a), 1];
2636
+ const i = Number(r[1]) / 255, a = Number(r[2]) / 255, n = Number(r[3]) / 255;
2637
+ return [v(i), v(a), v(n), 1];
2617
2638
  }
2618
2639
  if (e.startsWith("#")) {
2619
2640
  const i = e.slice(1);
2620
2641
  if (i.length === 3) {
2621
- const n = parseInt(i[0] + i[0], 16) / 255, a = parseInt(i[1] + i[1], 16) / 255, o = parseInt(i[2] + i[2], 16) / 255;
2622
- if (Number.isFinite(n) && Number.isFinite(a) && Number.isFinite(o))
2623
- return [n, a, o, 1];
2642
+ const a = parseInt(i[0] + i[0], 16) / 255, n = parseInt(i[1] + i[1], 16) / 255, o = parseInt(i[2] + i[2], 16) / 255;
2643
+ if (Number.isFinite(a) && Number.isFinite(n) && Number.isFinite(o))
2644
+ return [a, n, o, 1];
2624
2645
  } else if (i.length === 6) {
2625
- const n = parseInt(i.slice(0, 2), 16) / 255, a = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255;
2626
- if (Number.isFinite(n) && Number.isFinite(a) && Number.isFinite(o))
2627
- return [n, a, o, 1];
2646
+ const a = parseInt(i.slice(0, 2), 16) / 255, n = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255;
2647
+ if (Number.isFinite(a) && Number.isFinite(n) && Number.isFinite(o))
2648
+ return [a, n, o, 1];
2628
2649
  } else if (i.length === 8) {
2629
- const n = parseInt(i.slice(0, 2), 16) / 255, a = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255, d = parseInt(i.slice(6, 8), 16) / 255;
2630
- if (Number.isFinite(n) && Number.isFinite(a) && Number.isFinite(o) && Number.isFinite(d))
2631
- return [n, a, o, d];
2650
+ const a = parseInt(i.slice(0, 2), 16) / 255, n = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255, d = parseInt(i.slice(6, 8), 16) / 255;
2651
+ if (Number.isFinite(a) && Number.isFinite(n) && Number.isFinite(o) && Number.isFinite(d))
2652
+ return [a, n, o, d];
2632
2653
  }
2633
2654
  }
2634
2655
  return [1, 1, 1, 1];
2635
2656
  }
2636
- function bt(s, e) {
2637
- typeof s.fillOpacity == "number" && Number.isFinite(s.fillOpacity) ? e[0] = m(s.fillOpacity / 100) : typeof s.opacity == "number" && Number.isFinite(s.opacity) ? e[0] = m(s.opacity) : e[0] = 1, typeof s.strokeOpacity == "number" && Number.isFinite(s.strokeOpacity) ? e[1] = m(s.strokeOpacity / 100) : typeof s.opacity == "number" && Number.isFinite(s.opacity) ? e[1] = m(s.opacity) : e[1] = 1;
2657
+ function Pt(s, e) {
2658
+ typeof s.fillOpacity == "number" && Number.isFinite(s.fillOpacity) ? e[0] = v(s.fillOpacity / 100) : typeof s.opacity == "number" && Number.isFinite(s.opacity) ? e[0] = v(s.opacity) : e[0] = 1, typeof s.strokeOpacity == "number" && Number.isFinite(s.strokeOpacity) ? e[1] = v(s.strokeOpacity / 100) : typeof s.opacity == "number" && Number.isFinite(s.opacity) ? e[1] = v(s.opacity) : e[1] = 1;
2638
2659
  }
2639
- function m(s) {
2660
+ function v(s) {
2640
2661
  return !Number.isFinite(s) || s < 0 ? 0 : s > 1 ? 1 : s;
2641
2662
  }
2642
- const ne = 100, H = 1e-4;
2643
- function k(s, e) {
2663
+ const ne = 100, Q = 1e-4;
2664
+ function P(s, e) {
2644
2665
  const t = s[0] - e[0], r = s[1] - e[1];
2645
2666
  return Math.sqrt(t * t + r * r);
2646
2667
  }
2647
- function ot(s) {
2668
+ function dt(s) {
2648
2669
  let e = 0;
2649
2670
  for (let t = 0; t < s.length - 1; t++)
2650
- e += k(s[t], s[t + 1]);
2671
+ e += P(s[t], s[t + 1]);
2651
2672
  return e;
2652
2673
  }
2653
- function Tt(s) {
2654
- return Math.pow(ot(s), 0.99);
2674
+ function xt(s) {
2675
+ return Math.pow(dt(s), 0.99);
2655
2676
  }
2656
- function ye(s, e) {
2677
+ function me(s, e) {
2657
2678
  return [(s[0] + e[0]) / 2, (s[1] + e[1]) / 2];
2658
2679
  }
2659
2680
  function $(s, e) {
2660
2681
  let t;
2661
2682
  const r = Math.asin(
2662
- Math.abs(e[1] - s[1]) / k(s, e)
2683
+ Math.abs(e[1] - s[1]) / P(s, e)
2663
2684
  );
2664
2685
  return e[1] >= s[1] && e[0] >= s[0] ? t = r + Math.PI : e[1] >= s[1] && e[0] < s[0] ? t = Math.PI * 2 - r : e[1] < s[1] && e[0] < s[0] ? t = r : t = Math.PI - r, t;
2665
2686
  }
2666
- function Pt(s, e, t) {
2687
+ function kt(s, e, t) {
2667
2688
  const r = $(e, s) - $(e, t);
2668
2689
  return r < 0 ? r + Math.PI * 2 : r;
2669
2690
  }
2670
- function lt(s, e, t) {
2691
+ function ht(s, e, t) {
2671
2692
  return (t[1] - s[1]) * (e[0] - s[0]) > (e[1] - s[1]) * (t[0] - s[0]);
2672
2693
  }
2673
- function xt(s, e, t, r, i) {
2674
- const n = $(s, e), a = i ? n + t : n - t, o = r * Math.cos(a), d = r * Math.sin(a);
2694
+ function Et(s, e, t, r, i) {
2695
+ const a = $(s, e), n = i ? a + t : a - t, o = r * Math.cos(n), d = r * Math.sin(n);
2675
2696
  return [e[0] + o, e[1] + d];
2676
2697
  }
2677
- function Q(s, e, t) {
2698
+ function H(s, e, t) {
2678
2699
  let r = s[0] - e[0], i = s[1] - e[1];
2679
- const n = Math.sqrt(r * r + i * i);
2680
- r /= n, i /= n;
2681
- let a = t[0] - e[0], o = t[1] - e[1];
2682
- const d = Math.sqrt(a * a + o * o);
2683
- return a /= d, o /= d, [r + a, i + o];
2700
+ const a = Math.sqrt(r * r + i * i);
2701
+ r /= a, i /= a;
2702
+ let n = t[0] - e[0], o = t[1] - e[1];
2703
+ const d = Math.sqrt(n * n + o * o);
2704
+ return n /= d, o /= d, [r + n, i + o];
2684
2705
  }
2685
2706
  function X(s, e, t, r) {
2686
- const i = Q(e, t, r);
2687
- let n, a, o, d, l;
2688
- const h = Math.sqrt(i[0] * i[0] + i[1] * i[1]), c = i[0] / h, y = i[1] / h, O = k(e, t), g = k(t, r);
2689
- return h > H ? lt(e, t, r) ? (o = s * O, d = t[0] - o * y, l = t[1] + o * c, n = [d, l], o = s * g, d = t[0] + o * y, l = t[1] - o * c, a = [d, l]) : (o = s * O, d = t[0] + o * y, l = t[1] - o * c, n = [d, l], o = s * g, d = t[0] - o * y, l = t[1] + o * c, a = [d, l]) : (d = t[0] + s * (e[0] - t[0]), l = t[1] + s * (e[1] - t[1]), n = [d, l], d = t[0] + s * (r[0] - t[0]), l = t[1] + s * (r[1] - t[1]), a = [d, l]), [n, a];
2707
+ const i = H(e, t, r);
2708
+ let a, n, o, d, l;
2709
+ const h = Math.sqrt(i[0] * i[0] + i[1] * i[1]), c = i[0] / h, y = i[1] / h, _ = P(e, t), p = P(t, r);
2710
+ return h > Q ? ht(e, t, r) ? (o = s * _, d = t[0] - o * y, l = t[1] + o * c, a = [d, l], o = s * p, d = t[0] + o * y, l = t[1] - o * c, n = [d, l]) : (o = s * _, d = t[0] + o * y, l = t[1] - o * c, a = [d, l], o = s * p, d = t[0] - o * y, l = t[1] + o * c, n = [d, l]) : (d = t[0] + s * (e[0] - t[0]), l = t[1] + s * (e[1] - t[1]), a = [d, l], d = t[0] + s * (r[0] - t[0]), l = t[1] + s * (r[1] - t[1]), n = [d, l]), [a, n];
2690
2711
  }
2691
- function dt(s) {
2692
- const e = s[0], t = s[1], r = s[2], n = X(0, e, t, r)[0], a = Q(e, t, r), o = Math.sqrt(a[0] * a[0] + a[1] * a[1]);
2712
+ function ut(s) {
2713
+ const e = s[0], t = s[1], r = s[2], a = X(0, e, t, r)[0], n = H(e, t, r), o = Math.sqrt(n[0] * n[0] + n[1] * n[1]);
2693
2714
  let d;
2694
- if (o > H) {
2695
- const l = ye(e, t), h = e[0] - l[0], c = e[1] - l[1], O = 2 / k(e, t), g = -O * c, p = O * h, v = g * g - p * p, C = 2 * g * p, M = p * p - g * g, b = n[0] - l[0], S = n[1] - l[1];
2715
+ if (o > Q) {
2716
+ const l = me(e, t), h = e[0] - l[0], c = e[1] - l[1], _ = 2 / P(e, t), p = -_ * c, g = _ * h, m = p * p - g * g, S = 2 * p * g, w = g * g - p * p, E = a[0] - l[0], x = a[1] - l[1];
2696
2717
  d = [
2697
- l[0] + v * b + C * S,
2698
- l[1] + C * b + M * S
2718
+ l[0] + m * E + S * x,
2719
+ l[1] + S * E + w * x
2699
2720
  ];
2700
2721
  } else
2701
2722
  d = [
@@ -2707,14 +2728,14 @@ function dt(s) {
2707
2728
  function A(s) {
2708
2729
  return 0.3 * s;
2709
2730
  }
2710
- function ht(s) {
2711
- const e = s.length, t = s[e - 3], r = s[e - 2], i = s[e - 1], a = X(0, t, r, i)[1], o = Q(t, r, i), d = Math.sqrt(o[0] * o[0] + o[1] * o[1]);
2731
+ function ct(s) {
2732
+ const e = s.length, t = s[e - 3], r = s[e - 2], i = s[e - 1], n = X(0, t, r, i)[1], o = H(t, r, i), d = Math.sqrt(o[0] * o[0] + o[1] * o[1]);
2712
2733
  let l;
2713
- if (d > H) {
2714
- const h = ye(r, i), c = i[0] - h[0], y = i[1] - h[1], g = 2 / k(r, i), p = -g * y, v = g * c, C = p * p - v * v, M = 2 * p * v, b = v * v - p * p, S = a[0] - h[0], Y = a[1] - h[1];
2734
+ if (d > Q) {
2735
+ const h = me(r, i), c = i[0] - h[0], y = i[1] - h[1], p = 2 / P(r, i), g = -p * y, m = p * c, S = g * g - m * m, w = 2 * g * m, E = m * m - g * g, x = n[0] - h[0], Y = n[1] - h[1];
2715
2736
  l = [
2716
- h[0] + C * S + M * Y,
2717
- h[1] + M * S + b * Y
2737
+ h[0] + S * x + w * Y,
2738
+ h[1] + w * x + E * Y
2718
2739
  ];
2719
2740
  } else
2720
2741
  l = [
@@ -2723,102 +2744,102 @@ function ht(s) {
2723
2744
  ];
2724
2745
  return l;
2725
2746
  }
2726
- function kt(s, e) {
2727
- const r = [dt(e)];
2728
- for (let a = 0; a < e.length - 2; a++) {
2729
- const o = e[a], d = e[a + 1], l = e[a + 2], h = X(s, o, d, l);
2747
+ function It(s, e) {
2748
+ const r = [ut(e)];
2749
+ for (let n = 0; n < e.length - 2; n++) {
2750
+ const o = e[n], d = e[n + 1], l = e[n + 2], h = X(s, o, d, l);
2730
2751
  r.push(h[0], h[1]);
2731
2752
  }
2732
- const i = ht(e);
2753
+ const i = ct(e);
2733
2754
  r.push(i);
2734
- const n = [];
2735
- for (let a = 0; a < e.length - 1; a++) {
2736
- const o = e[a], d = e[a + 1];
2737
- n.push(o);
2755
+ const a = [];
2756
+ for (let n = 0; n < e.length - 1; n++) {
2757
+ const o = e[n], d = e[n + 1];
2758
+ a.push(o);
2738
2759
  for (let l = 0; l < ne; l++) {
2739
- const h = l / ne, c = Math.pow(1 - h, 3) * o[0] + 3 * h * Math.pow(1 - h, 2) * r[a * 2][0] + 3 * h * h * (1 - h) * r[a * 2 + 1][0] + Math.pow(h, 3) * d[0], y = Math.pow(1 - h, 3) * o[1] + 3 * h * Math.pow(1 - h, 2) * r[a * 2][1] + 3 * h * h * (1 - h) * r[a * 2 + 1][1] + Math.pow(h, 3) * d[1];
2740
- n.push([c, y]);
2760
+ const h = l / ne, c = Math.pow(1 - h, 3) * o[0] + 3 * h * Math.pow(1 - h, 2) * r[n * 2][0] + 3 * h * h * (1 - h) * r[n * 2 + 1][0] + Math.pow(h, 3) * d[0], y = Math.pow(1 - h, 3) * o[1] + 3 * h * Math.pow(1 - h, 2) * r[n * 2][1] + 3 * h * h * (1 - h) * r[n * 2 + 1][1] + Math.pow(h, 3) * d[1];
2761
+ a.push([c, y]);
2741
2762
  }
2742
- n.push(d);
2763
+ a.push(d);
2743
2764
  }
2744
- return n;
2765
+ return a;
2745
2766
  }
2746
- function Et(s) {
2767
+ function Rt(s) {
2747
2768
  if (s.length <= 2) return s;
2748
2769
  const e = 2, t = [], r = s.length - e - 1;
2749
2770
  t.push(s[0]);
2750
2771
  for (let i = 0; i <= r; i++)
2751
- for (let n = 0; n <= 1; n += 0.05) {
2752
- let a = 0, o = 0;
2772
+ for (let a = 0; a <= 1; a += 0.05) {
2773
+ let n = 0, o = 0;
2753
2774
  for (let d = 0; d <= e; d++) {
2754
- const l = ut(d, n);
2755
- a += l * s[i + d][0], o += l * s[i + d][1];
2775
+ const l = pt(d, a);
2776
+ n += l * s[i + d][0], o += l * s[i + d][1];
2756
2777
  }
2757
- t.push([a, o]);
2778
+ t.push([n, o]);
2758
2779
  }
2759
2780
  return t.push(s[s.length - 1]), t;
2760
2781
  }
2761
- function ut(s, e) {
2782
+ function pt(s, e) {
2762
2783
  return s === 0 ? Math.pow(e - 1, 2) / 2 : s === 1 ? (-2 * Math.pow(e, 2) + 2 * e + 1) / 2 : s === 2 ? Math.pow(e, 2) / 2 : 0;
2763
2784
  }
2764
- function It(s, e) {
2785
+ function Nt(s, e) {
2765
2786
  return W(s, e);
2766
2787
  }
2767
- function Rt(s, e) {
2768
- return fe(s, e);
2788
+ function At(s, e) {
2789
+ return ye(s, e);
2769
2790
  }
2770
- function Nt(s) {
2771
- return !s || s.length < 3 ? [] : ge(s);
2791
+ function Lt(s) {
2792
+ return !s || s.length < 3 ? [] : fe(s);
2772
2793
  }
2773
- function At(s) {
2774
- return !s || s.length < 3 ? [] : pe(s);
2794
+ function Dt(s) {
2795
+ return !s || s.length < 3 ? [] : ge(s);
2775
2796
  }
2776
- function Lt(s) {
2777
- return !s || s.length < 2 ? [] : ce(s);
2797
+ function Gt(s) {
2798
+ return !s || s.length < 2 ? [] : pe(s);
2778
2799
  }
2779
2800
  export {
2780
- Mt as ArcgisTilesRenderer,
2801
+ wt as ArcgisTilesRenderer,
2781
2802
  ne as FITTING_COUNT,
2782
- Be as GisPlotArrow,
2783
- _ as GisPlotBase,
2784
- Qe as GisPlotCircle,
2785
- Je as GisPlotLine,
2786
- Fe as GisPlotPoint,
2787
- Ue as GisPlotPolygon,
2788
- We as GisPlotRectangle,
2789
- ze as GisPlotSector,
2790
- je as GisPlotText,
2791
- tt as GroundDecalManager,
2792
- T as MaterialType,
2793
- k as MathDistance,
2794
- ye as Mid,
2803
+ je as GisPlotArrow,
2804
+ O as GisPlotBase,
2805
+ Xe as GisPlotCircle,
2806
+ Ue as GisPlotLine,
2807
+ Je as GisPlotPoint,
2808
+ We as GisPlotPolygon,
2809
+ $e as GisPlotRectangle,
2810
+ Be as GisPlotSector,
2811
+ Qe as GisPlotText,
2812
+ it as GroundDecalManager,
2813
+ C as MaterialType,
2814
+ P as MathDistance,
2815
+ me as Mid,
2795
2816
  N as OverlayManager,
2796
2817
  u as OverlayType,
2797
- et as PlotPrimitiveBridge,
2798
- St as TerrainTilesRenderer,
2799
- w as TerrainType,
2800
- Ae as TileCustomMaterialPlugin,
2801
- at as TilesRenderer,
2802
- wt as TilesRendererManager,
2803
- H as ZERO_TOLERANCE,
2804
- Rt as createAssaultDirectionArrow,
2805
- Nt as createAttackArrow,
2806
- Lt as createCurvedArrow,
2807
- It as createFineArrow,
2808
- At as createSwallowtailAttackArrow,
2809
- _t as default,
2810
- Pt as getAngleOfThreePoints,
2818
+ rt as PlotPrimitiveBridge,
2819
+ Ct as TerrainTilesRenderer,
2820
+ M as TerrainType,
2821
+ Le as TileCustomMaterialPlugin,
2822
+ lt as TilesRenderer,
2823
+ bt as TilesRendererManager,
2824
+ Q as ZERO_TOLERANCE,
2825
+ At as createAssaultDirectionArrow,
2826
+ Lt as createAttackArrow,
2827
+ Gt as createCurvedArrow,
2828
+ Nt as createFineArrow,
2829
+ Dt as createSwallowtailAttackArrow,
2830
+ Mt as default,
2831
+ kt as getAngleOfThreePoints,
2811
2832
  $ as getAzimuth,
2812
- Tt as getBaseLength,
2833
+ xt as getBaseLength,
2813
2834
  X as getBisectorNormals,
2814
- kt as getCurvePoints,
2815
- Q as getNormal,
2816
- Et as getQBSplinePoints,
2817
- xt as getThirdPoint,
2818
- lt as isClockWise,
2819
- Ct as parseColorToRGBA,
2820
- Ve as plotOrderToRenderOrder,
2821
- bt as resolveOpacity,
2822
- qe as sanitizePlotOrder,
2823
- ot as wholeDistance
2835
+ It as getCurvePoints,
2836
+ H as getNormal,
2837
+ Rt as getQBSplinePoints,
2838
+ Et as getThirdPoint,
2839
+ ht as isClockWise,
2840
+ Tt as parseColorToRGBA,
2841
+ Ze as plotOrderToRenderOrder,
2842
+ Pt as resolveOpacity,
2843
+ Ve as sanitizePlotOrder,
2844
+ dt as wholeDistance
2824
2845
  };