@juun-roh/cesium-utils 0.3.9 → 0.4.1

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.
@@ -1 +1 @@
1
- import{c as l}from"./chunk-B3AVU53O.js";import{DataSourceCollection as d,defined as o,EntityCollection as h,ImageryLayerCollection as v,PrimitiveCollection as c}from"cesium";var r=class s{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;_eventCleanupFunctions=[];constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e,this._setupCacheInvalidator(e)}[Symbol.iterator](){return this.values[Symbol.iterator]()}get values(){if(this._valuesCache!==null)return this._valuesCache;let e;if(this.collection instanceof h)e=this.collection.values;else{e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t))}return this._valuesCache=e,e}get length(){return this.values?.length||0}get tags(){return Array.from(this._tagMap.keys())}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(a=>{this.add(a,t)}):(Object.defineProperty(e,s.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),this}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)&&this.collection.remove(e)&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),Array.isArray(e)){if(e.length===0)return this;for(let i of e)this.remove(i)}let t=this.get(e);if(t.length===0)return this;for(let i of t)this.remove(i);return this}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}destroy(){this._eventCleanupFunctions.forEach(e=>e()),this._eventCleanupFunctions=[],this._tagMap.clear(),this._eventListeners.clear(),this._valuesCache=null}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}update(e,t){let i=this.get(e);for(let a of i)this._removeFromTagMap(a),Object.defineProperty(a,s.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(a,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)o(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)o(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)o(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let a=this.get(i);for(let n of a)if(e in n&&typeof n[e]!="function"){if(l(n,e))throw Error(`Cannot set read-only property '${String(e)}' on ${n.constructor.name}`);n[e]=t}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((a,n)=>e(a,n))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}_emit(e,t){let i=this._eventListeners.get(e);if(i){let a={type:e,...t};i.forEach(n=>n(a))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[s.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache=()=>{this._valuesCache=null};_setupCacheInvalidator(e){e instanceof h?(e.collectionChanged.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.collectionChanged.removeEventListener(this._invalidateCache))):e instanceof c?(e.primitiveAdded.addEventListener(this._invalidateCache),e.primitiveRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.primitiveAdded.removeEventListener(this._invalidateCache),()=>e.primitiveRemoved.removeEventListener(this._invalidateCache))):e instanceof d?(e.dataSourceAdded.addEventListener(this._invalidateCache),e.dataSourceMoved.addEventListener(this._invalidateCache),e.dataSourceRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.dataSourceAdded.removeEventListener(this._invalidateCache),()=>e.dataSourceMoved.removeEventListener(this._invalidateCache),()=>e.dataSourceRemoved.removeEventListener(this._invalidateCache))):e instanceof v&&(e.layerAdded.addEventListener(this._invalidateCache),e.layerMoved.addEventListener(this._invalidateCache),e.layerRemoved.addEventListener(this._invalidateCache),e.layerShownOrHidden.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.layerAdded.removeEventListener(this._invalidateCache),()=>e.layerMoved.removeEventListener(this._invalidateCache),()=>e.layerRemoved.removeEventListener(this._invalidateCache),()=>e.layerShownOrHidden.removeEventListener(this._invalidateCache)))}},m=r;export{m as a};
1
+ import{c as m}from"./chunk-R5KTUXEL.js";import{DataSourceCollection as g,defined as h,EntityCollection as u,ImageryLayerCollection as f,PrimitiveCollection as p}from"cesium";var d=class l{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;_eventCleanupFunctions=[];constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e,this._setupCacheInvalidator(e)}[Symbol.iterator](){return this.values[Symbol.iterator]()}get values(){if(this._valuesCache!==null)return this._valuesCache;let e;if(this.collection instanceof u)e=this.collection.values;else{e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t))}return this._valuesCache=e,e}get length(){return this.values?.length||0}get tags(){return Array.from(this._tagMap.keys())}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(a=>{this.add(a,t)}):(Object.defineProperty(e,l.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),this}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)&&this.collection.remove(e)&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),Array.isArray(e)){if(e.length===0)return this;for(let i of e)this.remove(i)}let t=this.get(e);if(t.length===0)return this;for(let i of t)this.remove(i);return this}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}destroy(){this._eventCleanupFunctions.forEach(e=>e()),this._eventCleanupFunctions=[],this._tagMap.clear(),this._eventListeners.clear(),this._valuesCache=null}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}update(e,t){let i=this.get(e);for(let a of i)this._removeFromTagMap(a),Object.defineProperty(a,l.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(a,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)h(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)h(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)h(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let a=this.get(i),n=e.split("."),C=["__proto__","constructor","prototype"];for(let v of a){let c=!1;for(let o of n)if(C.includes(o)){c=!0;break}if(c)continue;let s=v,r=0;for(;r<n.length-1;r++){let o=n[r];if(!(o in s)||(s=s[o],!s||typeof s!="object"))break}if(r===n.length-1){let o=n[n.length-1];if(o in s&&typeof s[o]!="function"){if(m(s,o))throw Error(`Cannot set read-only property '${e}' on ${v.constructor.name}`);s[o]=t}}}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((a,n)=>e(a,n))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}_emit(e,t){let i=this._eventListeners.get(e);if(i){let a={type:e,...t};i.forEach(n=>n(a))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[l.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache=()=>{this._valuesCache=null};_setupCacheInvalidator(e){e instanceof u?(e.collectionChanged.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.collectionChanged.removeEventListener(this._invalidateCache))):e instanceof p?(e.primitiveAdded.addEventListener(this._invalidateCache),e.primitiveRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.primitiveAdded.removeEventListener(this._invalidateCache),()=>e.primitiveRemoved.removeEventListener(this._invalidateCache))):e instanceof g?(e.dataSourceAdded.addEventListener(this._invalidateCache),e.dataSourceMoved.addEventListener(this._invalidateCache),e.dataSourceRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.dataSourceAdded.removeEventListener(this._invalidateCache),()=>e.dataSourceMoved.removeEventListener(this._invalidateCache),()=>e.dataSourceRemoved.removeEventListener(this._invalidateCache))):e instanceof f&&(e.layerAdded.addEventListener(this._invalidateCache),e.layerMoved.addEventListener(this._invalidateCache),e.layerRemoved.addEventListener(this._invalidateCache),e.layerShownOrHidden.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.layerAdded.removeEventListener(this._invalidateCache),()=>e.layerMoved.removeEventListener(this._invalidateCache),()=>e.layerRemoved.removeEventListener(this._invalidateCache),()=>e.layerShownOrHidden.removeEventListener(this._invalidateCache)))}},y=d;export{y as a};
@@ -0,0 +1 @@
1
+ import{a as g}from"./chunk-XHMLNB5Q.js";var _;(a=>{let o=new Set,r=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function e(n,p={}){if(!r)return;let{once:y=!0,prefix:h="[DEPRECATED]",includeStack:v=!0,removeInVersion:b}=p;if(y&&o.has(n))return;let u=`${h} ${n}`;b&&(u+=` This feature will be removed in ${b}.`),typeof console<"u"&&console.warn&&(v?(console.warn(u),console.trace("Deprecation stack trace:")):console.warn(u)),y&&o.add(n)}a.warn=e;function t(n,p,y={}){let h=((...v)=>(e(p,y),n(...v)));return Object.defineProperty(h,"name",{value:n.name,configurable:!0}),h}a.deprecate=t;function i(){o.clear()}a.clear=i;function d(){return o.size}a.getWarningCount=d;function c(n){return o.has(n)}a.hasShown=c})(_||={});var P=_;import{Color as l,TileCoordinatesImageryProvider as C}from"cesium";import{Color as m,GridImageryProvider as T}from"cesium";var s=class extends T{_terrainProvider;_colors;constructor(r){let{terrainProvider:e,colors:t,...i}=r;super(i),this._terrainProvider=e,this._colors=t}requestImage(r,e,t){for(let i of this._terrainProvider.regions)if(this._isInRegionOrUpsampled(i,r,e,t))return this._createCanvasElement(this._colors.get("custom")||m.RED);return this._terrainProvider.defaultProvider.getTileDataAvailable(r,e,t)?this._createCanvasElement(this._colors.get("default")||m.BLUE):this._createCanvasElement(this._colors.get("fallback")||m.GRAY)}_isInRegionOrUpsampled(r,e,t,i){let d=e,c=t,a=i;for(;a>=0;){if(g.TerrainRegion.contains(r,d,c,a))return!0;if(a===0)break;a--,d=Math.floor(d/2),c=Math.floor(c/2)}return!1}_createCanvasElement(r){let e=document.createElement("canvas");e.width=256,e.height=256;let t=e.getContext("2d"),i=r.withAlpha(.3).toCssColorString();if(!t)throw new Error("canvas context undefined");return t.fillStyle=i,t.fillRect(0,0,256,256),Promise.resolve(e)}};var f=class{_viewer;_terrainProvider;_visible=!1;_tileCoordinatesLayer;_hybridImageryLayer;_colors=new Map([["custom",l.RED],["default",l.BLUE],["fallback",l.GRAY],["grid",l.YELLOW]]);constructor(r,e){this._viewer=r,this._terrainProvider=e.terrainProvider,e.colors&&Object.entries(e.colors).forEach(([t,i])=>{this._colors.set(t,i)}),e.tile!==void 0&&e.tile&&this.show()}setTerrainProvider(r){this._terrainProvider=r,this.update()}update(){let r=this._visible,e=!!this._tileCoordinatesLayer,t=this._hybridImageryLayer?.alpha??.5;this.clear(),r&&this.show({showTileCoordinates:e,alpha:t})}clear(){this.hide()}show(r){if(!this._terrainProvider)return;let e=r?.showTileCoordinates??!0,t=r?.alpha??.5;e&&this._ensureTileCoordinatesLayer(),this.showImageryOverlay(t),this._visible=!0}_ensureTileCoordinatesLayer(){this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new C({tilingScheme:this._terrainProvider.tilingScheme,color:l.YELLOW})))}hide(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this.hideImageryOverlay(),this._visible=!1}setColors(r){Object.entries(r).forEach(([e,t])=>{this._colors.set(e,t)}),this.update()}showImageryOverlay(r=.5){this._hybridImageryLayer&&this._viewer.imageryLayers.remove(this._hybridImageryLayer);let e=new s({terrainProvider:this._terrainProvider,colors:this._colors,tilingScheme:this._terrainProvider.tilingScheme});this._hybridImageryLayer=this._viewer.imageryLayers.addImageryProvider(e),this._hybridImageryLayer.alpha=r,console.log("HybridImageryProvider overlay enabled")}hideImageryOverlay(){this._hybridImageryLayer&&(this._viewer.imageryLayers.remove(this._hybridImageryLayer),this._hybridImageryLayer=void 0,console.log("HybridImageryProvider overlay disabled"))}showTileCoordinates(){this._ensureTileCoordinatesLayer()}hideTileCoordinates(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0)}setAlpha(r){this._hybridImageryLayer&&(this._hybridImageryLayer.alpha=r)}flyTo(r,e){this._viewer.camera.flyTo({destination:r,...e,complete:()=>{this._visible&&this.update()}})}get tileCoordinatesVisible(){return!!this._tileCoordinatesLayer}get visible(){return this._visible}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};function w(o,r){let e=!1,t=Object.getOwnPropertyDescriptor(o,r);if(!t){let i=Object.getPrototypeOf(o);for(;i&&!t;)t=Object.getOwnPropertyDescriptor(i,r),i=Object.getPrototypeOf(i)}return t&&t.get&&!t.set&&(e=!0),e}var G=P.deprecate;export{P as a,f as b,w as c,G as d};
@@ -0,0 +1 @@
1
+ import{EllipsoidTerrainProvider as P}from"cesium";var o=class u{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new P,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,r,i){return this._defaultProvider.loadTileDataAvailability(e,r,i)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,i,n){if(this._ready){for(let t of this._regions)if(u.TerrainRegion.contains(t,e,r,i))return t.provider.requestTileGeometry(e,r,i,n);return this._defaultProvider.getTileDataAvailable(e,r,i)?this._defaultProvider.requestTileGeometry(e,r,i,n):this._fallbackProvider.requestTileGeometry(e,r,i,n)}}getTileDataAvailable(e,r,i){for(let n of this._regions)if(u.TerrainRegion.contains(n,e,r,i))return!0;return this._defaultProvider.getTileDataAvailable(e,r,i)}};(r=>{function u(i,n,t){return new r({regions:i.map(l=>({...l})),defaultProvider:n,fallbackProvider:t})}r.fromTileRanges=u;let e;(n=>{function i(t,l,d,s){if(t.levels&&!t.levels.includes(s))return!1;if(t.tiles){let a=t.tiles.get(s);if(!a)return!1;let[v,m]=Array.isArray(a.x)?a.x:[a.x,a.x],[b,f]=Array.isArray(a.y)?a.y:[a.y,a.y];return l>=v&&l<=m&&d>=b&&d<=f}return!1}n.contains=i})(e=r.TerrainRegion||={})})(o||={});var T=o;export{T as a};
@@ -1 +1 @@
1
- "use strict";var y=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var M=(a,e)=>{for(var r in e)y(a,r,{get:e[r],enumerable:!0})},S=(a,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of w(e))!x.call(a,i)&&i!==r&&y(a,i,{get:()=>e[i],enumerable:!(t=E(e,i))||t.enumerable});return a};var A=a=>S(y({},"__esModule",{value:!0}),a);var R={};M(R,{Collection:()=>I});module.exports=A(R);var s=require("cesium");var _;(g=>{let a=new Set,e=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function r(l,o={}){if(!e)return;let{once:d=!0,prefix:h="[DEPRECATED]",includeStack:c=!0,removeInVersion:u}=o;if(d&&a.has(l))return;let f=`${h} ${l}`;u&&(f+=` This feature will be removed in ${u}.`),typeof console<"u"&&console.warn&&(c?(console.warn(f),console.trace("Deprecation stack trace:")):console.warn(f)),d&&a.add(l)}g.warn=r;function t(l,o,d={}){let h=((...c)=>(r(o,d),l(...c)));return Object.defineProperty(h,"name",{value:l.name,configurable:!0}),h}g.deprecate=t;function i(){a.clear()}g.clear=i;function n(){return a.size}g.getWarningCount=n;function v(l){return a.has(l)}g.hasShown=v})(_||={});var C=_;var L=require("cesium");var P=require("cesium");var T=require("cesium"),m=class a{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new T.EllipsoidTerrainProvider,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,r,t){return this._defaultProvider.loadTileDataAvailability(e,r,t)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,t,i){if(this._ready){for(let n of this._regions)if(a.TerrainRegion.contains(n,e,r,t))return n.provider.requestTileGeometry(e,r,t,i);return this._defaultProvider.getTileDataAvailable(e,r,t)?this._defaultProvider.requestTileGeometry(e,r,t,i):this._fallbackProvider.requestTileGeometry(e,r,t,i)}}getTileDataAvailable(e,r,t){for(let i of this._regions)if(a.TerrainRegion.contains(i,e,r,t)&&i.provider.getTileDataAvailable(e,r,t))return!0;return this._defaultProvider.getTileDataAvailable(e,r,t)}};(r=>{function a(t,i,n){return new r({regions:t.map(v=>({...v})),defaultProvider:i,fallbackProvider:n})}r.fromTileRanges=a;let e;(i=>{function t(n,v,g,l){if(n.levels&&!n.levels.includes(l))return!1;if(n.tiles){let o=n.tiles.get(l);if(!o)return!1;let[d,h]=Array.isArray(o.x)?o.x:[o.x,o.x],[c,u]=Array.isArray(o.y)?o.y:[o.y,o.y];return v>=d&&v<=h&&g>=c&&g<=u}return!1}i.contains=t})(e=r.TerrainRegion||={})})(m||={});function p(a,e){let r=!1,t=Object.getOwnPropertyDescriptor(a,e);if(!t){let i=Object.getPrototypeOf(a);for(;i&&!t;)t=Object.getOwnPropertyDescriptor(i,e),i=Object.getPrototypeOf(i)}return t&&t.get&&!t.set&&(r=!0),r}var X=C.deprecate;var b=class a{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;_eventCleanupFunctions=[];constructor({collection:e,tag:r}){this.tag=r||"default",this.collection=e,this._setupCacheInvalidator(e)}[Symbol.iterator](){return this.values[Symbol.iterator]()}get values(){if(this._valuesCache!==null)return this._valuesCache;let e;if(this.collection instanceof s.EntityCollection)e=this.collection.values;else{e=[];for(let r=0;r<this.collection.length;r++)e.push(this.collection.get(r))}return this._valuesCache=e,e}get length(){return this.values?.length||0}get tags(){return Array.from(this._tagMap.keys())}addEventListener(e,r){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(r),this}removeEventListener(e,r){return this._eventListeners.get(e)?.delete(r),this}add(e,r=this.tag,t){return Array.isArray(e)?e.forEach(i=>{this.add(i,r)}):(Object.defineProperty(e,a.symbol,{value:r,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,t),this._addToTagMap(e,r),this._invalidateCache(),this._emit("add",{items:[e],tag:r})),this}contains(e){if(typeof e=="object")return this.collection.contains(e);let r=this._tagMap.get(e);return!!r&&r.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)&&this.collection.remove(e)&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),Array.isArray(e)){if(e.length===0)return this;for(let t of e)this.remove(t)}let r=this.get(e);if(r.length===0)return this;for(let t of r)this.remove(t);return this}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}destroy(){this._eventCleanupFunctions.forEach(e=>e()),this._eventCleanupFunctions=[],this._tagMap.clear(),this._eventListeners.clear(),this._valuesCache=null}get(e){let r=this._tagMap.get(e);return r?Array.from(r):[]}first(e){let r=this._tagMap.get(e);if(r&&r.size>0)return r.values().next().value}update(e,r){let t=this.get(e);for(let i of t)this._removeFromTagMap(i),Object.defineProperty(i,a.symbol,{value:r,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(i,r);return t.length>0&&this._emit("update",{items:t,tag:r}),t.length}show(e){let r=this.get(e);for(let t of r)(0,s.defined)(t.show)&&(t.show=!0);return this}hide(e){let r=this.get(e);for(let t of r)(0,s.defined)(t.show)&&(t.show=!1);return this}toggle(e){let r=this.get(e);for(let t of r)(0,s.defined)(t.show)&&(t.show=!t.show);return this}setProperty(e,r,t=this.tag){let i=this.get(t);for(let n of i)if(e in n&&typeof n[e]!="function"){if(p(n,e))throw Error(`Cannot set read-only property '${String(e)}' on ${n.constructor.name}`);n[e]=r}return this}filter(e,r){return(r?this.get(r):this.values).filter(e)}forEach(e,r){(r?this.get(r):this.values).forEach((i,n)=>e(i,n))}map(e,r){return(r?this.get(r):this.values).map(e)}find(e,r){return(r?this.get(r):this.values).find(e)}_emit(e,r){let t=this._eventListeners.get(e);if(t){let i={type:e,...r};t.forEach(n=>n(i))}}_addToTagMap(e,r){this._tagMap.has(r)||this._tagMap.set(r,new Set),this._tagMap.get(r)?.add(e)}_removeFromTagMap(e){let r=e[a.symbol],t=this._tagMap.get(r);t&&(t.delete(e),t.size===0&&this._tagMap.delete(r))}_invalidateCache=()=>{this._valuesCache=null};_setupCacheInvalidator(e){e instanceof s.EntityCollection?(e.collectionChanged.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.collectionChanged.removeEventListener(this._invalidateCache))):e instanceof s.PrimitiveCollection?(e.primitiveAdded.addEventListener(this._invalidateCache),e.primitiveRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.primitiveAdded.removeEventListener(this._invalidateCache),()=>e.primitiveRemoved.removeEventListener(this._invalidateCache))):e instanceof s.DataSourceCollection?(e.dataSourceAdded.addEventListener(this._invalidateCache),e.dataSourceMoved.addEventListener(this._invalidateCache),e.dataSourceRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.dataSourceAdded.removeEventListener(this._invalidateCache),()=>e.dataSourceMoved.removeEventListener(this._invalidateCache),()=>e.dataSourceRemoved.removeEventListener(this._invalidateCache))):e instanceof s.ImageryLayerCollection&&(e.layerAdded.addEventListener(this._invalidateCache),e.layerMoved.addEventListener(this._invalidateCache),e.layerRemoved.addEventListener(this._invalidateCache),e.layerShownOrHidden.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.layerAdded.removeEventListener(this._invalidateCache),()=>e.layerMoved.removeEventListener(this._invalidateCache),()=>e.layerRemoved.removeEventListener(this._invalidateCache),()=>e.layerShownOrHidden.removeEventListener(this._invalidateCache)))}},I=b;
1
+ "use strict";var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var O=(a,e)=>{for(var t in e)g(a,t,{get:e[t],enumerable:!0})},S=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of E(e))!w.call(a,i)&&i!==t&&g(a,i,{get:()=>e[i],enumerable:!(r=x(e,i))||r.enumerable});return a};var M=a=>S(g({},"__esModule",{value:!0}),a);var A={};O(A,{Collection:()=>I});module.exports=M(A);var d=require("cesium");var _;(c=>{let a=new Set,e=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function t(l,n={}){if(!e)return;let{once:h=!0,prefix:s="[DEPRECATED]",includeStack:u=!0,removeInVersion:m}=n;if(h&&a.has(l))return;let f=`${s} ${l}`;m&&(f+=` This feature will be removed in ${m}.`),typeof console<"u"&&console.warn&&(u?(console.warn(f),console.trace("Deprecation stack trace:")):console.warn(f)),h&&a.add(l)}c.warn=t;function r(l,n,h={}){let s=((...u)=>(t(n,h),l(...u)));return Object.defineProperty(s,"name",{value:l.name,configurable:!0}),s}c.deprecate=r;function i(){a.clear()}c.clear=i;function o(){return a.size}c.getWarningCount=o;function v(l){return a.has(l)}c.hasShown=v})(_||={});var C=_;var L=require("cesium");var P=require("cesium");var T=require("cesium"),y=class a{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new T.EllipsoidTerrainProvider,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,t,r){return this._defaultProvider.loadTileDataAvailability(e,t,r)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,t,r,i){if(this._ready){for(let o of this._regions)if(a.TerrainRegion.contains(o,e,t,r))return o.provider.requestTileGeometry(e,t,r,i);return this._defaultProvider.getTileDataAvailable(e,t,r)?this._defaultProvider.requestTileGeometry(e,t,r,i):this._fallbackProvider.requestTileGeometry(e,t,r,i)}}getTileDataAvailable(e,t,r){for(let i of this._regions)if(a.TerrainRegion.contains(i,e,t,r))return!0;return this._defaultProvider.getTileDataAvailable(e,t,r)}};(t=>{function a(r,i,o){return new t({regions:r.map(v=>({...v})),defaultProvider:i,fallbackProvider:o})}t.fromTileRanges=a;let e;(i=>{function r(o,v,c,l){if(o.levels&&!o.levels.includes(l))return!1;if(o.tiles){let n=o.tiles.get(l);if(!n)return!1;let[h,s]=Array.isArray(n.x)?n.x:[n.x,n.x],[u,m]=Array.isArray(n.y)?n.y:[n.y,n.y];return v>=h&&v<=s&&c>=u&&c<=m}return!1}i.contains=r})(e=t.TerrainRegion||={})})(y||={});function p(a,e){let t=!1,r=Object.getOwnPropertyDescriptor(a,e);if(!r){let i=Object.getPrototypeOf(a);for(;i&&!r;)r=Object.getOwnPropertyDescriptor(i,e),i=Object.getPrototypeOf(i)}return r&&r.get&&!r.set&&(t=!0),t}var X=C.deprecate;var b=class a{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;_eventCleanupFunctions=[];constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e,this._setupCacheInvalidator(e)}[Symbol.iterator](){return this.values[Symbol.iterator]()}get values(){if(this._valuesCache!==null)return this._valuesCache;let e;if(this.collection instanceof d.EntityCollection)e=this.collection.values;else{e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t))}return this._valuesCache=e,e}get length(){return this.values?.length||0}get tags(){return Array.from(this._tagMap.keys())}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,r){return Array.isArray(e)?e.forEach(i=>{this.add(i,t)}):(Object.defineProperty(e,a.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,r),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),this}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)&&this.collection.remove(e)&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),Array.isArray(e)){if(e.length===0)return this;for(let r of e)this.remove(r)}let t=this.get(e);if(t.length===0)return this;for(let r of t)this.remove(r);return this}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}destroy(){this._eventCleanupFunctions.forEach(e=>e()),this._eventCleanupFunctions=[],this._tagMap.clear(),this._eventListeners.clear(),this._valuesCache=null}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}update(e,t){let r=this.get(e);for(let i of r)this._removeFromTagMap(i),Object.defineProperty(i,a.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(i,t);return r.length>0&&this._emit("update",{items:r,tag:t}),r.length}show(e){let t=this.get(e);for(let r of t)(0,d.defined)(r.show)&&(r.show=!0);return this}hide(e){let t=this.get(e);for(let r of t)(0,d.defined)(r.show)&&(r.show=!1);return this}toggle(e){let t=this.get(e);for(let r of t)(0,d.defined)(r.show)&&(r.show=!r.show);return this}setProperty(e,t,r=this.tag){let i=this.get(r),o=e.split("."),v=["__proto__","constructor","prototype"];for(let c of i){let l=!1;for(let s of o)if(v.includes(s)){l=!0;break}if(l)continue;let n=c,h=0;for(;h<o.length-1;h++){let s=o[h];if(!(s in n)||(n=n[s],!n||typeof n!="object"))break}if(h===o.length-1){let s=o[o.length-1];if(s in n&&typeof n[s]!="function"){if(p(n,s))throw Error(`Cannot set read-only property '${e}' on ${c.constructor.name}`);n[s]=t}}}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((i,o)=>e(i,o))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}_emit(e,t){let r=this._eventListeners.get(e);if(r){let i={type:e,...t};r.forEach(o=>o(i))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[a.symbol],r=this._tagMap.get(t);r&&(r.delete(e),r.size===0&&this._tagMap.delete(t))}_invalidateCache=()=>{this._valuesCache=null};_setupCacheInvalidator(e){e instanceof d.EntityCollection?(e.collectionChanged.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.collectionChanged.removeEventListener(this._invalidateCache))):e instanceof d.PrimitiveCollection?(e.primitiveAdded.addEventListener(this._invalidateCache),e.primitiveRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.primitiveAdded.removeEventListener(this._invalidateCache),()=>e.primitiveRemoved.removeEventListener(this._invalidateCache))):e instanceof d.DataSourceCollection?(e.dataSourceAdded.addEventListener(this._invalidateCache),e.dataSourceMoved.addEventListener(this._invalidateCache),e.dataSourceRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.dataSourceAdded.removeEventListener(this._invalidateCache),()=>e.dataSourceMoved.removeEventListener(this._invalidateCache),()=>e.dataSourceRemoved.removeEventListener(this._invalidateCache))):e instanceof d.ImageryLayerCollection&&(e.layerAdded.addEventListener(this._invalidateCache),e.layerMoved.addEventListener(this._invalidateCache),e.layerRemoved.addEventListener(this._invalidateCache),e.layerShownOrHidden.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.layerAdded.removeEventListener(this._invalidateCache),()=>e.layerMoved.removeEventListener(this._invalidateCache),()=>e.layerRemoved.removeEventListener(this._invalidateCache),()=>e.layerShownOrHidden.removeEventListener(this._invalidateCache)))}},I=b;
@@ -1,5 +1,5 @@
1
1
  import { DataSourceCollection, EntityCollection, ImageryLayerCollection, PrimitiveCollection, Billboard, Cesium3DTileset, GroundPrimitive, Label, PointPrimitive, Polyline, Primitive, DataSource, Entity, ImageryLayer } from 'cesium';
