@arcgis/core 5.2.0-next.43 → 5.2.0-next.44
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/0115681a3de6df0aebdf.js +1 -0
- package/assets/esri/core/workers/chunks/025caafc70ac26f0a4ed.js +1 -0
- package/assets/esri/core/workers/chunks/{9de18cea5780319302cb.js → 04a167c110fb7811169d.js} +1 -1
- package/assets/esri/core/workers/chunks/{72fe7fb03c156f26a589.js → 08e18fb12533fc76e49c.js} +1 -1
- package/assets/esri/core/workers/chunks/{60e8524d324fd14444d7.js → 0a0732ba8271d7dc985c.js} +1 -1
- package/assets/esri/core/workers/chunks/{e6b5c015205d38abe037.js → 127b111ee53e4b9184f8.js} +1 -1
- package/assets/esri/core/workers/chunks/{2d7cfc68a38dabd8898a.js → 176c5eaaa23a479c88e0.js} +1 -1
- package/assets/esri/core/workers/chunks/1d1f5578c7d8619f7a46.js +1 -0
- package/assets/esri/core/workers/chunks/268637fd6c50264acfc3.js +1 -0
- package/assets/esri/core/workers/chunks/296fa9fb80e521c30cb1.js +1 -0
- package/assets/esri/core/workers/chunks/{d7775ed1402946e414ef.js → 2974cddb0b0f67df7d2d.js} +1 -1
- package/assets/esri/core/workers/chunks/{e9511627418c6864148a.js → 305ee2dd597c48a38e64.js} +1 -1
- package/assets/esri/core/workers/chunks/{ce2320e7b9c4ca96ff27.js → 3252da57b800356116af.js} +1 -1
- package/assets/esri/core/workers/chunks/{fd47ee8598e37fea03fe.js → 384b619854ef8a3f6e94.js} +1 -1
- package/assets/esri/core/workers/chunks/3af923abeb6e65c4468f.js +1 -0
- package/assets/esri/core/workers/chunks/{20fefb9278501781de14.js → 3f4f1595c8a77d072b04.js} +1 -1
- package/assets/esri/core/workers/chunks/4f09f208ece2ec1db727.js +1 -0
- package/assets/esri/core/workers/chunks/{57a1e2b716b74f0124f7.js → 549295a5db9bf1536491.js} +1 -1
- package/assets/esri/core/workers/chunks/{284e88805184334396fe.js → 57374213084bef59b776.js} +1 -1
- package/assets/esri/core/workers/chunks/{2a8d791aef3123e6a3c4.js → 57970d43cdcc5cf57a30.js} +1 -1
- package/assets/esri/core/workers/chunks/{dedf678490572c500a19.js → 5b937c405788fd14be8b.js} +2 -2
- package/assets/esri/core/workers/chunks/5f9c4dad6952c4c58ebf.js +1 -0
- package/assets/esri/core/workers/chunks/706230b70a36d2e038f7.js +1 -0
- package/assets/esri/core/workers/chunks/{e2f45990d8459d14cb90.js → 76713b700e053f8bad29.js} +1 -1
- package/assets/esri/core/workers/chunks/8a01fe8d78ca85ea4784.js +1 -0
- package/assets/esri/core/workers/chunks/93e705c1147cc8ceca02.js +1 -0
- package/assets/esri/core/workers/chunks/{d082de5dd83bd73d209b.js → 94cebc34e49da1e295ed.js} +1 -1
- package/assets/esri/core/workers/chunks/{34fcb776e4de1d870bbd.js → a38a7e3a5aa9294ab918.js} +2 -2
- package/assets/esri/core/workers/chunks/a8033e606b2db1ee332d.js +1 -0
- package/assets/esri/core/workers/chunks/{6f408397e2c8a2ea9805.js → aea247138617e12b699b.js} +1 -1
- package/assets/esri/core/workers/chunks/{26e7884d8639df4d994b.js → b03dcf3d55266745f3d1.js} +1 -1
- package/assets/esri/core/workers/chunks/{c0637d1c9337a6ba46b0.js → b3cefc1895bfd62fc440.js} +1 -1
- package/assets/esri/core/workers/chunks/{ec1a2e68957fae48e60b.js → b75db3b1becf8265ec59.js} +3 -3
- package/assets/esri/core/workers/chunks/{89682d9d4f606f82056b.js → bac4d4a9f3a9b7f6864d.js} +2 -2
- package/assets/esri/core/workers/chunks/{2f29f08cddd5add9388e.js → c01a121ebe571a848452.js} +1 -1
- package/assets/esri/core/workers/chunks/{c1845682cc9a5aac8703.js → c316234837b7ca406b1c.js} +3 -3
- package/assets/esri/core/workers/chunks/c3cd38ca8690286d40d7.js +1 -0
- package/assets/esri/core/workers/chunks/c6042825f61cd70d54d8.js +1 -0
- package/assets/esri/core/workers/chunks/{0646524250bb9fe82935.js → d8b67ca02cdc1e8191e3.js} +1 -1
- package/assets/esri/core/workers/chunks/db416ba3132034e20642.js +1 -0
- package/assets/esri/core/workers/chunks/{4063ea53cba3dd897e53.js → e5c19e9b6fa53abdca8c.js} +12 -12
- package/assets/esri/core/workers/chunks/f9b2727b41943d83d4ca.js +1 -0
- package/assets/esri/core/workers/chunks/{d45e30f15142b5861111.js → fc880b275f5eaf42171e.js} +1 -1
- package/assets/esri/libs/basisu/basis_encoder.wasm +0 -0
- package/assets/esri/libs/dxtEncoder/dxt_encoder.wasm +0 -0
- package/chunks/Fog.glsl.js +3 -3
- package/chunks/GlobalIllumination.glsl.js +21 -21
- package/chunks/GlobalIlluminationBlur.glsl.js +1 -1
- package/chunks/GlowComposition.glsl.js +3 -3
- package/chunks/OITAddEmission.glsl.js +1 -1
- package/chunks/basis_encoder.js +1 -1
- package/chunks/dxt_encoder.js +1 -1
- package/config.js +1 -1
- package/geometry/support/aaBoundingBox.js +1 -1
- package/geometry/support/frustum.js +1 -1
- package/kernel.js +1 -1
- package/package.json +2 -2
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
- package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticComponentGeometryBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ElevationAgnosticBVH.js +1 -1
- package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Transform.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +4 -4
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/fog/FogTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowBlurTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowComposition.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowCompositionTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITAddEmission.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendFragmentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +2 -2
- package/views/3d/webgl-engine/shaders/{oitResolution.glsl.js → floatBlendScale.glsl.js} +1 -1
- package/views/input/BrowserEventSource.js +1 -1
- package/views/input/InputManager.js +1 -1
- package/views/support/TextureCompressionWorker.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/0d6afba80d2f8dcb5cf7.js +0 -1
- package/assets/esri/core/workers/chunks/1276df03201c1b855fee.js +0 -1
- package/assets/esri/core/workers/chunks/23570397304969f724b3.js +0 -1
- package/assets/esri/core/workers/chunks/474ea8c97d101e41b3f5.js +0 -1
- package/assets/esri/core/workers/chunks/7cb0681cc6a5e956cb15.js +0 -1
- package/assets/esri/core/workers/chunks/8b73694d5a97638a3a61.js +0 -1
- package/assets/esri/core/workers/chunks/8dee03779b569f233daf.js +0 -1
- package/assets/esri/core/workers/chunks/9ebc98746b1f085b82b7.js +0 -1
- package/assets/esri/core/workers/chunks/9ee3741eef73f3edb18b.js +0 -1
- package/assets/esri/core/workers/chunks/af97e19516dbbcfb5286.js +0 -1
- package/assets/esri/core/workers/chunks/b4047333265a2665aef9.js +0 -1
- package/assets/esri/core/workers/chunks/cce83896093279c70449.js +0 -1
- package/assets/esri/core/workers/chunks/d5561dff043789494845.js +0 -1
- package/assets/esri/core/workers/chunks/e2c9393bec747f7876bb.js +0 -1
- package/assets/esri/core/workers/chunks/e94f2d6037fba042dc6e.js +0 -1
- package/assets/esri/core/workers/chunks/f5d7f69047e1b1116202.js +0 -1
- package/views/2d/engine/webgl/MaterialManager.js +0 -2
- package/views/2d/engine/webgl/shaders/MaterialPrograms.js +0 -2
- package/views/2d/engine/webgl/shaders/sources/resolver.js +0 -2
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +0 -2
- package/views/webgl/ShaderCompiler.js +0 -2
- /package/assets/esri/core/workers/chunks/{89682d9d4f606f82056b.js.LICENSE.txt → bac4d4a9f3a9b7f6864d.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/util/ColorConversion.glsl.js";import"../../core/shaderLibrary/util/emissionFilter.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./oitBlendFragment.glsl.js";import"../../shaders/
|
|
2
|
+
import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/util/ColorConversion.glsl.js";import"../../core/shaderLibrary/util/emissionFilter.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./oitBlendFragment.glsl.js";import"../../shaders/floatBlendScale.glsl.js";import"../../shaders/ToneMapping.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{O as OITAddEmissionPassParameters,b as build}from"../../../../../chunks/OITAddEmission.glsl.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{O as e}from"../../../../../chunks/OITAddEmission.glsl.js";import{OITAddEmissionTechnique as i}from"./OITAddEmissionTechnique.js";import{OITBlendFragmentTechniqueConfiguration as s}from"./OITBlendFragmentTechniqueConfiguration.js";import{OITBlendTechnique as t}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as n}from"./OITBlendTechniqueConfiguration.js";import{OITFilterOpaqueTechnique as r}from"./OITFilterOpaqueTechnique.js";import{
|
|
2
|
+
import{O as e}from"../../../../../chunks/OITAddEmission.glsl.js";import{OITAddEmissionTechnique as i}from"./OITAddEmissionTechnique.js";import{OITBlendFragmentTechniqueConfiguration as s}from"./OITBlendFragmentTechniqueConfiguration.js";import{OITBlendTechnique as t}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as n}from"./OITBlendTechniqueConfiguration.js";import{OITFilterOpaqueTechnique as r}from"./OITFilterOpaqueTechnique.js";import{FloatBlendScaleConfiguration as o}from"../../shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as a,ColorAttachment2 as u,DrawBufferNone as h}from"../../../../webgl/enums.js";class f{constructor(i){this._techniques=i,this._parameters=new e,this._blendConfiguration=new n,this._filterOpaqueConfiguration=new s,this._addEmissionConfiguration=new o}precompile(e,s,n){this._updateConfigurations(e,s,n);const{hasTransparentEmission:o,hasOpaqueEmission:a}=e;a&&1!==n&&this._techniques.precompile(r,this._filterOpaqueConfiguration),this._techniques.precompile(t,this._blendConfiguration),o&&0===n&&this._techniques.precompile(i,this._addEmissionConfiguration)}blend(e,s,n,o,f,m,d){this._updateConfigurations(o,f,m),this._parameters.colorTexture=s.getTexture(),this._parameters.alphaTexture=s.getTexture(a),this._parameters.emissionTexture=s.getTexture(u),this._parameters.frontFaceTexture=n.getTexture(),this._parameters.frontFaceEmissionTexture=n.getTexture(a);const l=e.drawBuffers,{hasOpaqueEmission:p,hasTransparentEmission:c}=o;if(p&&1!==m){const i=this._techniques.get(r,this._filterOpaqueConfiguration);e.bindTechnique(i,o,this._parameters),e.setDrawBuffers([h,a]),e.screen.draw(),d?.("oit opaque emission filter",e.boundFramebuffer)}const _=this._techniques.get(t,this._blendConfiguration);if(e.bindTechnique(_,o,this._parameters),!p&&c){const i=l.slice();i[1]=h,e.setDrawBuffers(i),e.screen.draw()}else e.setDrawBuffers(l),e.screen.draw();if(d?.("oit composited",e.boundFramebuffer),c&&0===m){const s=this._techniques.get(i,this._addEmissionConfiguration);e.bindTechnique(s,o,this._parameters),e.setDrawBuffers([h,a]),e.screen.draw(),d?.("oit transparent emission",e.boundFramebuffer)}e.setDrawBuffers(l)}_updateConfigurations(e,i,s){this._blendConfiguration.useFloatBlend=this._filterOpaqueConfiguration.useFloatBlend=this._addEmissionConfiguration.useFloatBlend=e.useFloatBlend.value,this._blendConfiguration.computeHudOcclusion=i,this._blendConfiguration.hasOpaqueEmission=0===s&&e.hasOpaqueEmission,this._blendConfiguration.hasEmissionAttachment=0===s&&0!==e.emissions,this._blendConfiguration.frontFaceMask=1===s}}export{f as OITBlend};
|
package/views/3d/webgl-engine/effects/transparency/OITBlendFragmentTechniqueConfiguration.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as o}from"tslib";import{parameter as r}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{
|
|
2
|
+
import{__decorate as o}from"tslib";import{parameter as r}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{FloatBlendScaleConfiguration as e}from"../../shaders/floatBlendScale.glsl.js";class s extends e{constructor(){super(...arguments),this.frontFaceMask=!1}}o([r()],s.prototype,"frontFaceMask",void 0);export{s as OITBlendFragmentTechniqueConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{If as e}from"../../core/shaderModules/glsl.js";import{Texture2DPassUniform as r}from"../../core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as t}from"../../shaders/alphaCutoff.glsl.js";import{
|
|
2
|
+
import{If as e}from"../../core/shaderModules/glsl.js";import{Texture2DPassUniform as r}from"../../core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as t}from"../../shaders/alphaCutoff.glsl.js";import{floatBlendScale as o}from"../../shaders/floatBlendScale.glsl.js";import{NoParameters as n}from"../../../../webgl/NoParameters.js";class a extends n{}function l(n,a){const{frontFaceMask:l,useFloatBlend:c}=a;n.include(o,a),n.include(t),n.uniforms.add(new r("colorTexture",e=>e.colorTexture),new r("alphaTexture",e=>e.alphaTexture),new r("frontFaceTexture",e=>e.frontFaceTexture)).code.add(`\n vec4 oitBlendFragment(sampler2D colorTex, sampler2D frontFaceTex, float frontFaceScale) {\n float srcAlpha = texture(alphaTexture, uv).r * floatBlendInputScale;\n if(srcAlpha < alphaCutoff) {\n return vec4(0.0);\n }\n vec4 frontFace = texture(frontFaceTex, uv);\n ${e(l,"if (frontFace.a == 0.0) return vec4(0.0);")}\n\n vec4 srcColor = texture(colorTex, uv);\n srcColor.rgb *= floatBlendInputScale / srcAlpha;\n\n ${e(!c,"float frontWeight = srcAlpha * floatBlendOutputScale;\n frontWeight = clamp((frontWeight - 0.9) * 10.0, 0.0, 1.0);\n\n float toAlpha = (1.0 + frontFace.a) * 0.5;\n frontFace.a = mix(frontFace.a, toAlpha, frontWeight);")}\n return vec4(mix(srcColor.rgb, frontFace.rgb * frontFaceScale, frontFace.a), 1.0 - srcColor.a);\n }\n\n vec4 oitBlendFragment() {\n return oitBlendFragment(colorTexture, frontFaceTexture, 1.0);\n }\n `)}export{a as OITBlendFragmentPassParameters,l as oitBlendFragment};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{clamp as t}from"../../../../core/mathUtils.js";import{estimateNumberArrayMemory as e}from"../../../../core/memoryEstimations.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{nan as i,fromValues as
|
|
2
|
+
import{clamp as t}from"../../../../core/mathUtils.js";import{estimateNumberArrayMemory as e}from"../../../../core/memoryEstimations.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as s,copy as r,nan as i,fromValues as o}from"../../../../geometry/support/aaBoundingBox.js";import{intersectsTransformedAabb as a}from"../../../../geometry/support/frustum.js";import{newContinuousIndexArray as c}from"../../../../geometry/support/Indices.js";import{MeshIntersectionOptions as l,intersectRayTriangles as h}from"./RayIntersections.js";import{forEachTriangleRangeScreenPolygonHit as g}from"./screenPolygonTriangleIntersections.js";const m=40,d=.8,u=10,y=1e-6;class _{constructor(e,s,r){this.globalTriangleVertexIndices=e,this.numTriangles=s,this.positions=r,this._rayDirection=n(),this._callback=T,this._intersectionOptions=S,this._screenPolygonCallback=M,this._screenPolygonDisplacement=null,this._screenPolygonIntersector=null,this._screenPolygonQuery=null,this._screenPolygonTransformation=null,this.bspNodeTree=new Array,this.triangleIndexMap=c(s);const i=I(e,s,r.data,r.stride),o=t(Math.log2(s/m),2,u),a=(t,e,n)=>{const s=P(this.triangleIndexMap,i,t,e),r=e-t;if(r<=m){const n=new p(s,void 0,0,t,e);return this.bspNodeTree.push(n),n}const{axis:c,midValue:l}=x(s),h=f(this.triangleIndexMap,i,t,e,c,l),g=(t,e)=>{if(n>o)return;const s=e-t;return s<m||s>=d*r?void 0:a(t,e,n+1)},u=new p(s,c,l,h.next,h.mid);return this.bspNodeTree.push(u),u.leftNode=g(t,h.next),u.rightNode=g(h.mid,e),u};a(0,s,0)}intersectRayTriangleRange(t,e){if(t>=e)return;const{data:n,stride:s}=this.positions;h(this._rayFrom,this._rayDirection,t,e,this.globalTriangleVertexIndices,n,s,this._intersectionOptions.normalRequired,this._callback,this.triangleIndexMap),_.numFacesTested+=e-t}forEachScreenPolygonHit(t,e,n,s,r){null!=t.camera&&0!==this.bspNodeTree.length&&(this._screenPolygonIntersector=t,this._screenPolygonTransformation=e,this._screenPolygonQuery=n,this._screenPolygonDisplacement=s,this._screenPolygonCallback=r,this._intersectScreenPolygonBSP(this.bspNodeTree[0],0,this.triangleIndexMap.length),this._screenPolygonCallback=M,this._screenPolygonDisplacement=null,this._screenPolygonQuery=null,this._screenPolygonTransformation=null,this._screenPolygonIntersector=null)}intersectRay(t,e,n,s){_.numFacesTested=0;const r=t,i=e,o=i[0]-r[0],a=i[1]-r[1],c=i[2]-r[2];if(o*o+a*a+c*c<y)return;this._rayFrom=r;const l=this._rayDirection;l[0]=o,l[1]=a,l[2]=c;const h=this.triangleIndexMap.length;this._callback=s,this._intersectionOptions=n,this.intersectRayBSP(this.bspNodeTree[0],0,h),this._callback=T,this._intersectionOptions=S}intersectRayBSP(t,e,n){const s=this._rayFrom,r=this._rayDirection;this._traverseBSP(t,e,n,t=>b(t.aabb,s,r),t=>{const e=t.axis;return s[e]<t.d||r[e]<0},t=>{const e=t.axis;return s[e]>t.d||r[e]>0},(t,e)=>this.intersectRayTriangleRange(t,e))}_intersectScreenPolygonTriangleRange(t,e){if(t>=e)return;const n=this._screenPolygonIntersector,s=this._screenPolygonQuery;if(null!=n&&null!=s)for(const r of g(n,this._screenPolygonTransformation,s,t,e,this.globalTriangleVertexIndices,this.positions.data,this.positions.stride,this._screenPolygonDisplacement,this.triangleIndexMap))this._screenPolygonCallback(r.distance,r.primitiveIndex,r.point)}_intersectScreenPolygonBSP(t,e,n){const s=this._screenPolygonIntersector,r=this._screenPolygonQuery;null!=s?.camera&&null!=r&&this._traverseBSP(t,e,n,t=>this._nodeIntersectsScreenPolygonBroadPhase(t.aabb),()=>!0,()=>!0,(t,e)=>this._intersectScreenPolygonTriangleRange(t,e))}_traverseBSP(t,e,n,s,r,i,o){const a=[{node:t,rangeStart:e,rangeEnd:n}];for(;a.length>0;){const{node:t,rangeStart:e,rangeEnd:n}=a.pop();s(t)&&(r(t)&&this._traverseBSPRange(a,t.leftNode,e,t.midStartIndex,o),o(t.midStartIndex,t.rightStartIndex),i(t)&&this._traverseBSPRange(a,t.rightNode,t.rightStartIndex,n,o))}}_traverseBSPRange(t,e,n,s,r){n>=s||(void 0!==e?t.push({node:e,rangeStart:n,rangeEnd:s}):r(n,s))}_nodeIntersectsScreenPolygonBroadPhase(t){const e=this._screenPolygonQuery;if(null==e)return!1;const n=this._screenPolygonDisplacement,s=n?n.applyToAabb(r(B,t)):t;return a(e.broadPhaseFrustum,s,this._screenPolygonTransformation)}static{this.numFacesTested=0}get estimatedMemoryUsage(){return e(this.triangleIndexMap)}}class p{constructor(t,e,n,s,r){this.aabb=t,this.axis=e,this.d=n,this.midStartIndex=s,this.rightStartIndex=r}}function f(t,e,n,s,r,i){const o=r+3;let a=n,c=n,l=s;for(;c<l;){const n=t[c],s=6*n;e[s+o]<=i?(t[c]=t[a],t[a]=n,++a,++c):e[s+r]>=i?(--l,t[c]=t[l],t[l]=n):++c}return{next:a,mid:l}}function P(t,e,n,s){if(s<=n)return i;let r=6*t[n],a=e[r++],c=e[r++],l=e[r++],h=e[r++],g=e[r++],m=e[r];for(let i=n+1;i<s;++i)r=6*t[i],a=Math.min(a,e[r++]),c=Math.min(c,e[r++]),l=Math.min(l,e[r++]),h=Math.max(h,e[r++]),g=Math.max(g,e[r++]),m=Math.max(m,e[r]);return o(a,c,l,h,g,m)}function x(t){const e=t[3]-t[0],n=t[4]-t[1],s=t[5]-t[2],r=e>n?e>s?0:n>s?1:2:n>s?1:s>e?2:0;return{axis:r,midValue:(t[r]+t[r+3])/2}}function I(t,e,n,s){const r=new Float64Array(6*e);for(let i=0;i<e;++i){const e=3*i,o=t[e]*s,a=t[e+1]*s,c=t[e+2]*s;for(let t=0;t<3;++t){const e=n[o+t],s=n[a+t],l=n[c+t];r[6*i+t]=Math.min(e,s,l),r[6*i+3+t]=Math.max(e,s,l)}}return r}function b(t,e,n){const s=e,r=n;let i=0,o=1/0;for(let a=0;a<3;++a){{const e=t[a];if(s[a]<e){if(r[a]<=y)return!1;const t=(e-s[a])/r[a];i=Math.max(i,t)}else if(r[a]<=-y){const t=(e-s[a])/r[a];o=Math.min(o,t)}if(i>o)return!1}{const e=t[a+3];if(s[a]>e){if(r[a]>=-y)return!1;const t=(e-s[a])/r[a];i=Math.max(i,t)}else if(r[a]>=y){const t=(e-s[a])/r[a];o=Math.min(o,t)}if(i>o)return!1}}return!0}const S=new l,T=()=>{},M=()=>{},B=s();export{_ as TriangleIntersectionData};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{createRenderScreenPointArray3 as t,createScreenPointArray as n}from"../../../../core/screenUtils.js";import{copy as r,set as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as e}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersects as i,fromValues as s,create as u,containsPoint as f}from"../../../../geometry/support/aaBoundingRect.js";import{distance2 as c,fromPoints as p,create as m}from"../../../../geometry/support/lineSegment.js";import{signedDistance as a,intersectLineSegment as l}from"../../../../geometry/support/plane.js";import{containsPoint2dFromValues as h}from"../../../../geometry/support/triangle.js";function g(t,n){return t.isRectangle?f(t.bounds,n):v(n,t.points)}function M(t,n,r){const o=n[0]-r,e=n[1]-r,u=n[0]+r,f=n[1]+r;if(!i(t.bounds,s(o,e,u,f,A)))return!1;if(g(t,n))return!0;const c=r*r;for(const i of t.points){const t=i[0]-n[0],r=i[1]-n[1];if(t*t+r*r<=c)return!0}for(let i=0;i<t.points.length;i++){if(k(n,t.points[i],t.points[(i+1)%t.points.length])<=c)return!0}return!1}function j(t,n){if(!i(t.bounds,n))return!1;if(t.isRectangle)return!0;for(const r of t.points)if(f(n,r))return!0;for(let r=0;r<4;r++)if(v(z(C,n,r),t.points))return!0;for(let r=0;r<t.points.length;r++){const o=t.points[r],e=r===t.points.length-1?t.points[0]:t.points[r+1];for(let t=0;t<4;t++){if(B(o,e,z(C,n,t),z(D,n,(t+1)%4)))return!0}}return!1}function x(t,n,r,o){const e=Math.min(n[0],r[0],o[0]),i=Math.min(n[1],r[1],o[1]),u=Math.max(n[0],r[0],o[0]),f=Math.max(n[1],r[1],o[1]);if(!j(t,s(e,i,u,f,A)))return!1;if(g(t,n)||g(t,r)||g(t,o))return!0;for(const s of t.points)if(h(n,r,o,s,K))return!0;for(let s=0;s<t.points.length;s++){const e=t.points[s],i=t.points[(s+1)%t.points.length];if(B(n,r,e,i)||B(r,o,e,i)||B(o,n,e,i))return!0}return!1}function d(t,n,r,o){const e=Math.min(n[0],r[0])-o,u=Math.min(n[1],r[1])-o,f=Math.max(n[0],r[0])+o,c=Math.max(n[1],r[1])+o;if(!i(t.bounds,s(e,u,f,c,A)))return!1;if(g(t,n)||g(t,r))return!0;const p=o*o;for(const i of t.points)if(k(i,n,r)<=p)return!0;for(let i=0;i<t.points.length;i++){const o=t.points[i],e=t.points[(i+1)%t.points.length];if(B(n,r,o,e)||U(n,r,o,e)<=p)return!0}return!1}function b(t,n,o,e,i){r(G,n),r(H,o);const s=t.projectToRenderScreen(G,E),u=t.projectToRenderScreen(H,F);if(null==s||null==u)return!1;const f=R(t,G),c=R(t,H);if(f&&c)return!1;if(f!==c){const n=f?G:H,r=f?s:u;if(!S(t,n,f?H:G))return!1;if(!t.projectToRenderScreen(n,r))return!1}return e[0]=s[0],e[1]=s[1],e[2]=0,i[0]=u[0],i[1]=u[1],i[2]=0,!0}function R(t,n){return y(t,n)>0}function y(t,n){return a(t.frustum[4],n)}function S(t,n,r){return T(t,n,r,n)}function T(t,n,r,o){return l(t.frustum[4],p(n,r,J),o)}function v(t,n){let r=!1;for(let o=0,e=n.length-1;o<n.length;e=o++){const i=n[o],s=n[e];if(!(i[1]>t[1]!=s[1]>t[1]))continue;const u=(s[0]-i[0])*(t[1]-i[1])/(s[1]-i[1])+i[0];t[0]<u&&(r=!r)}return r}function B(t,n,r,o){const e=q(t,n,r),i=q(t,n,o),s=q(r,o,t),u=q(r,o,n);return e!==i&&s!==u||(0===e&&w(t,n,r)||0===i&&w(t,n,o)||0===s&&w(r,o,t)||0===u&&w(r,o,n))}function U(t,n,r,o){return B(t,n,r,o)?0:Math.min(k(t,r,o),k(n,r,o),k(r,t,n),k(o,t,n))}function k(t,n,r){return c(p(o(G,n[0],n[1],0),o(H,r[0],r[1],0),J),o(I,t[0],t[1],0))}function q(t,n,r){const o=(n[1]-t[1])*(r[0]-n[0])-(n[0]-t[0])*(r[1]-n[1]);return Math.abs(o)<=K?0:Math.sign(o)}function w(t,n,r){return r[0]>=Math.min(t[0],n[0])-K&&r[0]<=Math.max(t[0],n[0])+K&&r[1]>=Math.min(t[1],n[1])-K&&r[1]<=Math.max(t[1],n[1])+K}function z(t,n,r){return t[0]=0===r||3===r?n[0]:n[2],t[1]=r<2?n[1]:n[3],t}const A=u(),C=n(),D=n(),E=t(),F=t(),G=e(),H=e(),I=e(),J=m(),K=1e-9;export{R as isBehindNearPlane,b as projectWorldLineSegmentToRenderScreen,g as screenPolygonContainsPoint,j as screenPolygonIntersectsBounds,d as screenPolygonIntersectsBufferedSegment,M as screenPolygonIntersectsCircle,x as screenPolygonIntersectsTriangle};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createScreenPointArray as t}from"../../../../core/screenUtils.js";import{copy as e,distance as
|
|
2
|
+
import{createScreenPointArray as t}from"../../../../core/screenUtils.js";import{copy as e,distance as r,squaredDistance as o,set as i,transformMat4 as n}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{setMin as l,setMax as u,create as a}from"../../../../geometry/support/aaBoundingBox.js";import{intersectsTransformedAabb as c,intersectsTransformedAabbFromMinMax as m}from"../../../../geometry/support/frustum.js";import{clipPolygon as f}from"../../../../geometry/support/plane.js";import{normalFromValues as p,closestPointFromValues as d}from"../../../../geometry/support/triangle.js";import{boundingInfoSubdivisionThreshold as h}from"./intersectionConstants.js";import{screenPolygonIntersectsTriangle as I}from"./screenPolygonOverlapUtils.js";class b{constructor(t){this.primitiveIndex=t}}class g{constructor(t){this.type=t,this.distance=Number.POSITIVE_INFINITY,this.primitiveIndex=0,this.hasNormal=!1,this.point=s(),this.normal=s()}reset(){this.distance=Number.POSITIVE_INFINITY,this.hasNormal=!1}update(t,r,o,i){this.distance=t,this.primitiveIndex=r,e(this.point,o),this.hasNormal=null!=i,null!=i&&e(this.normal,i)}updateIfCloserFromValues(t,e,r,o){t<this.distance&&this.update(t,e,r,o)}updateIfCloser(t){const{distance:e,primitiveIndex:r,point:o,normal:i}=t;this.updateIfCloserFromValues(e,r,o,t.hasNormal?i:null)}get valid(){return Number.isFinite(this.distance)}}function y(t,e,r,o,i){if(!t.visible||0!==t.type)return null;const n=new g(4);let s;if(t.boundingInfo)s=j(t.boundingInfo,e,r,o,i);else{const n=t.positionAttribute,l=t.primitivePositionIndices;s=N(e,r,o,0,l.length/3,l,n.data,n.stride,i,null,0)}for(const l of s)n.updateIfCloser(l);return n.valid?n:null}function v(t,e,r,o,i){const n=new g(4);for(const s of x(t,e,r,o,i))n.updateIfCloser(s);return n.valid?n:null}function*N(t,e,r,o,i,n,s,l,u,a=null,c=0){const m=(t,r,o,i)=>{const m=(a?.[i]??i)+c,f=null==a?m:i,p=3*m;return P(t,n,s,l,p+0,u,f,e),P(r,n,s,l,p+1,u,f,e),P(o,n,s,l,p+2,u,f,e),m};return yield*x(t,r,o,i,m)}function*x(t,e,o,i,n){if(null==t.camera)return;const{camera:s,screenPolygonPrimitiveProcessor:l}=t;for(let u=o;u<i;++u){const t=n(A[0],A[1],A[2],u),o=w;let i;Y.reset();for(const{list:n,count:u}of l.processTriangle(_,A)){const l=f(s.frustum[4],n,u,M,!1);if(!(l<3)){for(let t=0;t<l;t++)s.projectToScreen(M[t],O[t]);T(e,O,l)&&(F(s.eye,M,l,S),null==i&&(i=p(w,A[0],A[1],A[2])),Y.updateIfCloserFromValues(r(s.eye,S),t,S,i?o:null))}}Y.valid&&(yield Y)}}function*j(t,e,r,o,i){let n;if(null!=i?(l(C,t.bbMin),u(C,t.bbMax),i.applyToAabb(C),n=c(o.broadPhaseFrustum,C,r)):n=m(o.broadPhaseFrustum,t.bbMin,t.bbMax,r),!n)return;const{primitiveIndices:s,position:a}=t,f=s?s.length:a.indices.length/3;if(f>h){const n=t.getChildren();if(void 0!==n){for(const t of n)yield*j(t,e,r,o,i);return}}yield*N(e,r,o,0,f,a.indices,a.data,a.stride,i,s,0)}function P(t,e,r,o,s,l,u,a){const c=o*e[s],m=r[c+0],f=r[c+1],p=r[c+2];null!=l?l.applyToVertex(t,m,f,p,u):i(t,m,f,p),a&&n(t,t,a)}function T(t,e,r){for(let o=1;o<r-1;o++)if(I(t,e[0],e[o],e[o+1]))return!0;return!1}function F(t,r,i,n){let s=Number.POSITIVE_INFINITY;for(let l=1;l<i-1;l++){d(E,t,r[0],r[l],r[l+1]);const i=o(t,E);i<s&&(s=i,e(n,E))}}const C=a(),V=12,A=[s(),s(),s()],M=Array.from({length:V},()=>s()),O=Array.from({length:V},()=>t()),S=s(),w=s(),E=s(),Y=new g(4),_={list:[],count:0};export{b as DrapedHit,g as Hit,N as forEachTriangleRangeScreenPolygonHit,x as forEachTriangleReaderRangeScreenPolygonHit,y as intersectTriangleGeometryScreenPolygon,v as intersectTriangleReaderRangeScreenPolygon};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as o}from"tslib";import{parameter as s}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{
|
|
2
|
+
import{__decorate as o}from"tslib";import{parameter as s}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{FloatBlendScaleConfiguration as r}from"./floatBlendScale.glsl.js";class e extends r{constructor(){super(...arguments),this.hasEmission=!1}}o([s()],e.prototype,"hasEmission",void 0);export{e as GaussianSplatCompositionTechniqueConfiguration};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{isColor as o,isOITColorAlpha as i,isOITFrontFace as l}from"../core/shaderLibrary/ShaderOutput.js";import{Emissions as r}from"../core/shaderLibrary/output/Emissions.glsl.js";import{OutputHighlight as s}from"../core/shaderLibrary/output/OutputHighlight.glsl.js";import{ColorConversion as a}from"../core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as e}from"../core/shaderLibrary/util/emissionFilter.glsl.js";import{If as n,glsl as t}from"../core/shaderModules/glsl.js";import{alphaCutoff as f}from"./alphaCutoff.glsl.js";import{ditherNoise as m}from"./ditherNoise.glsl.js";import{
|
|
2
|
+
import{isColor as o,isOITColorAlpha as i,isOITFrontFace as l}from"../core/shaderLibrary/ShaderOutput.js";import{Emissions as r}from"../core/shaderLibrary/output/Emissions.glsl.js";import{OutputHighlight as s}from"../core/shaderLibrary/output/OutputHighlight.glsl.js";import{ColorConversion as a}from"../core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as e}from"../core/shaderLibrary/util/emissionFilter.glsl.js";import{If as n,glsl as t}from"../core/shaderModules/glsl.js";import{alphaCutoff as f}from"./alphaCutoff.glsl.js";import{ditherNoise as m}from"./ditherNoise.glsl.js";import{floatBlendScale as u}from"./floatBlendScale.glsl.js";function d(d,g){d.include(s,g),d.include(r,g);const{fragment:p,outputs:c}=d;p.include(a);const{output:C,hasEmission:h,oitPremultipliedAlpha:b,snowCover:E,emissionDimmingPass:v,renderOccluded:y}=g,j=11===C,O=i(C),$=l(C),A=o(C)&&!O,S=0!==C||y;let L=0;(A||O)&&c.add("fragColor","vec4",L++),O&&c.add("fragAlpha","float",L++),h&&c.add("fragEmission","vec4",L++),p.include(a),p.include(f),p.include(u,g),p.include(m,g),v&&p.include(e),p.code.add(t`
|
|
3
3
|
void outputColorHighlightOLID(vec4 finalColor, vec3 emissiveSymbolColor ${n(E,", float snow")}) {
|
|
4
4
|
${n(j,"finalColor.a = 1.0;")}
|
|
5
|
-
${n(
|
|
5
|
+
${n(S,"if (finalColor.a < alphaCutoff) discard;")}
|
|
6
6
|
|
|
7
7
|
${n(O,`float noise = ditherNoise(finalColor);\n fragColor = ${n(b,"finalColor","premultiplyAlpha(finalColor)")};\n fragColor.rgb = fragColor.rgb * floatBlendOutputScale + noise;\n fragAlpha = finalColor.a * floatBlendOutputScale + noise;\n `)}
|
|
8
8
|
${n($&&b,"finalColor.rgb /= finalColor.a;")}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import{parameter as o,ShaderTechniqueConfiguration as a}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";class n extends a{constructor(){super(...arguments),this.useFloatBlend=!0}}t([o()],n.prototype,"useFloatBlend",void 0);const e=16,l=e;function s(t,o){o.useFloatBlend?(t.constants.add("floatBlendOutputScale","float",1),t.constants.add("floatBlendInputScale","float",1)):(t.constants.add("floatBlendOutputScale","float",1/e),t.constants.add("floatBlendInputScale","float",e)),t.constants.add("maxEmissiveStrength","float",l)}export{n as
|
|
2
|
+
import{__decorate as t}from"tslib";import{parameter as o,ShaderTechniqueConfiguration as a}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";class n extends a{constructor(){super(...arguments),this.useFloatBlend=!0}}t([o()],n.prototype,"useFloatBlend",void 0);const e=16,l=e;function s(t,o){o.useFloatBlend?(t.constants.add("floatBlendOutputScale","float",1),t.constants.add("floatBlendInputScale","float",1)):(t.constants.add("floatBlendOutputScale","float",1/e),t.constants.add("floatBlendInputScale","float",e)),t.constants.add("maxEmissiveStrength","float",l)}export{n as FloatBlendScaleConfiguration,e as floatBlendReductionFactor,s as floatBlendScale};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"../../core/has.js";import{destroyMaybe as e}from"../../core/maybe.js";import{GamepadSource as t}from"./gamepad/GamepadSource.js";import{createScreenPointFromNativeEvent as n}from"../support/screenUtils.js";const i=has("edge"),o=has("chrome"),a=has("ff"),s=has("safari"),r="esri-view-surface",h={touchNone:`${r}--touch-none`,touchPan:`${r}--touch-pan`};class l{static{this.test={disableSubpixelCoordinates:!1}}constructor(e,n){this._active={},this._callback=()=>{},this._keyModifierCallback=()=>{},this._activePointerCaptures=new Set,this._keyDownState=new Set,this._eventId=1,this._browserTouchPanningEnabled=!1,this._forwardWindowModifierKeyPresses=e=>{if(document.activeElement===this._element)return;const t="keydown"===e.type?"key-down":"key-up";this._active[t]&&
|
|
2
|
+
import has from"../../core/has.js";import{destroyMaybe as e}from"../../core/maybe.js";import{GamepadSource as t}from"./gamepad/GamepadSource.js";import{createScreenPointFromNativeEvent as n}from"../support/screenUtils.js";const i=has("edge"),o=has("chrome"),a=has("ff"),s=has("safari"),r="esri-view-surface",h={touchNone:`${r}--touch-none`,touchPan:`${r}--touch-pan`};class l{static{this.test={disableSubpixelCoordinates:!1}}constructor(e,n){this._active={},this._callback=()=>{},this._keyModifierCallback=()=>{},this._modifierKeys=null,this._activePointerCaptures=new Set,this._keyDownState=new Set,this._eventId=1,this._browserTouchPanningEnabled=!1,this._forwardWindowModifierKeyPresses=e=>{if(document.activeElement===this._element)return;const t="keydown"===e.type?"key-down":"key-up";this._active[t]&&this._modifierKeys?.has(e.key)&&this._keyModifierCallback(t,{native:e,key:e.key,repeat:e.repeat})},this._element=e,e.getAttribute("tabindex")||e.setAttribute("tabindex","0"),this._eventHandlers={"key-down":this._handleKey,"key-up":this._handleKey,"pointer-down":this._handlePointer,"pointer-move":this._handlePointerPreventDefault,"pointer-up":this._handlePointerPreventDefault,"pointer-enter":this._handlePointer,"pointer-leave":this._handlePointer,"pointer-cancel":this._handlePointer,"mouse-wheel":this._handleMouseWheel,"pointer-capture-lost":this._handlePointerCaptureLost},this._updateTouchAction(),this._element.addEventListener("keydown",this._preventAltKeyDefault),window.addEventListener("keydown",this._forwardWindowModifierKeyPresses),window.addEventListener("keyup",this._forwardWindowModifierKeyPresses),this._gamepadSource=new t(e,n),this._gamepadSource.onEvent=e=>this._callback("gamepad",e)}destroy(){this._callback=()=>{},this._keyModifierCallback=()=>{},this.activeEvents=null,this.modifierKeys=null,this._activePointerCaptures.forEach(e=>this._releasePointerCaptureSafe(e)),this._activePointerCaptures.clear(),this._gamepadSource=e(this._gamepadSource),this._removeTouchAction(),this._element.removeEventListener("keydown",this._preventAltKeyDefault),window.removeEventListener("keydown",this._forwardWindowModifierKeyPresses),window.removeEventListener("keyup",this._forwardWindowModifierKeyPresses)}get browserTouchPanningEnabled(){return this._browserTouchPanningEnabled}set browserTouchPanningEnabled(e){this._browserTouchPanningEnabled=e,this._updateTouchAction(),this._updateTouchEventHandling()}set onEventReceived(e){this._callback=e}set onKeyModifierReceived(e){this._keyModifierCallback=e}set activeEvents(e){for(const t in this._active)if(!e||!e.has(t)){const e=this._active[t];this._element.removeEventListener(d[t],e),delete this._active[t]}e&&e.forEach(e=>{if(!this._active[e]&&d[e]){const t=(this._eventHandlers[e]||this._handleDefault).bind(this,e);this._element.addEventListener(d[e],t),this._active[e]=t}}),this._gamepadSource&&(this._gamepadSource.hasEventListeners=e?.has("gamepad")??!1)}set modifierKeys(e){this._modifierKeys=e}setPointerCapture(e,t){t?this._setPointerCaptureSafe(e.pointerId):(this._releasePointerCaptureSafe(e.pointerId),this._activePointerCaptures.delete(e.pointerId))}_updateTouchAction(){this._element.classList.remove(this._browserTouchPanningEnabled?h.touchNone:h.touchPan),this._element.classList.add(this._browserTouchPanningEnabled?h.touchPan:h.touchNone)}_updateTouchEventHandling(){this._browserTouchPanningEnabled?this._element.addEventListener("touchmove",this._preventMultiTouchPanning):this._element.removeEventListener("touchmove",this._preventMultiTouchPanning)}_removeTouchAction(){this._element.classList.remove(h.touchNone),this._element.classList.remove(h.touchPan),this._element.removeEventListener("touchmove",this._preventMultiTouchPanning)}_setPointerCaptureSafe(e){try{this._element.setPointerCapture(e),this._activePointerCaptures.add(e)}catch{}}_releasePointerCaptureSafe(e){try{if(this._element.hasPointerCapture&&!this._element.hasPointerCapture(e))return;this._element.releasePointerCapture(e)}catch(t){}}_updateNormalizedPointerLikeEvent(e,t){const i=n(this._element,e);return l.test.disableSubpixelCoordinates&&(i.x=Math.round(i.x),i.y=Math.round(i.y)),t.x=i.x,t.y=i.y,t}_handleKey(e,t){const{key:n}=t;n&&"key-up"===e&&this._keyDownState.delete(n);const i={native:t,key:n,repeat:!!n&&this._keyDownState.has(n)};n&&"key-down"===e&&this._keyDownState.add(i.key),this._callback(e,i)}_handlePointer(e,t){const n=this._updateNormalizedPointerLikeEvent(t,{native:t,x:0,y:0,pointerType:t.pointerType,button:t.button,buttons:t.buttons,eventId:this._eventId++});this._callback(e,n)}_handlePointerPreventDefault(e,t){const n=this._updateNormalizedPointerLikeEvent(t,{native:t,x:0,y:0,pointerType:t.pointerType,button:t.button,buttons:t.buttons,eventId:this._eventId++});t.preventDefault(),this._callback(e,n)}_getDeltaFromTrackpadOrMouseWheel(e){return e.shiftKey&&has("mac")&&0===e.deltaY?e.deltaX:e.deltaY}_handleMouseWheel(e,t){let n=this._getDeltaFromTrackpadOrMouseWheel(t);switch(t.deltaMode){case 0:i&&(n=n/document.documentElement.clientHeight*600);break;case 1:n*=30;break;case 2:n*=900}i?n*=.7:o||s?n*=.6:a&&(n*=1.375);const r=100,h=Math.abs(n);if(h>r){n=n/h*200/(1+Math.exp(-.02*(h-r)))}const l=this._updateNormalizedPointerLikeEvent(t,{native:t,x:0,y:0,deltaY:n});this._callback(e,l)}_handlePointerCaptureLost(e,t){this._activePointerCaptures.delete(t.pointerId),this._handleDefault(e,t)}_handleDefault(e,t){const n={native:t};t.preventDefault(),this._callback(e,n)}_preventAltKeyDefault(e){"Alt"===e.key&&e.preventDefault()}_preventMultiTouchPanning(e){e.touches.length>1&&e.preventDefault()}}const d={"key-down":"keydown","key-up":"keyup","pointer-down":"pointerdown","pointer-up":"pointerup","pointer-move":"pointermove","mouse-wheel":"wheel","pointer-capture-got":"gotpointercapture","pointer-capture-lost":"lostpointercapture","context-menu":"contextmenu","touch-start":"touchstart","touch-end":"touchend","pointer-enter":"pointerenter","pointer-leave":"pointerleave","pointer-cancel":"pointercancel",focus:"focus",blur:"blur"};export{l as BrowserEventSource};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import"../../core/has.js";import i from"../../core/Logger.js";import n from"../../core/Queue.js";import{createScreenPoint as r}from"../../core/screenUtils.js";import{property as s,subclass as o}from"../../core/accessorSupport/decorators.js";import{primaryKey as a,isSystemModifier as l}from"./keys.js";import{LatestPen as h}from"./handlers/LatestPen.js";import{LatestPointer as p}from"./handlers/LatestPointer.js";import{MultiTouch as d}from"./handlers/MultiTouch.js";import{PropertiesPool as u}from"../support/PropertiesPool.js";class c{constructor(){this.id=0,this.type="mouse",this.location=r()}}class _{constructor(){this.tiltX=0,this.tiltY=0}}let f=class extends t{constructor(e){super(e),this._pointerCaptures=new Map,this._nameToGroup={},this._handlers=[],this._handlersPriority=[],this._currentPropagation=null,this._updateDependenciesAfterPropagation=!1,this._sourceEvents=new Set,this._keyModifiers=new Set,this._activeKeyModifiers=new Set,this._stoppedPropagationEventIds=new Set,this.primaryKey=a,this._propertiesPool=new u({latestPointerInfo:()=>new c,latestPenInfo:()=>new _},this),this._latestPointerInfo=void 0,this._latestPenInfo=void 0,this._paused=!1,this._testTimestamp=void 0}initialize(){this.eventSource.onEventReceived=this._onEventReceived.bind(this),this.eventSource.onKeyModifierReceived=this._updateKeyModifiers.bind(this),this._installRecognizers()}destroy(){const e=Object.keys(this._nameToGroup);for(const t of e)this.uninstallHandlers(t);this.eventSource.destroy(),this._currentPropagation=null,this._propertiesPool.destroy()}get hasPendingInputs(){return this._handlers.some(e=>e.handler.hasPendingInputs)}get multiTouchActive(){return this._multiTouchHandler.multiTouchActive}get latestPointerInfo(){return this._latestPointerInfo}get latestPenInfo(){return this._latestPenInfo}get updating(){return this.hasPendingInputs||this._paused}installHandlers(e,t,i=y.INTERNAL){if(this._nameToGroup[e])return;if(0===t.length)return;const n={name:e,handlers:t.map(e=>({handler:e,active:!0,removed:!1,priorityIndex:0,groupPriority:i,eventCallback:null,uninstallCallback:null}))};this._nameToGroup[e]=n;for(let r=n.handlers.length-1;r>=0;r--){const e=n.handlers[r];this._handlers.push(e),e.handler.onInstall({updateDependencies:()=>{this.updateDependencies()},emit:(t,i,n,r,s)=>{this._emitInputEvent(e.priorityIndex+1,t,i,n,s,r)},setPointerCapture:(t,i)=>{this._setPointerCapture(n,e,t,i)},setEventCallback:t=>{e.eventCallback=t},setUninstallCallback:t=>{e.uninstallCallback=t},refreshHasPendingInputs:()=>{this.notifyChange("hasPendingInputs")}})}this.updateDependencies()}uninstallHandlers(e){const t=this._nameToGroup[e];t?(t.handlers.forEach(e=>{e.removed=!0,e.uninstallCallback?.()}),delete this._nameToGroup[e],this._currentPropagation?this._currentPropagation.needsHandlerGarbageCollect=!0:this._garbageCollectRemovedHandlers()):i.getLogger(this).error("There is no InputHandler group registered under the name `"+e+"`")}hasHandlers(e){return void 0!==this._nameToGroup[e]}isModifierKeyDown(e){return this._activeKeyModifiers.has(e)}updateDependencies(){if(this._currentPropagation)return void(this._updateDependenciesAfterPropagation=!0);this._updateDependenciesAfterPropagation=!1;const e=new Set,t=new Set;this._handlersPriority=[];for(let i=this._handlers.length-1;i>=0;i--){const e=this._handlers[i];e.priorityIndex=i,this._handlersPriority.push(e)}this._handlersPriority=this._sortHandlersPriority(this._handlersPriority);for(let i=this._handlersPriority.length-1;i>=0;i--){const n=this._handlersPriority[i];n.priorityIndex=i;let r=n.handler.hasSideEffects;if(!r)for(const t of n.handler.outgoingEventTypes)if(e.has(t)){r=!0;break}if(r)for(const i of n.handler.incomingEventMatches){e.add(i.eventType);for(const e of i.keyModifiers)l(e)||t.add(e)}n.active=r}this._sourceEvents=e,this._keyModifiers=t,this._pointerCaptures.size>0&&this._sourceEvents.add("pointer-capture-lost"),this._keyModifiers.size>0&&(this._sourceEvents.add("key-down"),this._sourceEvents.add("key-up")),this.eventSource&&(this.eventSource.activeEvents=this._sourceEvents)}_setLatestPointer(e,t,i,n){const r=this._latestPointerInfo;if(null==r||r.id!==e||r.type!==t||r.location.x!==i||r.location.y!==n){const r=this._propertiesPool.get("latestPointerInfo");r.id=e,r.type=t,r.location.x=i,r.location.y=n,this._latestPointerInfo=r}}_setLatestPen(e,t){const i=this._latestPenInfo,n=null!=i&&0===e&&0===t,r=n?i?.tiltX:e,s=n?i?.tiltY:t;if(null!=r&&null!=s){if(null==i||i.tiltX!==r||i.tiltY!==s){const e=this._propertiesPool.get("latestPenInfo");e.tiltX=r,e.tiltY=s,this._latestPenInfo=e}}else null!=i&&(this._latestPenInfo=void 0)}_onEventReceived(e,t){if("pointer-capture-lost"===e){const e=t;this._pointerCaptures.delete(e.native.pointerId)}this._updateKeyModifiers(e,t);const i=this._testTimestamp??t.native?.timestamp,n=t.native?.cancelable;this._emitInputEventFromSource(e,t,i,n)}_updateKeyModifiers(e,t){if(!t)return;let i=!1;const n=()=>{i||(this._activeKeyModifiers=new Set(this._activeKeyModifiers),i=!0)},r=(e,t)=>{t&&!this._activeKeyModifiers.has(e)?(n(),this._activeKeyModifiers.add(e)):!t&&this._activeKeyModifiers.has(e)&&(n(),this._activeKeyModifiers.delete(e))};if("key-down"===e||"key-up"===e){const i=t.key;this._keyModifiers.has(i)&&r(i,"key-down"===e)}const s=t.native;r("Alt",!!s?.altKey),r("Control",!!s?.ctrlKey),r("Ctrl",!!s?.ctrlKey),r("Shift",!!s?.shiftKey),r("Meta",!!s?.metaKey),r("Primary",this._activeKeyModifiers.has(this.primaryKey))}_installRecognizers(){this._latestPointerHandler=new p((e,t,i,n)=>this._setLatestPointer(e,t,i,n)),this._latestPenHandler=new h((e,t)=>this._setLatestPen(e,t)),this._multiTouchHandler=new d,this.installHandlers("input-manager-logic",[this._latestPointerHandler,this._latestPenHandler,this._multiTouchHandler],y.ALWAYS),this.recognizers.length>0&&this.installHandlers("default",this.recognizers,y.INTERNAL)}_setPointerCapture(e,t,i,n){const r=e.name+"-"+t.priorityIndex,s=this._pointerCaptures.get(i.pointerId)||new Set;this._pointerCaptures.set(i.pointerId,s),n?(s.add(r),1===s.size&&this.eventSource&&this.eventSource.setPointerCapture(i,!0)):s.has(r)&&(s.delete(r),0===s.size&&(this._pointerCaptures.delete(i.pointerId),this.eventSource&&this.eventSource.setPointerCapture(i,!1)))}_garbageCollectRemovedHandlers(){this._handlers=this._handlers.filter(e=>!e.removed),this.updateDependencies()}_emitInputEventFromSource(e,t,i,n){this._emitInputEvent(0,e,t,i,n)}_emitInputEvent(e,t,i,n,r,s){const o=n??this._currentPropagation?.timestamp??performance.now(),a=r??!1,l={event:new g(t,i,o,s||this._activeKeyModifiers,a),priorityIndex:e};this._currentPropagation?this._currentPropagation.events.push(l):this._doNewPropagation(l)}_doNewPropagation(e){this._currentPropagation={events:new n,currentHandler:null,needsHandlerGarbageCollect:!1,timestamp:e.event.timestamp},this._currentPropagation.events.push(e),this._continuePropagation()}_continuePropagation(){this._paused=!1;const e=this._currentPropagation;if(e){for(;e.events.length>0;){const{event:t,priorityIndex:i}=e.events.pop(),n=t.data?.eventId;if(!(null!=n&&this._stoppedPropagationEventIds.has(n)))for(e.currentHandler=this._handlersPriority[i];e.currentHandler;){if(e.currentHandler.removed)e.needsHandlerGarbageCollect=!0;else{if(e.currentHandler.active&&!t.shouldStopPropagation()&&e.currentHandler.eventCallback?.(t),t.shouldStopPropagation()){null!=n&&this._stoppedPropagationEventIds.add(n);break}if(t.shouldPausePropagation(()=>this._continuePropagation()))return void this._pausePropagation({event:t,priorityIndex:e.currentHandler.priorityIndex+1})}e.currentHandler=this._handlersPriority[e.currentHandler.priorityIndex+1]}}e.needsHandlerGarbageCollect&&this._garbageCollectRemovedHandlers(),this.hasPendingInputs||this._stoppedPropagationEventIds.clear(),this._currentPropagation=null,this._updateDependenciesAfterPropagation&&this.updateDependencies()}}_pausePropagation(e){const t=new n;t.push(e);const i=this._currentPropagation;if(i){for(;i.events.length;)t.push(i.events.pop());i.events=t,i.currentHandler=null,this._paused=!0}}_compareHandlerPriority(e,t){if(e.handler.hasSideEffects!==t.handler.hasSideEffects)return e.handler.hasSideEffects?1:-1;if(e.groupPriority!==t.groupPriority)return e.groupPriority>t.groupPriority?-1:1;for(const i of e.handler.incomingEventMatches)for(const e of t.handler.incomingEventMatches){if(i.eventType!==e.eventType)continue;const t=i.keyModifiers.filter(t=>e.keyModifiers.includes(t));if(t.length===i.keyModifiers.length!==(t.length===e.keyModifiers.length))return i.keyModifiers.length>e.keyModifiers.length?-1:1}return e.priorityIndex>t.priorityIndex?-1:1}_sortHandlersPriority(e){const t=[];for(const i of e){let e=0;for(;e<t.length&&this._compareHandlerPriority(i,t[e])>=0;)e++;t.splice(e,0,i)}return t}get test(){}};e([s({readOnly:!0})],f.prototype,"hasPendingInputs",null),e([s({constructOnly:!0})],f.prototype,"eventSource",void 0),e([s({constructOnly:!0})],f.prototype,"recognizers",void 0),e([s()],f.prototype,"multiTouchActive",null),e([s()],f.prototype,"_latestPointerInfo",void 0),e([s()],f.prototype,"latestPointerInfo",null),e([s()],f.prototype,"_latestPenInfo",void 0),e([s()],f.prototype,"latestPenInfo",null),e([s()],f.prototype,"_paused",void 0),e([s({readOnly:!0})],f.prototype,"updating",null),f=e([o("esri.views.input.InputManager")],f);class g{constructor(e,t,i,n,r){this.type=e,this.data=t,this.timestamp=i,this.modifiers=n,this.cancelable=r,this._propagationState=0,this._resumeCallback=null}stopPropagation(){this._propagationState|=1}shouldStopPropagation(){return!!(1&this._propagationState)}defer(e){this._propagationState|=2;const t=(e,t)=>{this._propagationState&=-3;const i=this._resumeCallback;if(this._resumeCallback=null,i&&i(),t)throw e;return e};return("function"==typeof e?e():e).then(e=>t(e,!1),e=>t(e,!0))}shouldPausePropagation(e){return!!(2&this._propagationState)&&(this._resumeCallback=e,!0)}preventDefault(){this.data.native.preventDefault()}}const y={ALWAYS:1,DEFAULT:0,TOOL:-1,WIDGET:-2,INTERNAL:-3};export{f as InputManager,_ as LatestPenInfo,c as LatestPointerInfo,y as ViewEventPriorities};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import"../../core/has.js";import i from"../../core/Logger.js";import n from"../../core/Queue.js";import{createScreenPoint as r}from"../../core/screenUtils.js";import{property as s,subclass as o}from"../../core/accessorSupport/decorators.js";import{primaryKey as a,isSystemModifier as l}from"./keys.js";import{LatestPen as h}from"./handlers/LatestPen.js";import{LatestPointer as d}from"./handlers/LatestPointer.js";import{MultiTouch as p}from"./handlers/MultiTouch.js";import{PropertiesPool as u}from"../support/PropertiesPool.js";class c{constructor(){this.id=0,this.type="mouse",this.location=r()}}class _{constructor(){this.tiltX=0,this.tiltY=0}}let f=class extends t{constructor(e){super(e),this._pointerCaptures=new Map,this._nameToGroup={},this._handlers=[],this._handlersPriority=[],this._currentPropagation=null,this._updateDependenciesAfterPropagation=!1,this._sourceEvents=new Set,this._keyModifiers=new Set,this._activeKeyModifiers=new Set,this._stoppedPropagationEventIds=new Set,this.primaryKey=a,this._propertiesPool=new u({latestPointerInfo:()=>new c,latestPenInfo:()=>new _},this),this._latestPointerInfo=void 0,this._latestPenInfo=void 0,this._paused=!1,this._testTimestamp=void 0}initialize(){this.eventSource.onEventReceived=this._onEventReceived.bind(this),this.eventSource.onKeyModifierReceived=this._updateKeyModifiers.bind(this),this._installRecognizers()}destroy(){const e=Object.keys(this._nameToGroup);for(const t of e)this.uninstallHandlers(t);this.eventSource.destroy(),this._currentPropagation=null,this._propertiesPool.destroy()}get hasPendingInputs(){return this._handlers.some(e=>e.handler.hasPendingInputs)}get multiTouchActive(){return this._multiTouchHandler.multiTouchActive}get latestPointerInfo(){return this._latestPointerInfo}get latestPenInfo(){return this._latestPenInfo}get updating(){return this.hasPendingInputs||this._paused}installHandlers(e,t,i=y.INTERNAL){if(this._nameToGroup[e])return;if(0===t.length)return;const n={name:e,handlers:t.map(e=>({handler:e,active:!0,removed:!1,priorityIndex:0,groupPriority:i,eventCallback:null,uninstallCallback:null}))};this._nameToGroup[e]=n;for(let r=n.handlers.length-1;r>=0;r--){const e=n.handlers[r];this._handlers.push(e),e.handler.onInstall({updateDependencies:()=>{this.updateDependencies()},emit:(t,i,n,r,s)=>{this._emitInputEvent(e.priorityIndex+1,t,i,n,s,r)},setPointerCapture:(t,i)=>{this._setPointerCapture(n,e,t,i)},setEventCallback:t=>{e.eventCallback=t},setUninstallCallback:t=>{e.uninstallCallback=t},refreshHasPendingInputs:()=>{this.notifyChange("hasPendingInputs")}})}this.updateDependencies()}uninstallHandlers(e){const t=this._nameToGroup[e];t?(t.handlers.forEach(e=>{e.removed=!0,e.uninstallCallback?.()}),delete this._nameToGroup[e],this._currentPropagation?this._currentPropagation.needsHandlerGarbageCollect=!0:this._garbageCollectRemovedHandlers()):i.getLogger(this).error("There is no InputHandler group registered under the name `"+e+"`")}hasHandlers(e){return void 0!==this._nameToGroup[e]}isModifierKeyDown(e){return this._activeKeyModifiers.has(e)}updateDependencies(){if(this._currentPropagation)return void(this._updateDependenciesAfterPropagation=!0);this._updateDependenciesAfterPropagation=!1;const e=new Set,t=new Set;this._handlersPriority=[];for(let i=this._handlers.length-1;i>=0;i--){const e=this._handlers[i];e.priorityIndex=i,this._handlersPriority.push(e)}this._handlersPriority=this._sortHandlersPriority(this._handlersPriority);for(let i=this._handlersPriority.length-1;i>=0;i--){const n=this._handlersPriority[i];n.priorityIndex=i;let r=n.handler.hasSideEffects;if(!r)for(const t of n.handler.outgoingEventTypes)if(e.has(t)){r=!0;break}if(r)for(const i of n.handler.incomingEventMatches){e.add(i.eventType);for(const e of i.keyModifiers)l(e)||t.add(e)}n.active=r}this._sourceEvents=e,this._keyModifiers=t,this._pointerCaptures.size>0&&this._sourceEvents.add("pointer-capture-lost"),this._keyModifiers.size>0&&(this._sourceEvents.add("key-down"),this._sourceEvents.add("key-up")),this.eventSource&&(this.eventSource.activeEvents=this._sourceEvents,this.eventSource.modifierKeys=this._keyModifiers)}_setLatestPointer(e,t,i,n){const r=this._latestPointerInfo;if(null==r||r.id!==e||r.type!==t||r.location.x!==i||r.location.y!==n){const r=this._propertiesPool.get("latestPointerInfo");r.id=e,r.type=t,r.location.x=i,r.location.y=n,this._latestPointerInfo=r}}_setLatestPen(e,t){const i=this._latestPenInfo,n=null!=i&&0===e&&0===t,r=n?i?.tiltX:e,s=n?i?.tiltY:t;if(null!=r&&null!=s){if(null==i||i.tiltX!==r||i.tiltY!==s){const e=this._propertiesPool.get("latestPenInfo");e.tiltX=r,e.tiltY=s,this._latestPenInfo=e}}else null!=i&&(this._latestPenInfo=void 0)}_onEventReceived(e,t){if("pointer-capture-lost"===e){const e=t;this._pointerCaptures.delete(e.native.pointerId)}this._updateKeyModifiers(e,t);const i=this._testTimestamp??t.native?.timestamp,n=t.native?.cancelable;this._emitInputEventFromSource(e,t,i,n)}_updateKeyModifiers(e,t){if(!t)return;let i=!1;const n=()=>{i||(this._activeKeyModifiers=new Set(this._activeKeyModifiers),i=!0)},r=(e,t)=>{t&&!this._activeKeyModifiers.has(e)?(n(),this._activeKeyModifiers.add(e)):!t&&this._activeKeyModifiers.has(e)&&(n(),this._activeKeyModifiers.delete(e))};if("key-down"===e||"key-up"===e){const i=t.key;this._keyModifiers.has(i)&&r(i,"key-down"===e)}const s=t.native;r("Alt",!!s?.altKey),r("Control",!!s?.ctrlKey),r("Ctrl",!!s?.ctrlKey),r("Shift",!!s?.shiftKey),r("Meta",!!s?.metaKey),r("Primary",this._activeKeyModifiers.has(this.primaryKey))}_installRecognizers(){this._latestPointerHandler=new d((e,t,i,n)=>this._setLatestPointer(e,t,i,n)),this._latestPenHandler=new h((e,t)=>this._setLatestPen(e,t)),this._multiTouchHandler=new p,this.installHandlers("input-manager-logic",[this._latestPointerHandler,this._latestPenHandler,this._multiTouchHandler],y.ALWAYS),this.recognizers.length>0&&this.installHandlers("default",this.recognizers,y.INTERNAL)}_setPointerCapture(e,t,i,n){const r=e.name+"-"+t.priorityIndex,s=this._pointerCaptures.get(i.pointerId)||new Set;this._pointerCaptures.set(i.pointerId,s),n?(s.add(r),1===s.size&&this.eventSource&&this.eventSource.setPointerCapture(i,!0)):s.has(r)&&(s.delete(r),0===s.size&&(this._pointerCaptures.delete(i.pointerId),this.eventSource&&this.eventSource.setPointerCapture(i,!1)))}_garbageCollectRemovedHandlers(){this._handlers=this._handlers.filter(e=>!e.removed),this.updateDependencies()}_emitInputEventFromSource(e,t,i,n){this._emitInputEvent(0,e,t,i,n)}_emitInputEvent(e,t,i,n,r,s){const o=n??this._currentPropagation?.timestamp??performance.now(),a=r??!1,l={event:new g(t,i,o,s||this._activeKeyModifiers,a),priorityIndex:e};this._currentPropagation?this._currentPropagation.events.push(l):this._doNewPropagation(l)}_doNewPropagation(e){this._currentPropagation={events:new n,currentHandler:null,needsHandlerGarbageCollect:!1,timestamp:e.event.timestamp},this._currentPropagation.events.push(e),this._continuePropagation()}_continuePropagation(){this._paused=!1;const e=this._currentPropagation;if(e){for(;e.events.length>0;){const{event:t,priorityIndex:i}=e.events.pop(),n=t.data?.eventId;if(!(null!=n&&this._stoppedPropagationEventIds.has(n)))for(e.currentHandler=this._handlersPriority[i];e.currentHandler;){if(e.currentHandler.removed)e.needsHandlerGarbageCollect=!0;else{if(e.currentHandler.active&&!t.shouldStopPropagation()&&e.currentHandler.eventCallback?.(t),t.shouldStopPropagation()){null!=n&&this._stoppedPropagationEventIds.add(n);break}if(t.shouldPausePropagation(()=>this._continuePropagation()))return void this._pausePropagation({event:t,priorityIndex:e.currentHandler.priorityIndex+1})}e.currentHandler=this._handlersPriority[e.currentHandler.priorityIndex+1]}}e.needsHandlerGarbageCollect&&this._garbageCollectRemovedHandlers(),this.hasPendingInputs||this._stoppedPropagationEventIds.clear(),this._currentPropagation=null,this._updateDependenciesAfterPropagation&&this.updateDependencies()}}_pausePropagation(e){const t=new n;t.push(e);const i=this._currentPropagation;if(i){for(;i.events.length;)t.push(i.events.pop());i.events=t,i.currentHandler=null,this._paused=!0}}_compareHandlerPriority(e,t){if(e.handler.hasSideEffects!==t.handler.hasSideEffects)return e.handler.hasSideEffects?1:-1;if(e.groupPriority!==t.groupPriority)return e.groupPriority>t.groupPriority?-1:1;for(const i of e.handler.incomingEventMatches)for(const e of t.handler.incomingEventMatches){if(i.eventType!==e.eventType)continue;const t=i.keyModifiers.filter(t=>e.keyModifiers.includes(t));if(t.length===i.keyModifiers.length!==(t.length===e.keyModifiers.length))return i.keyModifiers.length>e.keyModifiers.length?-1:1}return e.priorityIndex>t.priorityIndex?-1:1}_sortHandlersPriority(e){const t=[];for(const i of e){let e=0;for(;e<t.length&&this._compareHandlerPriority(i,t[e])>=0;)e++;t.splice(e,0,i)}return t}get test(){}};e([s({readOnly:!0})],f.prototype,"hasPendingInputs",null),e([s({constructOnly:!0})],f.prototype,"eventSource",void 0),e([s({constructOnly:!0})],f.prototype,"recognizers",void 0),e([s()],f.prototype,"multiTouchActive",null),e([s()],f.prototype,"_latestPointerInfo",void 0),e([s()],f.prototype,"latestPointerInfo",null),e([s()],f.prototype,"_latestPenInfo",void 0),e([s()],f.prototype,"latestPenInfo",null),e([s()],f.prototype,"_paused",void 0),e([s({readOnly:!0})],f.prototype,"updating",null),f=e([o("esri.views.input.InputManager")],f);class g{constructor(e,t,i,n,r){this.type=e,this.data=t,this.timestamp=i,this.modifiers=n,this.cancelable=r,this._propagationState=0,this._resumeCallback=null}stopPropagation(){this._propagationState|=1}shouldStopPropagation(){return!!(1&this._propagationState)}defer(e){this._propagationState|=2;const t=(e,t)=>{this._propagationState&=-3;const i=this._resumeCallback;if(this._resumeCallback=null,i&&i(),t)throw e;return e};return("function"==typeof e?e():e).then(e=>t(e,!1),e=>t(e,!0))}shouldPausePropagation(e){return!!(2&this._propagationState)&&(this._resumeCallback=e,!0)}preventDefault(){this.data.native.preventDefault()}}const y={ALWAYS:1,DEFAULT:0,TOOL:-1,WIDGET:-2,INTERNAL:-3};export{f as InputManager,_ as LatestPenInfo,c as LatestPointerInfo,y as ViewEventPriorities};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{getBasisEncoder as e,destroyBasisEncoder as t}from"../../libs/basisu/BasisUEncoder.js";import{getDXTEncoder as n,destroyDXTEncoder as r}from"../../libs/dxtEncoder/DXTEncoder.js";import{CompressedTextureFormat as a}from"../webgl/enums.js";let l,s,i=null,o=null;class u{constructor(e,t){this.internalFormat=e,this.compressedTexture=t}}function c(){i=null,l=null,o=null,s=null,t(),r()}async function
|
|
2
|
+
import{getBasisEncoder as e,destroyBasisEncoder as t}from"../../libs/basisu/BasisUEncoder.js";import{getDXTEncoder as n,destroyDXTEncoder as r}from"../../libs/dxtEncoder/DXTEncoder.js";import{CompressedTextureFormat as a}from"../webgl/enums.js";let l,s,i=null,o=null;class u{constructor(e,t){this.internalFormat=e,this.compressedTexture=t}}function c(){i=null,l=null,o=null,s=null,t(),r()}async function d(e){const t=e.data instanceof ImageBitmap?e.data:null;let n;n=e.data instanceof ImageBitmap?w(e.data):y(e.data,e.width,e.height,e.components,e.needsFlip);try{if(e.hasS3TC){o||await f();const t=new Uint8Array(n.length);if(o?.encode(n,e.width,e.height,e.preMultiplyAlpha,t)){const e=R(t,!0),n=[t.buffer];return{result:new u(e?.internalFormat??null,e?.textureData??null),transferList:n}}return{result:new u(null,null)}}if(e.hasETC){if(i||await h(),e.preMultiplyAlpha&&!o&&await f(),e.preMultiplyAlpha){const t=new Uint8ClampedArray(n.length);o?.premultiply(new Uint8Array(n),e.width,e.height,t),n=t}const t=p(n,e.width,e.height,e.hasMipmap),r=t?m(t):null,a=r?.compressedTexture?.levels.map(e=>e.buffer)||[];return{result:new u(r?.internalFormat??null,r?.compressedTexture??null),transferList:a}}return{result:new u(null,null)}}finally{t?.close()}}async function h(){i||(i=await(l??=e()),l=null)}async function f(){o||(o=await(s??=n()),s=null)}function p(e,t,n,r,a=255,l=0,s=!1,o=!1){if(!i)return null;const u=new i.BasisEncoder;u.setPerceptual(!o),u.setCheckForAlpha(!0),u.setForceAlpha(!1),u.setRenormalize(o),u.setMipGen(r),u.setMipSRGB(!o),u.setCreateKTX2File(!0),u.setKTX2AndBasisSRGBTransferFunc(!o),u.setQualityLevel(a),u.setETC1SCompressionLevel(l);const c=new Uint8Array(e.byteLength);u.setSliceSourceImage(0,new Uint8Array(e),t,n,s);const d=u.encode(c),h=new Uint8Array(c.buffer,0,d),f=new i.KTX2File(new Uint8Array(h));return f.isValid()?(u.delete(),h):(f.close(),f.delete(),u.delete(),null)}function m(e){if(!i)return new u(null,null);const t=new i.KTX2File(new Uint8Array(e));t.startTranscoding();const[n,r]=t.getHasAlpha()?[1,a.COMPRESSED_RGBA8_ETC2_EAC]:[0,a.COMPRESSED_RGB8_ETC2],l=t.getLevels(),s=[];for(let a=0;a<l;a++)s.push(new Uint8Array(t.getImageTranscodedSizeInBytes(a,0,0,n))),t.transcodeImage(s[a],a,0,0,n,0,-1,-1);return t.close(),t.delete(),{internalFormat:r,compressedTexture:{type:"compressed",levels:s}}}function w(e){const t=new OffscreenCanvas(e.width,e.height),n=t.getContext("2d");n.drawImage(e,0,0);return n.getImageData(0,0,t.width,t.height).data}function y(e,t,n,r,a){const l=new Uint8ClampedArray(e).subarray(0,t*n*r);if(!a)return l;const s=new Uint8ClampedArray(l.length),i=t*r;for(let o=0;o<n;o++){const e=o*i,t=(n-o-1)*i;s.set(l.subarray(e,e+i),t)}return s}const T=31,A=1,C=2,g=3,E=4,S=7,b=21,_=131072;function D(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const M=D("DXT1"),X=D("DXT3"),B=D("DXT5");function R(e,t){const n=new Int32Array(e.buffer,e.byteOffset,T);let r,l;switch(n[b]){case M:r=8,l=a.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case X:r=16,l=a.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case B:r=16,l=a.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return null}let s=1,i=n[E],o=n[g];(3&i||3&o)&&(i=i+3&-4,o=o+3&-4);const u=i,c=o;let d,h;n[C]&_&&!1!==t&&(s=Math.max(1,n[S]));let f=e.byteOffset+n[A]+4;const p=[];for(let a=0;a<s;++a)h=(i+3>>2)*(o+3>>2)*r,d=new Uint8Array(e.buffer,f,h),p.push(d),f+=h,i=Math.max(1,i>>1),o=Math.max(1,o>>1);return{textureData:{type:"compressed",levels:p},internalFormat:l,width:u,height:c}}export{u as TextureCompressionWorkerOutput,d as compress,p as compressRGBADataToKTX2,m as createTextureDataKTX2,c as destroy,h as initializeBasisEncoder,f as initializeDXTEncoder};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import
|
|
2
|
+
import e from"../../request.js";import t from"../../geometry/Point.js";import{execute as r}from"../../geometry/operators/projectOperator.js";import{projectResolution as i,getProjectionOffsetGrid as n,load as s}from"../../layers/raster/functions/rasterProjectionHelper.js";import{isImageSource as a,rasterize as o}from"../2d/engine/Bitmap.js";import{RenderingDevice as c}from"../2d/engine/webgl/RenderingDevice.js";import{SimpleMesh as p}from"../2d/engine/webgl/meshing/SimpleMesh.js";import{ReprojectShader as h}from"../2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ReprojectShader.js";import{PixelType as m}from"../webgl/enums.js";import{DisposableFramebufferObject as x}from"../webgl/FramebufferObject.js";import{createTransformTexture as d}from"../webgl/rasterUtils.js";import{RenderingContext as u}from"../webgl/RenderingContext.js";import{RenderingContextOptions as g}from"../webgl/RenderingContextOptions.js";import l from"../webgl/Texture.js";import{TextureDescriptor as f}from"../webgl/TextureDescriptor.js";const w=new Float32Array([2,0,0,0,2,0,-1,-1,0]),_={color:{blendMode:"none",write:[!0,!0,!0,!0]},depth:!1,stencil:!1};class b{static{this._instanceRefCount=0}constructor(e){if(this._ownsRctx=!1,e)this._ownsRctx=!1,this._rctx=e;else{if(b._instance)return b._instanceRefCount++,b._instance;b._instanceRefCount=1,b._instance=this,this._ownsRctx=!0;const e=document.createElement("canvas").getContext("webgl2");e.getExtension("OES_texture_float"),this._rctx=new u(e,new g)}this._renderingDevice=new c,this._renderingDevice.setPipelineState(_),this._shader=new h,this._quad=p.fromVertexStream(this._rctx,[0,0,1,0,0,1,1,1])}reprojectTexture(e,s,a=!1){const o=r(e.extent,s),c=new t({x:(e.extent.xmax-e.extent.xmin)/e.texture.descriptor.width,y:(e.extent.ymax-e.extent.ymin)/e.texture.descriptor.height,spatialReference:e.extent.spatialReference}),{x:p,y:h}=i(c,s,e.extent);let u=(p+h)/2;const g=Math.round((o.xmax-o.xmin)/u),l=Math.round((o.ymax-o.ymin)/u);u=(o.width/g+o.height/l)/2;const w=new t({x:u,y:u,spatialReference:o.spatialReference}),_=n({projectedExtent:o,srcBufferExtent:e.extent,pixelSize:w,hasWrapAround:!0,spacing:[16,16]}),b=d(this._rctx,_),j=new f(g,l);j.wrapMode=33071;const D=new x(this._rctx,j);if(this._rctx.bindFramebuffer(D),this._rctx.setViewport(0,0,g,l),this._drawReprojectedTexture(e.texture,b,{targetImageSize:[g,l],transformSpacing:_.spacing,transformGridSize:_.size}),this._rctx.useProgram(null),this._rctx.bindFramebuffer(null),b.dispose(),a){const{width:e,height:t}=D,r=new ImageData(e??0,t??0);D.readPixels(0,0,e??0,t??0,6408,m.UNSIGNED_BYTE,r.data);const i=D.detachColorTexture();return D.dispose(),{texture:i,extent:o,imageData:r}}const R=D.detachColorTexture();return D.dispose(),{texture:R,extent:o}}reprojectBitmapData(e,t){const r=a(e.bitmapData)?o(e.bitmapData):e.bitmapData,i=new f(e.bitmapData.width,e.bitmapData.height);i.wrapMode=33071;const n=new l(this._rctx,i,r),s=this.reprojectTexture({texture:n,extent:e.extent},t,!0);s.texture.dispose();const c=document.createElement("canvas"),p=s.imageData;c.width=p.width,c.height=p.height;return c.getContext("2d").putImageData(p,0,0),{bitmapData:c,extent:s.extent}}async loadAndReprojectBitmapData(t,r,i){const[n]=await Promise.all([e(t,{responseType:"image"}).then(e=>e.data),s()]),a=document.createElement("canvas");a.width=n.width,a.height=n.height;const o=a.getContext("2d");o.drawImage(n,0,0);const c=o.getImageData(0,0,a.width,a.height);if(r.spatialReference.equals(i))return{bitmapData:c,extent:r};const p=this.reprojectBitmapData({bitmapData:c,extent:r},i);return{bitmapData:p.bitmapData,extent:p.extent}}_drawReprojectedTexture(e,t,r){const{width:i=0,height:n=0}=e.descriptor,s={dvsMat3:w,coordScale:[1,1],srcImageSize:[i,n],opacity:1},a={texture:{texture:e,unit:0},projectionTextures:{transformTexture:{texture:t,unit:1}},pixelMaskTexture:null,highlightTexture:null},o={shader:this._shader,uniforms:{config:s,projectionConfig:r},textures:a,defines:{applyProjection:!0,lookupProjection:1===r.transformSpacing[0],bilinear:!1,bicubic:!1,nearestOnEdge:!1,applyPixelMask:!1,applyPixelHighlights:!1},optionalAttributes:{},useComputeBuffer:!1};this._renderingDevice.setPipelineStateNeedsUpdate(!0),this._renderingDevice.submitDrawMesh(this._rctx,o,this._quad)}destroy(){this._ownsRctx?(b._instanceRefCount--,0===b._instanceRefCount&&(this._destroyWebGLResource(),this._rctx.dispose(),b._instance=null)):this._destroyWebGLResource()}_destroyWebGLResource(){this._quad.destroy(),this._renderingDevice.dispose()}}export{b as ImageReprojector};
|