@arcgis/core 5.2.0-next.94 → 5.2.0-next.95
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/{c4a0d3149947a1d2c484.js → 05662a663f761dd3dea5.js} +1 -1
- package/assets/esri/core/workers/chunks/0df9864ecebe6a2b973f.js +1 -0
- package/assets/esri/core/workers/chunks/10c13c36c42c5ac41d12.js +1 -0
- package/assets/esri/core/workers/chunks/{e50adcfb392adfb3f79c.js → 1b311ff39dede07865df.js} +1 -1
- package/assets/esri/core/workers/chunks/{188c6ff5f4664827c254.js → 1c803eef9a8fdabc61e3.js} +2 -2
- package/assets/esri/core/workers/chunks/1d7f633f158062eb3f64.js +1 -0
- package/assets/esri/core/workers/chunks/1f047dd747e7c1916dc7.js +1684 -0
- package/assets/esri/core/workers/chunks/2524e2385f61a6898411.js +1 -0
- package/assets/esri/core/workers/chunks/26737d061c7cfbbab95c.js +1 -0
- package/assets/esri/core/workers/chunks/{91de343844ac578e7c93.js → 2b6d261fe79fe186fb22.js} +1 -1
- package/assets/esri/core/workers/chunks/{8a87e1a89a0d8c6203a7.js → 2e51764c8aa31096cb2a.js} +1 -1
- package/assets/esri/core/workers/chunks/{da8a314800944706511b.js → 36e35a8067b18f59cc05.js} +1 -1
- package/assets/esri/core/workers/chunks/{d270b49c037085503016.js → 3a9435569ba460ff7e3d.js} +1 -1
- package/assets/esri/core/workers/chunks/{e488e5c62cb375c87a39.js → 471027e4280bd51167b0.js} +1 -1
- package/assets/esri/core/workers/chunks/4c088c26d5d546c95c90.js +1 -0
- package/assets/esri/core/workers/chunks/{e594b6db9caee1f7b9fc.js → 4d700cb028f6306b163e.js} +1 -1
- package/assets/esri/core/workers/chunks/{87e9f7e85221bc7e6709.js → 5168bd8ab6233dc9c32a.js} +1 -1
- package/assets/esri/core/workers/chunks/{cd02a6078443b8f63927.js → 5b8591486f33627f5389.js} +1 -1
- package/assets/esri/core/workers/chunks/{a89dbef8155d7c4354da.js → 5edf77618ca51819d7c4.js} +2 -2
- package/assets/esri/core/workers/chunks/6057a79c68c33ee4a193.js +1 -0
- package/assets/esri/core/workers/chunks/{48726010778d6004e347.js → 63127e3b22e7eac6003d.js} +2 -2
- package/assets/esri/core/workers/chunks/{ff83d0337ac489ab08de.js → 678585509706755c0434.js} +2 -2
- package/assets/esri/core/workers/chunks/{2754ba5cc094028a7a3c.js → 691e9cc541cfaebe1776.js} +1 -1
- package/assets/esri/core/workers/chunks/{32f11b4aeae1ef00e466.js → 6baae3e856d904fef9b1.js} +1 -1
- package/assets/esri/core/workers/chunks/{d44338bf5edafa3ca926.js → 6f01bd01b13662eb3bd7.js} +1 -1
- package/assets/esri/core/workers/chunks/{76e7d3cde2da4bdd7820.js → 74cd9df85c4560bb8e52.js} +1 -1
- package/assets/esri/core/workers/chunks/{97e41500fc2d24a88938.js → 7b70d6fdfa7a19ffffb0.js} +1 -1
- package/assets/esri/core/workers/chunks/7bb3411a86cdd736d555.js +1 -0
- package/assets/esri/core/workers/chunks/{ec77222776f755dc372c.js → 7ddb5800777fbecee3a8.js} +1 -1
- package/assets/esri/core/workers/chunks/7efc51324cfc8e08c756.js +1 -0
- package/assets/esri/core/workers/chunks/{e90076ac1cf88a83a7f9.js → 80f38ab2b7ae61e6f301.js} +1 -1
- package/assets/esri/core/workers/chunks/{5aa23b0f4521ba9a07ad.js → 854f42f16fdb40000aae.js} +1 -1
- package/assets/esri/core/workers/chunks/{24c44541046576fee7e0.js → 87094044458b0ea5cb0f.js} +2 -2
- package/assets/esri/core/workers/chunks/92a6559a6999b26362d7.js +1 -0
- package/assets/esri/core/workers/chunks/{3a65693964e3976d8035.js → 9df38cadebf8e6fd746c.js} +1 -1
- package/assets/esri/core/workers/chunks/{20f6e681ccd8bf884b77.js → a72983c3621810d4b1af.js} +1 -1
- package/assets/esri/core/workers/chunks/{9226205850e35b7fc610.js → a8aa8cb60b30f0983e7e.js} +1 -1
- package/assets/esri/core/workers/chunks/a8e9aa5461c71c88e2e5.js +1 -0
- package/assets/esri/core/workers/chunks/{1ab8307ba9981124f669.js → af6b9fd77b1792fbb66e.js} +1 -1
- package/assets/esri/core/workers/chunks/{19e93d4d37018e3ee849.js → b102ae764c14d8b32ace.js} +1 -1
- package/assets/esri/core/workers/chunks/{1554feab934e8e1bcd28.js → b333de4dea14c5db0a4d.js} +1 -1
- package/assets/esri/core/workers/chunks/{d7d5275d8b3c9430de1f.js → b7c0da9d255d5e48320d.js} +1 -1
- package/assets/esri/core/workers/chunks/{6b9dbf43c0659e55c539.js → be0417df35a7d99af675.js} +1 -1
- package/assets/esri/core/workers/chunks/{a46ac0be9aabc4cfedc7.js → cc3186dcbbf5edff8b9e.js} +1 -1
- package/assets/esri/core/workers/chunks/e5b6fa57cc4028fbd401.js +1 -0
- package/assets/esri/core/workers/chunks/e7fdad0c07beb3614b60.js +1 -0
- package/assets/esri/core/workers/chunks/{0336f4f8498a22347720.js → ea5ee1b12b43594592a0.js} +1 -1
- package/assets/esri/core/workers/chunks/{c4fef90cf08bbe4f0bb5.js → eafc591e1a98000d54ef.js} +1 -1
- package/assets/esri/core/workers/chunks/f331c24247d132589859.js +1 -0
- package/chunks/{GlowBlur.glsl.js → BlurEmission.glsl.js} +1 -1
- package/chunks/EmissionComposite.glsl.js +3 -3
- package/chunks/Fog.glsl.js +5 -3
- package/chunks/RibbonLine.glsl.js +52 -52
- package/config.js +1 -1
- package/core/timeUtils.d.ts +62 -0
- package/core/timeUtils.js +1 -1
- package/kernel.js +1 -1
- package/layers/AnnotationFeatureLayer.d.ts +0 -1
- package/package.json +2 -2
- package/rest/imageService/fetchRasterInfo.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/types.d.ts +2 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/support/buffer/InterleavedLayout.js +1 -1
- package/views/3d/webgl/RenderCamera.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -5
- package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
- package/views/3d/webgl-engine/effects/fog/FogTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/glow/{GlowBlur.glsl.js → BlurEmission.glsl.js} +1 -1
- package/views/3d/webgl-engine/effects/glow/BlurEmission.js +2 -0
- package/views/3d/webgl-engine/effects/glow/BlurEmissionTechnique.js +2 -0
- package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +37 -0
- package/views/3d/webgl-engine/lib/BufferGeometry.js +2 -0
- package/views/3d/webgl-engine/lib/EmissionComposite.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
- package/views/3d/webgl-engine/lib/EmissionCompositeTechnique.js +1 -1
- package/views/3d/webgl-engine/lib/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryBaseInstance.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/rendererUtils.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/Instance.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedBuffer.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/VaoWriter.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/EmissiveTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/floatBlendScale.glsl.js +1 -1
- package/views/SceneView.d.ts +1 -0
- package/views/SceneView.js +1 -1
- package/assets/esri/core/workers/chunks/15f4f7e34e14e3cf52e6.js +0 -1
- package/assets/esri/core/workers/chunks/19ab024f6f732fd6c69b.js +0 -1
- package/assets/esri/core/workers/chunks/22c94f9a69b2157f8dbd.js +0 -1
- package/assets/esri/core/workers/chunks/2ec44ebc48beeba11201.js +0 -1
- package/assets/esri/core/workers/chunks/349b0c7febc46267441d.js +0 -1684
- package/assets/esri/core/workers/chunks/5bf2ce280ea35ea4c96b.js +0 -1
- package/assets/esri/core/workers/chunks/75b90fb05e4a2d32b7bb.js +0 -1
- package/assets/esri/core/workers/chunks/7e41cee4a0ae75e1490d.js +0 -1
- package/assets/esri/core/workers/chunks/95a3f09751bff63f4fab.js +0 -1
- package/assets/esri/core/workers/chunks/98d614d6fc9de8ebaf94.js +0 -1
- package/assets/esri/core/workers/chunks/bdfffa5f88b559a4b42d.js +0 -1
- package/assets/esri/core/workers/chunks/c352696478b48a2090d5.js +0 -1
- package/assets/esri/core/workers/chunks/c91042f8bf886056a29c.js +0 -1
- package/assets/esri/core/workers/chunks/d58d6b55b2749a535eb3.js +0 -1
- package/assets/esri/core/workers/chunks/fbc7576ed12964059da6.js +0 -1
- package/chunks/GlowComposite.glsl.js +0 -2
- package/views/3d/webgl-engine/effects/glow/Glow.js +0 -2
- package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +0 -2
- package/views/3d/webgl-engine/effects/glow/GlowComposite.glsl.js +0 -2
- package/views/3d/webgl-engine/effects/glow/GlowCompositeTechnique.js +0 -2
- package/views/3d/webgl-engine/effects/glow/blurEmission.glsl.js +0 -38
- /package/assets/esri/core/workers/chunks/{188c6ff5f4664827c254.js.LICENSE.txt → 1c803eef9a8fdabc61e3.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{a89dbef8155d7c4354da.js.LICENSE.txt → 5edf77618ca51819d7c4.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{48726010778d6004e347.js.LICENSE.txt → 63127e3b22e7eac6003d.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{ff83d0337ac489ab08de.js.LICENSE.txt → 678585509706755c0434.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{24c44541046576fee7e0.js.LICENSE.txt → 87094044458b0ea5cb0f.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[4801],{48163(t,e,r){function n(){return[0,0]}function s(t){return[t[0],t[1]]}function i(t,e){return[t,e]}function u(){return i(1,1)}function o(){return i(-1,-1)}function c(){return i(1,0)}function f(){return i(0,1)}r.d(e,{fA:()=>i,o8:()=>s,vt:()=>n});const a=u(),h=o(),l=c(),d=f();Object.freeze(Object.defineProperty({__proto__:null,NEGATIVE_ONES:h,ONES:a,UNIT_X:l,UNIT_Y:d,ZEROS:[0,0],clone:s,create:n,freeze:function(t,e){return[t,e]},fromArray:function(t,e=[0,0]){const r=Math.min(2,t.length);for(let n=0;n<r;++n)e[n]=t[n];return e},fromValues:i,negativeOnes:o,ones:u,unitX:c,unitY:f,zeros:function(){return[0,0]}},Symbol.toStringTag,{value:"Module"})),r.d(e,["IA",0,h,"Un",0,a])},51850(t,e,r){function n(){return[0,0,0]}function s(t){return[t[0],t[1],t[2]]}function i(t,e,r){return[t,e,r]}function u(t,e,r){return[t,e,r]}function o(t,e=[0,0,0]){const r=Math.min(3,t.length);for(let n=0;n<r;++n)e[n]=t[n];return e}function c(){return i(1,1,1)}function f(){return i(1,0,0)}function a(){return i(0,1,0)}function h(){return i(0,0,1)}r.d(e,{CN:()=>u,ci:()=>o,fA:()=>i,o8:()=>s,vt:()=>n});const l=[0,0,0],d=c(),p=f(),y=a(),m=h();Object.freeze(Object.defineProperty({__proto__:null,ONES:d,UNIT_X:p,UNIT_Y:y,UNIT_Z:m,ZEROS:l,clone:s,create:n,freeze:u,fromArray:o,fromValues:i,ones:c,unitX:f,unitY:a,unitZ:h,zeros:function(){return[0,0,0]}},Symbol.toStringTag,{value:"Module"})),r.d(e,["Cb",0,m,"Cw",0,p,"JP",0,y,"Un",0,d,"uY",0,l])},91829(t,e,r){function n(){return[0,0,0,0]}function s(t,e,r,n){return[t,e,r,n]}function i(){return s(1,1,1,1)}function u(){return s(1,0,0,0)}function o(){return s(0,1,0,0)}function c(){return s(0,0,1,0)}function f(){return s(0,0,0,1)}r.d(e,{_Y:()=>f,fA:()=>s,vt:()=>n});const a=[0,0,0,0],h=i(),l=u(),d=o(),p=c(),y=f();Object.freeze(Object.defineProperty({__proto__:null,ONES:h,UNIT_W:y,UNIT_X:l,UNIT_Y:d,UNIT_Z:p,ZEROS:a,clone:function(t){return[t[0],t[1],t[2],t[3]]},create:n,freeze:function(t,e,r,n){return[t,e,r,n]},fromArray:function(t,e=[0,0,0,0]){const r=Math.min(4,t.length);for(let n=0;n<r;++n)e[n]=t[n];return e},fromValues:s,ones:i,unitW:f,unitX:u,unitY:o,unitZ:c,zeros:function(){return[0,0,0,0]}},Symbol.toStringTag,{value:"Module"})),r.d(e,["Un",0,h,"uY",0,a,"v7",0,y])},34304(t,e,r){r.d(e,{DF:()=>c,FD:()=>s,ct:()=>f});let n=1e-6;function s(){return n}const i=Math.random,u=Math.PI/180,o=180/Math.PI;function c(t){return t*u}function f(t){return t*o}Object.freeze(Object.defineProperty({__proto__:null,RANDOM:i,equals:function(t,e){return Math.abs(t-e)<=n*Math.max(1,Math.abs(t),Math.abs(e))},getEpsilon:s,setEpsilon:function(t){n=t},toDegree:f,toRadian:c},Symbol.toStringTag,{value:"Module"})),r.d(e,["Ov",0,i])},37585(t,e,r){r.d(e,{C:()=>i,Cc:()=>S,Io:()=>m,LI:()=>d,Ln:()=>y,Om:()=>M,Re:()=>c,S8:()=>T,T9:()=>h,WQ:()=>o,aI:()=>I,e$:()=>A,hG:()=>E,hZ:()=>u,hs:()=>p,l0:()=>g,qE:()=>l,t2:()=>b});var n=r(34727),s=r(34304);function i(t,e){return t[0]=e[0],t[1]=e[1],t}function u(t,e,r){return t[0]=e,t[1]=r,t}function o(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function c(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function f(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function a(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function h(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function l(t,e,r,s){return t[0]=(0,n.qE)(e[0],r[0],s[0]),t[1]=(0,n.qE)(e[1],r[1],s[1]),t}function d(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function p(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function y(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function m(t,e){const r=e[0]-t[0],n=e[1]-t[1];return Math.sqrt(r*r+n*n)}function E(t,e){const r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function _(t){const e=t[0],r=t[1];return Math.sqrt(e*e+r*r)}function B(t){const e=t[0],r=t[1];return e*e+r*r}function T(t,e){const r=e[0],n=e[1];let s=r*r+n*n;return s>0&&(s=1/Math.sqrt(s),t[0]=e[0]*s,t[1]=e[1]*s),t}function M(t,e){return t[0]*e[0]+t[1]*e[1]}function S(t,e,r,n){const s=e[0],i=e[1];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t}function g(t,e,r){const n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s+r[4],t[1]=r[1]*n+r[3]*s+r[5],t}function A(t,e,r,n){const s=e[0]-r[0],i=e[1]-r[1],u=Math.sin(n),o=Math.cos(n);return t[0]=s*o-i*u+r[0],t[1]=s*u+i*o+r[1],t}function b(t,e){return t[0]===e[0]&&t[1]===e[1]}function I(t,e){const r=t[0],n=t[1],i=e[0],u=e[1],o=(0,s.FD)();return Math.abs(r-i)<=o*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-u)<=o*Math.max(1,Math.abs(n),Math.abs(u))}const R=_,w=c,N=f,x=a,v=m,C=E,O=B;Object.freeze(Object.defineProperty({__proto__:null,add:o,angle:function(t,e){const r=t[0],n=t[1],s=e[0],i=e[1];let u=r*r+n*n;u>0&&(u=1/Math.sqrt(u));let o=s*s+i*i;o>0&&(o=1/Math.sqrt(o));const c=(r*s+n*i)*u*o;return c>1?0:c<-1?Math.PI:Math.acos(c)},ceil:function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t},clamp:l,copy:i,cross:function(t,e,r){const n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t},dist:v,distance:m,div:x,divide:a,dot:M,equals:I,exactEquals:b,floor:function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t},inverse:function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t},len:R,length:_,lerp:S,max:h,min:function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t},mul:N,multiply:f,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},normalize:T,projectAndScale:function(t,e,r,n,s){let i=e[0]-r[0],u=e[1]-r[1];const o=(n[0]*i+n[1]*u)*(s-1);return i=n[0]*o,u=n[1]*o,t[0]=e[0]+i,t[1]=e[1]+u,t},random:function(t,e=1){const r=2*(0,s.Ov)()*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t},rotate:A,round:d,scale:p,scaleAndAdd:y,set:u,sqrDist:C,sqrLen:O,squaredDistance:E,squaredLength:B,str:function(t){return"vec2("+t[0]+", "+t[1]+")"},sub:w,subtract:c,transformMat2:function(t,e,r){const n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t},transformMat2d:g,transformMat3:function(t,e,r){const n=e[0],s=e[1];return t[0]=r[0]*n+r[3]*s+r[6],t[1]=r[1]*n+r[4]*s+r[7],t},transformMat4:function(t,e,r){const n=e[0],s=e[1];return t[0]=r[0]*n+r[4]*s+r[12],t[1]=r[1]*n+r[5]*s+r[13],t}},Symbol.toStringTag,{value:"Module"})),r.d(e,["Il",0,R,"jb",0,w,"xg",0,v])},35522(t,e,r){r.d(e,{$A:()=>b,Bw:()=>i,C:()=>u,Cc:()=>I,DI:()=>S,Io:()=>_,Ln:()=>E,Om:()=>A,Qr:()=>h,Re:()=>f,S8:()=>g,T9:()=>y,WQ:()=>c,Z0:()=>R,_S:()=>d,aI:()=>U,ei:()=>w,fw:()=>x,gL:()=>N,hG:()=>B,hZ:()=>o,hs:()=>m,jk:()=>p,lw:()=>a,m3:()=>T,oW:()=>F,t2:()=>O,tn:()=>l,ze:()=>M});var n=r(51850),s=r(34304);function i(t){const e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function u(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function o(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function c(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function f(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function a(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function h(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function l(t,e){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t}function d(t,e){return t[0]=Math.sign(e[0]),t[1]=Math.sign(e[1]),t[2]=Math.sign(e[2]),t}function p(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function y(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function m(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function E(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function _(t,e){const r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2];return Math.sqrt(r*r+n*n+s*s)}function B(t,e){const r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2];return r*r+n*n+s*s}function T(t){const e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function M(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function S(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function g(t,e){const r=e[0],n=e[1],s=e[2];let i=r*r+n*n+s*s;return i>0&&(i=1/Math.sqrt(i),t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i),t}function A(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function b(t,e,r){const n=e[0],s=e[1],i=e[2],u=r[0],o=r[1],c=r[2];return t[0]=s*c-i*o,t[1]=i*u-n*c,t[2]=n*o-s*u,t}function I(t,e,r,n){const s=e[0],i=e[1],u=e[2];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t[2]=u+n*(r[2]-u),t}function R(t,e,r){const n=e[0],s=e[1],i=e[2];return t[0]=r[0]*n+r[4]*s+r[8]*i+r[12],t[1]=r[1]*n+r[5]*s+r[9]*i+r[13],t[2]=r[2]*n+r[6]*s+r[10]*i+r[14],t}function w(t,e,r){const n=e[0],s=e[1],i=e[2];return t[0]=n*r[0]+s*r[3]+i*r[6],t[1]=n*r[1]+s*r[4]+i*r[7],t[2]=n*r[2]+s*r[5]+i*r[8],t}function N(t,e,r){return x(t,e,r[0],r[1],r[2],r[3])}function x(t,e,r,n,s,i){const u=e[0],o=e[1],c=e[2],f=n*c-s*o,a=s*u-r*c,h=r*o-n*u,l=n*h-s*a,d=s*f-r*h,p=r*a-n*f,y=2*i;return t[0]=u+f*y+2*l,t[1]=o+a*y+2*d,t[2]=c+h*y+2*p,t}const v=(0,n.vt)(),C=(0,n.vt)();function O(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function U(t,e){if(t===e)return!0;const r=t[0],n=t[1],i=t[2],u=e[0],o=e[1],c=e[2],f=(0,s.FD)();return Math.abs(r-u)<=f*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(n-o)<=f*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-c)<=f*Math.max(1,Math.abs(i),Math.abs(c))}function F(t,e,r){const n=r[0]-e[0],s=r[1]-e[1],i=r[2]-e[2];let u=n*n+s*s+i*i;return u>0?(u=1/Math.sqrt(u),t[0]=n*u,t[1]=s*u,t[2]=i*u,t):(t[0]=0,t[1]=0,t[2]=0,t)}const L=f,G=a,P=h,D=_,q=B,Y=i,V=T;Object.freeze(Object.defineProperty({__proto__:null,abs:l,add:c,angle:function(t,e){g(v,t),g(C,e);const r=A(v,C);return r>1?0:r<-1?Math.PI:Math.acos(r)},bezier:function(t,e,r,n,s,i){const u=1-i,o=u*u,c=i*i,f=o*u,a=3*i*o,h=3*c*u,l=c*i;return t[0]=e[0]*f+r[0]*a+n[0]*h+s[0]*l,t[1]=e[1]*f+r[1]*a+n[1]*h+s[1]*l,t[2]=e[2]*f+r[2]*a+n[2]*h+s[2]*l,t},ceil:function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t},clamp:function(t,e=0,r=1){return t[0]=Math.min(Math.max(t[0],e),r),t[1]=Math.min(Math.max(t[1],e),r),t[2]=Math.min(Math.max(t[2],e),r),t},copy:u,cross:b,crossAndNormalize:function(t,e,r){const n=e[0],s=e[1],i=e[2],u=r[0],o=r[1],c=r[2],f=s*c-i*o,a=i*u-n*c,h=n*o-s*u,l=Math.sqrt(f*f+a*a+h*h);return t[0]=f/l,t[1]=a/l,t[2]=h/l,t},direction:F,dist:D,distance:_,div:P,divide:h,dot:A,equals:U,exactEquals:O,floor:function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t},hermite:function(t,e,r,n,s,i){const u=i*i,o=u*(2*i-3)+1,c=u*(i-2)+i,f=u*(i-1),a=u*(3-2*i);return t[0]=e[0]*o+r[0]*c+n[0]*f+s[0]*a,t[1]=e[1]*o+r[1]*c+n[1]*f+s[1]*a,t[2]=e[2]*o+r[2]*c+n[2]*f+s[2]*a,t},inverse:S,len:Y,length:i,lerp:I,max:y,min:p,mul:G,multiply:a,negate:M,normalize:g,random:function(t,e=1){const r=s.Ov,n=2*r()*Math.PI,i=2*r()-1,u=Math.sqrt(1-i*i)*e;return t[0]=Math.cos(n)*u,t[1]=Math.sin(n)*u,t[2]=i*e,t},rotateX:function(t,e,r,n){const s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[0],i[1]=s[1]*Math.cos(n)-s[2]*Math.sin(n),i[2]=s[1]*Math.sin(n)+s[2]*Math.cos(n),t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t},rotateY:function(t,e,r,n){const s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[2]*Math.sin(n)+s[0]*Math.cos(n),i[1]=s[1],i[2]=s[2]*Math.cos(n)-s[0]*Math.sin(n),t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t},rotateZ:function(t,e,r,n){const s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[0]*Math.cos(n)-s[1]*Math.sin(n),i[1]=s[0]*Math.sin(n)+s[1]*Math.cos(n),i[2]=s[2],t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t},round:function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t},scale:m,scaleAndAdd:E,scaleTo:function(t,e){return m(t,t,e/Y(t))},set:o,sign:d,sqrDist:q,sqrLen:V,squaredDistance:B,squaredLength:T,str:function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},sub:L,subtract:f,transformMat3:w,transformMat4:R,transformMat4Z:function(t,e){return e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]},transformQuat:N,transformQuatValues:x},Symbol.toStringTag,{value:"Module"})),r.d(e,["Il",0,Y,"jb",0,L,"lo",0,q,"uE",0,V])},78955(t,e,r){r.d(e,{Bw:()=>m,C:()=>s,Cc:()=>T,LI:()=>l,Om:()=>B,S8:()=>_,T9:()=>h,WQ:()=>u,Z0:()=>M,aI:()=>g,hG:()=>y,hZ:()=>i,hs:()=>d,jk:()=>a,m3:()=>E,t2:()=>S});var n=r(34304);function s(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function i(t,e,r,n,s){return t[0]=e,t[1]=r,t[2]=n,t[3]=s,t}function u(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function o(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function c(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}function f(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}function a(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}function h(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}function l(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t[3]=Math.round(e[3]),t}function d(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function p(t,e){const r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2],i=e[3]-t[3];return Math.sqrt(r*r+n*n+s*s+i*i)}function y(t,e){const r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2],i=e[3]-t[3];return r*r+n*n+s*s+i*i}function m(t){const e=t[0],r=t[1],n=t[2],s=t[3];return Math.sqrt(e*e+r*r+n*n+s*s)}function E(t){const e=t[0],r=t[1],n=t[2],s=t[3];return e*e+r*r+n*n+s*s}function _(t,e){const r=e[0],n=e[1],s=e[2],i=e[3];let u=r*r+n*n+s*s+i*i;return u>0&&(u=1/Math.sqrt(u),t[0]=r*u,t[1]=n*u,t[2]=s*u,t[3]=i*u),t}function B(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function T(t,e,r,n){const s=e[0],i=e[1],u=e[2],o=e[3];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t[2]=u+n*(r[2]-u),t[3]=o+n*(r[3]-o),t}function M(t,e,r){const n=e[0],s=e[1],i=e[2],u=e[3];return t[0]=r[0]*n+r[4]*s+r[8]*i+r[12]*u,t[1]=r[1]*n+r[5]*s+r[9]*i+r[13]*u,t[2]=r[2]*n+r[6]*s+r[10]*i+r[14]*u,t[3]=r[3]*n+r[7]*s+r[11]*i+r[15]*u,t}function S(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function g(t,e){const r=t[0],s=t[1],i=t[2],u=t[3],o=e[0],c=e[1],f=e[2],a=e[3],h=(0,n.FD)();return Math.abs(r-o)<=h*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(s-c)<=h*Math.max(1,Math.abs(s),Math.abs(c))&&Math.abs(i-f)<=h*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(u-a)<=h*Math.max(1,Math.abs(u),Math.abs(a))}const A=o,b=c,I=f,R=p,w=y,N=m,x=E;Object.freeze(Object.defineProperty({__proto__:null,add:u,ceil:function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t},copy:s,copyVec3:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},dist:R,distance:p,div:I,divide:f,dot:B,equals:g,exactEquals:S,floor:function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t},inverse:function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t},len:N,length:m,lerp:T,max:h,min:a,mul:b,multiply:c,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},normalize:_,random:function(t,e=1){const r=n.Ov;let s,i,u,o,c,f;do{s=2*r()-1,i=2*r()-1,c=s*s+i*i}while(c>=1);do{u=2*r()-1,o=2*r()-1,f=u*u+o*o}while(f>=1);const a=Math.sqrt((1-c)/f);return t[0]=e*s,t[1]=e*i,t[2]=e*u*a,t[3]=e*o*a,t},round:l,scale:d,scaleAndAdd:function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t},set:i,sqrDist:w,sqrLen:x,squaredDistance:y,squaredLength:E,str:function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},sub:A,subtract:o,transformMat4:M,transformQuat:function(t,e,r){const n=e[0],s=e[1],i=e[2],u=r[0],o=r[1],c=r[2],f=r[3],a=f*n+o*i-c*s,h=f*s+c*n-u*i,l=f*i+u*s-o*n,d=-u*n-o*s-c*i;return t[0]=a*f+d*-u+h*-c-l*-o,t[1]=h*f+d*-o+l*-u-a*-c,t[2]=l*f+d*-c+a*-o-h*-u,t[3]=e[3],t}},Symbol.toStringTag,{value:"Module"}))},97146(t,e,r){r.d(e,{Dg:()=>i,lC:()=>o,my:()=>u,tM:()=>h,uW:()=>s});var n=r(34275);function s(t){return i(t,!0)}function i(t,e){if(Array.isArray(t)){if(t.length<1024)return t}else if(t.length<1024)return Array.from(t);let r=!0,s=!0;return t.some((t,e)=>(r=r&&0===t,s=s&&t===e,!r&&!s)),r?function(t){if(1===t)return f;if(t<1024)return new Array(t).fill(0);if(t>d.length){const e=Math.max(2*d.length,t);d=new Uint8Array(e)}return new Uint8Array(d.buffer,0,t)}(t.length):s?h(t.length):(0,n.iu)(t)&&t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT?t:function(t,e){for(const r of t){if(r>=65536)return(0,n.iu)(t)?t:new Uint32Array(t);r>=256&&(e=!1)}return e?new Uint8Array(t):new Uint16Array(t)}(t,!e)}function u(t,e=t){return t<=1024?new Array(t):e<=65536?new Uint16Array(t):new Uint32Array(t)}function o(t,e,r){if(0===e.length)return t.slice();if(0===t.length)return e.slice();const n=u(t.length+e.length,r);for(let e=0;e<t.length;++e)n[e]=t[e];for(let r=0;r<e.length;++r)n[t.length+r]=e[r];return n}let c=l(131072);const f=[0],a=(()=>{const t=new Uint16Array(65536);for(let e=0;e<t.length;++e)t[e]=e;return t})();function h(t){return 1===t?f:t<1024?Array.from(new Uint16Array(a.buffer,0,t)):t<a.length?new Uint16Array(a.buffer,0,t):(t>c.length&&(c=l(Math.max(2*c.length,t))),new Uint32Array(c.buffer,0,t))}function l(t){const e=new Uint32Array(t);for(let t=0;t<e.length;t++)e[t]=t;return e}let d=new Uint8Array(65536)},13030(t,e,r){r.d(e,{Y$:()=>m,XW:()=>y,qB:()=>R,Qt:()=>Z,My:()=>Q,bf:()=>z,jZ:()=>g,j0:()=>A,Sx:()=>b,E$:()=>I,Qy:()=>nt,h:()=>F,P:()=>D,SL:()=>v,dy:()=>et,ES:()=>st,gH:()=>_,ZD:()=>E,si:()=>w,mJ:()=>W,UL:()=>J,D6:()=>H,Yi:()=>L,An:()=>q,LC:()=>C,xs:()=>T,EC:()=>B,Xm:()=>N,Vp:()=>$,zD:()=>K,m8:()=>j,nS:()=>G,H$:()=>Y,eI:()=>O,td:()=>rt,Eq:()=>S,jz:()=>M,Aj:()=>x,E7:()=>k,Y4:()=>tt,TX:()=>X,Uz:()=>P,ml:()=>V,XP:()=>U});var n=r(34727),s=r(37585),i=r(48163),u=r(78955),o=r(91829);class c{static{this.ElementCount=9}constructor(t,e,r=0,n,s){this.TypedArrayConstructor=t,this.elementCount=9;const i=this.TypedArrayConstructor;void 0===n&&(n=9*i.BYTES_PER_ELEMENT);const u=0===e.byteLength?0:r;this.typedBuffer=null==s?new i(e,u):new i(e,u,(s-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=n/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const n=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,n,this.stride,n+r*this.stride)}getMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<9;t++)e[t]=this.typedBuffer[r++];return e}setMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<9;t++)this.typedBuffer[r++]=e[t]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}copyFrom(t,e,r){const n=this.typedBuffer,s=e.typedBuffer;let i=t*this.typedBufferStride,u=r*e.typedBufferStride;for(let t=0;t<9;++t)n[i++]=s[u++]}get buffer(){return this.typedBuffer.buffer}}class f{static{this.ElementCount=16}constructor(t,e,r=0,n,s){this.TypedArrayConstructor=t,this.elementCount=16;const i=this.TypedArrayConstructor;void 0===n&&(n=16*i.BYTES_PER_ELEMENT);const u=0===e.byteLength?0:r;this.typedBuffer=null==s?new i(e,u):new i(e,u,(s-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=n/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const n=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,n,this.stride,n+r*this.stride)}getMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<16;t++)e[t]=this.typedBuffer[r++];return e}setMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<16;t++)this.typedBuffer[r++]=e[t]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}copyFrom(t,e,r){this.copyFromTypedBuffer(t,e.typedBuffer,r*e.typedBufferStride)}copyFromTypedBuffer(t,e,r){const n=this.typedBuffer;let s=t*this.typedBufferStride;for(let t=0;t<16;++t)n[s++]=e[r++]}get buffer(){return this.typedBuffer.buffer}}class a{static{this.ElementCount=1}constructor(t,e,r=0,n,s){this.TypedArrayConstructor=t,this.elementCount=1;const i=this.TypedArrayConstructor;void 0===n&&(n=i.BYTES_PER_ELEMENT);const u=0===e.byteLength?0:r;this.typedBuffer=null==s?new i(e,u):new i(e,u,(s-r)/i.BYTES_PER_ELEMENT),this.stride=n,this.typedBufferStride=n/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride)}sliceBuffer(t,e,r=this.count-e){const n=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,n,this.stride,n+r*this.stride)}get(t){return this.typedBuffer[t*this.typedBufferStride]}set(t,e){this.typedBuffer[t*this.typedBufferStride]=e}get buffer(){return this.typedBuffer.buffer}}class h{static{this.ElementCount=2}constructor(t,e,r=0,n,s){this.TypedArrayConstructor=t,this.start=r,this.elementCount=2;const i=this.TypedArrayConstructor;void 0===n&&(n=2*i.BYTES_PER_ELEMENT);const u=0===e.byteLength?0:r;this.typedBuffer=null==s?new i(e,u):new i(e,u,(s-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=n/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const n=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,n,this.stride,n+r*this.stride)}getVec(t,e){return t*=this.typedBufferStride,(0,s.hZ)(e,this.typedBuffer[t],this.typedBuffer[t+1])}setVec(t,e){t*=this.typedBufferStride,this.typedBuffer[t++]=e[0],this.typedBuffer[t]=e[1]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}setValues(t,e,r){t*=this.typedBufferStride,this.typedBuffer[t++]=e,this.typedBuffer[t]=r}copyFrom(t,e,r){const n=this.typedBuffer,s=e.typedBuffer;let i=t*this.typedBufferStride,u=r*e.typedBufferStride;n[i++]=s[u++],n[i]=s[u]}get buffer(){return this.typedBuffer.buffer}}var l=r(35522);class d{static{this.ElementCount=3}constructor(t,e,r=0,n,s){this.TypedArrayConstructor=t,this.elementCount=3;const i=this.TypedArrayConstructor;void 0===n&&(n=3*i.BYTES_PER_ELEMENT);const u=0===e.byteLength?0:r;this.typedBuffer=null==s?new i(e,u):new i(e,u,(s-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=n/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const n=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,n,this.stride,n+r*this.stride)}getVec(t,e){return t*=this.typedBufferStride,(0,l.hZ)(e,this.typedBuffer[t],this.typedBuffer[t+1],this.typedBuffer[t+2])}setVec(t,e){t*=this.typedBufferStride,this.typedBuffer[t++]=e[0],this.typedBuffer[t++]=e[1],this.typedBuffer[t]=e[2]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}setValues(t,e,r,n){t*=this.typedBufferStride,this.typedBuffer[t++]=e,this.typedBuffer[t++]=r,this.typedBuffer[t]=n}copyFrom(t,e,r){const n=this.typedBuffer,s=e.typedBuffer;let i=t*this.typedBufferStride,u=r*e.typedBufferStride;n[i++]=s[u++],n[i++]=s[u++],n[i]=s[u]}get buffer(){return this.typedBuffer.buffer}}class p{static{this.ElementCount=4}constructor(t,e,r=0,n,s){this.TypedArrayConstructor=t,this.start=r,this.elementCount=4;const i=this.TypedArrayConstructor;void 0===n&&(n=4*i.BYTES_PER_ELEMENT);const u=0===e.byteLength?0:r;this.typedBuffer=null==s?new i(e,u):new i(e,u,(s-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=n/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const n=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,n,this.stride,n+r*this.stride)}getVec(t,e){return t*=this.typedBufferStride,(0,u.hZ)(e,this.typedBuffer[t++],this.typedBuffer[t++],this.typedBuffer[t++],this.typedBuffer[t])}setVec(t,e){t*=this.typedBufferStride,this.typedBuffer[t++]=e[0],this.typedBuffer[t++]=e[1],this.typedBuffer[t++]=e[2],this.typedBuffer[t]=e[3]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}setValues(t,e,r,n,s){t*=this.typedBufferStride,this.typedBuffer[t++]=e,this.typedBuffer[t++]=r,this.typedBuffer[t++]=n,this.typedBuffer[t]=s}copyFrom(t,e,r){const n=this.typedBuffer,s=e.typedBuffer;let i=t*this.typedBufferStride,u=r*e.typedBufferStride;n[i++]=s[u++],n[i++]=s[u++],n[i++]=s[u++],n[i]=s[u]}get buffer(){return this.typedBuffer.buffer}}class y extends a{constructor(t,e=0,r,n){super(Float16Array,t,e,r,n),this.elementType="f16"}static{this.ElementType="f16"}}class m extends a{constructor(t,e=0,r,n){super(Float32Array,t,e,r,n),this.elementType="f32"}static{this.ElementType="f32"}}class E extends h{constructor(t,e=0,r,n){super(Float16Array,t,e,r,n),this.elementType="f16"}slice(t,e){return this.sliceBuffer(E,t,e)}static{this.ElementType="f16"}}class _ extends h{constructor(t,e=0,r,n){super(Float32Array,t,e,r,n),this.elementType="f32"}slice(t,e){return this.sliceBuffer(_,t,e)}static{this.ElementType="f32"}}class B extends d{constructor(t,e=0,r,n){super(Float16Array,t,e,r,n),this.elementType="f16"}slice(t,e){return this.sliceBuffer(B,t,e)}static{this.ElementType="f16"}}class T extends d{constructor(t,e=0,r,n){super(Float32Array,t,e,r,n),this.elementType="f32"}slice(t,e){return this.sliceBuffer(T,t,e)}static fromTypedArray(t,e){return new T(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class M extends p{constructor(t,e=0,r,n){super(Float16Array,t,e,r,n),this.elementType="f16"}slice(t,e){return this.sliceBuffer(M,t,e)}static{this.ElementType="f16"}}class S extends p{constructor(t,e=0,r,n){super(Float32Array,t,e,r,n),this.elementType="f32"}slice(t,e){return this.sliceBuffer(S,t,e)}static{this.ElementType="f32"}}class g extends c{constructor(t,e=0,r,n){super(Float32Array,t,e,r,n),this.elementType="f32"}slice(t,e){return this.sliceBuffer(g,t,e)}static{this.ElementType="f32"}}class A extends c{constructor(t,e=0,r,n){super(Float64Array,t,e,r,n),this.elementType="f64"}slice(t,e){return this.sliceBuffer(A,t,e)}static{this.ElementType="f64"}}class b extends f{constructor(t,e=0,r,n){super(Float32Array,t,e,r,n),this.elementType="f32"}slice(t,e){return this.sliceBuffer(b,t,e)}static{this.ElementType="f32"}}class I extends f{constructor(t,e=0,r,n){super(Float64Array,t,e,r,n),this.elementType="f64"}slice(t,e){return this.sliceBuffer(I,t,e)}static{this.ElementType="f64"}}class R extends a{constructor(t,e=0,r,n){super(Float64Array,t,e,r,n),this.elementType="f64"}slice(t,e){return this.sliceBuffer(R,t,e)}static{this.ElementType="f64"}}class w extends h{constructor(t,e=0,r,n){super(Float64Array,t,e,r,n),this.elementType="f64"}slice(t,e){return this.sliceBuffer(w,t,e)}static{this.ElementType="f64"}}class N extends d{constructor(t,e=0,r,n){super(Float64Array,t,e,r,n),this.elementType="f64"}slice(t,e){return this.sliceBuffer(N,t,e)}static fromTypedArray(t,e){return new N(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class x extends p{constructor(t,e=0,r,n){super(Float64Array,t,e,r,n),this.elementType="f64"}slice(t,e){return this.sliceBuffer(x,t,e)}static{this.ElementType="f64"}}class v extends a{constructor(t,e=0,r,n){super(Uint8Array,t,e,r,n),this.elementType="u8"}slice(t,e){return this.sliceBuffer(v,t,e)}static{this.ElementType="u8"}}class C extends h{constructor(t,e=0,r,n){super(Uint8Array,t,e,r,n),this.elementType="u8"}slice(t,e){return this.sliceBuffer(C,t,e)}static{this.ElementType="u8"}}class O extends d{constructor(t,e=0,r,n){super(Uint8Array,t,e,r,n),this.elementType="u8"}slice(t,e){return this.sliceBuffer(O,t,e)}static fromTypedArray(t,e){return new O(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u8"}}class U extends p{constructor(t,e=0,r,n){super(Uint8Array,t,e,r,n),this.elementType="u8"}slice(t,e){return this.sliceBuffer(U,t,e)}static{this.ElementType="u8"}}class F extends a{constructor(t,e=0,r,n){super(Uint16Array,t,e,r,n),this.elementType="u16"}slice(t,e){return this.sliceBuffer(F,t,e)}static{this.ElementType="u16"}}class L extends h{constructor(t,e=0,r,n){super(Uint16Array,t,e,r,n),this.elementType="u16"}slice(t,e){return this.sliceBuffer(L,t,e)}static{this.ElementType="u16"}}class G extends d{constructor(t,e=0,r,n){super(Uint16Array,t,e,r,n),this.elementType="u16"}slice(t,e){return this.sliceBuffer(G,t,e)}static{this.ElementType="u16"}}class P extends p{constructor(t,e=0,r,n){super(Uint16Array,t,e,r,n),this.elementType="u16"}slice(t,e){return this.sliceBuffer(P,t,e)}static{this.ElementType="u16"}}class D extends a{constructor(t,e=0,r,n){super(Uint32Array,t,e,r,n),this.elementType="u32"}slice(t,e){return this.sliceBuffer(D,t,e)}static{this.ElementType="u32"}}class q extends h{constructor(t,e=0,r,n){super(Uint32Array,t,e,r,n),this.elementType="u32"}slice(t,e){return this.sliceBuffer(q,t,e)}static{this.ElementType="u32"}}class Y extends d{constructor(t,e=0,r,n){super(Uint32Array,t,e,r,n),this.elementType="u32"}slice(t,e){return this.sliceBuffer(Y,t,e)}static{this.ElementType="u32"}}class V extends p{constructor(t,e=0,r,n){super(Uint32Array,t,e,r,n),this.elementType="u32"}slice(t,e){return this.sliceBuffer(V,t,e)}static{this.ElementType="u32"}}class z extends a{constructor(t,e=0,r,n){super(Int8Array,t,e,r,n),this.elementType="i8"}slice(t,e){return this.sliceBuffer(z,t,e)}static{this.ElementType="i8"}}class H extends h{constructor(t,e=0,r,n){super(Int8Array,t,e,r,n),this.elementType="i8"}slice(t,e){return this.sliceBuffer(H,t,e)}static{this.ElementType="i8"}}class j extends d{constructor(t,e=0,r,n){super(Int8Array,t,e,r,n),this.elementType="i8"}slice(t,e){return this.sliceBuffer(j,t,e)}static{this.ElementType="i8"}}class X extends p{constructor(t,e=0,r,n){super(Int8Array,t,e,r,n),this.elementType="i8"}slice(t,e){return this.sliceBuffer(X,t,e)}static{this.ElementType="i8"}}class Z extends a{constructor(t,e=0,r,n){super(Int16Array,t,e,r,n),this.elementType="i16"}slice(t,e){return this.sliceBuffer(Z,t,e)}static{this.ElementType="i16"}}class W extends h{constructor(t,e=0,r,n){super(Int16Array,t,e,r,n),this.elementType="i16"}slice(t,e){return this.sliceBuffer(W,t,e)}static{this.ElementType="i16"}}class $ extends d{constructor(t,e=0,r,n){super(Int16Array,t,e,r,n),this.elementType="i16"}slice(t,e){return this.sliceBuffer($,t,e)}static{this.ElementType="i16"}}class k extends p{constructor(t,e=0,r,n){super(Int16Array,t,e,r,n),this.elementType="i16"}slice(t,e){return this.sliceBuffer(k,t,e)}static{this.ElementType="i16"}}class Q extends a{constructor(t,e=0,r,n){super(Int32Array,t,e,r,n),this.elementType="i32"}slice(t,e){return this.sliceBuffer(Q,t,e)}static{this.ElementType="i32"}}class J extends h{constructor(t,e=0,r,n){super(Int32Array,t,e,r,n),this.elementType="i32"}slice(t,e){return this.sliceBuffer(J,t,e)}static{this.ElementType="i32"}}class K extends d{constructor(t,e=0,r,n){super(Int32Array,t,e,r,n),this.elementType="i32"}slice(t,e){return this.sliceBuffer(K,t,e)}static{this.ElementType="i32"}}class tt extends p{constructor(t,e=0,r,n){super(Int32Array,t,e,r,n),this.elementType="i32"}slice(t,e){return this.sliceBuffer(tt,t,e)}static{this.ElementType="i32"}}class et extends v{constructor(t,e=0,r,n){super(t,e,r,n)}get(t){return this.typedBuffer[t*this.typedBufferStride]/255}set(t,e){this.typedBuffer[t*this.typedBufferStride]=Math.round(255*(0,n.qE)(e,0,1))}slice(t,e){return this.sliceBuffer(et,t,e)}}class rt extends U{constructor(t,e=0,r,n){super(t,e,r,n)}getVec(t,e){return(0,u.hs)(e,super.getVec(t,e),1/255)}setVec(t,e){(0,u.jk)(ut,(0,u.T9)(ut,e,o.uY),o.Un),(0,u.hs)(ut,ut,255),(0,u.LI)(ut,ut),super.setVec(t,ut)}get(t,e){return super.get(t,e)/255}set(t,e,r){super.set(t,e,Math.round(255*(0,n.qE)(r,0,1)))}setValues(t,e,r,n,s){(0,u.hZ)(ut,e,r,n,s),this.setVec(t,ut)}slice(t,e){return this.sliceBuffer(rt,t,e)}}class nt extends Z{constructor(t,e=0,r,n){super(t,e,r,n)}get(t){return Math.max(super.get(t)/32767,-1)}set(t,e){super.set(t,Math.round(32767*(0,n.qE)(e,-1,1)))}slice(t,e){return this.sliceBuffer(nt,t,e)}}class st extends W{constructor(t,e=0,r,n){super(t,e,r,n)}getVec(t,e){return(0,s.hZ)(it,-1,-1),(0,s.T9)(e,(0,s.hs)(e,super.getVec(t,e),1/32767),it)}setVec(t,e){(0,s.qE)(it,e,i.IA,i.Un),(0,s.hs)(it,it,32767),(0,s.LI)(it,it),super.setVec(t,it)}get(t,e){return Math.max(super.get(t,e)/32767,-1)}set(t,e,r){super.set(t,e,Math.round(32767*(0,n.qE)(r,-1,1)))}setValues(t,e,r){(0,s.hZ)(it,e,r),this.setVec(t,it)}slice(t,e){return this.sliceBuffer(st,t,e)}}const it=(0,i.vt)(),ut=(0,o.vt)()},90239(t,e,r){function n(t){switch(t){case"u8":case"i8":return 1;case"u16":case"i16":case"f16":return 2;case"u32":case"i32":case"f32":return 4;case"f64":return 8}}r.d(e,{GJ:()=>n})},1843(t,e,r){r.d(e,{BP:()=>a,l5:()=>h});var n=r(13030),s=r(90239),i=r(4431),u=r(620),o=r(85079);class c{constructor(t,e,r=0){this.layout=t,this.byteOffset=r,this.buffer="number"==typeof e?new ArrayBuffer(e*t.stride):e;for(const e of t.fields.keys()){const n=t.fields.get(e);this[e]=new n.constructor(this.buffer,r+n.offset,this.stride)}}get stride(){return this.layout.stride}get count(){return this.byteLength/this.stride}get byteLength(){return this.buffer.byteLength-this.byteOffset}getField(t,e){const r=this[t];return r&&r.elementCount===e.ElementCount&&r.elementType===e.ElementType?r:null}slice(t,e){return new c(this.layout,this.buffer.slice(t*this.stride,e*this.stride))}copyFrom(t,e=0,r=0,n=t.count){const s=this.stride;if(s%4==0){const i=new Uint32Array(t.buffer,e*s,n*s/4);new Uint32Array(this.buffer,r*s,n*s/4).set(i)}else{const i=new Uint8Array(t.buffer,e*s,n*s);new Uint8Array(this.buffer,r*s,n*s).set(i)}return this}get usedMemory(){return this.byteLength}dispose(){}}class f{constructor(t){this._stride=0,this._fields=new Map,t&&(this._stride=t.stride,t.fields.forEach(t=>this._fields.set(t[0],{...t[1],constructor:p(t[1].constructor)})))}freeze(){return this}get locations(){return(0,o.Xk)((0,i.U)(this))}vec2f16(t,e){return this._appendField(t,n.ZD,e),this}vec2f(t,e){return this._appendField(t,n.gH,e),this}vec2f64(t,e){return this._appendField(t,n.si,e),this}vec3f16(t,e){return this._appendField(t,n.EC,e),this}vec3f(t,e){return this._appendField(t,n.xs,e),this}vec3f64(t,e){return this._appendField(t,n.Xm,e),this}vec4f16(t,e){return this._appendField(t,n.jz,e),this}vec4f(t,e){return this._appendField(t,n.Eq,e),this}vec4f64(t,e){return this._appendField(t,n.Aj,e),this}mat3f(t,e){return this._appendField(t,n.jZ,e),this}mat3f64(t,e){return this._appendField(t,n.j0,e),this}mat4f(t,e){return this._appendField(t,n.Sx,e),this}mat4f64(t,e){return this._appendField(t,n.E$,e),this}vec4u8(t,e){return this._appendField(t,n.XP,e),this}f16(t,e){return this._appendField(t,n.XW,e),this}f32(t,e){return this._appendField(t,n.Y$,e),this}f64(t,e){return this._appendField(t,n.qB,e),this}u8(t,e){return this._appendField(t,n.SL,e),this}u16(t,e){return this._appendField(t,n.h,e),this}i8(t,e){return this._appendField(t,n.bf,e),this}vec2i8(t,e){return this._appendField(t,n.D6,e),this}vec2i16(t,e){return this._appendField(t,n.mJ,e),this}vec2u8(t,e){return this._appendField(t,n.LC,e),this}vec2u16(t,e){return this._appendField(t,n.Yi,e),this}vec4u16(t,e){return this._appendField(t,n.Uz,e),this}vec4i16(t,e){return this._appendField(t,n.E7,e),this}u32(t,e){return this._appendField(t,n.P,e),this}_appendField(t,e,r){this._fields.has(t)&&(0,u.vA)(!1,`${t} already added to vertex buffer layout`);const n=e.ElementCount*(0,s.GJ)(e.ElementType),i=this._stride;this._fields.set(t,{constructor:e,size:n,offset:i,optional:r}),this._alignFields()}_alignFields(){let t=0,e=1;this._fields.forEach(r=>{const n=(0,s.GJ)(r.constructor.ElementType);t=Math.floor((t+n-1)/n)*n,r.offset=t,t+=r.size,e=Math.max(e,n)}),t=Math.floor((t+e-1)/e)*e,this._stride=t}createBuffer(t){return new c(this,t)}createView(t,e){return new c(this,t,e)}clone(){const t=new f;return t._stride=this._stride,t._fields=new Map,this._fields.forEach((e,r)=>t._fields.set(r,e)),t}get stride(){return this._stride}get fields(){return this._fields}}function a(){return new f}class h{constructor(t){this.fields=new Array,t.fields.forEach((t,e)=>{const r={...t,constructor:d(t.constructor)};this.fields.push([e,r])}),this.stride=t.stride}}const l=[n.Y$,n.gH,n.xs,n.Eq,n.jZ,n.Sx,n.qB,n.si,n.Xm,n.Aj,n.j0,n.E$,n.SL,n.LC,n.eI,n.XP,n.h,n.Yi,n.nS,n.Uz,n.P,n.An,n.H$,n.ml,n.bf,n.D6,n.m8,n.TX,n.Qt,n.mJ,n.Vp,n.E7,n.My,n.UL,n.zD,n.Y4];function d(t){return`${t.ElementType}_${t.ElementCount}`}function p(t){return y.get(t)}const y=new Map;l.forEach(t=>y.set(d(t),t))},4431(t,e,r){r.d(e,{U:()=>i});var n=r(63907),s=r(74038);function i(t,e=0){const r=t.stride;return t.fields.entries().map(([t,i])=>{const u=i.constructor.ElementCount,o=function(t){switch(t){case"u8":return n.pe.UNSIGNED_BYTE;case"u16":return n.pe.UNSIGNED_SHORT;case"u32":return n.pe.UNSIGNED_INT;case"i8":return n.pe.BYTE;case"i16":return n.pe.SHORT;case"i32":return n.pe.INT;case"f16":return n.pe.HALF_FLOAT;case"f32":return n.pe.FLOAT;default:throw new Error("BufferType not supported in WebGL")}}(i.constructor.ElementType),c=i.offset,f=i.optional?.glNormalized??!1,a=i.optional?.integer??!1;return new s._(t,u,o,c,r,f,e,a)}).toArray()}},10614(t,e,r){r.d(e,{Tz:()=>u,aT:()=>i});var n=r(34727),s=r(35522);function i(t,e,r,n,s,i=2,u=0){const c=1/(Math.abs(r)+Math.abs(n)+Math.abs(s)),f=r*c,a=n*c,h=s<=0?(f>=0?1:-1)*(1-Math.abs(a)):f,l=s<=0?(a>=0?1:-1)*(1-Math.abs(f)):a,d=e*i+u;t[d]=o(h),t[d+1]=o(l)}function u(t,e,r,n=2,i=0){const u=r*n+i,o=c(e[u]),f=c(e[u+1]),a=1-Math.abs(o)-Math.abs(f);return t[2]=a,a<0?(t[0]=(o>=0?1:-1)*(1-Math.abs(f)),t[1]=(f>=0?1:-1)*(1-Math.abs(o))):(t[0]=o,t[1]=f),(0,s.S8)(t,t)}function o(t){return(0,n.qE)(Math.round(32767*t),-32767,32767)}function c(t){return(0,n.qE)(t/32767,-1,1)}r(51850)},620(t,e,r){r.d(e,{O_:()=>i,vA:()=>s}),r(48163),r(78955),(0,r(91829).vt)();class n{constructor(t){this.message=t}toString(){return`AssertException: ${this.message}`}}function s(t,e="Assertion"){if(!t){const t=new Error(e).stack;throw new n(`${e} at ${t}`)}}function i(t,e,r,n){let s,i=(r[0]-t[0])/e[0],u=(n[0]-t[0])/e[0];i>u&&(s=i,i=u,u=s);let o=(r[1]-t[1])/e[1],c=(n[1]-t[1])/e[1];if(o>c&&(s=o,o=c,c=s),i>c||o>u)return!1;o>i&&(i=o),c<u&&(u=c);let f=(r[2]-t[2])/e[2],a=(n[2]-t[2])/e[2];return f>a&&(s=f,f=a,a=s),!(i>a||f>u||(a<u&&(u=a),u<0))}},99058(t,e,r){r.d(e,{I$:()=>E,gr:()=>T,In:()=>M});var n=r(4431),s=r(1843),i=r(63907);class u{constructor(t){this.internalFormat=t,this.channelByteStride=4,this.dataType=i.ld.UNSIGNED_INT,this.elementArrayConstructor=Uint32Array,this.pixelFormat=c[t],this.channels=o[this.pixelFormat],this.byteStride=this.channelByteStride*this.channels}}const o={36244:1,33320:2,36249:4},c={[i.H0.R32UI]:36244,[i.H0.RG32UI]:33320,[i.H0.RGBA32UI]:36249},f=[new u(i.H0.RGBA32UI),new u(i.H0.RG32UI),new u(i.H0.R32UI)];function a(t){let e=1/0,r=null;for(const n of f){const s=n.byteStride,i=(s-t%s)%s;i<e&&(e=i,r=n)}return r??f[2]}var h=r(13030),l=r(90239);class d{constructor(t,e,r){this.elementCount=t,this.elementType=e,this.bufferViewConstructor=r,this.byteSize=function(t){return(0,l.GJ)(t.ElementType)*t.ElementCount}(r)}}const p={u8:new d(1,"uint",h.SL),u32:new d(1,"uint",h.P),vec4u32:new d(4,"uint",h.ml),vec4u8:new d(4,"uint",h.XP),unorm8:new d(1,"float",h.dy),vec4unorm8:new d(4,"float",h.td),snorm16:new d(1,"float",h.Qy),vec2snorm16:new d(2,"float",h.ES),f16:new d(1,"float",h.XW),vec4f16:new d(4,"float",h.jz),f32:new d(1,"float",h.Y$),vec2f32:new d(2,"float",h.gH),vec3f32:new d(3,"float",h.xs),vec4f32:new d(4,"float",h.Eq),mat3f32:new d(9,"float",h.jZ)};class y{constructor(t,e,r,n){this._declaration=t,this._byteOffset=e,this._creationInfo=n,this._startTexel=Math.floor(e/r);const s=n.byteSize;this._numTexels=Math.ceil((e+s)/r)-this._startTexel,this._texelByteStride=r}get name(){return this._declaration.name}get fieldType(){return this._declaration.type}get byteOffset(){return this._byteOffset}get startTexel(){return this._startTexel}get numTexels(){return this._numTexels}get texelByteStride(){return this._texelByteStride}get elementType(){return this._creationInfo.elementType}get elementCount(){return this._creationInfo.elementCount}get byteSize(){return this._creationInfo.byteSize}get bufferViewConstructor(){return this._creationInfo.bufferViewConstructor}}class m{constructor(t,e,r,n=0){this.layout=t,this.byteOffset=n,this._bufferViews=new Map,this.buffer="number"==typeof e?new ArrayBuffer(e*t.byteStride):e,this.texelElementBuffer=new r(this.buffer,n);const s=this._bufferViews;for(const[t,e]of this.layout.fields)s.set(t,new e.bufferViewConstructor(this.buffer,n+e.byteOffset,this.layout.byteStride))}get stride(){return this.layout.byteStride}get count(){return this.byteLength/this.stride}get byteLength(){return this.buffer.byteLength-this.byteOffset}getField(t,e){const r=this._bufferViews.get(t);return null!=r&&r.elementCount===e.ElementCount&&r.elementType===e.ElementType?r:null}copyItem(t,e){const{buffer:r,layout:n,byteOffset:s}=this,i=new Uint8Array(r),u=n.byteStride,o=s+t*u,c=s+e*u;i.copyWithin(c,o,o+u)}get usedMemory(){return this.byteLength}}const E=(0,s.BP)().vec3f("position").u16("componentIndex",{integer:!0}).freeze(),_=(0,s.BP)().vec2u8("sideness").freeze(),B=(0,n.U)(_),T=(0,s.BP)().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").u16("componentIndex",{integer:!0}).u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),M=(0,s.BP)().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").vec2i16("normal2Compressed").u16("componentIndex",{integer:!0}).u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),S=(0,n.U)(T,1),g=(0,n.U)(M,1);B.concat(S),B.concat(g),new class{constructor(t){this._fields=new Map;let e=0;const r=[];for(let n=0;n<t.length;++n){const s=t[n],{type:i}=s,u=p[i];r.push({declaration:s,byteOffset:e,creationInfo:u}),e+=u.byteSize}this.texelFormatInfo=a(e);const{texelByteStride:n}=this;e=Math.ceil(e/n)*n;const s=e,i=this._fields;for(const{declaration:t,byteOffset:e,creationInfo:s}of r)i.set(t.name,new y(t,e,n,s));this.byteStride=s,this.texelStride=Math.ceil(s/n)}get texelByteStride(){return this.texelFormatInfo.byteStride}get texelElementArrayConstructor(){return this.texelFormatInfo.elementArrayConstructor}get stride(){return this.byteStride}get fields(){return this._fields}createBuffer(t){return new m(this,t,this.texelElementArrayConstructor)}createView(t,e){return new m(this,t,this.texelElementArrayConstructor,e)}}([{name:"color",type:"vec4unorm8"},{name:"lineWidth",type:"u8"},{name:"extensionLength",type:"u8"},{name:"materialType",type:"u8"},{name:"opacity",type:"unorm8"},{name:"elevationOffset",type:"f32"}])},93406(t,e,r){r.d(e,{K:()=>o});var n=r(34727),s=r(15142),i=r(35522),u=r(51850);function o(t,e,r){const n=t.vertices.position,s=t.vertices.componentIndex,u=p.position0,o=p.position1,a=p.faceNormal0,l=p.faceNormal1,{edges:d,normals:y}=f(t),m=d.length/4,E=e.allocate(m);let _=0;const B=m,S=r?.allocate(B);let A=0,b=0,I=0;h.length=0;for(let t=0;t<m;++t){const e=4*t;n.getVec(d.data[e],u),n.getVec(d.data[e+1],o);const r=h.pushNew();r.index=4*t,r.length=(0,i.Io)(u,o)}h.sort((t,e)=>e.length-t.length);const R=new Array,w=new Array;h.forAll(({length:t,index:f})=>{const h=d.data[f],m=d.data[f+1],B=d.data[f+2],N=d.data[f+3],x=-1===N;if(n.getVec(h,u),n.getVec(m,o),x){const t=3*B;(0,i.hZ)(a,y.data[t],y.data[t+1],y.data[t+2]),(0,i.C)(l,a),p.componentIndex=s.get(h),p.cosAngle=(0,i.Om)(a,l)}else{let t=3*B;if((0,i.hZ)(a,y.data[t],y.data[t+1],y.data[t+2]),t=3*N,(0,i.hZ)(l,y.data[t],y.data[t+1],y.data[t+2]),p.componentIndex=s.get(h),p.cosAngle=(0,i.Om)(a,l),function(t,e){return t.cosAngle>e}(p,M))return;p.cosAngle<-.9999&&(0,i.C)(l,a)}b+=t,I++,x||function(t,e){return t.cosAngle<e}(p,g)?(e.write(E,_++,p),R.push(t)):c(p,T)&&(S&&r&&r.write(S,A++,p),w.push(t))});const N=new Float32Array(R.reverse()),x=new Float32Array(w.reverse()),v=S&&r?{instancesData:S.slice(0,A),lodInfo:{lengths:x}}:void 0;return{regular:{instancesData:E.slice(0,_),lodInfo:{lengths:N}},silhouette:v,averageEdgeLength:b/I}}function c(t,e){const r=(0,n.XM)(t.cosAngle);return(0,i.oW)(m,t.position1,t.position0),r*((0,i.Om)((0,i.$A)(y,t.faceNormal0,t.faceNormal1),m)>0?-1:1)>e}function f(t){const e=t.faces.length/3,r=t.faces,n=t.neighbors,s=t.vertices.position;l.length=d.length=0;for(let t=0;t<e;t++){const e=3*t,u=n[e],o=n[e+1],c=n[e+2],f=r[e],a=r[e+1],h=r[e+2];s.getVec(f,E),s.getVec(a,_),s.getVec(h,B),(0,i.Re)(_,_,E),(0,i.Re)(B,B,E),(0,i.$A)(E,_,B),(0,i.S8)(E,E),d.pushArray(E),(-1===u||f<a)&&(l.push(f),l.push(a),l.push(t),l.push(u)),(-1===o||a<h)&&(l.push(a),l.push(h),l.push(t),l.push(o)),(-1===c||h<f)&&(l.push(h),l.push(f),l.push(t),l.push(c))}return{edges:l,normals:d}}class a{constructor(){this.index=0,this.length=0}}const h=new s.A({allocator:t=>t||new a,deallocator:null}),l=new s.A({deallocator:null}),d=new s.A({deallocator:null}),p=new class{constructor(){this.position0=(0,u.vt)(),this.position1=(0,u.vt)(),this.faceNormal0=(0,u.vt)(),this.faceNormal1=(0,u.vt)(),this.componentIndex=0,this.cosAngle=0}},y=(0,u.vt)(),m=(0,u.vt)(),E=(0,u.vt)(),_=(0,u.vt)(),B=(0,u.vt)(),T=(0,n.kU)(4),M=Math.cos(T),S=(0,n.kU)(35),g=Math.cos(S)},44801(t,e,r){r.d(e,{o6:()=>R,HY:()=>O,hx:()=>w,Jb:()=>C});var n=r(34727),s=r(97146);function i(t,e,r){const i=Array.isArray(t),a=i?t.length/e:t.byteLength/(4*e),h=i?t:new Uint32Array(t,0,a*e),l=r?.minReduction??0,d=r?.originalIndices||null,p=d?d.length:0,y=r?.componentOffsets||null;let m=0;if(y)for(let t=0;t<y.length-1;t++){const e=y[t+1]-y[t];e>m&&(m=e)}else m=a;const E=Math.floor(1.1*m)+1;(null==f||f.length<2*E)&&(f=new Uint32Array((0,n.cU)(2*E)));for(let t=0;t<2*E;t++)f[t]=0;let _=0;const B=!!y&&!!d,T=B?p:a;let M=(0,s.my)(a);const S=new Uint32Array(p),g=1.96;let A=0!==l?Math.ceil(4*g*g/(l*l)*l*(1-l)):T,b=1,I=y?y[1]:T;for(let t=0;t<T;t++){if(t===A){const e=1-_/t;if(e+g*Math.sqrt(e*(1-e)/t)<l)return null;A*=2}if(t===I){for(let t=0;t<2*E;t++)f[t]=0;if(d)for(let t=y[b-1];t<y[b];t++)S[t]=M[d[t]];I=y[++b]}const r=B?d[t]:t,n=r*e,s=c(h,n,e);let i=s%E,o=_;for(;0!==f[2*i+1];){if(f[2*i]===s){const t=f[2*i+1]-1;if(u(h,n,t*e,e)){o=M[t];break}}i++,i>=E&&(i-=E)}o===_&&(f[2*i]=s,f[2*i+1]=r+1,_++),M[r]=o}if(0!==l&&1-_/a<l)return null;if(B){for(let t=y[b-1];t<S.length;t++)S[t]=M[d[t]];M=(0,s.uW)(S)}const R=i?new Array(_):new Uint32Array(_*e);_=0;for(let t=0;t<T;t++)M[t]===_&&(o(h,(B?d[t]:t)*e,R,_*e,e),_++);if(d&&!B){const t=new Uint32Array(p);for(let e=0;e<t.length;e++)t[e]=M[d[e]];M=(0,s.uW)(t)}return{buffer:Array.isArray(R)?R:R.buffer,indices:M,uniqueCount:_}}function u(t,e,r,n){for(let s=0;s<n;s++)if(t[e+s]!==t[r+s])return!1;return!0}function o(t,e,r,n,s){for(let i=0;i<s;i++)r[n+i]=t[e+i]}function c(t,e,r){let n=0;for(let s=0;s<r;s++)n=t[e+s]+n|0,n=n+(n<<11)+(n>>>2)|0;return n>>>0}let f=null;function a(t,e,r){const n=e/3,s=new Uint32Array(r+1),i=new Uint32Array(r+1),u=(t,e)=>{t<e?s[t+1]++:i[e+1]++};for(let e=0;e<n;e++){const r=t[3*e],n=t[3*e+1],s=t[3*e+2];u(r,n),u(n,s),u(s,r)}let o=0,c=0;for(let t=0;t<r;t++){const e=s[t+1],r=i[t+1];s[t+1]=o,i[t+1]=c,o+=e,c+=r}const f=new Uint32Array(6*n),a=s[r],h=(t,e,r)=>{if(t<e){const n=s[t+1]++;f[2*n]=e,f[2*n+1]=r}else{const n=i[e+1]++;f[2*a+2*n]=t,f[2*a+2*n+1]=r}};for(let e=0;e<n;e++){const r=t[3*e],n=t[3*e+1],s=t[3*e+2];h(r,n,e),h(n,s,e),h(s,r,e)}const l=(t,e)=>{const r=2*t,n=e-t;for(let t=1;t<n;t++){const e=f[r+2*t],n=f[r+2*t+1];let s=t-1;for(;s>=0&&f[r+2*s]>e;s--)f[r+2*s+2]=f[r+2*s],f[r+2*s+3]=f[r+2*s+1];f[r+2*s+2]=e,f[r+2*s+3]=n}};for(let t=0;t<r;t++)l(s[t],s[t+1]),l(a+i[t],a+i[t+1]);const d=new Int32Array(3*n),p=(e,r)=>e===t[3*r]?0:e===t[3*r+1]?1:e===t[3*r+2]?2:-1,y=(t,e)=>{const r=p(t,e);d[3*e+r]=-1},m=(t,e,r,n)=>{const s=p(t,e);d[3*e+s]=n;const i=p(r,n);d[3*n+i]=e};for(let t=0;t<r;t++){let e=s[t];const r=s[t+1];let n=i[t];const u=i[t+1];for(;e<r&&n<u;){const r=f[2*e],s=f[2*a+2*n];r===s?(m(t,f[2*e+1],s,f[2*a+2*n+1]),e++,n++):r<s?(y(t,f[2*e+1]),e++):(y(s,f[2*a+2*n+1]),n++)}for(;e<r;)y(t,f[2*e+1]),e++;for(;n<u;)y(f[2*a+2*n],f[2*a+2*n+1]),n++}return d}var h=r(1843),l=r(99058),d=r(87811),p=r(35522),y=r(51850),m=r(10614);class E{updateSettings(t){this.settings=t,this._edgeHashFunction=t.reducedPrecision?S:M}write(t,e,r){b.seed=this._edgeHashFunction(r);const n=b.getIntRange(0,255),s=b.getIntRange(0,this.settings.variants-1),i=b.getFloat(),u=255*(.5*function(t){return Math.abs(t)**1.2*Math.sign(t)}(-(1-Math.min(i/.7,1))+Math.max(0,i-.7)/(1-.7))+.5);t.position0.setVec(e,r.position0),t.position1.setVec(e,r.position1),t.componentIndex.set(e,r.componentIndex),t.variantOffset.set(e,n),t.variantStroke.set(e,s),t.variantExtension.set(e,u)}}const _=new Float32Array(6),B=new Uint32Array(_.buffer),T=new Uint32Array(1);function M(t){return _[0]=t.position0[0],_[1]=t.position0[1],_[2]=t.position0[2],_[3]=t.position1[0],_[4]=t.position1[1],_[5]=t.position1[2],T[0]=31*(31*(31*(31*(31*(166811+B[0])+B[1])+B[2])+B[3])+B[4])+B[5],T[0]}function S(t){const e=_;e[0]=g(t.position0[0]),e[1]=g(t.position0[1]),e[2]=g(t.position0[2]),e[3]=g(t.position1[0]),e[4]=g(t.position1[1]),e[5]=g(t.position1[2]),T[0]=5381;for(let t=0;t<B.length;t++)T[0]=31*T[0]+B[t];return T[0]}function g(t){return Math.round(1e4*t)/1e4}const A=(0,y.vt)(),b=new d.A;var I=r(93406);function R(t){const e=w(t.data,t.skipDeduplicate,t.indices,t.indicesLength);return x.updateSettings(t.writerSettings),v.updateSettings(t.writerSettings),(0,I.K)(e,x,v)}function w(t,e,r,n){if(e){const e=a(r,n,t.count);return new N(r,n,e,t)}const s=i(t.buffer,t.stride/4,{originalIndices:r}),u=a(s.indices,n,s.uniqueCount);return{faces:s.indices,facesLength:s.indices.length,neighbors:u,vertices:l.I$.createView(s.buffer)}}class N{constructor(t,e,r,n){this.faces=t,this.facesLength=e,this.neighbors=r,this.vertices=n}}const x=new class{constructor(){this._commonWriter=new E}updateSettings(t){this._commonWriter.updateSettings(t)}allocate(t){return l.gr.createBuffer(t)}write(t,e,r){this._commonWriter.write(t,e,r),(0,p.WQ)(A,r.faceNormal0,r.faceNormal1),(0,p.S8)(A,A);const{typedBuffer:n,typedBufferStride:s}=t.normalCompressed;(0,m.aT)(n,e,A[0],A[1],A[2],s)}},v=new class{constructor(){this._commonWriter=new E}updateSettings(t){this._commonWriter.updateSettings(t)}allocate(t){return l.In.createBuffer(t)}write(t,e,r){this._commonWriter.write(t,e,r);{const{typedBuffer:n,typedBufferStride:s}=t.normalCompressed;(0,m.aT)(n,e,r.faceNormal0[0],r.faceNormal0[1],r.faceNormal0[2],s)}{const{typedBuffer:n,typedBufferStride:s}=t.normal2Compressed;(0,m.aT)(n,e,r.faceNormal1[0],r.faceNormal1[1],r.faceNormal1[2],s)}}},C=(0,h.BP)().vec3f("position0").vec3f("position1"),O=(0,h.BP)().vec3f("position0").vec3f("position1").u16("componentIndex",{integer:!0})},85079(t,e,r){r.d(e,{Sk:()=>u,Xk:()=>s,_u:()=>i});var n=r(21818);function s(t){let e=0;return(0,n.z)(new Map(t.map(({name:t,count:r})=>{const n=[t,e];return 16===r?e+=4:9===r?e+=3:++e,n})))}function i(t){const e=new Map;let r=0;return t.forEach(t=>t.forEach(({name:t,count:n})=>{e.set(t,r),16===n?r+=4:9===n?r+=3:++r})),e}function u(t){return i(Array.from(t.values()).map(({layout:t})=>t))}},74038(t,e,r){r.d(e,{_:()=>n});class n{constructor(t,e,r,n,s,i=!1,u=0,o=!1){this.name=t,this.count=e,this.type=r,this.offset=n,this.stride=s,this.normalized=i,this.divisor=u,this.integer=o}}},63907(t,e,r){const n={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,HALF_FLOAT:5131},s={RGBA4:32854,R16F:33325,RG16F:33327,RGB32F:34837,RGBA16F:34842,R32F:33326,RG32F:33328,RGBA32F:34836,R11F_G11F_B10F:35898,RGB8:32849,RGBA8:32856,RGB5_A1:32855,R8:33321,RG8:33323,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,RGB16F:34843,RGB9_E5:35901,SRGB8:35905,SRGB8_ALPHA8:35907,RGB565:36194,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,RGB10_A2:32857,RGB10_A2UI:36975},i=Object.values(s),u={FLOAT:n.FLOAT,UNSIGNED_BYTE:n.UNSIGNED_BYTE,UNSIGNED_INT_24_8:34042,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,BYTE:n.BYTE,UNSIGNED_SHORT:n.UNSIGNED_SHORT,SHORT:n.SHORT,UNSIGNED_INT:n.UNSIGNED_INT,INT:n.INT,HALF_FLOAT:5131,UNSIGNED_INT_2_10_10_10_REV:33640,UNSIGNED_INT_10F_11F_11F_REV:35899,UNSIGNED_INT_5_9_9_9_REV:35902,FLOAT_32_UNSIGNED_INT_24_8_REV:36269};r.d(e,["CQ",0,{COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497},"H0",0,s,"SB",0,{DEPTH_COMPONENT16:33189,DEPTH_COMPONENT24:33190,DEPTH_COMPONENT32F:36012},"WR",0,{POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},"XN",0,i,"iE",0,{DEPTH24_STENCIL8:35056,DEPTH32F_STENCIL8:36013},"ld",0,u,"pe",0,n,"vt",0,{Texture:0,TileTexture:1,BufferObject:2,VertexArrayObject:3,Shader:4,Program:5,FramebufferObject:6,Renderbuffer:7,TransformFeedback:8,Sync:9,UNCOUNTED:10,LinesOfCode:10,Uniform:11,COUNT:12}])}}]);
|
|
@@ -18,4 +18,4 @@ import{normalize as e}from"../core/arrayUtils.js";import{gauss as r}from"../core
|
|
|
18
18
|
// for the mipmap, we double the energy at each level to preserve small feature information better
|
|
19
19
|
return result * (isHorizontal ? 1.0 : 2.0);
|
|
20
20
|
}
|
|
21
|
-
`).main.add(m`fragColor = vec4(blurUniformSamples(), 0.0);`),e}function w(o,i){const t=new Array(o).fill(0).map((e,t)=>r(t-Math.floor(o/2),i));return e(t),t.reduce((e,r,o)=>`${e}${0===o?"":","} ${r.toFixed(15)}`,"float weights1D["+o+"] = float["+o+"](")+");"}const p=Object.freeze(Object.defineProperty({__proto__:null,
|
|
21
|
+
`).main.add(m`fragColor = vec4(blurUniformSamples(), 0.0);`),e}function w(o,i){const t=new Array(o).fill(0).map((e,t)=>r(t-Math.floor(o/2),i));return e(t),t.reduce((e,r,o)=>`${e}${0===o?"":","} ${r.toFixed(15)}`,"float weights1D["+o+"] = float["+o+"](")+");"}const p=Object.freeze(Object.defineProperty({__proto__:null,BlurEmissionDrawParameters:f,build:v},Symbol.toStringTag,{value:"Module"}));export{f as B,p as a,v as b};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{Gamma as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatBindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{parameter as n}from"../views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js";import{BlurEmissionPassParameters as l,applyEmissiveGlow as a}from"../views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js";import{FloatBlendScaleConfiguration as t,floatBlendScale as d}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ScreenSpacePassAtmosphere as c}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{ToneMapping as m}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";class u extends t{constructor(){super(...arguments),this.applyBlur=!0}}e([n()],u.prototype,"applyBlur",void 0);class g extends l{}const f=1.2,w=.5;function v(e){const n=new p,l=n.fragment;return n.include(c,{needUVs:!0,needEyeDirection:!0}),n.outputs.add("fragColor","vec4",0),l.include(o),l.include(m),e.applyBlur?(l.include(a,e),l.code.add("vec3 readEmission() { return applyEmissiveGlow(); }")):(l.include(d,e),l.uniforms.add(new i("emissionTexture",({emission:e})=>e?.attachment)).code.add("vec3 readEmission() { return texture(emissionTexture, uv).rgb * floatBlendInputScale; }")),l.uniforms.add(new i("colorTexture",({color:e})=>e),new r("inputScale",({lighting:e})=>f-w*e.noonFactor)).main.add(s`vec4 color = texture(colorTexture, uv);
|
|
3
3
|
color = vec4(linearizeGamma(color.rgb), color.a);
|
|
4
|
-
vec3 emission =
|
|
4
|
+
vec3 emission = readEmission() * inputScale;
|
|
5
5
|
vec3 toneMapped = tonemapKhronosNeutral(color.rgb + emission);
|
|
6
6
|
vec3 toneMappedColor = tonemapKhronosNeutral(color.rgb);
|
|
7
7
|
vec3 compositeColor = color.rgb + toneMapped - toneMappedColor;
|
|
8
|
-
fragColor = delinearizeGamma(vec4(compositeColor, color.a));`),
|
|
8
|
+
fragColor = delinearizeGamma(vec4(compositeColor, color.a));`),n}const b=Object.freeze(Object.defineProperty({__proto__:null,EmissionCompositePassParameters:g,EmissionCompositeTechniqueConfiguration:u,build:v},Symbol.toStringTag,{value:"Module"}));export{u as E,g as a,b,v as c};
|
package/chunks/Fog.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{create as e}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as
|
|
2
|
+
import{create as e}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{ColorConversion as a}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{Float3PassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{BlurEmissionPassParameters as m,applyEmissiveGlow as g}from"../views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js";import{getDistanceFalloff as d}from"../views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js";import{ScreenSpacePassAtmosphere as c}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{ToneMapping as f}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";class u extends m{constructor(){super(...arguments),this.fogColor=e(),this.strength=0,this.amount=0,this.fogColorDistanceWeight=.85,this.inputScale=1}}function h(e){const m=new p,{outputs:u,fragment:h}=m;u.add("fragColor","vec4",0),m.include(c,{needUVs:!0,needEyeDirection:!0}),h.uniforms.add(new n("depthTexture",e=>e.mainDepth),new s("fogStrength",e=>e.strength),new s("fogAmount",e=>e.amount),new i("fogColor",e=>e.fogColor),new s("fogColorDistanceWeight",e=>e.fogColorDistanceWeight)).constants.add("f16Epsilon","float",6103515625e-14),h.include(d),h.include(r),h.include(f),h.include(o),h.include(a),h.main.add(t`float mainDepth = -1.0;
|
|
3
3
|
float depthSample = depthFromTexture(depthTexture, uv);
|
|
4
4
|
if(depthSample < 1.0 && depthSample > 0.0){
|
|
5
5
|
vec3 cameraSpaceRay = normalize(eyeDir);
|
|
@@ -8,7 +8,7 @@ cameraSpaceRay *= linearizeDepth(depthSample);
|
|
|
8
8
|
mainDepth = max(0.0, length(cameraSpaceRay));
|
|
9
9
|
}
|
|
10
10
|
vec3 rayDir = normalize(worldRay);
|
|
11
|
-
float amount = fogAmount * getDistanceFalloff(mainDepth, rayDir, fogStrength);`),e&&u.main.add(
|
|
11
|
+
float amount = fogAmount * getDistanceFalloff(mainDepth, rayDir, fogStrength);`);const{hasEmissive:v,useFloatBlend:w}=e;return v&&(u.add("fragEmission","vec4",1),h.include(g,e),h.uniforms.add(new s("inputScale",({inputScale:e})=>e)).main.add(t`vec3 emission = applyEmissiveGlow();
|
|
12
12
|
vec3 emissionHSV = rgb2hsv((emission));
|
|
13
13
|
vec3 fogHSV = rgb2hsv(fogColor);
|
|
14
14
|
float light = emissionHSV.b;
|
|
@@ -18,4 +18,6 @@ emissionHSV.g * saturation,
|
|
|
18
18
|
fogHSV.b + light);
|
|
19
19
|
fogColor = hsv2rgb(fogColor);
|
|
20
20
|
float damping = amount < 1.0 ? min(-log(1.0 - amount) * 0.1, 16.0) : 16.0;
|
|
21
|
-
fragEmission = vec4(max(emission - damping, 0.0) / inputScale, 1.0);`),
|
|
21
|
+
fragEmission = vec4(max(emission - damping, 0.0) / inputScale, 1.0);`)),w||!v?h.main.add("fragColor = delinearizeGamma(vec4(tonemapKhronosNeutral(fogColor * amount), amount));"):(h.uniforms.add(new l("colorTexture",({color:e})=>e?.attachment)),h.main.add(t`vec4 src = delinearizeGamma(vec4(tonemapKhronosNeutral(fogColor * amount), amount));
|
|
22
|
+
vec4 dst = texture(colorTexture, uv);
|
|
23
|
+
fragColor = vec4(vec3(src.rgb * src.a + dst.rgb * (1.0 - src.a)), dst.a);`)),m}const v=Object.freeze(Object.defineProperty({__proto__:null,FogPassParameters:u,build:h},Symbol.toStringTag,{value:"Module"}));export{u as F,v as a,h as b};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as
|
|
2
|
+
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{EvaluateSceneLighting as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{LineStipple as n,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as c,NoPerspectiveRead as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as m,addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as x,If as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as L}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as b}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as w}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as C}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as P}from"../views/webgl/ShaderBuilder.js";const F=1;function j(F){const j=new P,{attributes:z,varyings:A,vertex:W,fragment:T}=j,{applyMarkerOffset:I,draped:R,shadingEnabled:V,output:N,capType:E,stippleEnabled:O,falloffEnabled:J,wireframe:_,innerColorEnabled:$,hasAnimation:M,hasScreenSizePerspective:U,worldSizedImagePattern:H}=F,B=2===E,k=O&&B,G=J||k,X=O||B,Y=C(F).createBuilder(j,F);W.inputs.add("position",()=>Y.getTextureAttribute("position")),F.hasVVSize?W.inputs.add("sizeFeatureAttribute",()=>Y.getTextureAttribute("sizeFeatureAttribute")):W.inputs.add("size",()=>Y.getTextureAttribute("size")),F.hasVVOpacity&&W.inputs.add("opacityFeatureAttribute",()=>Y.getTextureAttribute("opacityFeatureAttribute")),F.hasVVColor?W.inputs.add("colorFeatureAttribute",()=>Y.getTextureAttribute("colorFeatureAttribute")):W.inputs.add("color",()=>Y.getTextureAttribute("color")),T.include(s),j.include(t,F),j.include(n,F);const Z={animation:F.animation,hasAnimation:F.hasAnimation,timeStampsExpr:Y.getTextureAttribute("timeStamps")};j.include(w,Z),11===N?(j.varyings.add("objectAndLayerIdColorVarying","vec4"),W.code.add(x`
|
|
3
3
|
vec4 getOlidColor() {
|
|
4
|
-
return ${
|
|
4
|
+
return ${Y.getTextureAttribute("olidColor")};
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
void forwardObjectAndLayerIdColor() {
|
|
8
8
|
objectAndLayerIdColorVarying = getOlidColor();
|
|
9
9
|
}
|
|
10
|
-
`),
|
|
10
|
+
`),T.code.add(x`void outputObjectAndLayerIdColor() {
|
|
11
11
|
fragColor = objectAndLayerIdColorVarying;
|
|
12
|
-
}`)):(
|
|
12
|
+
}`)):(W.code.add(x`void forwardObjectAndLayerIdColor() {}`),T.code.add(x`void outputObjectAndLayerIdColor() {}`));const q=I&&!R;return q&&(W.uniforms.add(new u("markerScale",e=>e.markerScale)),j.include(o,{space:2,hasScreenSizePerspective:U})),m(W,F),W.uniforms.add(new L("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new g("nearFar",e=>e.camera.nearFar),new u("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new f("viewport",e=>e.camera.fullViewport)),W.constants.add("LARGE_HALF_FLOAT","float",65500),W.constants.add("EPS","float",.001),W.constants.add("NUM_JOIN_SUBDIVISIONS","float",F.numJoinSubdivisions),z.add("textureElementIndex","uint"),z.add("lineParameters","vec2"),A.add("vColor","vec4"),A.add("vpos","vec3",{invariant:!0}),A.add("vLineDistance","float"),A.add("vLineWidth","float"),O||(A.add("vIsInsideJoin","int"),A.add("vStretchFactor","float"),A.add("vJoinCenterLineSDFs","vec2"),A.add("vSubdivisionFactor","float")),O&&A.add("vLineSizeInv","float"),G&&A.add("vLineDistanceNorm","float"),B&&(A.add("vSegmentSDF","float"),A.add("vReverseSegmentSDF","float")),W.code.add(x`vec3 perpendicular(vec3 v) {
|
|
13
13
|
return vec3(v.y, -v.x, 0.0);
|
|
14
14
|
}
|
|
15
15
|
float nearPlaneInterpolationFactor(float nearPlaneDistance, vec4 start, vec4 end) {
|
|
@@ -20,12 +20,12 @@ float s = sin(a);
|
|
|
20
20
|
float c = cos(a);
|
|
21
21
|
mat2 m = mat2(c, -s, s, c);
|
|
22
22
|
return vec3(m * v.xy, v.z);
|
|
23
|
-
}`),
|
|
23
|
+
}`),W.code.add(x`vec4 projectAndScale(vec4 pos) {
|
|
24
24
|
vec4 posNdc = proj * pos;
|
|
25
25
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
26
26
|
posNdc.z /= posNdc.w;
|
|
27
27
|
return posNdc;
|
|
28
|
-
}`),
|
|
28
|
+
}`),W.code.add(x`void clip(
|
|
29
29
|
inout vec4 pos,
|
|
30
30
|
inout vec4 prev,
|
|
31
31
|
inout vec4 next,
|
|
@@ -56,23 +56,23 @@ if (next.z > -nearFar[0]) {
|
|
|
56
56
|
next = mix(next, pos, nearPlaneInterpolationFactor(adjustedNearPlaneDistance, next, pos));
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
}`),
|
|
60
|
-
vec3 position = ${
|
|
61
|
-
float u0 = ${
|
|
59
|
+
}`),v(W),W.constants.add("aaWidth","float",O?0:1),W.main.add(x`
|
|
60
|
+
vec3 position = ${Y.getTextureAttribute("position")};
|
|
61
|
+
float u0 = ${Y.getTextureAttribute("u0")};
|
|
62
62
|
|
|
63
63
|
// unpack values from vertex type
|
|
64
64
|
float vertexType = abs(lineParameters.y);
|
|
65
65
|
float lineSide = sign(lineParameters.y);
|
|
66
66
|
bool isStartVertex = vertexType == 2.0 || vertexType == 4.0;
|
|
67
|
-
vec3 prevPosition = ${
|
|
68
|
-
vec3 nextPosition = ${
|
|
67
|
+
vec3 prevPosition = ${Y.getTextureAttribute("position",-1)};
|
|
68
|
+
vec3 nextPosition = ${Y.getTextureAttribute("position",1)};
|
|
69
69
|
|
|
70
70
|
float coverage = 1.0;
|
|
71
71
|
|
|
72
72
|
// Check for special value of lineParameters.y which is used by the Renderer when graphics are removed before the
|
|
73
73
|
// VBO is recompacted. If this is the case, then we just project outside of clip space.
|
|
74
74
|
if (lineParameters.y == 0.0) {
|
|
75
|
-
gl_Position = ${
|
|
75
|
+
gl_Position = ${l};
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
78
|
vec4 pos = view * vec4(position, 1.0);
|
|
@@ -80,11 +80,11 @@ next = mix(next, pos, nearPlaneInterpolationFactor(adjustedNearPlaneDistance, ne
|
|
|
80
80
|
vec4 next = view * vec4(nextPosition, 1.0);
|
|
81
81
|
|
|
82
82
|
bool isJoin = vertexType < 3.0;
|
|
83
|
-
`),
|
|
83
|
+
`),q&&W.main.add(x`vec4 other = isStartVertex ? next : prev;
|
|
84
84
|
bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
|
|
85
85
|
if (!isJoin && !markersHidden) {
|
|
86
86
|
pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
87
|
-
}`),
|
|
87
|
+
}`),j.include(c),W.code.add(x`
|
|
88
88
|
vec2 computeJoinAndCapDisplacement(
|
|
89
89
|
bool isJoin,
|
|
90
90
|
bool isStartVertex,
|
|
@@ -129,7 +129,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
${
|
|
132
|
+
${D(!O,x`
|
|
133
133
|
// Compute stretch compensation for feathering.
|
|
134
134
|
if (subdivisionFactor > 0.0) {
|
|
135
135
|
vIsInsideJoin = 1;
|
|
@@ -164,14 +164,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
164
164
|
`)}
|
|
165
165
|
|
|
166
166
|
if (isOutside && displacementLen > miterLimit * lineWidth) {
|
|
167
|
-
${
|
|
167
|
+
${D(F.roundJoins,x`
|
|
168
168
|
vec3 startDir = perpendicular(leftLen < EPS ? right : left);
|
|
169
169
|
vec3 endDir = perpendicular(rightLen < EPS ? left : right);
|
|
170
|
-
float factor = ${
|
|
170
|
+
float factor = ${O?x`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:x`subdivisionFactor`};
|
|
171
171
|
|
|
172
172
|
float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
|
|
173
173
|
joinDisplacementDir = rotateZ(startDir, -lineSide * factor * rotationAngle);
|
|
174
|
-
`,
|
|
174
|
+
`,x`
|
|
175
175
|
/**
|
|
176
176
|
* Convert to bevel join if miterLimit is exceeded.
|
|
177
177
|
* Here vertices with a subdivisionFactor > 0 are either START vertices or
|
|
@@ -183,18 +183,18 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
183
183
|
vec3 startDir = perpendicular(leftLen < EPS ? right : left);
|
|
184
184
|
vec3 endDir = perpendicular(rightLen < EPS ? left : right);
|
|
185
185
|
|
|
186
|
-
${
|
|
186
|
+
${D(O,x`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,x`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
|
|
187
187
|
`)}
|
|
188
188
|
displacementLen = lineWidth;
|
|
189
189
|
}
|
|
190
190
|
} else {
|
|
191
191
|
joinDisplacementDir = perpendicular(isStartVertex ? right : left);
|
|
192
|
-
${0!==
|
|
192
|
+
${0!==E?x`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
|
|
196
196
|
}
|
|
197
|
-
`),
|
|
197
|
+
`),W.main.add(x`
|
|
198
198
|
clip(pos, prev, next, isStartVertex);
|
|
199
199
|
|
|
200
200
|
vec3 clippedPos = pos.xyz;
|
|
@@ -207,18 +207,18 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
207
207
|
vec3 left = (pos.xyz - prev.xyz);
|
|
208
208
|
vec3 right = (next.xyz - pos.xyz);
|
|
209
209
|
|
|
210
|
-
float lineSize = getSize(${
|
|
211
|
-
${
|
|
212
|
-
${
|
|
210
|
+
float lineSize = getSize(${D(U,"clippedPos")});
|
|
211
|
+
${D(O&&U,"float patternLineSize = getSize(clippedCenter);")}
|
|
212
|
+
${D(O&&!U,"float patternLineSize = lineSize;")}
|
|
213
213
|
|
|
214
|
-
${
|
|
214
|
+
${D(H,x`
|
|
215
215
|
lineSize += aaWidth;
|
|
216
216
|
float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
|
|
217
217
|
if (lineWidth < 1.0) {
|
|
218
218
|
coverage = lineWidth;
|
|
219
219
|
lineWidth = 1.0;
|
|
220
220
|
}
|
|
221
|
-
`,
|
|
221
|
+
`,x`
|
|
222
222
|
if (lineSize < 1.0) {
|
|
223
223
|
coverage = lineSize; // convert sub-pixel coverage to alpha
|
|
224
224
|
lineSize = 1.0;
|
|
@@ -229,14 +229,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
229
229
|
`)}
|
|
230
230
|
|
|
231
231
|
vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
|
|
232
|
-
${
|
|
233
|
-
`),
|
|
232
|
+
${O?x`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
|
|
233
|
+
`),X&&W.main.add(x`
|
|
234
234
|
float isEndVertex = float(!isStartVertex);
|
|
235
235
|
vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
|
|
236
236
|
vec3 segment = mix(right, left, isEndVertex);
|
|
237
|
-
${
|
|
238
|
-
`),
|
|
239
|
-
${
|
|
237
|
+
${B?x`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
|
|
238
|
+
`),W.main.add(x`
|
|
239
|
+
${D(!O,x`
|
|
240
240
|
vIsInsideJoin = 0;
|
|
241
241
|
vStretchFactor = 1.0;
|
|
242
242
|
vSubdivisionFactor = 0.0;
|
|
@@ -267,10 +267,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
267
267
|
float lineDistNorm = noPerspectiveWrite(lineSide, pos.w);
|
|
268
268
|
|
|
269
269
|
vLineDistance = lineWidth * lineDistNorm;
|
|
270
|
-
${
|
|
270
|
+
${G?x`vLineDistanceNorm = lineDistNorm;`:""}
|
|
271
271
|
|
|
272
272
|
pos.xyz += displacement;
|
|
273
|
-
`),
|
|
273
|
+
`),O||W.main.add(x`if (isJoin) {
|
|
274
274
|
vec2 joinCenterToVertex = displacementXY;
|
|
275
275
|
vec2 leftCenterlineDir = left.xy;
|
|
276
276
|
vec2 rightCenterlineDir = right.xy;
|
|
@@ -285,30 +285,30 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
|
|
|
285
285
|
),
|
|
286
286
|
pos.w
|
|
287
287
|
);
|
|
288
|
-
}`),
|
|
288
|
+
}`),B&&W.main.add(x`vec2 segmentDir = normalize(segment.xy);
|
|
289
289
|
vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
|
|
290
|
-
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),
|
|
291
|
-
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),
|
|
290
|
+
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),O&&(R?W.uniforms.add(new S("worldToScreenRatio",e=>1/e.screenToPCSRatio)):W.main.add(x`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
|
|
291
|
+
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),W.main.add(x`
|
|
292
292
|
float segmentLengthScreenDouble = length(segment.xy);
|
|
293
293
|
float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
|
|
294
294
|
float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
|
|
295
295
|
float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
|
|
296
|
-
${
|
|
296
|
+
${D(!R||H,x`float segmentStartRender = mix(u0, u0 - segmentLengthRender, isEndVertex);`)}
|
|
297
297
|
|
|
298
298
|
vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;
|
|
299
|
-
`),
|
|
300
|
-
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):
|
|
301
|
-
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),
|
|
299
|
+
`),R?W.main.add(x`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
|
|
300
|
+
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):W.main.add(x`float startPseudoScreen = segmentStartRender * discreteWorldToScreenRatio;
|
|
301
|
+
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),W.uniforms.add(new u("stipplePatternPixelSize",e=>r(e))),W.main.add(x`
|
|
302
302
|
float patternLength = patternLineSize * stipplePatternPixelSize;
|
|
303
303
|
|
|
304
|
-
${
|
|
304
|
+
${D(H,x`
|
|
305
305
|
vStippleDistanceLimits = vec2(segmentStartRender, segmentStartRender + segmentLengthRender);
|
|
306
306
|
vStipplePatternStretch = 1.0;
|
|
307
307
|
|
|
308
308
|
// The v-coordinate used in case of an image pattern.
|
|
309
309
|
bool isLeft = lineSide < 0.0;
|
|
310
310
|
vStippleV = isLeft ? 0.0 : 1.0;
|
|
311
|
-
`,
|
|
311
|
+
`,x`
|
|
312
312
|
// Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
|
|
313
313
|
// fragment shader
|
|
314
314
|
vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
|
|
@@ -339,7 +339,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
339
339
|
isStartVertex ?
|
|
340
340
|
vec2(-1e34, vStippleDistanceLimits.y) :
|
|
341
341
|
vec2(vStippleDistanceLimits.x, 1e34);
|
|
342
|
-
`)),
|
|
342
|
+
`)),W.main.add(x`
|
|
343
343
|
// Convert back into NDC
|
|
344
344
|
pos.xy = (pos.xy / viewport.zw) * pos.w;
|
|
345
345
|
pos.z = pos.z * pos.w;
|
|
@@ -347,13 +347,13 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
347
347
|
vColor = getColor();
|
|
348
348
|
vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
|
|
349
349
|
|
|
350
|
-
${
|
|
350
|
+
${_&&!R?"pos.z -= EPS * pos.w;":""}
|
|
351
351
|
|
|
352
352
|
// transform final position to camera space for slicing
|
|
353
353
|
vpos = (inverseProjectionMatrix * pos).xyz;
|
|
354
354
|
gl_Position = pos;
|
|
355
355
|
forwardObjectAndLayerIdColor();
|
|
356
|
-
}`),
|
|
356
|
+
}`),j.fragment.include(e,F),j.include(y,F),T.include(d),T.main.add(x`discardBySlice(vpos);`),j.include(p),T.include(b),O||T.code.add(x`float lineFeatheringFactor(float lineWidth, float lineDistance) {
|
|
357
357
|
float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
|
|
358
358
|
float featherWidth = 2.0;
|
|
359
359
|
float featherStartDistance = max(lineWidth - featherWidth / stretchFactor, 0.0);
|
|
@@ -365,26 +365,26 @@ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joi
|
|
|
365
365
|
float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
|
|
366
366
|
feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
|
|
367
367
|
return 1.0 - clamp(feather, 0.0, 1.0);
|
|
368
|
-
}`),
|
|
368
|
+
}`),T.main.add(x`
|
|
369
369
|
float lineWidth = noPerspectiveRead(vLineWidth);
|
|
370
370
|
float lineDistance = noPerspectiveRead(vLineDistance);
|
|
371
|
-
${
|
|
372
|
-
`),
|
|
371
|
+
${D(G,x`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
|
|
372
|
+
`),_?T.main.add(x`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(B&&T.main.add(x`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
|
|
373
373
|
vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
|
|
374
374
|
float fragmentRadius = length(fragmentPosition);
|
|
375
375
|
float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
|
|
376
376
|
float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
|
|
377
377
|
if (capCoverage < alphaCutoff) {
|
|
378
378
|
discard;
|
|
379
|
-
}`),
|
|
379
|
+
}`),k?T.main.add(x`vec2 stipplePosition = vec2(
|
|
380
380
|
min(getStippleSDF() * 2.0 - 1.0, 0.0),
|
|
381
381
|
lineDistanceNorm
|
|
382
382
|
);
|
|
383
383
|
float stippleRadius = length(stipplePosition * lineWidth);
|
|
384
384
|
float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
|
|
385
385
|
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
386
|
-
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):
|
|
387
|
-
color.a = noPerspectiveRead(color.a);`)
|
|
386
|
+
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):T.main.add(x`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==N&&T.main.add(x`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),T.uniforms.add(new h("intrinsicColor",e=>e.color)).main.add(x`vec4 color = intrinsicColor * vColor;
|
|
387
|
+
color.a = noPerspectiveRead(color.a);`),$&&T.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new u("innerWidth",(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(x`float distToInner = abs(lineDistance) - innerWidth;
|
|
388
388
|
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
389
389
|
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
390
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),
|
|
390
|
+
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),T.main.add(x`vec4 finalColor = blendStipple(color, stippleAlpha);`),J&&(T.uniforms.add(new u("falloff",e=>e.falloff)),T.main.add(x`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),O||T.main.add(x`finalColor.a *= lineFeatheringFactor(lineWidth, lineDistance);`),V&&(A.add("vnormal","vec3"),j.include(a,F),W.main.add("vnormal = getLocalUp(vpos, localOrigin);"),T.include(i,F),T.main.add("finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, 0.0, 0.0, vec3(0.0)), finalColor.a);")),M&&T.main.add("finalColor = animate(finalColor);")),T.main.add(x`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),j}const z=Object.freeze(Object.defineProperty({__proto__:null,build:j,numRoundJoinSubdivisions:F},Symbol.toStringTag,{value:"Module"}));export{z as R,j as b,F as n};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.95";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/core/timeUtils.d.ts
CHANGED
|
@@ -7,6 +7,30 @@ import type TimeInterval from "../time/TimeInterval.js";
|
|
|
7
7
|
import type { TimeUnit } from "./units.js";
|
|
8
8
|
import type { TimeZone } from "../time/types.js";
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Gregorian wall-clock parts used to convert between an instant and a time zone.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export interface ZonedDateTimeParts {
|
|
16
|
+
/** @internal */
|
|
17
|
+
year: number;
|
|
18
|
+
/** @internal */
|
|
19
|
+
month: number;
|
|
20
|
+
/** @internal */
|
|
21
|
+
day: number;
|
|
22
|
+
/** @internal */
|
|
23
|
+
hour: number;
|
|
24
|
+
/** @internal */
|
|
25
|
+
minute: number;
|
|
26
|
+
/** @internal */
|
|
27
|
+
second: number;
|
|
28
|
+
/** @internal */
|
|
29
|
+
millisecond: number;
|
|
30
|
+
/** @internal */
|
|
31
|
+
offsetMinutes: number;
|
|
32
|
+
}
|
|
33
|
+
|
|
10
34
|
/**
|
|
11
35
|
* Returns the addition or subtraction of a quantity of temporal units. Computations are performed on local dates, not UTC.
|
|
12
36
|
*
|
|
@@ -38,6 +62,44 @@ import type { TimeZone } from "../time/types.js";
|
|
|
38
62
|
*/
|
|
39
63
|
export function offsetDate(date: Date, offset: number, unit: TimeUnit, timeZone?: TimeZone): Date;
|
|
40
64
|
|
|
65
|
+
/**
|
|
66
|
+
* Returns the Gregorian wall-clock parts and UTC offset for an instant in a time zone.
|
|
67
|
+
*
|
|
68
|
+
* Use this when a consumer needs to display an instant in an IANA time zone or obtain the zone's effective offset.
|
|
69
|
+
*
|
|
70
|
+
* @param date - The instant to convert.
|
|
71
|
+
* @param timeZone - The time zone in which to express the instant.
|
|
72
|
+
* @returns The wall-clock parts and offset, or `null` when the date or time zone is invalid or before the common era.
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
export function getZonedDateTimeParts(date: Date, timeZone: TimeZone): ZonedDateTimeParts | null;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Formats Gregorian calendar date parts as a date-only ISO string.
|
|
79
|
+
*
|
|
80
|
+
* @param parts - The calendar date to format.
|
|
81
|
+
* @returns The formatted date, or an empty string when the date is invalid.
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
export function formatCalendarDate(parts: Pick<ZonedDateTimeParts, "year" | "month" | "day">): string;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Converts a local date and time (as a time zone offset) to a JavaScript Date.
|
|
88
|
+
*
|
|
89
|
+
* Skipped wall times move forward by the transition gap. Repeated wall times use the earlier instant.
|
|
90
|
+
*
|
|
91
|
+
* @param date - The calendar date to convert.
|
|
92
|
+
* @param minutesSinceMidnight - The wall-clock time in minutes since midnight.
|
|
93
|
+
* @param timeZone - The time zone in which to interpret the calendar date and time.
|
|
94
|
+
* @returns The corresponding instant, or `null` when the date, time, or time zone is invalid.
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
export function createZonedDate(date: {
|
|
98
|
+
day: number;
|
|
99
|
+
month: number;
|
|
100
|
+
year: number;
|
|
101
|
+
}, minutesSinceMidnight: number, timeZone: TimeZone): Date | null;
|
|
102
|
+
|
|
41
103
|
/**
|
|
42
104
|
* Truncates or "rounds down" dates to the specified time unit. Computations are performed on local dates, not UTC.
|
|
43
105
|
*
|