2
- import { N as NonFunction } from '../type-check-B-zGL1Ne.cjs';
2
+ import { a as NestedKeyOf, b as NestedValueOf } from '../type-check-C17vkHMg.cjs';
3
3
 
4
4
  /**
5
5
  * @class
@@ -346,10 +346,11 @@ declare class Collection<C extends Collection.Base, I extends Collection.ItemFor
346
346
  toggle(by: Collection.Tag): this;
347
347
  /**
348
348
  * Sets a property value on all items with the specified tag.
349
+ * Supports nested property paths using dot notation (e.g., 'billboard.scale').
349
350
  *
350
- * @template K - A type
351
+ * @template Path - A nested property path type
351
352
  *
352
- * @param property - The property name to set
353
+ * @param property - The property name or nested path to set (e.g., 'name' or 'billboard.scale')
353
354
  * @param value - The value to set
354
355
  * @param by - The tag identifying which items to update
355
356
  * @returns The collection itself.
@@ -357,8 +358,12 @@ declare class Collection<C extends Collection.Base, I extends Collection.ItemFor
357
358
  * @example
358
359
  * // Change color of all buildings to red
359
360
  * collection.setProperty('color', Color.RED, 'buildings');
361
+ *
362
+ * @example
363
+ * // Change billboard scale using nested path
364
+ * collection.setProperty('billboard.scale', 2.0, 'buildings');
360
365
  */
