@arcgis/core 5.2.0-next.132 → 5.2.0-next.134
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/107f4bcf8e6c91a67010.js +1 -0
- package/assets/esri/core/workers/chunks/{081c9ccaa5884c730a91.js → 1688c4dcd36db992a9dc.js} +1 -1
- package/assets/esri/core/workers/chunks/3a6b8f9aabde7e138834.js +1 -0
- package/assets/esri/core/workers/chunks/{18d5bad86ea3ef3ec747.js → eba9e03c1c9aa55044a3.js} +120 -120
- package/assets/esri/core/workers/chunks/f6c8e5abe1d55ab5c7dd.js +1 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/3ae1e25e-3aa6-4061-a016-a079159f9d65.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/41331c3c-3759-4462-8695-33c9a21b6a5b.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/94aa531e-7746-4df0-bb6e-349891f2eda5.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-arabic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-georgian.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-thai.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-cyrillic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-hebrew.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-math.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-vietnamese.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts.scss +0 -0
- package/chunks/GaussianSplat.glsl.js +24 -9
- package/chunks/LineMarker.glsl.js +23 -23
- package/chunks/RibbonLine.glsl.js +136 -99
- package/config.js +1 -1
- package/core/PooledArray.js +1 -1
- package/geometry/operators/affineTransformOperator.d.ts +4 -0
- package/geometry/operators/alphaShapeOperator.d.ts +10 -1
- package/geometry/operators/areaOperator.d.ts +3 -0
- package/geometry/operators/autoCompleteOperator.d.ts +3 -0
- package/geometry/operators/boundaryOperator.d.ts +4 -0
- package/geometry/operators/bufferOperator.d.ts +6 -0
- package/geometry/operators/centroidOperator.d.ts +3 -0
- package/geometry/operators/clipOperator.d.ts +4 -0
- package/geometry/operators/containsOperator.d.ts +4 -0
- package/geometry/operators/convexHullOperator.d.ts +6 -0
- package/geometry/operators/crossesOperator.d.ts +4 -0
- package/geometry/operators/cutOperator.d.ts +3 -0
- package/geometry/operators/densifyOperator.d.ts +5 -0
- package/geometry/operators/differenceOperator.d.ts +4 -0
- package/geometry/operators/disjointOperator.d.ts +4 -0
- package/geometry/operators/distanceOperator.d.ts +4 -0
- package/geometry/operators/equalsOperator.d.ts +4 -0
- package/geometry/operators/extendOperator.d.ts +4 -0
- package/geometry/operators/generalizeOperator.d.ts +5 -0
- package/geometry/operators/geodesicBufferOperator.d.ts +8 -0
- package/geometry/operators/geodesicProximityOperator.d.ts +9 -0
- package/geometry/operators/geodeticAreaOperator.d.ts +6 -0
- package/geometry/operators/geodeticDensifyOperator.d.ts +7 -0
- package/geometry/operators/geodeticDistanceOperator.d.ts +6 -0
- package/geometry/operators/geodeticLengthOperator.d.ts +6 -0
- package/geometry/operators/geodeticUtilsOperator.d.ts +7 -0
- package/geometry/operators/graphicBufferOperator.d.ts +4 -0
- package/geometry/operators/integrateOperator.d.ts +3 -0
- package/geometry/operators/intersectionOperator.d.ts +5 -0
- package/geometry/operators/intersectsOperator.d.ts +4 -0
- package/geometry/operators/isNearOperator.d.ts +4 -0
- package/geometry/operators/labelPointOperator.d.ts +4 -0
- package/geometry/operators/lengthOperator.d.ts +3 -0
- package/geometry/operators/linesToPolygonsOperator.d.ts +3 -0
- package/geometry/operators/locateBetweenOperator.d.ts +3 -0
- package/geometry/operators/minimumBoundingCircleOperator.d.ts +5 -0
- package/geometry/operators/multiPartToSinglePartOperator.d.ts +4 -0
- package/geometry/operators/offsetOperator.d.ts +5 -0
- package/geometry/operators/overlapsOperator.d.ts +4 -0
- package/geometry/operators/polygonOverlayOperator.d.ts +9 -1
- package/geometry/operators/polygonSlicerOperator.d.ts +7 -0
- package/geometry/operators/projectOperator.d.ts +6 -0
- package/geometry/operators/proximityOperator.d.ts +7 -0
- package/geometry/operators/relateOperator.d.ts +5 -0
- package/geometry/operators/reshapeOperator.d.ts +3 -0
- package/geometry/operators/shapePreservingProjectOperator.d.ts +7 -0
- package/geometry/operators/simplifyOGCOperator.d.ts +5 -0
- package/geometry/operators/simplifyOperator.d.ts +5 -0
- package/geometry/operators/support/GeographicTransformation.d.ts +2 -0
- package/geometry/operators/support/GeographicTransformationStep.d.ts +2 -0
- package/geometry/operators/support/Transformation.d.ts +6 -1
- package/geometry/operators/support/geographicTransformationUtils.d.ts +4 -0
- package/geometry/operators/symmetricDifferenceOperator.d.ts +4 -0
- package/geometry/operators/touchesOperator.d.ts +4 -0
- package/geometry/operators/types.d.ts +1 -0
- package/geometry/operators/unionOperator.d.ts +4 -0
- package/geometry/operators/withinOperator.d.ts +4 -0
- package/kernel.js +1 -1
- package/layers/GaussianSplatLayer.d.ts +0 -1
- package/layers/GeospatialPDFLayer.js +1 -1
- package/package.json +2 -2
- package/support/revision.js +1 -1
- package/symbols/LineSymbol3D.d.ts +0 -7
- package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
- package/views/2d/layers/GeospatialPDFLayerView2D.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
- package/views/3d/layers/GeospatialPDFLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
- package/views/3d/navigation/modes/GroundNavigationMode3D.js +1 -1
- package/views/3d/state/Constraints.js +1 -1
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/state/utils/navigationUtils.js +1 -1
- package/views/3d/terrain/SphericalPatch.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +23 -12
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +35 -25
- package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
- package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/PolygonIntersectionResults.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/intersectWithPolygonOffset.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +4 -4
- package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/support/PromiseQueue.js +1 -1
- package/views/support/Scheduler.js +1 -1
- package/widgets/BatchAttributeForm/ValueChangeTransaction.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
- package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerVisibleElements.d.ts +148 -1
- package/assets/esri/core/workers/chunks/540f60e31b19d85e9371.js +0 -1
- package/assets/esri/core/workers/chunks/55a560fd872f7463b33d.js +0 -1
- package/assets/esri/core/workers/chunks/cf6f671823fa6c2a9a5e.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[563],{15142(t,e,s){s.d(e,{A:()=>a});var r=s(4576),i=s(21818);const n=(t,e,s,r)=>{let i=e,n=e;const h=s>>>1,o=t[i-1];for(;n<=h;){n=i<<1,n<s&&r(t[n-1],t[n])<0&&++n;const e=t[n-1];if(r(e,o)<=0)break;t[i-1]=e,i=n}t[i-1]=o},h=(t,e)=>t<e?-1:t>e?1:0;function o(t,e,s,r){void 0===e&&(e=0),void 0===s&&(s=t.length),void 0===r&&(r=h);for(let i=s>>>1;i>e;i--)n(t,i,s,r);const i=e+1;for(let h=s-1;h>e;h--){const s=t[e];t[e]=t[h],t[h]=s,n(t,i,h,r)}}function*l(t,e,s,r){void 0===e&&(e=0),void 0===s&&(s=t.length),void 0===r&&(r=h);for(let i=s>>>1;i>e;i--)n(t,i,s,r),yield;const i=e+1;for(let h=s-1;h>e;h--){const s=t[e];t[e]=t[h],t[h]=s,n(t,i,h,r),yield}}class a{constructor(t){this.data=[],this._length=0,this._allocator=void 0,this._deallocator=()=>null,this._shrink=()=>{},this._hint=new r.vW,t&&(t.initialSize&&(this.data=new Array(t.initialSize)),t.allocator&&(this._allocator=t.allocator),void 0!==t.deallocator&&(this._deallocator=t.deallocator),t.shrink&&(this._shrink=()=>c(this)))}toArray(){return this.data.slice(0,this.length)}filter(t){const e=new Array;for(let s=0;s<this._length;s++){const r=this.data[s];t(r)&&e.push(r)}return e}at(t){if((t=Math.trunc(t)||0)<0&&(t+=this._length),!(t<0||t>=this._length))return this.data[t]}includes(t,e){const s=this.data.indexOf(t,e);return-1!==s&&s<this.length}get length(){return this._length}set length(t){if(t>this._length){if(this._allocator){for(;this._length<t;)this.data[this._length++]=this._allocator(this.data[this._length]);return}this._length=t}else{if(this._deallocator)for(let e=t;e<this._length;++e)this.data[e]=this._deallocator(this.data[e]);this._length=t,this._shrink()}}clear(){this.length=0}prune(){this.clear(),this.data=[]}push(t){this.data[this._length++]=t}pushArray(t,e=t.length){for(let s=0;s<e;s++)this.data[this._length++]=t[s]}pushAll(t){for(const e of t)this.data[this._length++]=e}fill(t,e){for(let s=0;s<e;s++)this.data[this._length++]=t}pushNew(){this._allocator&&(this.data[this.length]=this._allocator(this.data[this.length]));const t=this.data[this._length];return++this._length,t}unshift(t){this.data.unshift(t),this._length++,c(this)}pop(){if(0===this.length)return;const t=this.data[this.length-1];return this.length=this.length-1,this._shrink(),t}remove(t){const e=(0,r.qh)(this.data,(0,i.z)(t),this.length,this._hint);if(-1!==e)return this.data.splice(e,1),this.length=this.length-1,t}removeUnordered(t){return this.removeUnorderedIndex((0,r.qh)(this.data,(0,i.z)(t),this.length,this._hint))}removeUnorderedIndex(t){if(!(t>=this.length||t<0))return this.swapElements(t,this.length-1),this.pop()}removeUnorderedMany(t,e=t.length,s){this.length=(0,r.mW)(this.data,t,this.length,e,this._hint,s),this._shrink()}front(){if(0!==this.length)return this.data[0]}back(){if(0!==this.length)return this.data[this.length-1]}swapElements(t,e){if(t>=this.length||e>=this.length||t===e)return;const s=this.data[t];this.data[t]=this.data[e],this.data[e]=s}sort(t){o(this.data,0,this.length,t)}iterableSort(t){return l(this.data,0,this.length,t)}some(t,e){for(let s=0;s<this.length;++s)if(t.call(e,this.data[s],s,this.data))return!0;return!1}find(t,e){const{data:s,length:r}=this;for(let i=0;i<r;++i)if(t.call(e,s[i]))return s[i]}filterInPlace(t,e){let s=0;for(let r=0;r<this._length;++r){const i=this.data[r];t.call(e,i,r,this.data)&&(this.data[r]=this.data[s],this.data[s]=i,s++)}if(this._deallocator)for(let t=s;t<this._length;t++)this.data[t]=this._deallocator(this.data[t]);return this._length=s,this._shrink(),this}forAll(t,e){const{data:s,length:r}=this;for(let i=0;i<r;++i)t.call(e,s[i],i,s)}forEach(t,e){this.data.slice(0,this.length).forEach(t,e)}map(t,e){const s=new Array(this.length);for(let r=0;r<this.length;++r)s[r]=t.call(e,this.data[r],r,this.data);return s}reduce(t,e){let s=e;for(let e=0;e<this.length;++e)s=t(s,this.data[e],e,this.data);return s}has(t){const e=this.length,s=this.data;for(let r=0;r<e;++r)if(s[r]===t)return!0;return!1}*[Symbol.iterator](){for(let t=0;t<this.length;++t)yield this.data[t]}}function c(t){t.data.length>1.5*t.length&&(t.data.length=Math.floor(1.1*t.length))}},9775(t,e,s){s.d(e,{A:()=>n});var r=s(62788),i=s(95488);class n{constructor(t=t=>t.values().next().value){this._peeker=t,this._observable=new i.I,this._items=new Set}get length(){return(0,r.gc)(this._observable),this._items.size}clear(){0!==this.length&&(this._items.clear(),this._observable.notify())}last(){if(0===this.length)return;let t;for(t of this._items);return t}peek(){if(0!==this.length)return this._peeker(this._items)}push(t){this.contains(t)||(this._items.add(t),this._observable.notify())}contains(t){return(0,r.gc)(this._observable),this._items.has(t)}pop(){if(0===this.length)return;const t=this.peek();return this._items.delete(t),this._observable.notify(),t}popLast(){if(0===this.length)return;const t=this.last();return this._items.delete(t),this._observable.notify(),t}remove(t){this.contains(t)&&(this._items.delete(t),this._observable.notify())}filter(t){const e=this.length;return this._items.forEach(e=>{t(e)||this._items.delete(e)}),e!==this._items.size&&this._observable.notify(),this}*[Symbol.iterator](){(0,r.gc)(this._observable),yield*this._items}}},563(t,e,s){s.d(e,{QueueProcessor:()=>a,SharedConcurrency:()=>u});var r=s(97768),i=s(17676),n=s(9775),h=s(32587),o=s(76030),l=s(44794);class a{constructor(t){this._schedule=null,this._deferreds=new h.A,this._controllers=new h.A,this._processingItems=new h.A,this._pausedSignal=(0,l.v)(!1),this.process=t.process,this.concurrency=t.concurrency,this.sharedConcurrency=t.sharedConcurrency??d,this._queue=new n.A(t.peeker)}destroy(){this.clear(),this._schedule=(0,r.xt)(this._schedule)}get updating(){return this.running}get length(){return this._processingItems.size+this._queue.length}get running(){return!this._pausedSignal.value&&this._queue.length>0&&!this.full}get full(){return this._processingItems.size>=this.concurrency||this.sharedConcurrency.full}abort(t){const e=this._controllers.get(t);e?.abort()}clear(){this._queue.clear();const t=Array.from(this._controllers.values());this._controllers.clear(),t.forEach(t=>t.abort()),this.sharedConcurrency.current.value-=this._processingItems.size,this._processingItems.clear(),this._cancelNext()}forEach(t){this._deferreds.forEach((e,s)=>t(s))}_get(t){const e=this._deferreds.get(t);return e?.promise}pause(){this._pausedSignal.value||(this._pausedSignal.value=!0,this._cancelNext())}push(t,e){const s=this._get(t);if(s)return s;const r=new AbortController,n=Promise.withResolvers(),h=e?(0,i.u7)(e,()=>r.abort()):null,o=(0,i.NY)(r.signal,()=>{const e=this._processingItems.get(t);e&&e.controller.abort(),l(),n.reject((0,i.NK)())}),l=()=>{o.remove(),h?.remove(),this._removeItem(t),this._queue.remove(t),this._scheduleNext()};return this._deferreds.set(t,n),this._controllers.set(t,r),n.promise.then(l,l),this._queue.push(t),this._scheduleNext(),n.promise}last(){return this._queue.last()}reset(){const t=Array.from(this._processingItems.values());this.sharedConcurrency.current.value-=this._processingItems.size,this._processingItems.clear();for(const e of t)this._queue.push(e.item),e.controller.abort();this._scheduleNext()}resume(){this._pausedSignal.value&&(this._pausedSignal.value=!1,this._scheduleNext())}takeAll(){const t=[];for(;this._queue.length;)t.push(this._queue.pop());return this.clear(),t}_removeItem(t){this._deferreds.delete(t),this._controllers.delete(t),this._processingItems.has(t)&&(this._processingItems.delete(t),this.sharedConcurrency.current.value-=1)}_scheduleNext(){this._pausedSignal.value||this._schedule||(this._schedule=(0,o._)(()=>{this._schedule=null,this._next()}))}_next(){for(;this._queue.length>0&&this._processingItems.size<this.concurrency&&!this.sharedConcurrency.full;)this._process(this._queue.pop())}_cancelNext(){this._schedule&&(this._schedule.remove(),this._schedule=null)}_processResult(t,e){this._canProcessFulfillment(t)&&(this._scheduleNext(),this._deferreds.get(t.item).resolve(e))}_processError(t,e){this._canProcessFulfillment(t)&&(this._scheduleNext(),this._deferreds.get(t.item).reject(e))}_canProcessFulfillment(t){return!!this._deferreds.get(t.item)&&this._processingItems.get(t.item)===t}_process(t){if(null==t)return;let e;const s=new AbortController,r=new c(t,s);this._processingItems.set(t,r),this.sharedConcurrency.current.value+=1;try{e=this.process(t,s.signal)}catch(t){this._processError(r,t)}(0,i.$X)(e)?(r.promise=e,e.then(t=>this._processResult(r,t),t=>this._processError(r,t))):this._processResult(r,e)}}class c{constructor(t,e){this.item=t,this.controller=e,this.promise=null}}class u{constructor(t){this.limit=t,this.current=(0,l.v)(0)}get full(){return this.current.value>=this.limit}}const d=new u(1/0)},32587(t,e,s){s.d(e,{A:()=>n});var r=s(62788),i=s(95488);class n{constructor(t){this._observable=new i.I,this._notifyPending=!1,this._batchDepth=0,this._map=new Map(t)}get size(){return(0,r.gc)(this._observable),this._map.size}batch(t){try{this._batchDepth++,t()}finally{this._batchDepth--,this._notifyPending&&0===this._batchDepth&&(this._notifyPending=!1,this._notify())}}clear(){this._map.size>0&&(this._map.clear(),this._notify())}delete(t){const e=this._map.delete(t);return e&&this._notify(),e}entries(){return(0,r.gc)(this._observable),this._map.entries()}forEach(t,e){(0,r.gc)(this._observable),this._map.forEach((s,r)=>t.call(e,s,r,this),e)}get(t){return(0,r.gc)(this._observable),this._map.get(t)}has(t){return(0,r.gc)(this._observable),this._map.has(t)}keys(){return(0,r.gc)(this._observable),this._map.keys()}set(t,e){return this._map.set(t,e),this._notify(),this}transformValues(t,e=this._map.keys()){this.batch(()=>{for(const s of e){if(!this._map.has(s))continue;const e=this._map.get(s),r=t(e,s);r!==e&&this.set(s,r)}})}values(){return(0,r.gc)(this._observable),this._map.values()}[Symbol.iterator](){return(0,r.gc)(this._observable),this._map[Symbol.iterator]()}[Symbol.dispose](){this._observable.destroy()}get[Symbol.toStringTag](){return this._map[Symbol.toStringTag]}_notify(){this._batchDepth>0?this._notifyPending=!0:this._observable.notify()}}},11406(t,e,s){s.d(e,{T:()=>n});var r=s(36563);class i{constructor(t,e){this._observers=t,this._observer=e}remove(){const{_observers:t,_observer:e}=this;if(t[t.length-1]===e)return void t.pop();const s=t.indexOf(this._observer);-1!==s&&t.splice(s,1)}}class n{constructor(){this._observers=null,this.destroyed=!1}observe(t){if(this.destroyed||t.destroyed)return h;null==this._observers&&(this._observers=[]);const e=this._observers;let s=!1,r=!1;for(const i of e)if(i.destroyed)r=!0;else if(i===t){s=!0;break}return s||(e.push(t),r&&this._removeDestroyedObservers()),new i(e,t)}_removeDestroyedObservers(){const t=this._observers;if(!t)return;const e=t.length;if(0===e)return;let s=0;for(let r=0;r<e;++r){for(;r+s<e&&t[r+s].destroyed;)++s;if(s>0){if(!(r+s<e))break;t[r]=t[r+s]}}t.length=e-s}destroy(){if(this.destroyed)return;this.destroyed=!0;const t=this._observers;if(null!=t){for(const e of t)e.onCommitted();this._observers=null}}}const h=(0,r.hA)()},62788(t,e,s){s.d(e,{F_:()=>_,Xr:()=>v,a:()=>d,fE:()=>p,gc:()=>a}),s(44208);var r=s(53966),i=s(88620),n=s(47328);const h=new(s(67867).R),o=[];let l=h;function a(t){l.onAccessed(t)}let c=!1,u=!1;function d(t,e,s){if(c)return f(t,e,s);let i;if(u){l=t,o.push(t);try{i=e.call(s)}catch(t){throw r.A.getLogger("esri.core.accessorSupport.tracking").error(t),t}finally{g()}}else{l=t,o.push(t);try{i=e.call(s)}finally{g()}}return i}function _(t,e){return d(h,t,e)}function f(t,e,s){const i=c;let n;c=!0,l=t,o.push(t);try{n=e.call(s)}catch(t){u&&r.A.getLogger("esri.core.accessorSupport.tracking").error(t)}return g(),c=i,n}function g(){const t=o.length;if(t>1){const e=o.pop();l=o[t-2],e.onTrackingEnd()}else if(1===t){const t=o.pop();l=h,t.onTrackingEnd()}else l=h}function p(t,e){if(e.flags&n.i.DepTrackingInitialized)return;e.flags|=n.i.DepTrackingInitialized;const s=u;u=!1,e.flags&n.i.AutoTracked?f(e.trackingTarget,e.metadata.get,t):v(t,e),u=s}const m=[];function v(t,e){e.flags&n.i.ExplicitlyTracking||(e.flags|=n.i.ExplicitlyTracking,f(e.trackingTarget,()=>{const s=e.metadata.dependsOn||m;for(const e of s)if("string"!=typeof e||e.includes(".")){const s=(0,i.AH)(e);for(let e=0,r=t;e<s.length&&null!=r&&"object"==typeof r;++e)r=y(r,s[e],e!==s.length-1)}else y(t,e,!1)}),e.flags&=~n.i.ExplicitlyTracking)}function y(t,e,s){const r=e.endsWith("?")?e.slice(0,-1):e;if(null!=t.getItemAt||Array.isArray(t)){const e=parseInt(r,10);if(!isNaN(e))return Array.isArray(t)?t[e]:t.at(e)}const n=(0,i.oY)(t);if(n){const e=n.propertiesByName.get(r);e&&(a(e),p(t,e))}return s?t[r]:void 0}},47328(t,e,s){s.d(e,["i",0,{Dirty:1,Overridden:2,Computing:4,NonNullable:8,HasDefaultValue:16,DepTrackingInitialized:32,AutoTracked:64,ExplicitlyTracking:128}])},95488(t,e,s){s.d(e,{I:()=>i});var r=s(11406);class i extends r.T{notify(){const t=this._observers;if(t&&t.length>0){const e=t.slice();for(const t of e)t.onInvalidated(),t.onCommitted()}}}},67867(t,e,s){s.d(e,{R:()=>r});class r{constructor(t){this.accessed=void 0,this._handles=void 0,this._observer=t}destroy(){this.clear(),this.accessed=void 0,this._observer=void 0}onAccessed(t){null!=this._observer&&t!==this._observer&&(null==this.accessed&&(this.accessed=new Set),this.accessed.add(t))}onTrackingEnd(){null!=this._observer&&(this.clear(),null!=this.accessed&&(null==this._handles&&(this._handles=[]),this.accessed.forEach(t=>{this._handles.push(t.observe(this._observer))}),this.accessed.clear()))}clear(){if(null!=this._handles)for(;this._handles.length;)this._handles.pop().remove()}}},88620(t,e,s){s.d(e,{AH:()=>a,h1:()=>o,oY:()=>n,qg:()=>u,yh:()=>h});var r=s(36563),i=s(4718);function n(t){return t.__accessor__??null}function h(t,e){return null!=t?.metadata?.[e]}function o(t,e,s){return l(t,e,s?{policy:s,path:""}:null)}function l(t,e,s){return e?Object.keys(e).reduce((t,r)=>{const n=r;if("__proto__"===n)return t;let h=null,o="merge";if(s&&(h=s.path?`${s.path}.${r}`:r,o=s.policy(h)),"replace"===o)return t[n]=e[n],t;if("replace-arrays"===o&&Array.isArray(t[n]))return t[n]=e[n],t;if(void 0===t[n])return t[n]=(0,i.o8)(e[n]),t;let a=t[n],c=e[n];if(a===c)return t;if(Array.isArray(c)||Array.isArray(t))a=a?Array.isArray(a)?t[n]=a.slice():t[n]=[a]:t[n]=[],c&&(Array.isArray(c)||(c=[c]),c.forEach(t=>{a.includes(t)||a.push(t)}));else if(c&&"object"==typeof c)if(s){const e=s.path;s.path=h,t[n]=l(a,c,s),s.path=e}else t[n]=l(a,c,null);else t.hasOwnProperty(r)&&!e.hasOwnProperty(r)||(t[n]=c);return t},t||{}):t}function a(t){return Array.isArray(t)?t:t.split(".")}function c(t){return t.includes(",")?t.split(",").map(t=>t.trim()):[t.trim()]}function u(t,e,s,i){const n=function(t){if(Array.isArray(t)){const e=[];for(const s of t)e.push(...c(s));return e}return c(t)}(e);if(1!==n.length){const e=n.map(e=>i(t,e,s));return(0,r.vE)(e)}return i(t,n[0],s)}},26390(t,e,s){s.d(e,{d:()=>i});const r=[];function i(t){r.push(t),1===r.length&&queueMicrotask(()=>{const t=r.slice();r.length=0;for(const e of t)e()})}},76030(t,e,s){s.d(e,{_:()=>y,$m:()=>T,gh:()=>x,md:()=>S});var r=s(26390);function i(t,e,s,r,i){console.timeStamp(t,e,s,i,r)}class n{constructor(t,e=30){this.name=t,this._counter=0,this._samples=new Array(e)}push(t){null!=t&&(this._samples[++this._counter%this._samples.length]=t)}set(t){null!=t&&(this._samples[this._counter%this._samples.length]=t)}get median(){return this._samples.slice().sort((t,e)=>t-e)[Math.floor(this._samples.length/2)]}get average(){return this._samples.reduce((t,e)=>t+e,0)/this._samples.length}get last(){return this._samples[this._counter%this._samples.length]}}var h=s(15142),o=s(17676),l=s(78659);class a{constructor(t){this.phases=t,this.paused=!1,this.ticks=-1,this.removed=!1}}class c{constructor(t){this.callback=t,this.isActive=!0}remove(){this.isActive=!1}}let u=0;const d={time:(0,l.l5)(0),deltaTime:(0,l.l5)(0),elapsedFrameTime:(0,l.l5)(0),frameDuration:(0,l.l5)(0)},_=["prepare","preRender","render","postRender","update","finish"],f=[],g=new h.A;class p{constructor(t){this._task=t}remove(){this._task.removed=!0}pause(){this._task.paused=!0}resume(){this._task.paused=!1,m()}}function m(){null==b&&(u=performance.now(),b=requestAnimationFrame(A))}const v={frameTasks:g,willDispatch:!1,clearFrameTasks:function(t=!1){g.forAll(t=>{t.removed=!0}),t&&w()},dispatch:I,executeFrameTasks:function(t){const e=(0,l.l5)(t-u);u=t;const s=1e3/60,r=Math.max(0,e-s);d.time=t,d.frameDuration=(0,l.l5)(s-r);for(let s=0;s<_.length;s++){const r=performance.now(),n=_[s];g.forAll(r=>{r.paused||r.removed||(0===s&&r.ticks++,r.phases[n]&&(d.elapsedFrameTime=(0,l.l5)(performance.now()-t),d.deltaTime=0===r.ticks?(0,l.l5)(0):e,r.phases[n]?.call(r,d)))});const h=performance.now();E[s].push(h-r),i(n,r,h,"Maps SDK","Scheduling")}w();const n=performance.now();q.push(n-t),i("Animation Frame",t,n,"Maps SDK","Scheduling")},reschedule:function(){null!=b&&(cancelAnimationFrame(b),b=requestAnimationFrame(A))}};function y(t){const e=new c(t);return f.push(e),v.willDispatch||(v.willDispatch=!0,(0,r.d)(I)),e}let b=null;function A(){const t=performance.now();b=null;const e=g.some(t=>!t.paused&&!t.removed);b=e?requestAnimationFrame(A):null,v.executeFrameTasks(t)}const k=new h.A;function w(){g.forAll(t=>{t.removed&&k.push(t)}),g.removeUnorderedMany(k.data,k.length),k.clear()}function I(){for(;f.length;){const t=f.shift();t.isActive&&t.callback()}v.willDispatch=!1}function S(t=1,e){const s=Promise.withResolvers(),i=()=>{(0,o.G4)(e)?s.reject((0,o.NK)()):0===t?s.resolve():(--t,(0,r.d)(()=>i()))};return i(),s.promise}function x(){const t=Promise.withResolvers(),e=function(t){const e=new a(t);return g.push(e),m(),new p(e)}({postRender:()=>{e.remove(),y(()=>t.resolve())}});return t.promise}async function T(t){await function(t){return S(1,t)}(t),await new Promise(e=>requestAnimationFrame(()=>{t?.aborted||e()}))}const E=_.map(t=>new n(t)),q=new n("total")},44794(t,e,s){s.d(e,{v:()=>o});var r=s(4718),i=s(62788),n=s(95488);class h{constructor(t,e){this._observable=new n.I,this._value=t,this._equalityFunction=e}get value(){return(0,i.gc)(this._observable),this._value}set value(t){this._equalityFunction(t,this._value)||(this._value=t,this._observable.notify())}mutate(t){t(this._value),this._observable.notify()}}function o(t,e=r.gh){return new h(t,e)}},78659(t,e,s){function r(t){return t}function i(t){return 1e3*t}function n(t){return t}s.d(e,{Kp:()=>n,gr:()=>i,l5:()=>r})}}]);
|
package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-arabic.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-cyrillic.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-georgian.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-greek.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-hebrew.woff2
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/09ab0626-bb45-4650-acc8-0182d693df02-vietnamese.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-arabic.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-cyrillic.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-georgian.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-greek.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-hebrew.woff2
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/0c8a5d21-8a14-4451-8145-695071809cb7-vietnamese.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-arabic.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-cyrillic.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-georgian.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-greek.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-hebrew.woff2
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/12f4c786-0bef-4a48-b7c0-eebaa7591688-vietnamese.woff2
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-arabic.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-cyrillic.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-georgian.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-greek.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-hebrew.woff2
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b8b15cdf-85d1-4120-8daa-48863d803939-vietnamese.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-cyrillic.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-greek.woff2
CHANGED
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-hebrew.woff2
CHANGED
|
File without changes
|
|
File without changes
|
package/assets/esri/themes/base/fonts/fonts/b9c5b839-db56-4419-8fcb-6ab661babb1d-vietnamese.woff2
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,22 +1,37 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{EvaluateSceneLighting as
|
|
2
|
+
import{calculateUVZShadowPass as e}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js";import{EvaluateSceneLighting as a,addAmbientBoostFactor as i,addLightingGlobalFactor as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{NormalUtils as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowPass as t,readShadowMaps as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{RgbNormalizedDepthEncoding as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbNormalizedDepthEncoding.glsl.js";import{Float3BindUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as d,If as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{gaussianSplatFirstHitAlpha as h}from"../views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js";import{GaussianSplatPerspectivePass as g,GaussianSplatFading as p,gaussianSplatPerspectiveVertex as v}from"../views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js";import{getGaussianSplatAlphaCutoffValue as m}from"../views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js";import{ShaderBuilder as u}from"../views/webgl/ShaderBuilder.js";function w(w){const{receiveShadows:f,spherical:b}=w,S=f&&w.fragmentShading,y=S&&w.preciseDepth,D=new u,{varyings:C,vertex:P,fragment:L,outputs:x}=D;C.add("vColor","vec4"),y&&C.add("shadowReceiverRay","vec3"),D.include(g,w),w.fadingEnabled&&P.include(p),P.uniforms.add(new l("cameraPosition",e=>e.camera.eye));const R=S?L:P;R.uniforms.add(new l("cameraPosition",e=>e.camera.eye)),R.include(a,w),R.include(n,w),i(R),o(R),S?D.include(t,w):f&&(P.include(e),w.hasShadowHighlights&&P.code.add(d`ivec2 getShadowHighlightCoordinates() {
|
|
3
|
+
vec2 screenUV = gl_Position.xy / gl_Position.w * 0.5 + 0.5;
|
|
4
|
+
ivec2 screenPixel = ivec2(screenUV / inverseScreenSize);
|
|
5
|
+
return clamp(screenPixel, ivec2(0), textureSize(shadowHighlight, 0) - 1);
|
|
6
|
+
}`),r(P,w.hasShadowHighlights,"getShadowHighlightCoordinates()")),x.add("fragColor","vec4",0),x.add("fragDepthColor","vec4",1);const j=m(w.alphaCutoff),G=d`float groundLightAlignment = dot(upNormal, mainLightDirection);
|
|
3
7
|
float additionalAmbientScale = additionalDirectedAmbientLight(groundLightAlignment);
|
|
4
|
-
vec3 additionalLight = mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor
|
|
8
|
+
vec3 additionalLight = mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;`,$=d`
|
|
5
9
|
vec3 viewDirection = normalize(fragmentPositionCameraRelative - cameraPosition);
|
|
6
10
|
vec3 upNormal = getLocalUp(fragmentPositionCameraRelative, cameraPosition);
|
|
7
|
-
${
|
|
8
|
-
float shadow = ${
|
|
11
|
+
${G}
|
|
12
|
+
float shadow = ${b?d`lightingGlobalFactor * (1.0 - additionalAmbientScale)`:d`0.0`};
|
|
13
|
+
${c(f,d`
|
|
14
|
+
${w.preciseDepth?d`
|
|
15
|
+
float receiverDepth = gaussianSplatRayDepth();
|
|
16
|
+
vec3 receiverPosition = transpose(mat3(view)) * rayView * receiverDepth;
|
|
17
|
+
`:d`
|
|
18
|
+
float receiverDepth = -viewPos.z;
|
|
19
|
+
vec3 receiverPosition = fragmentPositionCameraRelative;
|
|
20
|
+
`}
|
|
21
|
+
vec3 uvzShadow = calculateUVZShadow(receiverPosition, receiverDepth, textureSize(shadowMap, 0));
|
|
22
|
+
shadow = max(shadow, readShadowMaps(uvzShadow));
|
|
23
|
+
`)}
|
|
9
24
|
vColor.rgb = evaluateSceneLighting(upNormal, vColor.rgb, shadow, 0.0, additionalLight, viewDirection, upNormal);
|
|
10
|
-
`,
|
|
25
|
+
`,z=d`
|
|
11
26
|
vec3 viewDirection = normalize(fragmentPositionCameraRelative - cameraPosition);
|
|
12
27
|
vec3 upNormal = getLocalUp(fragmentPositionCameraRelative, cameraPosition);
|
|
13
|
-
${
|
|
14
|
-
${
|
|
28
|
+
${G}
|
|
29
|
+
${y?d`
|
|
15
30
|
float shadow = max(
|
|
16
31
|
lightingGlobalFactor * (1.0 - additionalAmbientScale),
|
|
17
32
|
readShadowMap(shadowReceiverRay * receiverDepth, receiverDepth)
|
|
18
33
|
);
|
|
19
34
|
`:"float shadow = readShadow(additionalAmbientScale, fragmentPositionCameraRelative);"}
|
|
20
35
|
shadedColor = evaluateSceneLighting(upNormal, vColor.rgb, shadow, 0.0, additionalLight, viewDirection, upNormal);
|
|
21
|
-
`;return
|
|
22
|
-
vColor.a = opacity;`)}\n\n ${
|
|
36
|
+
`;return P.main.add(`\n uint gaussianIndex = fetchOrderedGaussianIndex(uint(gl_InstanceID));\n uvec4 packedGaussian = fetchPackedGaussian(gaussianIndex);\n\n // Unpack color first so very transparent splats can discard before fetching the page header.\n vColor = unpackColor(packedGaussian);\n float opacity = vColor.a;\n\n // Apply per-page fading before the early alpha rejection.\n ${c(w.fadingEnabled,d`opacity = applyGaussianSplatFading(opacity, gaussianIndex);
|
|
37
|
+
vColor.a = opacity;`)}\n\n ${v(w,j)}\n vColor.a = opacity;\n ${c(y,d`shadowReceiverRay = transpose(mat3(view)) * rayView;`)}\n\n // Per-fragment lighting preserves crisp shadow borders; vertex lighting reduces overdraw cost.\n ${c(S,"forwardLinearDepth(-viewPos.z);",$)}\n `),L.include(s),L.main.add(`\n float gaussianFalloff = exp(gaussianExponent);\n\n // Cap at 0.99 to avoid blending issues, such as seams between overlapping Gaussians.\n float alpha = min(.99f, vColor.a * gaussianFalloff);\n\n ${c(y,d`float receiverDepth = gaussianSplatRayDepth();`)}\n vec3 shadedColor = vColor.rgb;\n ${c(S,z)}\n fragColor = vec4(shadedColor * alpha, alpha);\n\n // We simulate first hit based depth using the shared opacity threshold.\n // This works because we render in front-to-back order,\n // i.e. the first hit that counts completely saturates the alpha channel\n // and further splats do not contribute.\n float depthHit = step(${d.float(h)}, alpha);\n vec3 encodedDepth = vec3(0.0);\n if (depthHit > 0.0) {\n encodedDepth = encodeNormalizedDepthToRGB(${y?"delinearizeDepth(-receiverDepth)":"gaussianSplatDepth()"});\n }\n fragDepthColor = vec4(encodedDepth, depthHit);\n `),D}const f=Object.freeze(Object.defineProperty({__proto__:null,build:w},Symbol.toStringTag,{value:"Module"}));export{f as G,w as b};
|
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{markerTextureSize as e,markerSymbolSize as i,markerTipThicknessFactor as r}from"../views/3d/support/engineContent/marker.js";import{sliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{MarkerSizing as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{positionOutsideClipSpace as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{nearFar as m,viewport as h,viewNormal as g,inverseProjectionMatrix as u}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as
|
|
2
|
+
import{markerTextureSize as e,markerSymbolSize as i,markerTipThicknessFactor as r}from"../views/3d/support/engineContent/marker.js";import{sliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{MarkerSizing as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{positionOutsideClipSpace as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{nearFar as m,viewport as h,viewNormal as g,inverseProjectionMatrix as u,perScreenPixelRatio as f}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as b,NoPerspectiveRead as y}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as S,addPixelRatio as z,addCameraPosition as x}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as P}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{glsl as L,If as j}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as D}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as k}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as V}from"../views/webgl/ShaderBuilder.js";function A(A){const W=new V,{draped:O,worldSpace:$,anchor:F,hasTip:M,shadingEnabled:U}=A,N=!O&&!$;W.attributes.add("position","vec3"),W.attributes.add(A.hasVVSize?"sizeFeatureAttribute":"size","float"),A.hasVVOpacity&&W.attributes.add("opacityFeatureAttribute","float"),W.attributes.add(A.hasVVColor?"colorFeatureAttribute":"color",A.hasVVColor?"float":"vec4"),W.vertex.inputs.add("position",()=>"position"),A.hasVVSize?W.vertex.inputs.add("sizeFeatureAttribute",()=>"sizeFeatureAttribute"):W.vertex.inputs.add("size",()=>"size"),A.hasVVOpacity&&W.vertex.inputs.add("opacityFeatureAttribute",()=>"opacityFeatureAttribute"),A.hasVVColor?W.vertex.inputs.add("colorFeatureAttribute",()=>"colorFeatureAttribute"):W.vertex.inputs.add("color",()=>"color"),W.include(a,A),W.include(c,A);const{vertex:R,fragment:T,varyings:I}=W;S(R,A),W.attributes.add("previousDelta","vec4"),W.attributes.add("uv0","vec2"),I.add("vColor","vec4"),I.add("vpos","vec3",{invariant:!0}),I.add("vUV","vec2"),I.add("vSize","float"),M&&I.add("vLineWidth","float"),R.uniforms.add(m,h).code.add(L`vec4 projectAndScale(vec4 pos) {
|
|
3
3
|
vec4 posNdc = proj * pos;
|
|
4
4
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
5
5
|
return posNdc;
|
|
6
|
-
}`),
|
|
6
|
+
}`),R.code.add(L`void clip(vec4 pos, inout vec4 prev) {
|
|
7
7
|
float vnp = nearFar[0] * 0.99;
|
|
8
8
|
if (prev.z > -nearFar[0]) {
|
|
9
9
|
float interpolation = (-vnp - pos.z) / (prev.z - pos.z);
|
|
10
10
|
prev = mix(pos, prev, interpolation);
|
|
11
11
|
}
|
|
12
|
-
}`),$?(
|
|
12
|
+
}`),$?(W.attributes.add("normal","vec3"),R.constants.add("tiltThreshold","float",.7).uniforms.add(g).code.add(L`vec3 perpendicular(vec3 v) {
|
|
13
13
|
vec3 n = (viewNormal * vec4(normal.xyz, 1.0)).xyz;
|
|
14
14
|
vec3 n2 = cross(v, n);
|
|
15
15
|
vec3 forward = vec3(0.0, 0.0, 1.0);
|
|
16
16
|
float tiltDot = dot(forward, n);
|
|
17
17
|
return abs(tiltDot) < tiltThreshold ? n : n2;
|
|
18
|
-
}`)):
|
|
18
|
+
}`)):R.code.add(L`vec2 perpendicular(vec2 v) {
|
|
19
19
|
return vec2(v.y, -v.x);
|
|
20
|
-
}`);const
|
|
21
|
-
${
|
|
22
|
-
${
|
|
20
|
+
}`);const _=$?"vec3":"vec2";return R.code.add(L`
|
|
21
|
+
${_} normalizedSegment(${_} pos, ${_} prev) {
|
|
22
|
+
${_} segment = pos - prev;
|
|
23
23
|
float segmentLen = length(segment);
|
|
24
24
|
|
|
25
25
|
// normalize or zero if too short
|
|
26
26
|
return (segmentLen > 0.001) ? segment / segmentLen : ${$?"vec3(0.0, 0.0, 0.0)":"vec2(0.0, 0.0)"};
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
${
|
|
30
|
-
${
|
|
29
|
+
${_} displace(${_} pos, ${_} prev, float displacementLen) {
|
|
30
|
+
${_} segment = normalizedSegment(pos, prev);
|
|
31
31
|
|
|
32
|
-
${
|
|
33
|
-
${
|
|
32
|
+
${_} displacementDirU = perpendicular(segment);
|
|
33
|
+
${_} displacementDirV = segment;
|
|
34
34
|
|
|
35
35
|
${1===F?"pos -= 0.5 * displacementLen * displacementDirV;":""}
|
|
36
36
|
|
|
37
37
|
return pos + displacementLen * (uv0.x * displacementDirU + uv0.y * displacementDirV);
|
|
38
38
|
}
|
|
39
|
-
`),
|
|
39
|
+
`),N&&(R.uniforms.add(u),R.code.add(L`vec3 inverseProject(vec4 posScreen) {
|
|
40
40
|
posScreen.xy = (posScreen.xy / viewport.zw) * posScreen.w;
|
|
41
41
|
return (inverseProjectionMatrix * posScreen).xyz;
|
|
42
|
-
}`),
|
|
42
|
+
}`),R.code.add(L`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
|
|
43
43
|
float cos = dot(rayDir, planeNormal);
|
|
44
44
|
float t = dot(planeOrigin, planeNormal) / cos;
|
|
45
45
|
intersection = t * rayDir;
|
|
46
46
|
return abs(cos) > 0.001 && t > 0.0;
|
|
47
|
-
}`),
|
|
47
|
+
}`),R.uniforms.add(f),R.code.add(L`
|
|
48
48
|
vec4 toFront(vec4 displacedPosScreen, vec3 posLeft, vec3 posRight, vec3 prev, float lineWidth) {
|
|
49
49
|
// Project displaced position back to camera space
|
|
50
50
|
vec3 displacedPos = inverseProject(displacedPosScreen);
|
|
@@ -73,7 +73,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
73
73
|
displacedPos *= minDepth / length(displacedPos);
|
|
74
74
|
return vec4(displacedPos.xyz, 1.0);
|
|
75
75
|
}
|
|
76
|
-
`)),
|
|
76
|
+
`)),z(R),W.include(b),R.main.add(L`
|
|
77
77
|
// Check for special value of uv0.y which is used by the Renderer when graphics are removed before the VBO is
|
|
78
78
|
// recompacted. If this is the case, then we just project outside of clip space.
|
|
79
79
|
if (uv0.y == 0.0) {
|
|
@@ -85,7 +85,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
85
85
|
vec4 pos = view * vec4(position, 1.0);
|
|
86
86
|
vec4 prev = view * vec4(position + previousDelta.xyz * previousDelta.w, 1.0);
|
|
87
87
|
|
|
88
|
-
float lineWidth = getLineWidth(${j(
|
|
88
|
+
float lineWidth = getLineWidth(${j(A.lineWidthRequiresPosition,"pos.xyz")});
|
|
89
89
|
float screenMarkerSize = getScreenMarkerSize(lineWidth);
|
|
90
90
|
|
|
91
91
|
clip(pos, prev);
|
|
@@ -102,7 +102,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
102
102
|
vec4 displacedPosScreen = posScreen;
|
|
103
103
|
|
|
104
104
|
displacedPosScreen.xy = displace(posScreen.xy, prevScreen.xy, screenMarkerSize);
|
|
105
|
-
${j(
|
|
105
|
+
${j(N,L`
|
|
106
106
|
vec2 displacementDirU = perpendicular(normalizedSegment(posScreen.xy, prevScreen.xy));
|
|
107
107
|
|
|
108
108
|
// We need three points of the ribbon line in camera space to calculate the plane it lies in
|
|
@@ -128,13 +128,13 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
128
128
|
vpos = pos.xyz;
|
|
129
129
|
|
|
130
130
|
gl_Position = displacedPosScreen;
|
|
131
|
-
`),
|
|
131
|
+
`),T.include(o,A),W.include(k,A),T.include(w),T.include(D),T.uniforms.add(new P("intrinsicColor",({color:e})=>e),new C("tex",({markerTexture:e})=>e)).constants.add("texelSize","float",1/e).code.add(L`float markerAlpha(vec2 samplePos) {
|
|
132
132
|
samplePos += vec2(0.5, -0.5) * texelSize;
|
|
133
133
|
float sdf = texture(tex, samplePos).r;
|
|
134
134
|
float pixelDistance = sdf * vSize;
|
|
135
135
|
pixelDistance -= 0.5;
|
|
136
136
|
return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
137
|
-
}`),M&&(
|
|
137
|
+
}`),M&&(W.include(y),T.constants.add("relativeMarkerSize","float",i/e).constants.add("relativeTipLineWidth","float",r).code.add(L`
|
|
138
138
|
float tipAlpha(vec2 samplePos) {
|
|
139
139
|
// Convert coordinates s.t. they are in pixels and relative to the tip of an arrow marker
|
|
140
140
|
samplePos -= vec2(0.5, 0.5 + 0.5 * relativeMarkerSize);
|
|
@@ -148,7 +148,7 @@ return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
|
148
148
|
float distance = max(abs(samplePos.x) - halfMarkerSize, abs(samplePos.y) - halfTipLineWidth);
|
|
149
149
|
return clamp(0.5 - distance, 0.0, 1.0);
|
|
150
150
|
}
|
|
151
|
-
`)),
|
|
151
|
+
`)),W.include(t,A),W.include(y),T.main.add(L`
|
|
152
152
|
discardBySlice(vpos);
|
|
153
153
|
|
|
154
154
|
vec4 finalColor = intrinsicColor * vColor;
|
|
@@ -157,11 +157,11 @@ return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
|
157
157
|
vec2 samplePos = ${j($,"vUV","noPerspectiveRead(vUV)")};
|
|
158
158
|
finalColor.a *= ${M?"max(markerAlpha(samplePos), tipAlpha(samplePos))":"markerAlpha(samplePos)"};
|
|
159
159
|
if(finalColor.a < alphaCutoff) discard; // We also want to discard in the opaque color pass
|
|
160
|
-
`),
|
|
161
|
-
forwardLinearDepthToReadShadow();`),x(
|
|
160
|
+
`),U&&(I.add("vnormal","vec3"),R.include(d,A),R.main.add(L`vnormal = getLocalUp(vpos, localOrigin);
|
|
161
|
+
forwardLinearDepthToReadShadow();`),x(T,A),W.include(v,A),T.include(s,A),T.include(n,A),T.uniforms.add(l,R.uniforms.get("localOrigin")).main.add(L`vec3 posWorld = vpos + localOrigin;
|
|
162
162
|
float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
|
|
163
163
|
float shadow = readFragmentShadow(additionalAmbientScale);
|
|
164
164
|
float ssao = evaluateAmbientOcclusionInverse();
|
|
165
165
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
166
166
|
vec3 viewDirection = normalize(vpos - cameraPosition);
|
|
167
|
-
finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, shadow, 1.0 - ssao, additionalLight, viewDirection, vnormal), finalColor.a);`)),
|
|
167
|
+
finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, shadow, 1.0 - ssao, additionalLight, viewDirection, vnormal), finalColor.a);`)),T.main.add("outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);"),W}const W=Object.freeze(Object.defineProperty({__proto__:null,build:A},Symbol.toStringTag,{value:"Module"}));export{W as L,A as b};
|