361
- setProperty<K extends NonFunction<I>>(property: K, value: I[K], by?: Collection.Tag): this;
366
+ setProperty<Path extends NestedKeyOf<I>>(property: Path, value: NestedValueOf<I, Path>, by?: Collection.Tag): this;
362
367
  /**
363
368
  * Filters items in the collection based on a predicate function.
364
369
  * Optionally only filters items with a specific tag.
@@ -1,5 +1,5 @@
1
1
  import { DataSourceCollection, EntityCollection, ImageryLayerCollection, PrimitiveCollection, Billboard, Cesium3DTileset, GroundPrimitive, Label, PointPrimitive, Polyline, Primitive, DataSource, Entity, ImageryLayer } from 'cesium';
2
- import { N as NonFunction } from '../type-check-B-zGL1Ne.js';
2
+ import { a as NestedKeyOf, b as NestedValueOf } from '../type-check-C17vkHMg.js';
3
3
 
4
4
  /**
5
5
  * @class
@@ -346,10 +346,11 @@ declare class Collection<C extends Collection.Base, I extends Collection.ItemFor
346
346
  toggle(by: Collection.Tag): this;
347
347
  /**
348
348
  * Sets a property value on all items with the specified tag.
349
+ * Supports nested property paths using dot notation (e.g., 'billboard.scale').
349
350
  *
350
- * @template K - A type
351
+ * @template Path - A nested property path type
351
352
  *
352
- * @param property - The property name to set
353
+ * @param property - The property name or nested path to set (e.g., 'name' or 'billboard.scale')
353
354
  * @param value - The value to set
354
355
  * @param by - The tag identifying which items to update
355
356
  * @returns The collection itself.
@@ -357,8 +358,12 @@ declare class Collection<C extends Collection.Base, I extends Collection.ItemFor
357
358
  * @example
358
359
  * // Change color of all buildings to red
359
360
  * collection.setProperty('color', Color.RED, 'buildings');
361
+ *
362
+ * @example
363
+ * // Change billboard scale using nested path
364
+ * collection.setProperty('billboard.scale', 2.0, 'buildings');
360
365
  */
361
- setProperty<K extends NonFunction<I>>(property: K, value: I[K], by?: Collection.Tag): this;
366
+ setProperty<Path extends NestedKeyOf<I>>(property: Path, value: NestedValueOf<I, Path>, by?: Collection.Tag): this;
362
367
  /**
363
368
  * Filters items in the collection based on a predicate function.
364
369
  * Optionally only filters items with a specific tag.
@@ -1 +1 @@
1
- import{a}from"../chunk-WCOPDVHL.js";import"../chunk-B3AVU53O.js";import"../chunk-6ABRDFE5.js";export{a as Collection};
1
+ import{a}from"../chunk-L62HNMU7.js";import"../chunk-R5KTUXEL.js";import"../chunk-XHMLNB5Q.js";export{a as Collection};
@@ -1 +1 @@
1
- "use strict";var _=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var E=(o,e)=>{for(var r in e)_(o,r,{get:e[r],enumerable:!0})},R=(o,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of I(e))!O.call(o,t)&&t!==r&&_(o,t,{get:()=>e[t],enumerable:!(i=x(e,t))||i.enumerable});return o};var A=o=>R(_({},"__esModule",{value:!0}),o);var M={};E(M,{Deprecate:()=>P,TerrainVisualizer:()=>g,deprecate:()=>S,isGetterOnly:()=>L});module.exports=A(M);var C;(d=>{let o=new Set,e=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function r(l,s={}){if(!e)return;let{once:v=!0,prefix:c="[DEPRECATED]",includeStack:m=!0,removeInVersion:y}=s;if(v&&o.has(l))return;let p=`${c} ${l}`;y&&(p+=` This feature will be removed in ${y}.`),typeof console<"u"&&console.warn&&(m?(console.warn(p),console.trace("Deprecation stack trace:")):console.warn(p)),v&&o.add(l)}d.warn=r;function i(l,s,v={}){let c=((...m)=>(r(s,v),l(...m)));return Object.defineProperty(c,"name",{value:l.name,configurable:!0}),c}d.deprecate=i;function t(){o.clear()}d.clear=t;function a(){return o.size}d.getWarningCount=a;function n(l){return o.has(l)}d.hasShown=n})(C||={});var P=C;var u=require("cesium");var h=require("cesium");var w=require("cesium"),f=class o{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new w.EllipsoidTerrainProvider,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,r,i){return this._defaultProvider.loadTileDataAvailability(e,r,i)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,i,t){if(this._ready){for(let a of this._regions)if(o.TerrainRegion.contains(a,e,r,i))return a.provider.requestTileGeometry(e,r,i,t);return this._defaultProvider.getTileDataAvailable(e,r,i)?this._defaultProvider.requestTileGeometry(e,r,i,t):this._fallbackProvider.requestTileGeometry(e,r,i,t)}}getTileDataAvailable(e,r,i){for(let t of this._regions)if(o.TerrainRegion.contains(t,e,r,i)&&t.provider.getTileDataAvailable(e,r,i))return!0;return this._defaultProvider.getTileDataAvailable(e,r,i)}};(r=>{function o(i,t,a){return new r({regions:i.map(n=>({...n})),defaultProvider:t,fallbackProvider:a})}r.fromTileRanges=o;let e;(t=>{function i(a,n,d,l){if(a.levels&&!a.levels.includes(l))return!1;if(a.tiles){let s=a.tiles.get(l);if(!s)return!1;let[v,c]=Array.isArray(s.x)?s.x:[s.x,s.x],[m,y]=Array.isArray(s.y)?s.y:[s.y,s.y];return n>=v&&n<=c&&d>=m&&d<=y}return!1}t.contains=i})(e=r.TerrainRegion||={})})(f||={});var T=f;var b=class extends h.GridImageryProvider{_terrainProvider;_colors;constructor(e){let{terrainProvider:r,colors:i,...t}=e;super(t),this._terrainProvider=r,this._colors=i}requestImage(e,r,i){for(let t of this._terrainProvider.regions)if(this._isInRegion(t,e,r,i))return this._createCanvasElement(this._colors.get("custom")||h.Color.RED);return this._defaultProviderCoversArea(e,r,i)?this._createCanvasElement(this._colors.get("default")||h.Color.BLUE):this._createCanvasElement(this._colors.get("fallback")||h.Color.GRAY)}_isInRegion(e,r,i,t){if(T.TerrainRegion.contains(e,r,i,t))return!0;if(e.tiles){let a=r,n=i,d=t;for(;d>0;)if(d--,a=Math.floor(a/2),n=Math.floor(n/2),T.TerrainRegion.contains(e,a,n,d))return!0}return!1}_defaultProviderCoversArea(e,r,i){let t=e,a=r,n=i;for(;n>=0;){if(this._terrainProvider.defaultProvider.getTileDataAvailable(t,a,n))return!0;if(n===0)break;n--,t=Math.floor(t/2),a=Math.floor(a/2)}return!1}_createCanvasElement(e){let r=document.createElement("canvas");r.width=256,r.height=256;let i=r.getContext("2d"),t=e.withAlpha(.3).toCssColorString();if(!i)throw new Error("canvas context undefined");return i.fillStyle=t,i.fillRect(0,0,256,256),Promise.resolve(r)}};var g=class{_viewer;_terrainProvider;_visible=!1;_tileCoordinatesLayer;_hybridImageryLayer;_colors=new Map([["custom",u.Color.RED],["default",u.Color.BLUE],["fallback",u.Color.GRAY],["grid",u.Color.YELLOW]]);constructor(e,r){this._viewer=e,this._terrainProvider=r.terrainProvider,r.colors&&Object.entries(r.colors).forEach(([i,t])=>{this._colors.set(i,t)}),r.tile!==void 0&&r.tile&&this.show()}setTerrainProvider(e){this._terrainProvider=e,this.update()}update(){let e=this._visible,r=!!this._tileCoordinatesLayer,i=this._hybridImageryLayer?.alpha??.5;this.clear(),e&&this.show({showTileCoordinates:r,alpha:i})}clear(){this.hide()}show(e){if(!this._terrainProvider)return;let r=e?.showTileCoordinates??!0,i=e?.alpha??.5;r&&this._ensureTileCoordinatesLayer(),this.showImageryOverlay(i),this._visible=!0}_ensureTileCoordinatesLayer(){this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new u.TileCoordinatesImageryProvider({tilingScheme:this._terrainProvider.tilingScheme,color:u.Color.YELLOW})))}hide(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this.hideImageryOverlay(),this._visible=!1}setColors(e){Object.entries(e).forEach(([r,i])=>{this._colors.set(r,i)}),this.update()}showImageryOverlay(e=.5){this._hybridImageryLayer&&this._viewer.imageryLayers.remove(this._hybridImageryLayer);let r=new b({terrainProvider:this._terrainProvider,colors:this._colors,tilingScheme:this._terrainProvider.tilingScheme});this._hybridImageryLayer=this._viewer.imageryLayers.addImageryProvider(r),this._hybridImageryLayer.alpha=e,console.log("HybridImageryProvider overlay enabled")}hideImageryOverlay(){this._hybridImageryLayer&&(this._viewer.imageryLayers.remove(this._hybridImageryLayer),this._hybridImageryLayer=void 0,console.log("HybridImageryProvider overlay disabled"))}showTileCoordinates(){this._ensureTileCoordinatesLayer()}hideTileCoordinates(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0)}setAlpha(e){this._hybridImageryLayer&&(this._hybridImageryLayer.alpha=e)}flyTo(e,r){this._viewer.camera.flyTo({destination:e,...r,complete:()=>{this._visible&&this.update()}})}get tileCoordinatesVisible(){return!!this._tileCoordinatesLayer}get visible(){return this._visible}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};function L(o,e){let r=!1,i=Object.getOwnPropertyDescriptor(o,e);if(!i){let t=Object.getPrototypeOf(o);for(;t&&!i;)i=Object.getOwnPropertyDescriptor(t,e),t=Object.getPrototypeOf(t)}return i&&i.get&&!i.set&&(r=!0),r}var S=P.deprecate;
1
+ "use strict";var P=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var E=(o,e)=>{for(var r in e)P(o,r,{get:e[r],enumerable:!0})},R=(o,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of O(e))!I.call(o,t)&&t!==r&&P(o,t,{get:()=>e[t],enumerable:!(i=L(e,t))||i.enumerable});return o};var j=o=>R(P({},"__esModule",{value:!0}),o);var S={};E(S,{Deprecate:()=>_,TerrainVisualizer:()=>p,deprecate:()=>A,isGetterOnly:()=>w});module.exports=j(S);var T;(d=>{let o=new Set,e=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function r(s,n={}){if(!e)return;let{once:c=!0,prefix:v="[DEPRECATED]",includeStack:h=!0,removeInVersion:f}=n;if(c&&o.has(s))return;let g=`${v} ${s}`;f&&(g+=` This feature will be removed in ${f}.`),typeof console<"u"&&console.warn&&(h?(console.warn(g),console.trace("Deprecation stack trace:")):console.warn(g)),c&&o.add(s)}d.warn=r;function i(s,n,c={}){let v=((...h)=>(r(n,c),s(...h)));return Object.defineProperty(v,"name",{value:s.name,configurable:!0}),v}d.deprecate=i;function t(){o.clear()}d.clear=t;function a(){return o.size}d.getWarningCount=a;function l(s){return o.has(s)}d.hasShown=l})(T||={});var _=T;var u=require("cesium");var y=require("cesium");var C=require("cesium"),m=class o{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new C.EllipsoidTerrainProvider,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,r,i){return this._defaultProvider.loadTileDataAvailability(e,r,i)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,i,t){if(this._ready){for(let a of this._regions)if(o.TerrainRegion.contains(a,e,r,i))return a.provider.requestTileGeometry(e,r,i,t);return this._defaultProvider.getTileDataAvailable(e,r,i)?this._defaultProvider.requestTileGeometry(e,r,i,t):this._fallbackProvider.requestTileGeometry(e,r,i,t)}}getTileDataAvailable(e,r,i){for(let t of this._regions)if(o.TerrainRegion.contains(t,e,r,i))return!0;return this._defaultProvider.getTileDataAvailable(e,r,i)}};(r=>{function o(i,t,a){return new r({regions:i.map(l=>({...l})),defaultProvider:t,fallbackProvider:a})}r.fromTileRanges=o;let e;(t=>{function i(a,l,d,s){if(a.levels&&!a.levels.includes(s))return!1;if(a.tiles){let n=a.tiles.get(s);if(!n)return!1;let[c,v]=Array.isArray(n.x)?n.x:[n.x,n.x],[h,f]=Array.isArray(n.y)?n.y:[n.y,n.y];return l>=c&&l<=v&&d>=h&&d<=f}return!1}t.contains=i})(e=r.TerrainRegion||={})})(m||={});var x=m;var b=class extends y.GridImageryProvider{_terrainProvider;_colors;constructor(e){let{terrainProvider:r,colors:i,...t}=e;super(t),this._terrainProvider=r,this._colors=i}requestImage(e,r,i){for(let t of this._terrainProvider.regions)if(this._isInRegionOrUpsampled(t,e,r,i))return this._createCanvasElement(this._colors.get("custom")||y.Color.RED);return this._terrainProvider.defaultProvider.getTileDataAvailable(e,r,i)?this._createCanvasElement(this._colors.get("default")||y.Color.BLUE):this._createCanvasElement(this._colors.get("fallback")||y.Color.GRAY)}_isInRegionOrUpsampled(e,r,i,t){let a=r,l=i,d=t;for(;d>=0;){if(x.TerrainRegion.contains(e,a,l,d))return!0;if(d===0)break;d--,a=Math.floor(a/2),l=Math.floor(l/2)}return!1}_createCanvasElement(e){let r=document.createElement("canvas");r.width=256,r.height=256;let i=r.getContext("2d"),t=e.withAlpha(.3).toCssColorString();if(!i)throw new Error("canvas context undefined");return i.fillStyle=t,i.fillRect(0,0,256,256),Promise.resolve(r)}};var p=class{_viewer;_terrainProvider;_visible=!1;_tileCoordinatesLayer;_hybridImageryLayer;_colors=new Map([["custom",u.Color.RED],["default",u.Color.BLUE],["fallback",u.Color.GRAY],["grid",u.Color.YELLOW]]);constructor(e,r){this._viewer=e,this._terrainProvider=r.terrainProvider,r.colors&&Object.entries(r.colors).forEach(([i,t])=>{this._colors.set(i,t)}),r.tile!==void 0&&r.tile&&this.show()}setTerrainProvider(e){this._terrainProvider=e,this.update()}update(){let e=this._visible,r=!!this._tileCoordinatesLayer,i=this._hybridImageryLayer?.alpha??.5;this.clear(),e&&this.show({showTileCoordinates:r,alpha:i})}clear(){this.hide()}show(e){if(!this._terrainProvider)return;let r=e?.showTileCoordinates??!0,i=e?.alpha??.5;r&&this._ensureTileCoordinatesLayer(),this.showImageryOverlay(i),this._visible=!0}_ensureTileCoordinatesLayer(){this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new u.TileCoordinatesImageryProvider({tilingScheme:this._terrainProvider.tilingScheme,color:u.Color.YELLOW})))}hide(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this.hideImageryOverlay(),this._visible=!1}setColors(e){Object.entries(e).forEach(([r,i])=>{this._colors.set(r,i)}),this.update()}showImageryOverlay(e=.5){this._hybridImageryLayer&&this._viewer.imageryLayers.remove(this._hybridImageryLayer);let r=new b({terrainProvider:this._terrainProvider,colors:this._colors,tilingScheme:this._terrainProvider.tilingScheme});this._hybridImageryLayer=this._viewer.imageryLayers.addImageryProvider(r),this._hybridImageryLayer.alpha=e,console.log("HybridImageryProvider overlay enabled")}hideImageryOverlay(){this._hybridImageryLayer&&(this._viewer.imageryLayers.remove(this._hybridImageryLayer),this._hybridImageryLayer=void 0,console.log("HybridImageryProvider overlay disabled"))}showTileCoordinates(){this._ensureTileCoordinatesLayer()}hideTileCoordinates(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0)}setAlpha(e){this._hybridImageryLayer&&(this._hybridImageryLayer.alpha=e)}flyTo(e,r){this._viewer.camera.flyTo({destination:e,...r,complete:()=>{this._visible&&this.update()}})}get tileCoordinatesVisible(){return!!this._tileCoordinatesLayer}get visible(){return this._visible}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};function w(o,e){let r=!1,i=Object.getOwnPropertyDescriptor(o,e);if(!i){let t=Object.getPrototypeOf(o);for(;t&&!i;)i=Object.getOwnPropertyDescriptor(t,e),t=Object.getPrototypeOf(t)}return i&&i.get&&!i.set&&(r=!0),r}var A=_.deprecate;
@@ -1,6 +1,6 @@
1
1
  import { Viewer, Color, Rectangle } from 'cesium';
2
- import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-CVTrsFR5.cjs';
3
- export { N as NonFunction, i as isGetterOnly } from '../type-check-B-zGL1Ne.cjs';
2
+ import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-Th8n2hZ1.cjs';
3
+ export { a as NestedKeyOf, b as NestedValueOf, N as NonFunction, i as isGetterOnly } from '../type-check-C17vkHMg.cjs';
4
4
 
5
5
  /**
6
6
  * Utility for managing deprecation warnings in the cesium-utils library.
@@ -1,6 +1,6 @@
1
1
  import { Viewer, Color, Rectangle } from 'cesium';
2
- import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-CVTrsFR5.js';
3
- export { N as NonFunction, i as isGetterOnly } from '../type-check-B-zGL1Ne.js';
2
+ import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-Th8n2hZ1.js';
3
+ export { a as NestedKeyOf, b as NestedValueOf, N as NonFunction, i as isGetterOnly } from '../type-check-C17vkHMg.js';
4
4
 
5
5
  /**
6
6
  * Utility for managing deprecation warnings in the cesium-utils library.
package/dist/dev/index.js CHANGED
@@ -1 +1 @@
1
- import{a,b,c,d}from"../chunk-B3AVU53O.js";import"../chunk-6ABRDFE5.js";export{a as Deprecate,b as TerrainVisualizer,d as deprecate,c as isGetterOnly};
1
+ import{a,b,c,d}from"../chunk-R5KTUXEL.js";import"../chunk-XHMLNB5Q.js";export{a as Deprecate,b as TerrainVisualizer,d as deprecate,c as isGetterOnly};
@@ -1 +1 @@
1
- "use strict";var y=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var S=(r,t)=>{for(var i in t)y(r,i,{get:t[i],enumerable:!0})},m=(r,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _(t))!w.call(r,n)&&n!==i&&y(r,n,{get:()=>t[n],enumerable:!(e=p(t,n))||e.enumerable});return r};var v=r=>m(y({},"__esModule",{value:!0}),r);var b={};S(b,{Sunlight:()=>g});module.exports=v(b);var a=require("cesium"),s=require("cesium"),d=class{_sunPositionWC;_sunDirectionWC;_viewer;_analyzing=!1;_pointEntityId;_debugEntityIds=[];constructor(t){let{sunPositionWC:i,sunDirectionWC:e}=t.scene.context.uniformState;this._sunPositionWC=i,this._sunDirectionWC=e,this._viewer=t}get sunPositionWC(){return this._sunPositionWC}get sunDirectionWC(){return this._sunDirectionWC}get isAnalyzing(){return this._analyzing}getVirtualSunPosition(t,i=1e3){let e=s.Cartesian3.normalize(s.Cartesian3.subtract(this._sunPositionWC,t,new s.Cartesian3),new s.Cartesian3);return s.Cartesian3.multiplyByScalar(e,i,e),s.Cartesian3.add(t,e,new s.Cartesian3)}analyze(t,i,e){let n=this._viewer.clock.currentTime.clone();this._viewer.entities.add(this._createPointEntity(t,e?.debugShowPoints,e?.errorBoundary)),this._analyzing=!0;try{return i instanceof s.JulianDate?this._analyzeSingleTime(t,i,e):this._analyzeTimeRange(t,i,e)}finally{this._viewer.clock.currentTime=n,this._viewer.scene.render(),this._analyzing=!1,this._pointEntityId&&!e?.debugShowPoints&&this._viewer.entities.removeById(this._pointEntityId)}}clear(){this._debugEntityIds.forEach(t=>this._viewer.entities.removeById(t)),this._debugEntityIds=[],this._pointEntityId&&this._viewer.entities.removeById(this._pointEntityId)}_createPointEntity(t,i,e){let n=new a.Entity({point:{show:i,pixelSize:e??5},position:t});return this._pointEntityId=n.id,n}_analyzeSingleTime(t,i,e){this._viewer.clock.currentTime=i,this._viewer.scene.render();let n=new a.Ray(this.getVirtualSunPosition(t),this._sunDirectionWC);if(e?.debugShowRays){let l=new a.Entity({polyline:{positions:[this.getVirtualSunPosition(t),t],width:10,material:a.Color.YELLOW.withAlpha(.5)}});this._debugEntityIds.push(l.id),this._viewer.entities.add(l)}let u=this._viewer.scene.picking,{object:h,position:c}=u.pickFromRay(u,this._viewer.scene,n,this._getExcludedObjects(e?.objectsToExclude)),o=h instanceof a.Entity&&h.id===this._pointEntityId;if(e?.debugShowPoints&&c){let l=new a.Entity({point:{show:!0,pixelSize:5},position:c});this._debugEntityIds.push(l.id),this._viewer.entities.add(l)}return{timestamp:i.toString(),result:o}}_analyzeTimeRange(t,i,e){let n=[],{start:u,end:h,step:c}=i,o=u.clone();for(;s.JulianDate.compare(o,h)<=0;)n.push(this._analyzeSingleTime(t,o,e)),s.JulianDate.addSeconds(o,c,o);return n}_getExcludedObjects(t){return[...this._debugEntityIds.map(i=>this._viewer.entities.getById(i)).filter(Boolean),...t??[]]}},g=d;
1
+ "use strict";var y=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var w=(o,t)=>{for(var i in t)y(o,i,{get:t[i],enumerable:!0})},S=(o,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of p(t))!_.call(o,n)&&n!==i&&y(o,n,{get:()=>t[n],enumerable:!(e=g(t,n))||e.enumerable});return o};var m=o=>S(y({},"__esModule",{value:!0}),o);var b={};w(b,{Sunlight:()=>d});module.exports=m(b);var r=require("cesium"),s=require("cesium"),c=class{_sunPositionWC;_sunDirectionWC;_viewer;_analyzing=!1;_pointEntityId;_debugEntityIds=[];constructor(t){let{sunPositionWC:i,sunDirectionWC:e}=t.scene.context.uniformState;this._sunPositionWC=i,this._sunDirectionWC=e,this._viewer=t}get sunPositionWC(){return this._sunPositionWC}get sunDirectionWC(){return this._sunDirectionWC}get isAnalyzing(){return this._analyzing}getVirtualSunPosition(t,i=1e3){let e=s.Cartesian3.normalize(s.Cartesian3.subtract(this._sunPositionWC,t,new s.Cartesian3),new s.Cartesian3);return s.Cartesian3.multiplyByScalar(e,i,e),s.Cartesian3.add(t,e,new s.Cartesian3)}analyze(t,i,e){let n=this._viewer.clock.currentTime.clone();this._viewer.entities.add(this._createPointEntity(t,e?.debugShowPoints,e?.errorBoundary)),this._analyzing=!0;try{return i instanceof s.JulianDate?this._analyzeSingleTime(t,i,e):this._analyzeTimeRange(t,i,e)}finally{this._viewer.clock.currentTime=n,this._viewer.scene.render(),this._analyzing=!1,this._pointEntityId&&!e?.debugShowPoints&&this._viewer.entities.removeById(this._pointEntityId)}}clear(){this._debugEntityIds.forEach(t=>this._viewer.entities.removeById(t)),this._debugEntityIds=[],this._pointEntityId&&this._viewer.entities.removeById(this._pointEntityId)}_createPointEntity(t,i,e){let n=new r.Entity({point:{show:i,color:r.Color.RED.withAlpha(.5),pixelSize:e??5},position:t});return this._pointEntityId=n.id,n}_analyzeSingleTime(t,i,e){this._viewer.clock.currentTime=i,this._viewer.scene.render();let n=new r.Ray(this.getVirtualSunPosition(t),this._sunDirectionWC);if(e?.debugShowRays){let a=new r.Entity({polyline:{positions:[this.getVirtualSunPosition(t),t],width:10,material:r.Color.YELLOW.withAlpha(.5)}});this._debugEntityIds.push(a.id),this._viewer.entities.add(a)}let{object:l,position:u}=this._viewer.scene.pickFromRay(n,this._getExcludedObjects(e?.objectsToExclude),2),h=l instanceof r.Entity&&l.id===this._pointEntityId;if(e?.debugShowPoints&&u){let a=new r.Entity({point:{show:!0,pixelSize:5},position:u});this._debugEntityIds.push(a.id),this._viewer.entities.add(a)}return{timestamp:i.toString(),result:h}}_analyzeTimeRange(t,i,e){let n=[],{start:l,end:u,step:h}=i,a=l.clone();for(;s.JulianDate.compare(a,u)<=0;)n.push(this._analyzeSingleTime(t,a,e)),s.JulianDate.addSeconds(a,h,a);return n}_getExcludedObjects(t){return[...this._debugEntityIds.map(i=>this._viewer.entities.getById(i)).filter(Boolean),...t??[]]}},d=c;
@@ -1 +1 @@
1
- import{Color as d,Entity as h,Ray as g}from"cesium";import{Cartesian3 as s,JulianDate as c}from"cesium";var y=class{_sunPositionWC;_sunDirectionWC;_viewer;_analyzing=!1;_pointEntityId;_debugEntityIds=[];constructor(t){let{sunPositionWC:i,sunDirectionWC:e}=t.scene.context.uniformState;this._sunPositionWC=i,this._sunDirectionWC=e,this._viewer=t}get sunPositionWC(){return this._sunPositionWC}get sunDirectionWC(){return this._sunDirectionWC}get isAnalyzing(){return this._analyzing}getVirtualSunPosition(t,i=1e3){let e=s.normalize(s.subtract(this._sunPositionWC,t,new s),new s);return s.multiplyByScalar(e,i,e),s.add(t,e,new s)}analyze(t,i,e){let n=this._viewer.clock.currentTime.clone();this._viewer.entities.add(this._createPointEntity(t,e?.debugShowPoints,e?.errorBoundary)),this._analyzing=!0;try{return i instanceof c?this._analyzeSingleTime(t,i,e):this._analyzeTimeRange(t,i,e)}finally{this._viewer.clock.currentTime=n,this._viewer.scene.render(),this._analyzing=!1,this._pointEntityId&&!e?.debugShowPoints&&this._viewer.entities.removeById(this._pointEntityId)}}clear(){this._debugEntityIds.forEach(t=>this._viewer.entities.removeById(t)),this._debugEntityIds=[],this._pointEntityId&&this._viewer.entities.removeById(this._pointEntityId)}_createPointEntity(t,i,e){let n=new h({point:{show:i,pixelSize:e??5},position:t});return this._pointEntityId=n.id,n}_analyzeSingleTime(t,i,e){this._viewer.clock.currentTime=i,this._viewer.scene.render();let n=new g(this.getVirtualSunPosition(t),this._sunDirectionWC);if(e?.debugShowRays){let r=new h({polyline:{positions:[this.getVirtualSunPosition(t),t],width:10,material:d.YELLOW.withAlpha(.5)}});this._debugEntityIds.push(r.id),this._viewer.entities.add(r)}let o=this._viewer.scene.picking,{object:l,position:u}=o.pickFromRay(o,this._viewer.scene,n,this._getExcludedObjects(e?.objectsToExclude)),a=l instanceof h&&l.id===this._pointEntityId;if(e?.debugShowPoints&&u){let r=new h({point:{show:!0,pixelSize:5},position:u});this._debugEntityIds.push(r.id),this._viewer.entities.add(r)}return{timestamp:i.toString(),result:a}}_analyzeTimeRange(t,i,e){let n=[],{start:o,end:l,step:u}=i,a=o.clone();for(;c.compare(a,l)<=0;)n.push(this._analyzeSingleTime(t,a,e)),c.addSeconds(a,u,a);return n}_getExcludedObjects(t){return[...this._debugEntityIds.map(i=>this._viewer.entities.getById(i)).filter(Boolean),...t??[]]}},p=y;export{p as Sunlight};
1
+ import{Color as c,Entity as l,Ray as d}from"cesium";import{Cartesian3 as a,JulianDate as h}from"cesium";var y=class{_sunPositionWC;_sunDirectionWC;_viewer;_analyzing=!1;_pointEntityId;_debugEntityIds=[];constructor(t){let{sunPositionWC:i,sunDirectionWC:e}=t.scene.context.uniformState;this._sunPositionWC=i,this._sunDirectionWC=e,this._viewer=t}get sunPositionWC(){return this._sunPositionWC}get sunDirectionWC(){return this._sunDirectionWC}get isAnalyzing(){return this._analyzing}getVirtualSunPosition(t,i=1e3){let e=a.normalize(a.subtract(this._sunPositionWC,t,new a),new a);return a.multiplyByScalar(e,i,e),a.add(t,e,new a)}analyze(t,i,e){let s=this._viewer.clock.currentTime.clone();this._viewer.entities.add(this._createPointEntity(t,e?.debugShowPoints,e?.errorBoundary)),this._analyzing=!0;try{return i instanceof h?this._analyzeSingleTime(t,i,e):this._analyzeTimeRange(t,i,e)}finally{this._viewer.clock.currentTime=s,this._viewer.scene.render(),this._analyzing=!1,this._pointEntityId&&!e?.debugShowPoints&&this._viewer.entities.removeById(this._pointEntityId)}}clear(){this._debugEntityIds.forEach(t=>this._viewer.entities.removeById(t)),this._debugEntityIds=[],this._pointEntityId&&this._viewer.entities.removeById(this._pointEntityId)}_createPointEntity(t,i,e){let s=new l({point:{show:i,color:c.RED.withAlpha(.5),pixelSize:e??5},position:t});return this._pointEntityId=s.id,s}_analyzeSingleTime(t,i,e){this._viewer.clock.currentTime=i,this._viewer.scene.render();let s=new d(this.getVirtualSunPosition(t),this._sunDirectionWC);if(e?.debugShowRays){let n=new l({polyline:{positions:[this.getVirtualSunPosition(t),t],width:10,material:c.YELLOW.withAlpha(.5)}});this._debugEntityIds.push(n.id),this._viewer.entities.add(n)}let{object:r,position:o}=this._viewer.scene.pickFromRay(s,this._getExcludedObjects(e?.objectsToExclude),2),u=r instanceof l&&r.id===this._pointEntityId;if(e?.debugShowPoints&&o){let n=new l({point:{show:!0,pixelSize:5},position:o});this._debugEntityIds.push(n.id),this._viewer.entities.add(n)}return{timestamp:i.toString(),result:u}}_analyzeTimeRange(t,i,e){let s=[],{start:r,end:o,step:u}=i,n=r.clone();for(;h.compare(n,o)<=0;)s.push(this._analyzeSingleTime(t,n,e)),h.addSeconds(n,u,n);return s}_getExcludedObjects(t){return[...this._debugEntityIds.map(i=>this._viewer.entities.getById(i)).filter(Boolean),...t??[]]}},g=y;export{g as Sunlight};
@@ -105,7 +105,7 @@ declare class HybridTerrainProvider implements TerrainProvider {
105
105
  * @param request The request.
106
106
  * @returns A promise for the requested terrain.
107
107
  */
108
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<Awaited<TerrainData>> | undefined;
108
+ requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
109
109
  /**
110
110
  * Determines whether data for a tile is available to be loaded. Checks the specified terrain regions first.
111
111
  * @param x - The X coordinate of the tile for which to request geometry.
@@ -105,7 +105,7 @@ declare class HybridTerrainProvider implements TerrainProvider {
105
105
  * @param request The request.
106
106
  * @returns A promise for the requested terrain.
107
107
  */
108
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<Awaited<TerrainData>> | undefined;
108
+ requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
109
109
  /**
110
110
  * Determines whether data for a tile is available to be loaded. Checks the specified terrain regions first.
111
111
  * @param x - The X coordinate of the tile for which to request geometry.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var w=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var B=(r,e)=>{for(var t in e)w(r,t,{get:e[t],enumerable:!0})},W=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of j(e))!F.call(r,n)&&n!==t&&w(r,n,{get:()=>e[n],enumerable:!(i=V(e,n))||i.enumerable});return r};var q=r=>W(w({},"__esModule",{value:!0}),r);var N={};B(N,{Collection:()=>O,Highlight:()=>I,HybridTerrainProvider:()=>T,SilhouetteHighlight:()=>v,SurfaceHighlight:()=>f,cloneViewer:()=>H,syncCamera:()=>C});module.exports=q(N);var m=require("cesium");var A;(u=>{let r=new Set,e=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function t(s,d={}){if(!e)return;let{once:g=!0,prefix:p="[DEPRECATED]",includeStack:y=!0,removeInVersion:b}=d;if(g&&r.has(s))return;let P=`${p} ${s}`;b&&(P+=` This feature will be removed in ${b}.`),typeof console<"u"&&console.warn&&(y?(console.warn(P),console.trace("Deprecation stack trace:")):console.warn(P)),g&&r.add(s)}u.warn=t;function i(s,d,g={}){let p=((...y)=>(t(d,g),s(...y)));return Object.defineProperty(p,"name",{value:s.name,configurable:!0}),p}u.deprecate=i;function n(){r.clear()}u.clear=n;function a(){return r.size}u.getWarningCount=a;function c(s){return r.has(s)}u.hasShown=c})(A||={});var R=A;var G=require("cesium");var D=require("cesium");var M=require("cesium"),_=class r{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new M.EllipsoidTerrainProvider,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,t,i){return this._defaultProvider.loadTileDataAvailability(e,t,i)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,t,i,n){if(this._ready){for(let a of this._regions)if(r.TerrainRegion.contains(a,e,t,i))return a.provider.requestTileGeometry(e,t,i,n);return this._defaultProvider.getTileDataAvailable(e,t,i)?this._defaultProvider.requestTileGeometry(e,t,i,n):this._fallbackProvider.requestTileGeometry(e,t,i,n)}}getTileDataAvailable(e,t,i){for(let n of this._regions)if(r.TerrainRegion.contains(n,e,t,i)&&n.provider.getTileDataAvailable(e,t,i))return!0;return this._defaultProvider.getTileDataAvailable(e,t,i)}};(t=>{function r(i,n,a){return new t({regions:i.map(c=>({...c})),defaultProvider:n,fallbackProvider:a})}t.fromTileRanges=r;let e;(n=>{function i(a,c,u,s){if(a.levels&&!a.levels.includes(s))return!1;if(a.tiles){let d=a.tiles.get(s);if(!d)return!1;let[g,p]=Array.isArray(d.x)?d.x:[d.x,d.x],[y,b]=Array.isArray(d.y)?d.y:[d.y,d.y];return c>=g&&c<=p&&u>=y&&u<=b}return!1}n.contains=i})(e=t.TerrainRegion||={})})(_||={});var T=_;function E(r,e){let t=!1,i=Object.getOwnPropertyDescriptor(r,e);if(!i){let n=Object.getPrototypeOf(r);for(;n&&!i;)i=Object.getOwnPropertyDescriptor(n,e),n=Object.getPrototypeOf(n)}return i&&i.get&&!i.set&&(t=!0),t}var se=R.deprecate;var L=class r{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;_eventCleanupFunctions=[];constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e,this._setupCacheInvalidator(e)}[Symbol.iterator](){return this.values[Symbol.iterator]()}get values(){if(this._valuesCache!==null)return this._valuesCache;let e;if(this.collection instanceof m.EntityCollection)e=this.collection.values;else{e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t))}return this._valuesCache=e,e}get length(){return this.values?.length||0}get tags(){return Array.from(this._tagMap.keys())}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(n=>{this.add(n,t)}):(Object.defineProperty(e,r.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),this}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)&&this.collection.remove(e)&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),Array.isArray(e)){if(e.length===0)return this;for(let i of e)this.remove(i)}let t=this.get(e);if(t.length===0)return this;for(let i of t)this.remove(i);return this}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}destroy(){this._eventCleanupFunctions.forEach(e=>e()),this._eventCleanupFunctions=[],this._tagMap.clear(),this._eventListeners.clear(),this._valuesCache=null}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}update(e,t){let i=this.get(e);for(let n of i)this._removeFromTagMap(n),Object.defineProperty(n,r.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(n,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)(0,m.defined)(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)(0,m.defined)(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)(0,m.defined)(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let n=this.get(i);for(let a of n)if(e in a&&typeof a[e]!="function"){if(E(a,e))throw Error(`Cannot set read-only property '${String(e)}' on ${a.constructor.name}`);a[e]=t}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((n,a)=>e(n,a))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}_emit(e,t){let i=this._eventListeners.get(e);if(i){let n={type:e,...t};i.forEach(a=>a(n))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[r.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache=()=>{this._valuesCache=null};_setupCacheInvalidator(e){e instanceof m.EntityCollection?(e.collectionChanged.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.collectionChanged.removeEventListener(this._invalidateCache))):e instanceof m.PrimitiveCollection?(e.primitiveAdded.addEventListener(this._invalidateCache),e.primitiveRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.primitiveAdded.removeEventListener(this._invalidateCache),()=>e.primitiveRemoved.removeEventListener(this._invalidateCache))):e instanceof m.DataSourceCollection?(e.dataSourceAdded.addEventListener(this._invalidateCache),e.dataSourceMoved.addEventListener(this._invalidateCache),e.dataSourceRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.dataSourceAdded.removeEventListener(this._invalidateCache),()=>e.dataSourceMoved.removeEventListener(this._invalidateCache),()=>e.dataSourceRemoved.removeEventListener(this._invalidateCache))):e instanceof m.ImageryLayerCollection&&(e.layerAdded.addEventListener(this._invalidateCache),e.layerMoved.addEventListener(this._invalidateCache),e.layerRemoved.addEventListener(this._invalidateCache),e.layerShownOrHidden.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.layerAdded.removeEventListener(this._invalidateCache),()=>e.layerMoved.removeEventListener(this._invalidateCache),()=>e.layerRemoved.removeEventListener(this._invalidateCache),()=>e.layerShownOrHidden.removeEventListener(this._invalidateCache)))}},O=L;var h=require("cesium");var l=require("cesium"),v=class{_color=l.Color.RED;_silhouette;_composite;_stages;_entity;_currentObject;_currentOptions;constructor(e){this._stages=e.scene.postProcessStages,this._silhouette=l.PostProcessStageLibrary.createEdgeDetectionStage(),this._silhouette.uniforms.color=this._color,this._silhouette.uniforms.length=.01,this._silhouette.selected=[],this._composite=l.PostProcessStageLibrary.createSilhouetteStage([this._silhouette]),this._stages.add(this._composite)}get color(){return this._color}set color(e){this._color=e}get currentObject(){return this._currentObject}show(e,t){if((0,l.defined)(e)&&!(this._currentObject===e&&this._optionsEqual(this._currentOptions,t))){this._clearHighlights();try{if(e instanceof l.Cesium3DTileFeature)this._silhouette.uniforms.color=t?.color||this._color,this._silhouette.selected.push(e);else{if(!e.model)return;this._entity=e,e.model.silhouetteSize=new l.ConstantProperty(t?.width||2),e.model.silhouetteColor=new l.ConstantProperty(t?.color||this._color)}this._currentObject=e,this._currentOptions=t?{...t}:void 0}catch(i){console.error("Failed to highlight object:",i),this._currentObject=void 0,this._currentOptions=void 0}}}hide(){this._clearHighlights(),this._currentObject=void 0,this._currentOptions=void 0}destroy(){this.hide(),this._composite&&this._stages.remove(this._composite),this._currentObject=void 0,this._currentOptions=void 0}_optionsEqual(e,t){return!e&&!t?!0:!e||!t?!1:e.outline===t.outline&&e.width===t.width&&l.Color.equals(e.color||this._color,t.color||this._color)}_clearHighlights(){this._silhouette.selected.length>0&&(this._silhouette.selected=[]),this._entity?.model&&(this._entity.model.silhouetteColor=new l.ConstantProperty(l.Color.TRANSPARENT),this._entity.model.silhouetteSize=new l.ConstantProperty(0),this._entity=void 0)}};var o=require("cesium"),f=class{_color=o.Color.RED;_entity;_entities;_currentObject;_currentOptions;constructor(e){this._entities=e.entities,this._entity=this._entities.add(new o.Entity({id:`highlight-entity-${Math.random().toString(36).substring(2)}`,show:!1}))}get color(){return this._color}set color(e){this._color=e}get entity(){return this._entity}get currentObject(){return this._currentObject}show(e,t){if(!(!(0,o.defined)(e)||!this._entity)){if(this._currentObject===e&&this._optionsEqual(this._currentOptions,t))return this._entity;this._clearGeometries();try{if(e instanceof o.Entity&&(e.polygon||e.polyline||e.rectangle))this._update(e,t);else if(e instanceof o.GroundPrimitive)this._update(e,t);else{this._currentObject=void 0,this._currentOptions=void 0;return}return this._currentObject=e,this._currentOptions=t?{...t}:void 0,this._entity.show=!0,this._entity}catch(i){console.error("Failed to highlight object:",i),this._currentObject=void 0,this._currentOptions=void 0;return}}}hide(){this._entity&&(this._entity.show=!1),this._currentObject=void 0,this._currentOptions=void 0}destroy(){this._entities.contains(this._entity)&&this._entities.remove(this._entity),this._currentObject=void 0,this._currentOptions=void 0}_optionsEqual(e,t){return!e&&!t?!0:!e||!t?!1:e.outline===t.outline&&e.width===t.width&&o.Color.equals(e.color||this._color,t.color||this._color)}_clearGeometries(){this._entity.polygon=void 0,this._entity.polyline=void 0,this._entity.rectangle=void 0}_update(e,t={color:this._color,outline:!1,width:2}){if(e instanceof o.Entity){if(e.polygon)if(t.outline){let i=e.polygon.hierarchy?.getValue();if(i&&i.positions){let n;i.positions.length>0&&!o.Cartesian3.equals(i.positions[0],i.positions[i.positions.length-1])?n=[...i.positions,i.positions[0]]:n=i.positions,this._entity.polyline=new o.PolylineGraphics({positions:n,material:t.color,width:t.width||2,clampToGround:!0})}}else{let i=e.polygon.hierarchy?.getValue();i&&(this._entity.polygon=new o.PolygonGraphics({hierarchy:i,material:t.color,heightReference:o.HeightReference.CLAMP_TO_GROUND,classificationType:e.polygon.classificationType?.getValue()||o.ClassificationType.BOTH}))}else if(e.polyline){let i=e.polyline.positions?.getValue();if(i){let n=e.polyline.width?.getValue();this._entity.polyline=new o.PolylineGraphics({positions:i,material:t.color,width:n+(t.width||2),clampToGround:!0})}}else if(e.rectangle)if(t.outline){let i=e.rectangle.coordinates?.getValue();if(i){let n=[o.Cartesian3.fromRadians(i.west,i.north),o.Cartesian3.fromRadians(i.east,i.north),o.Cartesian3.fromRadians(i.east,i.south),o.Cartesian3.fromRadians(i.west,i.south),o.Cartesian3.fromRadians(i.west,i.north)];this._entity.polyline=new o.PolylineGraphics({positions:n,material:t.color,width:t.width||2,clampToGround:!0})}}else{let i=e.rectangle.coordinates?.getValue();i&&(this._entity.rectangle=new o.RectangleGraphics({coordinates:i,material:t.color,heightReference:o.HeightReference.CLAMP_TO_GROUND}))}}else if(e instanceof o.GroundPrimitive){let i=e.geometryInstances,n=Array.isArray(i)?i[0]:i;if(!n.geometry.attributes.position)return;let a=n.geometry.attributes.position.values,c=[];for(let u=0;u<a.length;u+=3)c.push(new o.Cartesian3(a[u],a[u+1],a[u+2]));t.outline?this._entity.polyline=new o.PolylineGraphics({positions:c,material:t.color,width:t.width||2,clampToGround:!0}):this._entity.polygon=new o.PolygonGraphics({hierarchy:new o.PolygonHierarchy(c),material:t.color,heightReference:o.HeightReference.CLAMP_TO_GROUND,classificationType:o.ClassificationType.BOTH})}}};var x=class r{static instances=new WeakMap;_surface;_silhouette;_color=h.Color.RED;constructor(e){this._surface=new f(e),this._silhouette=new v(e),this._surface.color=this._color,this._silhouette.color=this._color}get color(){return this._color}set color(e){this._color=e,this._surface.color=e,this._silhouette.color=e}static getInstance(e){let t=e.container;return r.instances.has(t)||r.instances.set(t,new r(e)),r.instances.get(t)}static releaseInstance(e){let t=e.container,i=r.instances.get(t);i&&(i.hide(),i._surface&&i._surface.destroy(),i._silhouette&&i._silhouette.destroy(),r.instances.delete(t))}show(e,t={color:this._color}){let i=this._getObject(e);if((0,h.defined)(i))return i instanceof h.Cesium3DTileFeature?this._silhouette.show(i,t):i instanceof h.Entity&&i.model?this._silhouette.show(i,t):this._surface.show(i,t)}_getObject(e){if((0,h.defined)(e)){if(e instanceof h.Entity||e instanceof h.Cesium3DTileFeature||e instanceof h.GroundPrimitive)return e;if(e.id instanceof h.Entity)return e.id;if(e.primitive instanceof h.GroundPrimitive)return e.primitive}}hide(){this._surface.hide(),this._silhouette.hide()}},I=x;var k=require("cesium");var S=require("cesium");function C(r,e){if((0,S.defined)(r)&&(0,S.defined)(e)){let{camera:t}=r;e.camera.position=t.positionWC.clone(),e.camera.direction=t.directionWC.clone(),e.camera.up=t.upWC.clone()}}function H(r,e,t){let i={baseLayerPicker:r.baseLayerPicker!==void 0,geocoder:r.geocoder!==void 0,homeButton:r.homeButton!==void 0,sceneModePicker:r.sceneModePicker!==void 0,timeline:r.timeline!==void 0,navigationHelpButton:r.navigationHelpButton!==void 0,animation:r.animation!==void 0,fullscreenButton:r.fullscreenButton!==void 0,shouldAnimate:r.clock.shouldAnimate,terrainProvider:r.terrainProvider,requestRenderMode:r.scene.requestRenderMode,infoBox:r.infoBox!==void 0},n=new k.Viewer(e,{...i,...t});C(r,n);let a=r.imageryLayers;n.imageryLayers.removeAll();for(let s=0;s<a.length;s++){let d=a.get(s);n.imageryLayers.addImageryProvider(d.imageryProvider,s)}n.clock.startTime=r.clock.startTime.clone(),n.clock.stopTime=r.clock.stopTime.clone(),n.clock.currentTime=r.clock.currentTime.clone(),n.clock.multiplier=r.clock.multiplier,n.clock.clockStep=r.clock.clockStep,n.clock.clockRange=r.clock.clockRange,n.clock.shouldAnimate=r.clock.shouldAnimate,n.scene.globe.enableLighting=r.scene.globe.enableLighting,n.scene.globe.depthTestAgainstTerrain=r.scene.globe.depthTestAgainstTerrain,n.scene.screenSpaceCameraController.enableCollisionDetection=r.scene.screenSpaceCameraController.enableCollisionDetection;let c=r.scene.screenSpaceCameraController.tiltEventTypes;c&&(n.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(c)?[...c]:c);let u=r.scene.screenSpaceCameraController.zoomEventTypes;return u&&(n.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(u)?[...u]:u),n}
1
+ "use strict";var w=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var B=(r,e)=>{for(var t in e)w(r,t,{get:e[t],enumerable:!0})},N=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of G(e))!F.call(r,n)&&n!==t&&w(r,n,{get:()=>e[n],enumerable:!(i=V(e,n))||i.enumerable});return r};var W=r=>N(w({},"__esModule",{value:!0}),r);var q={};B(q,{Collection:()=>x,Highlight:()=>I,HybridTerrainProvider:()=>T,SilhouetteHighlight:()=>g,SurfaceHighlight:()=>p,cloneViewer:()=>H,syncCamera:()=>C});module.exports=W(q);var v=require("cesium");var R;(d=>{let r=new Set,e=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function t(l,s={}){if(!e)return;let{once:f=!0,prefix:c="[DEPRECATED]",includeStack:y=!0,removeInVersion:b}=s;if(f&&r.has(l))return;let P=`${c} ${l}`;b&&(P+=` This feature will be removed in ${b}.`),typeof console<"u"&&console.warn&&(y?(console.warn(P),console.trace("Deprecation stack trace:")):console.warn(P)),f&&r.add(l)}d.warn=t;function i(l,s,f={}){let c=((...y)=>(t(s,f),l(...y)));return Object.defineProperty(c,"name",{value:l.name,configurable:!0}),c}d.deprecate=i;function n(){r.clear()}d.clear=n;function a(){return r.size}d.getWarningCount=a;function h(l){return r.has(l)}d.hasShown=h})(R||={});var A=R;var k=require("cesium");var D=require("cesium");var M=require("cesium"),_=class r{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new M.EllipsoidTerrainProvider,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,t,i){return this._defaultProvider.loadTileDataAvailability(e,t,i)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,t,i,n){if(this._ready){for(let a of this._regions)if(r.TerrainRegion.contains(a,e,t,i))return a.provider.requestTileGeometry(e,t,i,n);return this._defaultProvider.getTileDataAvailable(e,t,i)?this._defaultProvider.requestTileGeometry(e,t,i,n):this._fallbackProvider.requestTileGeometry(e,t,i,n)}}getTileDataAvailable(e,t,i){for(let n of this._regions)if(r.TerrainRegion.contains(n,e,t,i))return!0;return this._defaultProvider.getTileDataAvailable(e,t,i)}};(t=>{function r(i,n,a){return new t({regions:i.map(h=>({...h})),defaultProvider:n,fallbackProvider:a})}t.fromTileRanges=r;let e;(n=>{function i(a,h,d,l){if(a.levels&&!a.levels.includes(l))return!1;if(a.tiles){let s=a.tiles.get(l);if(!s)return!1;let[f,c]=Array.isArray(s.x)?s.x:[s.x,s.x],[y,b]=Array.isArray(s.y)?s.y:[s.y,s.y];return h>=f&&h<=c&&d>=y&&d<=b}return!1}n.contains=i})(e=t.TerrainRegion||={})})(_||={});var T=_;function O(r,e){let t=!1,i=Object.getOwnPropertyDescriptor(r,e);if(!i){let n=Object.getPrototypeOf(r);for(;n&&!i;)i=Object.getOwnPropertyDescriptor(n,e),n=Object.getPrototypeOf(n)}return i&&i.get&&!i.set&&(t=!0),t}var se=A.deprecate;var E=class r{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;_eventCleanupFunctions=[];constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e,this._setupCacheInvalidator(e)}[Symbol.iterator](){return this.values[Symbol.iterator]()}get values(){if(this._valuesCache!==null)return this._valuesCache;let e;if(this.collection instanceof v.EntityCollection)e=this.collection.values;else{e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t))}return this._valuesCache=e,e}get length(){return this.values?.length||0}get tags(){return Array.from(this._tagMap.keys())}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(n=>{this.add(n,t)}):(Object.defineProperty(e,r.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),this}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)&&this.collection.remove(e)&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),Array.isArray(e)){if(e.length===0)return this;for(let i of e)this.remove(i)}let t=this.get(e);if(t.length===0)return this;for(let i of t)this.remove(i);return this}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}destroy(){this._eventCleanupFunctions.forEach(e=>e()),this._eventCleanupFunctions=[],this._tagMap.clear(),this._eventListeners.clear(),this._valuesCache=null}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}update(e,t){let i=this.get(e);for(let n of i)this._removeFromTagMap(n),Object.defineProperty(n,r.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(n,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let n=this.get(i),a=e.split("."),h=["__proto__","constructor","prototype"];for(let d of n){let l=!1;for(let c of a)if(h.includes(c)){l=!0;break}if(l)continue;let s=d,f=0;for(;f<a.length-1;f++){let c=a[f];if(!(c in s)||(s=s[c],!s||typeof s!="object"))break}if(f===a.length-1){let c=a[a.length-1];if(c in s&&typeof s[c]!="function"){if(O(s,c))throw Error(`Cannot set read-only property '${e}' on ${d.constructor.name}`);s[c]=t}}}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((n,a)=>e(n,a))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}_emit(e,t){let i=this._eventListeners.get(e);if(i){let n={type:e,...t};i.forEach(a=>a(n))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[r.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache=()=>{this._valuesCache=null};_setupCacheInvalidator(e){e instanceof v.EntityCollection?(e.collectionChanged.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.collectionChanged.removeEventListener(this._invalidateCache))):e instanceof v.PrimitiveCollection?(e.primitiveAdded.addEventListener(this._invalidateCache),e.primitiveRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.primitiveAdded.removeEventListener(this._invalidateCache),()=>e.primitiveRemoved.removeEventListener(this._invalidateCache))):e instanceof v.DataSourceCollection?(e.dataSourceAdded.addEventListener(this._invalidateCache),e.dataSourceMoved.addEventListener(this._invalidateCache),e.dataSourceRemoved.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.dataSourceAdded.removeEventListener(this._invalidateCache),()=>e.dataSourceMoved.removeEventListener(this._invalidateCache),()=>e.dataSourceRemoved.removeEventListener(this._invalidateCache))):e instanceof v.ImageryLayerCollection&&(e.layerAdded.addEventListener(this._invalidateCache),e.layerMoved.addEventListener(this._invalidateCache),e.layerRemoved.addEventListener(this._invalidateCache),e.layerShownOrHidden.addEventListener(this._invalidateCache),this._eventCleanupFunctions.push(()=>e.layerAdded.removeEventListener(this._invalidateCache),()=>e.layerMoved.removeEventListener(this._invalidateCache),()=>e.layerRemoved.removeEventListener(this._invalidateCache),()=>e.layerShownOrHidden.removeEventListener(this._invalidateCache)))}},x=E;var m=require("cesium");var u=require("cesium"),g=class{_color=u.Color.RED;_silhouette;_composite;_stages;_entity;_currentObject;_currentOptions;constructor(e){this._stages=e.scene.postProcessStages,this._silhouette=u.PostProcessStageLibrary.createEdgeDetectionStage(),this._silhouette.uniforms.color=this._color,this._silhouette.uniforms.length=.01,this._silhouette.selected=[],this._composite=u.PostProcessStageLibrary.createSilhouetteStage([this._silhouette]),this._stages.add(this._composite)}get color(){return this._color}set color(e){this._color=e}get currentObject(){return this._currentObject}show(e,t){if((0,u.defined)(e)&&!(this._currentObject===e&&this._optionsEqual(this._currentOptions,t))){this._clearHighlights();try{if(e instanceof u.Cesium3DTileFeature)this._silhouette.uniforms.color=t?.color||this._color,this._silhouette.selected.push(e);else{if(!e.model)return;this._entity=e,e.model.silhouetteSize=new u.ConstantProperty(t?.width||2),e.model.silhouetteColor=new u.ConstantProperty(t?.color||this._color)}this._currentObject=e,this._currentOptions=t?{...t}:void 0}catch(i){console.error("Failed to highlight object:",i),this._currentObject=void 0,this._currentOptions=void 0}}}hide(){this._clearHighlights(),this._currentObject=void 0,this._currentOptions=void 0}destroy(){this.hide(),this._composite&&this._stages.remove(this._composite),this._currentObject=void 0,this._currentOptions=void 0}_optionsEqual(e,t){return!e&&!t?!0:!e||!t?!1:e.outline===t.outline&&e.width===t.width&&u.Color.equals(e.color||this._color,t.color||this._color)}_clearHighlights(){this._silhouette.selected.length>0&&(this._silhouette.selected=[]),this._entity?.model&&(this._entity.model.silhouetteColor=new u.ConstantProperty(u.Color.TRANSPARENT),this._entity.model.silhouetteSize=new u.ConstantProperty(0),this._entity=void 0)}};var o=require("cesium"),p=class{_color=o.Color.RED;_entity;_entities;_currentObject;_currentOptions;constructor(e){this._entities=e.entities,this._entity=this._entities.add(new o.Entity({id:`highlight-entity-${Math.random().toString(36).substring(2)}`,show:!1}))}get color(){return this._color}set color(e){this._color=e}get entity(){return this._entity}get currentObject(){return this._currentObject}show(e,t){if(!(!(0,o.defined)(e)||!this._entity)){if(this._currentObject===e&&this._optionsEqual(this._currentOptions,t))return this._entity;this._clearGeometries();try{if(e instanceof o.Entity&&(e.polygon||e.polyline||e.rectangle))this._update(e,t);else if(e instanceof o.GroundPrimitive)this._update(e,t);else{this._currentObject=void 0,this._currentOptions=void 0;return}return this._currentObject=e,this._currentOptions=t?{...t}:void 0,this._entity.show=!0,this._entity}catch(i){console.error("Failed to highlight object:",i),this._currentObject=void 0,this._currentOptions=void 0;return}}}hide(){this._entity&&(this._entity.show=!1),this._currentObject=void 0,this._currentOptions=void 0}destroy(){this._entities.contains(this._entity)&&this._entities.remove(this._entity),this._currentObject=void 0,this._currentOptions=void 0}_optionsEqual(e,t){return!e&&!t?!0:!e||!t?!1:e.outline===t.outline&&e.width===t.width&&o.Color.equals(e.color||this._color,t.color||this._color)}_clearGeometries(){this._entity.polygon=void 0,this._entity.polyline=void 0,this._entity.rectangle=void 0}_update(e,t={color:this._color,outline:!1,width:2}){if(e instanceof o.Entity){if(e.polygon)if(t.outline){let i=e.polygon.hierarchy?.getValue();if(i&&i.positions){let n;i.positions.length>0&&!o.Cartesian3.equals(i.positions[0],i.positions[i.positions.length-1])?n=[...i.positions,i.positions[0]]:n=i.positions,this._entity.polyline=new o.PolylineGraphics({positions:n,material:t.color,width:t.width||2,clampToGround:!0})}}else{let i=e.polygon.hierarchy?.getValue();i&&(this._entity.polygon=new o.PolygonGraphics({hierarchy:i,material:t.color,heightReference:o.HeightReference.CLAMP_TO_GROUND,classificationType:e.polygon.classificationType?.getValue()||o.ClassificationType.BOTH}))}else if(e.polyline){let i=e.polyline.positions?.getValue();if(i){let n=e.polyline.width?.getValue();this._entity.polyline=new o.PolylineGraphics({positions:i,material:t.color,width:n+(t.width||2),clampToGround:!0})}}else if(e.rectangle)if(t.outline){let i=e.rectangle.coordinates?.getValue();if(i){let n=[o.Cartesian3.fromRadians(i.west,i.north),o.Cartesian3.fromRadians(i.east,i.north),o.Cartesian3.fromRadians(i.east,i.south),o.Cartesian3.fromRadians(i.west,i.south),o.Cartesian3.fromRadians(i.west,i.north)];this._entity.polyline=new o.PolylineGraphics({positions:n,material:t.color,width:t.width||2,clampToGround:!0})}}else{let i=e.rectangle.coordinates?.getValue();i&&(this._entity.rectangle=new o.RectangleGraphics({coordinates:i,material:t.color,heightReference:o.HeightReference.CLAMP_TO_GROUND}))}}else if(e instanceof o.GroundPrimitive){let i=e.geometryInstances,n=Array.isArray(i)?i[0]:i;if(!n.geometry.attributes.position)return;let a=n.geometry.attributes.position.values,h=[];for(let d=0;d<a.length;d+=3)h.push(new o.Cartesian3(a[d],a[d+1],a[d+2]));t.outline?this._entity.polyline=new o.PolylineGraphics({positions:h,material:t.color,width:t.width||2,clampToGround:!0}):this._entity.polygon=new o.PolygonGraphics({hierarchy:new o.PolygonHierarchy(h),material:t.color,heightReference:o.HeightReference.CLAMP_TO_GROUND,classificationType:o.ClassificationType.BOTH})}}};var L=class r{static instances=new WeakMap;_surface;_silhouette;_color=m.Color.RED;constructor(e){this._surface=new p(e),this._silhouette=new g(e),this._surface.color=this._color,this._silhouette.color=this._color}get color(){return this._color}set color(e){this._color=e,this._surface.color=e,this._silhouette.color=e}static getInstance(e){let t=e.container;return r.instances.has(t)||r.instances.set(t,new r(e)),r.instances.get(t)}static releaseInstance(e){let t=e.container,i=r.instances.get(t);i&&(i.hide(),i._surface&&i._surface.destroy(),i._silhouette&&i._silhouette.destroy(),r.instances.delete(t))}show(e,t={color:this._color}){let i=this._getObject(e);if((0,m.defined)(i))return i instanceof m.Cesium3DTileFeature?this._silhouette.show(i,t):i instanceof m.Entity&&i.model?this._silhouette.show(i,t):this._surface.show(i,t)}_getObject(e){if((0,m.defined)(e)){if(e instanceof m.Entity||e instanceof m.Cesium3DTileFeature||e instanceof m.GroundPrimitive)return e;if(e.id instanceof m.Entity)return e.id;if(e.primitive instanceof m.GroundPrimitive)return e.primitive}}hide(){this._surface.hide(),this._silhouette.hide()}},I=L;var j=require("cesium");var S=require("cesium");function C(r,e){if((0,S.defined)(r)&&(0,S.defined)(e)){let{camera:t}=r;e.camera.position=t.positionWC.clone(),e.camera.direction=t.directionWC.clone(),e.camera.up=t.upWC.clone()}}function H(r,e,t){let i={baseLayerPicker:r.baseLayerPicker!==void 0,geocoder:r.geocoder!==void 0,homeButton:r.homeButton!==void 0,sceneModePicker:r.sceneModePicker!==void 0,timeline:r.timeline!==void 0,navigationHelpButton:r.navigationHelpButton!==void 0,animation:r.animation!==void 0,fullscreenButton:r.fullscreenButton!==void 0,shouldAnimate:r.clock.shouldAnimate,terrainProvider:r.terrainProvider,requestRenderMode:r.scene.requestRenderMode,infoBox:r.infoBox!==void 0},n=new j.Viewer(e,{...i,...t});C(r,n);let a=r.imageryLayers;n.imageryLayers.removeAll();for(let l=0;l<a.length;l++){let s=a.get(l);n.imageryLayers.addImageryProvider(s.imageryProvider,l)}n.clock.startTime=r.clock.startTime.clone(),n.clock.stopTime=r.clock.stopTime.clone(),n.clock.currentTime=r.clock.currentTime.clone(),n.clock.multiplier=r.clock.multiplier,n.clock.clockStep=r.clock.clockStep,n.clock.clockRange=r.clock.clockRange,n.clock.shouldAnimate=r.clock.shouldAnimate,n.scene.globe.enableLighting=r.scene.globe.enableLighting,n.scene.globe.depthTestAgainstTerrain=r.scene.globe.depthTestAgainstTerrain,n.scene.screenSpaceCameraController.enableCollisionDetection=r.scene.screenSpaceCameraController.enableCollisionDetection;let h=r.scene.screenSpaceCameraController.tiltEventTypes;h&&(n.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(h)?[...h]:h);let d=r.scene.screenSpaceCameraController.zoomEventTypes;return d&&(n.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(d)?[...d]:d),n}
package/dist/index.d.cts CHANGED
@@ -2,6 +2,6 @@ export { Collection } from './collection/index.cjs';
2
2
  export { Highlight, SilhouetteHighlight, SurfaceHighlight } from './highlight/index.cjs';
3
3
  export { TerrainOptions, TerrainRegion, TerrainTiles } from './terrain/index.cjs';
4
4
  export { cloneViewer, syncCamera } from './viewer/index.cjs';
5
- export { H as HybridTerrainProvider } from './hybrid-terrain-provider-CVTrsFR5.cjs';
5
+ export { H as HybridTerrainProvider } from './hybrid-terrain-provider-Th8n2hZ1.cjs';
6
6
  import 'cesium';
7
- import './type-check-B-zGL1Ne.cjs';
7
+ import './type-check-C17vkHMg.cjs';
package/dist/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export { Collection } from './collection/index.js';
2
2
  export { Highlight, SilhouetteHighlight, SurfaceHighlight } from './highlight/index.js';
3
3
  export { TerrainOptions, TerrainRegion, TerrainTiles } from './terrain/index.js';
4
4
  export { cloneViewer, syncCamera } from './viewer/index.js';
5
- export { H as HybridTerrainProvider } from './hybrid-terrain-provider-CVTrsFR5.js';
5
+ export { H as HybridTerrainProvider } from './hybrid-terrain-provider-Th8n2hZ1.js';
6
6
  import 'cesium';
7
- import './type-check-B-zGL1Ne.js';
7
+ import './type-check-C17vkHMg.js';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as e}from"./chunk-WCOPDVHL.js";import"./chunk-B3AVU53O.js";import{a as i,b as o,c as t}from"./chunk-PSCNWZUR.js";import"./chunk-6I6OKECI.js";import{a as r}from"./chunk-6ABRDFE5.js";import{a as p,b as m}from"./chunk-Z2COOTT4.js";export{e as Collection,t as Highlight,r as HybridTerrainProvider,i as SilhouetteHighlight,o as SurfaceHighlight,m as cloneViewer,p as syncCamera};
1
+ import{a as e}from"./chunk-L62HNMU7.js";import"./chunk-R5KTUXEL.js";import{a as i,b as o,c as t}from"./chunk-PSCNWZUR.js";import"./chunk-6I6OKECI.js";import{a as r}from"./chunk-XHMLNB5Q.js";import{a as p,b as m}from"./chunk-Z2COOTT4.js";export{e as Collection,t as Highlight,r as HybridTerrainProvider,i as SilhouetteHighlight,o as SurfaceHighlight,m as cloneViewer,p as syncCamera};
@@ -1 +1 @@
1
- "use strict";var u=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var p=(t,r)=>{for(var e in r)u(t,e,{get:r[e],enumerable:!0})},_=(t,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of y(r))!h.call(t,a)&&a!==e&&u(t,a,{get:()=>r[a],enumerable:!(i=c(r,a))||i.enumerable});return t};var x=t=>_(u({},"__esModule",{value:!0}),t);var A={};p(A,{HybridTerrainProvider:()=>m});module.exports=x(A);var b=require("cesium"),l=class t{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(r){this._defaultProvider=r.defaultProvider,this._fallbackProvider=r.fallbackProvider||new b.EllipsoidTerrainProvider,this._tilingScheme=r.defaultProvider.tilingScheme,this._regions=r.regions||[],this._availability=r.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(r,e,i){return this._defaultProvider.loadTileDataAvailability(r,e,i)}getLevelMaximumGeometricError(r){return this._defaultProvider.getLevelMaximumGeometricError(r)}requestTileGeometry(r,e,i,a){if(this._ready){for(let n of this._regions)if(t.TerrainRegion.contains(n,r,e,i))return n.provider.requestTileGeometry(r,e,i,a);return this._defaultProvider.getTileDataAvailable(r,e,i)?this._defaultProvider.requestTileGeometry(r,e,i,a):this._fallbackProvider.requestTileGeometry(r,e,i,a)}}getTileDataAvailable(r,e,i){for(let a of this._regions)if(t.TerrainRegion.contains(a,r,e,i)&&a.provider.getTileDataAvailable(r,e,i))return!0;return this._defaultProvider.getTileDataAvailable(r,e,i)}};(e=>{function t(i,a,n){return new e({regions:i.map(d=>({...d})),defaultProvider:a,fallbackProvider:n})}e.fromTileRanges=t;let r;(a=>{function i(n,d,s,v){if(n.levels&&!n.levels.includes(v))return!1;if(n.tiles){let o=n.tiles.get(v);if(!o)return!1;let[f,T]=Array.isArray(o.x)?o.x:[o.x,o.x],[P,g]=Array.isArray(o.y)?o.y:[o.y,o.y];return d>=f&&d<=T&&s>=P&&s<=g}return!1}a.contains=i})(r=e.TerrainRegion||={})})(l||={});var m=l;
1
+ "use strict";var u=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var p=(a,r)=>{for(var e in r)u(a,e,{get:r[e],enumerable:!0})},_=(a,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of y(r))!h.call(a,t)&&t!==e&&u(a,t,{get:()=>r[t],enumerable:!(i=c(r,t))||i.enumerable});return a};var x=a=>_(u({},"__esModule",{value:!0}),a);var R={};p(R,{HybridTerrainProvider:()=>b});module.exports=x(R);var m=require("cesium"),l=class a{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(r){this._defaultProvider=r.defaultProvider,this._fallbackProvider=r.fallbackProvider||new m.EllipsoidTerrainProvider,this._tilingScheme=r.defaultProvider.tilingScheme,this._regions=r.regions||[],this._availability=r.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(r,e,i){return this._defaultProvider.loadTileDataAvailability(r,e,i)}getLevelMaximumGeometricError(r){return this._defaultProvider.getLevelMaximumGeometricError(r)}requestTileGeometry(r,e,i,t){if(this._ready){for(let n of this._regions)if(a.TerrainRegion.contains(n,r,e,i))return n.provider.requestTileGeometry(r,e,i,t);return this._defaultProvider.getTileDataAvailable(r,e,i)?this._defaultProvider.requestTileGeometry(r,e,i,t):this._fallbackProvider.requestTileGeometry(r,e,i,t)}}getTileDataAvailable(r,e,i){for(let t of this._regions)if(a.TerrainRegion.contains(t,r,e,i))return!0;return this._defaultProvider.getTileDataAvailable(r,e,i)}};(e=>{function a(i,t,n){return new e({regions:i.map(d=>({...d})),defaultProvider:t,fallbackProvider:n})}e.fromTileRanges=a;let r;(t=>{function i(n,d,s,v){if(n.levels&&!n.levels.includes(v))return!1;if(n.tiles){let o=n.tiles.get(v);if(!o)return!1;let[f,T]=Array.isArray(o.x)?o.x:[o.x,o.x],[P,g]=Array.isArray(o.y)?o.y:[o.y,o.y];return d>=f&&d<=T&&s>=P&&s<=g}return!1}t.contains=i})(r=e.TerrainRegion||={})})(l||={});var b=l;
@@ -1,4 +1,4 @@
1
- import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-CVTrsFR5.cjs';
1
+ import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-Th8n2hZ1.cjs';
2
2
  import 'cesium';
3
3
 
4
4
  type TerrainTiles = NonNullable<HybridTerrainProvider.TerrainRegion["tiles"]>;
@@ -1,4 +1,4 @@
1
- import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-CVTrsFR5.js';
1
+ import { H as HybridTerrainProvider } from '../hybrid-terrain-provider-Th8n2hZ1.js';
2
2
  import 'cesium';
3
3
 
4
4
  type TerrainTiles = NonNullable<HybridTerrainProvider.TerrainRegion["tiles"]>;
@@ -1 +1 @@
1
- import"../chunk-6I6OKECI.js";import{a}from"../chunk-6ABRDFE5.js";export{a as HybridTerrainProvider};
1
+ import"../chunk-6I6OKECI.js";import{a}from"../chunk-XHMLNB5Q.js";export{a as HybridTerrainProvider};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Runtime type validator to identify the non-function property.
3
+ */
4
+ type NonFunction<T> = {
5
+ [K in keyof T]: T[K] extends Function ? never : K;
6
+ }[keyof T];
7
+ /**
8
+ * Helper type to track recursion depth using tuple length.
9
+ */
10
+ type Prev = [never, 0, 1, 2, 3, 4, 5, ...0[]];
11
+ /**
12
+ * Recursively creates a union of property paths for nested objects.
13
+ * Limited to 3 levels of depth to prevent infinite type recursion.
14
+ * Excludes function properties from the path generation.
15
+ *
16
+ * @template ObjectType - The object type to extract property paths from
17
+ * @template Depth - Internal counter to limit recursion depth (default: 3)
18
+ *
19
+ * @example
20
+ * type Paths = NestedKeyOf<{ a: { b: { c: number } } }>
21
+ * // Result: "a" | "a.b" | "a.b.c"
22
+ */
23
+ type NestedKeyOf<ObjectType, Depth extends number = 3> = Depth extends 0 ? never : ObjectType extends object ? {
24
+ [Property in keyof ObjectType]: ObjectType[Property] extends Function | ((...args: any[]) => any) ? never : Property extends string ? Property | (ObjectType[Property] extends object ? `${Property}.${NestedKeyOf<ObjectType[Property], Prev[Depth]>}` : never) : never;
25
+ }[keyof ObjectType] : never;
26
+ /**
27
+ * Extracts the type of a nested property from a property path string.
28
+ *
29
+ * @template ObjectType - The object type to extract the value type from
30
+ * @template Path - The property path string (e.g., "a.b.c")
31
+ *
32
+ * @example
33
+ * type Value = NestedValueOf<{ a: { b: number } }, "a.b">
34
+ * // Result: number
35
+ */
36
+ type NestedValueOf<ObjectType, Path extends string> = Path extends `${infer Cur}.${infer Rest}` ? Cur extends keyof ObjectType ? NestedValueOf<ObjectType[Cur], Rest> : never : Path extends keyof ObjectType ? ObjectType[Path] : never;
37
+ /**
38
+ * Examine the property descriptors at runtime
39
+ * to detect properties that only have getters.
40
+ * (read-only accessor properties)
41
+ * @param o The object to examine.
42
+ * @param k The key value of the property.
43
+ */
44
+ declare function isGetterOnly(o: object, k: string | number | symbol): boolean;
45
+
46
+ export { type NonFunction as N, type NestedKeyOf as a, type NestedValueOf as b, isGetterOnly as i };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Runtime type validator to identify the non-function property.
3
+ */
4
+ type NonFunction<T> = {
5
+ [K in keyof T]: T[K] extends Function ? never : K;
6
+ }[keyof T];
7
+ /**
8
+ * Helper type to track recursion depth using tuple length.
9
+ */
10
+ type Prev = [never, 0, 1, 2, 3, 4, 5, ...0[]];
11
+ /**
12
+ * Recursively creates a union of property paths for nested objects.
13
+ * Limited to 3 levels of depth to prevent infinite type recursion.
14
+ * Excludes function properties from the path generation.
15
+ *
16
+ * @template ObjectType - The object type to extract property paths from
17
+ * @template Depth - Internal counter to limit recursion depth (default: 3)
18
+ *
19
+ * @example
20
+ * type Paths = NestedKeyOf<{ a: { b: { c: number } } }>
21
+ * // Result: "a" | "a.b" | "a.b.c"
22
+ */
23
+ type NestedKeyOf<ObjectType, Depth extends number = 3> = Depth extends 0 ? never : ObjectType extends object ? {
24
+ [Property in keyof ObjectType]: ObjectType[Property] extends Function | ((...args: any[]) => any) ? never : Property extends string ? Property | (ObjectType[Property] extends object ? `${Property}.${NestedKeyOf<ObjectType[Property], Prev[Depth]>}` : never) : never;
25
+ }[keyof ObjectType] : never;
26
+ /**
27
+ * Extracts the type of a nested property from a property path string.
28
+ *
29
+ * @template ObjectType - The object type to extract the value type from
30
+ * @template Path - The property path string (e.g., "a.b.c")
31
+ *
32
+ * @example
33
+ * type Value = NestedValueOf<{ a: { b: number } }, "a.b">
34
+ * // Result: number
35
+ */
36
+ type NestedValueOf<ObjectType, Path extends string> = Path extends `${infer Cur}.${infer Rest}` ? Cur extends keyof ObjectType ? NestedValueOf<ObjectType[Cur], Rest> : never : Path extends keyof ObjectType ? ObjectType[Path] : never;
37
+ /**
38
+ * Examine the property descriptors at runtime
39
+ * to detect properties that only have getters.
40
+ * (read-only accessor properties)
41
+ * @param o The object to examine.
42
+ * @param k The key value of the property.
43
+ */
44
+ declare function isGetterOnly(o: object, k: string | number | symbol): boolean;
45
+
46
+ export { type NonFunction as N, type NestedKeyOf as a, type NestedValueOf as b, isGetterOnly as i };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juun-roh/cesium-utils",
3
- "version": "0.3.9",
3
+ "version": "0.4.1",
4
4
  "description": "Solve common Cesium.js challenges: combine multiple terrain sources, tag and filter entity collections, and add visual highlights.",
5
5
  "keywords": [
6
6
  "cesium",
@@ -99,10 +99,10 @@
99
99
  "@commitlint/format": "^20.2.0",
100
100
  "@commitlint/types": "^20.2.0",
101
101
  "@eslint/js": "^9.39.2",
102
- "@types/node": "^24.10.4",
103
- "@typescript-eslint/eslint-plugin": "^8.49.0",
104
- "@typescript-eslint/parser": "^8.49.0",
105
- "@vitest/coverage-v8": "^4.0.15",
102
+ "@types/node": "^25.0.3",
103
+ "@typescript-eslint/eslint-plugin": "^8.50.0",
104
+ "@typescript-eslint/parser": "^8.50.0",
105
+ "@vitest/coverage-v8": "^4.0.16",
106
106
  "cesium": "^1.136.0",
107
107
  "eslint": "^9.39.2",
108
108
  "eslint-plugin-jsdoc": "^61.5.0",
@@ -115,12 +115,13 @@
115
115
  "tsup": "^8.5.1",
116
116
  "typedoc": "^0.28.15",
117
117
  "typescript": "^5.9.3",
118
- "vite": "^7.2.7",
119
- "vitest": "^4.0.15"
118
+ "vite": "^7.3.0",
119
+ "vitest": "^4.0.16"
120
120
  },
121
121
  "scripts": {
122
122
  "build": "tsup",
123
123
  "build:dev": "tsup --watch",
124
+ "check-types": "tsc -p ./tsconfig.json --noEmit",
124
125
  "clean": "rimraf dist",
125
126
  "lint": "eslint .",
126
127
  "ci:publish": "pnpm build && pnpm publish --no-git-checks",
@@ -1 +0,0 @@
1
- import{EllipsoidTerrainProvider as g}from"cesium";var o=class d{_regions;_defaultProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._defaultProvider=e.defaultProvider,this._fallbackProvider=e.fallbackProvider||new g,this._tilingScheme=e.defaultProvider.tilingScheme,this._regions=e.regions||[],this._availability=e.defaultProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get regions(){return[...this._regions]}get defaultProvider(){return this._defaultProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._defaultProvider?.credit}get errorEvent(){return this._defaultProvider.errorEvent}get hasWaterMask(){return this._defaultProvider.hasWaterMask}get hasVertexNormals(){return this._defaultProvider.hasVertexNormals}loadTileDataAvailability(e,r,i){return this._defaultProvider.loadTileDataAvailability(e,r,i)}getLevelMaximumGeometricError(e){return this._defaultProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,i,t){if(this._ready){for(let a of this._regions)if(d.TerrainRegion.contains(a,e,r,i))return a.provider.requestTileGeometry(e,r,i,t);return this._defaultProvider.getTileDataAvailable(e,r,i)?this._defaultProvider.requestTileGeometry(e,r,i,t):this._fallbackProvider.requestTileGeometry(e,r,i,t)}}getTileDataAvailable(e,r,i){for(let t of this._regions)if(d.TerrainRegion.contains(t,e,r,i)&&t.provider.getTileDataAvailable(e,r,i))return!0;return this._defaultProvider.getTileDataAvailable(e,r,i)}};(r=>{function d(i,t,a){return new r({regions:i.map(l=>({...l})),defaultProvider:t,fallbackProvider:a})}r.fromTileRanges=d;let e;(t=>{function i(a,l,u,s){if(a.levels&&!a.levels.includes(s))return!1;if(a.tiles){let n=a.tiles.get(s);if(!n)return!1;let[v,m]=Array.isArray(n.x)?n.x:[n.x,n.x],[b,f]=Array.isArray(n.y)?n.y:[n.y,n.y];return l>=v&&l<=m&&u>=b&&u<=f}return!1}t.contains=i})(e=r.TerrainRegion||={})})(o||={});var T=o;export{T as a};
@@ -1 +0,0 @@
1
- import{a as f}from"./chunk-6ABRDFE5.js";var _;(l=>{let o=new Set,r=typeof process<"u"?process.env.CESIUM_UTILS_DISABLE_DEPRECATION_WARNINGS!=="true":!0;function e(s,y={}){if(!r)return;let{once:h=!0,prefix:v="[DEPRECATED]",includeStack:u=!0,removeInVersion:b}=y;if(h&&o.has(s))return;let m=`${v} ${s}`;b&&(m+=` This feature will be removed in ${b}.`),typeof console<"u"&&console.warn&&(u?(console.warn(m),console.trace("Deprecation stack trace:")):console.warn(m)),h&&o.add(s)}l.warn=e;function i(s,y,h={}){let v=((...u)=>(e(y,h),s(...u)));return Object.defineProperty(v,"name",{value:s.name,configurable:!0}),v}l.deprecate=i;function t(){o.clear()}l.clear=t;function n(){return o.size}l.getWarningCount=n;function a(s){return o.has(s)}l.hasShown=a})(_||={});var C=_;import{Color as c,TileCoordinatesImageryProvider as P}from"cesium";import{Color as p,GridImageryProvider as w}from"cesium";var d=class extends w{_terrainProvider;_colors;constructor(r){let{terrainProvider:e,colors:i,...t}=r;super(t),this._terrainProvider=e,this._colors=i}requestImage(r,e,i){for(let t of this._terrainProvider.regions)if(this._isInRegion(t,r,e,i))return this._createCanvasElement(this._colors.get("custom")||p.RED);return this._defaultProviderCoversArea(r,e,i)?this._createCanvasElement(this._colors.get("default")||p.BLUE):this._createCanvasElement(this._colors.get("fallback")||p.GRAY)}_isInRegion(r,e,i,t){if(f.TerrainRegion.contains(r,e,i,t))return!0;if(r.tiles){let n=e,a=i,l=t;for(;l>0;)if(l--,n=Math.floor(n/2),a=Math.floor(a/2),f.TerrainRegion.contains(r,n,a,l))return!0}return!1}_defaultProviderCoversArea(r,e,i){let t=r,n=e,a=i;for(;a>=0;){if(this._terrainProvider.defaultProvider.getTileDataAvailable(t,n,a))return!0;if(a===0)break;a--,t=Math.floor(t/2),n=Math.floor(n/2)}return!1}_createCanvasElement(r){let e=document.createElement("canvas");e.width=256,e.height=256;let i=e.getContext("2d"),t=r.withAlpha(.3).toCssColorString();if(!i)throw new Error("canvas context undefined");return i.fillStyle=t,i.fillRect(0,0,256,256),Promise.resolve(e)}};var g=class{_viewer;_terrainProvider;_visible=!1;_tileCoordinatesLayer;_hybridImageryLayer;_colors=new Map([["custom",c.RED],["default",c.BLUE],["fallback",c.GRAY],["grid",c.YELLOW]]);constructor(r,e){this._viewer=r,this._terrainProvider=e.terrainProvider,e.colors&&Object.entries(e.colors).forEach(([i,t])=>{this._colors.set(i,t)}),e.tile!==void 0&&e.tile&&this.show()}setTerrainProvider(r){this._terrainProvider=r,this.update()}update(){let r=this._visible,e=!!this._tileCoordinatesLayer,i=this._hybridImageryLayer?.alpha??.5;this.clear(),r&&this.show({showTileCoordinates:e,alpha:i})}clear(){this.hide()}show(r){if(!this._terrainProvider)return;let e=r?.showTileCoordinates??!0,i=r?.alpha??.5;e&&this._ensureTileCoordinatesLayer(),this.showImageryOverlay(i),this._visible=!0}_ensureTileCoordinatesLayer(){this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new P({tilingScheme:this._terrainProvider.tilingScheme,color:c.YELLOW})))}hide(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this.hideImageryOverlay(),this._visible=!1}setColors(r){Object.entries(r).forEach(([e,i])=>{this._colors.set(e,i)}),this.update()}showImageryOverlay(r=.5){this._hybridImageryLayer&&this._viewer.imageryLayers.remove(this._hybridImageryLayer);let e=new d({terrainProvider:this._terrainProvider,colors:this._colors,tilingScheme:this._terrainProvider.tilingScheme});this._hybridImageryLayer=this._viewer.imageryLayers.addImageryProvider(e),this._hybridImageryLayer.alpha=r,console.log("HybridImageryProvider overlay enabled")}hideImageryOverlay(){this._hybridImageryLayer&&(this._viewer.imageryLayers.remove(this._hybridImageryLayer),this._hybridImageryLayer=void 0,console.log("HybridImageryProvider overlay disabled"))}showTileCoordinates(){this._ensureTileCoordinatesLayer()}hideTileCoordinates(){this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0)}setAlpha(r){this._hybridImageryLayer&&(this._hybridImageryLayer.alpha=r)}flyTo(r,e){this._viewer.camera.flyTo({destination:r,...e,complete:()=>{this._visible&&this.update()}})}get tileCoordinatesVisible(){return!!this._tileCoordinatesLayer}get visible(){return this._visible}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};function L(o,r){let e=!1,i=Object.getOwnPropertyDescriptor(o,r);if(!i){let t=Object.getPrototypeOf(o);for(;t&&!i;)i=Object.getOwnPropertyDescriptor(t,r),t=Object.getPrototypeOf(t)}return i&&i.get&&!i.set&&(e=!0),e}var G=C.deprecate;export{C as a,g as b,L as c,G as d};
@@ -1,16 +0,0 @@
1
- /**
2
- * Runtime type validator to identify the non-function property.
3
- */
4
- type NonFunction<T> = {
5
- [K in keyof T]: T[K] extends Function ? never : K;
6
- }[keyof T];
7
- /**
8
- * Examine the property descriptors at runtime
9
- * to detect properties that only have getters.
10
- * (read-only accessor properties)
11
- * @param o The object to examine.
12
- * @param k The key value of the property.
13
- */
14
- declare function isGetterOnly(o: object, k: string | number | symbol): boolean;
15
-
16
- export { type NonFunction as N, isGetterOnly as i };
@@ -1,16 +0,0 @@
1
- /**
2
- * Runtime type validator to identify the non-function property.
3
- */
4
- type NonFunction<T> = {
5
- [K in keyof T]: T[K] extends Function ? never : K;
6
- }[keyof T];
7
- /**
8
- * Examine the property descriptors at runtime
9
- * to detect properties that only have getters.
10
- * (read-only accessor properties)
11
- * @param o The object to examine.
12
- * @param k The key value of the property.
13
- */
14
- declare function isGetterOnly(o: object, k: string | number | symbol): boolean;
15
-
16
- export { type NonFunction as N, isGetterOnly as i };