@arcgis/core 5.2.0-next.101 → 5.2.0-next.103
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/applications/Components/graphicOriginUtils.d.ts +17 -0
- package/applications/Components/graphicOriginUtils.js +2 -0
- package/arcgisGlobal.d.ts +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/01fb22542820b7a8b848.js +1 -0
- package/assets/esri/core/workers/chunks/{4d13c1a04788e5222678.js → 03601be8b0763f82e88f.js} +1 -1
- package/assets/esri/core/workers/chunks/{6e804bd6bb4b0ee44fa9.js → 045ff98313b06a2188b7.js} +1 -1
- package/assets/esri/core/workers/chunks/05584d8828ae7bca0fc5.js +1 -0
- package/assets/esri/core/workers/chunks/{eb222dc01344ed07719e.js → 056af594a1ef87066187.js} +1 -1
- package/assets/esri/core/workers/chunks/{e1682e94cc714197ebb4.js → 05731c8bc8f63b388d72.js} +1 -1
- package/assets/esri/core/workers/chunks/{32aa1529e84b839d051d.js → 058d4c927486a361e633.js} +1 -1
- package/assets/esri/core/workers/chunks/{2524e2385f61a6898411.js → 06e7411c5bed0a414031.js} +1 -1
- package/assets/esri/core/workers/chunks/{de95dee8db92cf8f796f.js → 09a40fd0e462144c4640.js} +1 -1
- package/assets/esri/core/workers/chunks/0bd067a5c0bac96caeb5.js +1 -0
- package/assets/esri/core/workers/chunks/0bff8d589312be6588fe.js +1 -0
- package/assets/esri/core/workers/chunks/{4237a29c4ed5f86a15c2.js → 0c63d953f2dd1d5cc03d.js} +1 -1
- package/assets/esri/core/workers/chunks/{09cd91e56c856db6e01a.js → 0c74cf91b6b5292d32b8.js} +1 -1
- package/assets/esri/core/workers/chunks/{e934ef66d130c212c05b.js → 0cdaba3ed074c06e225f.js} +1 -1
- package/assets/esri/core/workers/chunks/{6aaefd61505027267c9b.js → 0d69a18146722f792b5b.js} +1 -1
- package/assets/esri/core/workers/chunks/{900dad076347443b3ad9.js → 0de90b1ad8118457fd5a.js} +1 -1
- package/assets/esri/core/workers/chunks/{c0e073a77484b0dfd383.js → 0e1a067ab243900d0371.js} +1 -1
- package/assets/esri/core/workers/chunks/{33041e50ea02d99480b0.js → 0ee6109e6578395a7900.js} +1 -1
- package/assets/esri/core/workers/chunks/{8da08198c29acaabda6e.js → 0f1d5faddf8ef752470b.js} +1 -1
- package/assets/esri/core/workers/chunks/0f86c8a67c87f840fd39.js +1 -0
- package/assets/esri/core/workers/chunks/{6134a2c6983792787184.js → 0ff13f7a18b0123d253e.js} +1 -1
- package/assets/esri/core/workers/chunks/10fa8fbade8ae084c307.js +1 -0
- package/assets/esri/core/workers/chunks/1559213657665c053f8e.js +1 -0
- package/assets/esri/core/workers/chunks/{9c7fc1c97125ea2a7b7e.js → 164c604c1b2f728f32f2.js} +1 -1
- package/assets/esri/core/workers/chunks/19ac6f4664f97fb3821c.js +1 -0
- package/assets/esri/core/workers/chunks/{fd4d124c5bf810d9e352.js → 1a2f51d795b803d969c9.js} +1 -1
- package/assets/esri/core/workers/chunks/1eafb214519d8fc63ccb.js +1 -0
- package/assets/esri/core/workers/chunks/2165493d36c85b7c9a04.js +1 -0
- package/assets/esri/core/workers/chunks/{52422500ca3d6cf2e596.js → 2256036d5b91fa537805.js} +1 -1
- package/assets/esri/core/workers/chunks/{ad2b2214496e5a07db43.js → 2350f1eb70819cc06bb6.js} +1 -1
- package/assets/esri/core/workers/chunks/240bee7d0dc5e5dab826.js +1 -0
- package/assets/esri/core/workers/chunks/{822a5020afbca21df7f7.js → 25c5e1b14b184b1228a3.js} +1 -1
- package/assets/esri/core/workers/chunks/25c90092def215949db9.js +1 -0
- package/assets/esri/core/workers/chunks/{dd99bad9f91b0b62ba7c.js → 2a8168e109caa87d596f.js} +1 -1
- package/assets/esri/core/workers/chunks/{39254fdc41aaf61f23b0.js → 2b06e8507d71c4d9b5b5.js} +1 -1
- package/assets/esri/core/workers/chunks/{839feb913d1b6138fc78.js → 2b11e15bfa319dd32218.js} +1 -1
- package/assets/esri/core/workers/chunks/2d52386d69c218e29887.js +1 -0
- package/assets/esri/core/workers/chunks/{dda269a088275c823b40.js → 307297e025eed110095f.js} +1 -1
- package/assets/esri/core/workers/chunks/{05eb064f9b543890ae24.js → 33ba86b80426ddc88186.js} +1 -1
- package/assets/esri/core/workers/chunks/349e9f3d3e3267d02988.js +1 -0
- package/assets/esri/core/workers/chunks/{79088d5c9c2e6a780929.js → 34e04b24942da2b9b87c.js} +1 -1
- package/assets/esri/core/workers/chunks/3be33a129d3ae7dc4f06.js +1 -0
- package/assets/esri/core/workers/chunks/3daddcb106a7009c5a70.js +1 -0
- package/assets/esri/core/workers/chunks/{eae51e827f629ab37207.js → 3de6e54b6ed0feae1940.js} +1 -1
- package/assets/esri/core/workers/chunks/{9fe1db0762ab3326eab4.js → 3f5094828fbae7844117.js} +1 -1
- package/assets/esri/core/workers/chunks/{e02f02040b63d9c2e654.js → 3fb3b9fd06f78ee5cee6.js} +1 -1
- package/assets/esri/core/workers/chunks/{26e33c28028bf33936fc.js → 43436c7ccc6baefc885d.js} +1 -1
- package/assets/esri/core/workers/chunks/434c5b54e89ace974cbd.js +29 -0
- package/assets/esri/core/workers/chunks/472f3b80e1f26e09114a.js +1 -0
- package/assets/esri/core/workers/chunks/{dd8d19eb6b8e955c8067.js → 477136b747e02312abc4.js} +1 -1
- package/assets/esri/core/workers/chunks/{278e4d885ab03a51ef72.js → 47866b0b8604bf05c5ba.js} +1 -1
- package/assets/esri/core/workers/chunks/{b0ba081533100b021090.js → 48a53bfeef11c32dadcc.js} +1 -1
- package/assets/esri/core/workers/chunks/4a73f73f1698fad2df20.js +1 -0
- package/assets/esri/core/workers/chunks/4b0e3f83a5f2d3b0478a.js +1 -0
- package/assets/esri/core/workers/chunks/{4fbf4390c7eb0e11e3c9.js → 4b80c84fbd3d8dd90ca6.js} +1 -1
- package/assets/esri/core/workers/chunks/{a78781f79d828fc678a3.js → 4ba2276751083589570a.js} +1 -1
- package/assets/esri/core/workers/chunks/{20feca2fdd304b3e9664.js → 4c9df8ae9238454969b8.js} +1 -1
- package/assets/esri/core/workers/chunks/{0ffb5a1275d07dcd9115.js → 4c9e9925c02db48fa177.js} +1 -1
- package/assets/esri/core/workers/chunks/{60b1af54e7fc20fd9588.js → 546213fb53fa921a3928.js} +1 -1
- package/assets/esri/core/workers/chunks/{f6aa10a709017ac815a7.js → 547a073c789fdfb78310.js} +1 -1
- package/assets/esri/core/workers/chunks/{93c1d1e7c0935242071e.js → 54bb3678570ca032f051.js} +1 -1
- package/assets/esri/core/workers/chunks/{53a6bfebf3904dd7cad9.js → 55e40d3b460bacd200e6.js} +1 -1
- package/assets/esri/core/workers/chunks/567fb6a9b72bb232306d.js +1 -0
- package/assets/esri/core/workers/chunks/571cf99c3eab8e517542.js +1 -0
- package/assets/esri/core/workers/chunks/{abdcc224c8a8c72c86c4.js → 572d45353d74dcda1f09.js} +1 -1
- package/assets/esri/core/workers/chunks/{5bb8d9d887dd4211afd2.js → 573e8fa0af8711ffec45.js} +1 -1
- package/assets/esri/core/workers/chunks/{486f1a3b7269ce6c3911.js → 58528ccb7f72ae76d52b.js} +1 -1
- package/assets/esri/core/workers/chunks/{8599d2f2eb0fbb4a8bf5.js → 5c7f6721b37a4355e97a.js} +1 -1
- package/assets/esri/core/workers/chunks/{a10188c4d1904965898a.js → 5e1699d361d237bf0937.js} +1 -1
- package/assets/esri/core/workers/chunks/{aa7cb1531da1ccae8492.js → 5eb726317b6602f1e206.js} +1 -1
- package/assets/esri/core/workers/chunks/{42b5533f94ebcdc4befe.js → 5ed56ade84a0bea4a0c8.js} +1 -1
- package/assets/esri/core/workers/chunks/{bb8089929ded0613d8e7.js → 6010799e05d239073de0.js} +1 -1
- package/assets/esri/core/workers/chunks/{1de1cc0ed0f169a58aff.js → 60ad12fb732d529a4018.js} +1 -1
- package/assets/esri/core/workers/chunks/6395b3ec61b6550859a4.js +1 -0
- package/assets/esri/core/workers/chunks/{0e11bee9b56a7f51b012.js → 63f7141c71f29dbe8270.js} +1 -1
- package/assets/esri/core/workers/chunks/{7bb3411a86cdd736d555.js → 665e1901ec8dc182ba7a.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc7ca87d3bfe8a4aec81.js → 66c46c5a7147550ea3ed.js} +1 -1
- package/assets/esri/core/workers/chunks/{762e9a15b2638475a2b4.js → 69921d068add041b5dcb.js} +1 -1
- package/assets/esri/core/workers/chunks/{486f1277fe834c0fc4c1.js → 6b5332e167c0553b1e6b.js} +1 -1
- package/assets/esri/core/workers/chunks/{d00c25ef8a378b24378d.js → 6cf881f793fd0ec93981.js} +1 -1
- package/assets/esri/core/workers/chunks/6e6cdff4bbe1ff2f44ac.js +1 -0
- package/assets/esri/core/workers/chunks/6e75f09fb9452bd5f9fb.js +1 -0
- package/assets/esri/core/workers/chunks/{601e44839fd46e449aa8.js → 6ef372f52a6ebd9aeb4a.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a9f17781e0a3bc5106f.js → 718ed36a9f23993e1460.js} +1 -1
- package/assets/esri/core/workers/chunks/{f1f78bb3d34f973c19de.js → 719f0012f297a9a55d70.js} +1 -1
- package/assets/esri/core/workers/chunks/7261bbdbd084b4bb44f8.js +1 -0
- package/assets/esri/core/workers/chunks/{dd26a37f061ff658c5bd.js → 727dba20e01423c6ea77.js} +1 -1
- package/assets/esri/core/workers/chunks/{db8deb37048c71884575.js → 7285a37cd5359aa4bac5.js} +1 -1
- package/assets/esri/core/workers/chunks/{6e12e3c99b149cd7f567.js → 7ad62d16b380d80f7f3e.js} +1 -1
- package/assets/esri/core/workers/chunks/7adff63fd66fab505ae6.js +1 -0
- package/assets/esri/core/workers/chunks/7e42be27ead91a4cc0f1.js +1 -0
- package/assets/esri/core/workers/chunks/{94f62ff81cc6fb83e73f.js → 80cca2a377d51926e1a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{9246e2468528650bdc7c.js → 80f16f5f15518013f7d0.js} +1 -1
- package/assets/esri/core/workers/chunks/{eb167f9f6132a6348d2e.js → 8328f79f064a68f3c1a3.js} +1 -1
- package/assets/esri/core/workers/chunks/847781aefed049493444.js +1 -0
- package/assets/esri/core/workers/chunks/84dc2afd89263a311b81.js +1 -0
- package/assets/esri/core/workers/chunks/8628c027198982baed7c.js +1 -0
- package/assets/esri/core/workers/chunks/{9d3cdfa08ef4d2805625.js → 88610ebfdf9c93ada781.js} +1 -1
- package/assets/esri/core/workers/chunks/{ed5ac1efd3cba49be756.js → 8bd187b48a4e4296e3d8.js} +1 -1
- package/assets/esri/core/workers/chunks/{862f7090ba4a56c07093.js → 8e102a2e134ce6ce0724.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c0421a4a0ee3a3c63f8.js → 8edac3bbac401c8d6ecb.js} +1 -1
- package/assets/esri/core/workers/chunks/{22c477147421e68f7f00.js → 8fb4aa967d67abb6aba9.js} +1 -1
- package/assets/esri/core/workers/chunks/{e1c8767143f9f9d1f049.js → 93375f5f5bb754eca35f.js} +1 -1
- package/assets/esri/core/workers/chunks/{ea77654c8964cc39b9a6.js → 956432c9d45940983bc2.js} +1 -1
- package/assets/esri/core/workers/chunks/{b17a9853250ab626d58d.js → 96ebf76661b12128ddd5.js} +1 -1
- package/assets/esri/core/workers/chunks/98414a10f6de21107a03.js +1 -0
- package/assets/esri/core/workers/chunks/{4047208f9559e06d7102.js → 9a084a12afd6f0bbabce.js} +1 -1
- package/assets/esri/core/workers/chunks/9acaabe950319d031f2e.js +1 -0
- package/assets/esri/core/workers/chunks/{a24cecf2f775eaa69cf4.js → a10df3f51fe26d782aff.js} +1 -1
- package/assets/esri/core/workers/chunks/a34eee4c9d4c1c2b8c49.js +1 -0
- package/assets/esri/core/workers/chunks/a3f4818f4190fa92331d.js +1 -0
- package/assets/esri/core/workers/chunks/{680bef5e8237cc3bdd84.js → ac02df176f9ea94278bb.js} +1 -1
- package/assets/esri/core/workers/chunks/{5efc66be4576c6f67064.js → b1c1b7f98ee218f52b56.js} +1 -1
- package/assets/esri/core/workers/chunks/b4e5027c121d848c3d5a.js +1 -0
- package/assets/esri/core/workers/chunks/{d86044dbcd64323ff9f2.js → b7809ef3e1dabd921339.js} +1 -1
- package/assets/esri/core/workers/chunks/b9023cc3298ee4fddea7.js +1 -0
- package/assets/esri/core/workers/chunks/{63c43ebf46964c283b4d.js → b92b7d6c1e693c97a3eb.js} +1 -1
- package/assets/esri/core/workers/chunks/{fa91cece6daab2bec0e4.js → b941ec028abd44734902.js} +1 -1
- package/assets/esri/core/workers/chunks/{44ca13c874b5aa0ed5a0.js → bba3eb07a2a0065759f9.js} +1 -1
- package/assets/esri/core/workers/chunks/{4f89da01b67b66a92c01.js → be3421ffb5b391bca02e.js} +1 -1
- package/assets/esri/core/workers/chunks/be69e2dda75b079362b2.js +1 -0
- package/assets/esri/core/workers/chunks/{3721153202bd43c7fe0e.js → c116bd04e8910b5649d1.js} +1 -1
- package/assets/esri/core/workers/chunks/{fbf2d90240d36f8b423f.js → c2d19bb097d074a1ef21.js} +1 -1
- package/assets/esri/core/workers/chunks/c517e732cab41093b2e0.js +1 -0
- package/assets/esri/core/workers/chunks/{b0da2b089a89d643df1e.js → c53ecbdb47952eb47516.js} +1 -1
- package/assets/esri/core/workers/chunks/{cded34b161fcc790e672.js → c582441200ee1cdf51a7.js} +1 -1
- package/assets/esri/core/workers/chunks/{16f55c5d642a23c2547e.js → c63b0055a5008b1e5005.js} +1 -1
- package/assets/esri/core/workers/chunks/{33641947c388ce28b563.js → c6e771eff0603ece5d30.js} +1 -1
- package/assets/esri/core/workers/chunks/c7e6b5594fed5bb16691.js +1 -0
- package/assets/esri/core/workers/chunks/{d2387906b52624b4f7f1.js → c85fc0a9412e7debf166.js} +1 -1
- package/assets/esri/core/workers/chunks/{d7659d2b2aea0dd1202d.js → c91905b5808b8049f96d.js} +146 -126
- package/assets/esri/core/workers/chunks/cbd94998c619093b6426.js +1 -0
- package/assets/esri/core/workers/chunks/{86c3d3c7015f1cd55fac.js → ce3fb992f6c6ae7378a3.js} +1 -1
- package/assets/esri/core/workers/chunks/{e7fdad0c07beb3614b60.js → d13cf2e8b24e978ea77c.js} +1 -1
- package/assets/esri/core/workers/chunks/{c7f69d010f1cb32f5d37.js → d33d08cb6856cd2eb35e.js} +1 -1
- package/assets/esri/core/workers/chunks/d5defba320f2e49a377f.js +1 -0
- package/assets/esri/core/workers/chunks/{006146ad6d4a5cbf1a1f.js → d710c9d206bf46e031e8.js} +1 -1
- package/assets/esri/core/workers/chunks/{da6134c7883531f21afe.js → d922c54ea492cc771f63.js} +1 -1
- package/assets/esri/core/workers/chunks/{cf49a13522d61da31d8f.js → d9270f4935eb0d044db3.js} +1 -1
- package/assets/esri/core/workers/chunks/{8837fbcc0d484659b79c.js → da77257b517119578088.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ca6ecdf9bdd84fef4d5.js → deb408bee61ca192b2ce.js} +1 -1
- package/assets/esri/core/workers/chunks/{d92540d3ffc4af980dd8.js → df79c00b5ddbef7148a0.js} +1 -1
- package/assets/esri/core/workers/chunks/e0f417992889a6c41095.js +1 -0
- package/assets/esri/core/workers/chunks/{c511af7afe08a78e2a4d.js → e18b8646c7378213b618.js} +1 -1
- package/assets/esri/core/workers/chunks/{a7e6382ecc91c876117f.js → e26be75ae40acb7473ee.js} +1 -1
- package/assets/esri/core/workers/chunks/e4d98eaa89d2c88c5139.js +1 -0
- package/assets/esri/core/workers/chunks/e5c88090d16459f55cb8.js +1 -0
- package/assets/esri/core/workers/chunks/{cc73ac8404615dc392d2.js → e6a4cef0af9be30ffe3d.js} +1 -1
- package/assets/esri/core/workers/chunks/{a40566a78d801b223d3d.js → ea068c797e3e462f4518.js} +1 -1
- package/assets/esri/core/workers/chunks/eab969d5c7d81f351250.js +1 -0
- package/assets/esri/core/workers/chunks/{3a9c6f58a1a065c14017.js → eaf1d38f09744b7e84f5.js} +1 -1
- package/assets/esri/core/workers/chunks/ebe7ba2557b50e18e547.js +1 -0
- package/assets/esri/core/workers/chunks/{1e3b07cf0e608431a277.js → ec5542d6ecc0622f7705.js} +1 -1
- package/assets/esri/core/workers/chunks/{0a4092578dc7578bcf76.js → f5a988bb850f7a7af143.js} +1 -1
- package/assets/esri/core/workers/chunks/{248df6fda489a9de5852.js → f5e8ccbd6b4c0a386903.js} +1 -1
- package/assets/esri/core/workers/chunks/f60d5ce49c173d5381ec.js +1 -0
- package/assets/esri/core/workers/chunks/{000f91a18c22377f8525.js → f94170f1e8c11c861e7b.js} +1 -1
- package/assets/esri/core/workers/chunks/{35d0a7597473d46866de.js → f9e5740b05de24ba81be.js} +1 -1
- package/assets/esri/core/workers/chunks/{10f4c5533f50c3693318.js → fa869977ac2abb063925.js} +1 -1
- package/assets/esri/core/workers/chunks/fae14e30fa7d81bf706e.js +1 -0
- package/assets/esri/core/workers/chunks/{ab3a6ce7bc2a27b92469.js → fb6f1b562ee0983c8c6e.js} +1 -1
- package/assets/esri/core/workers/chunks/{a26916de4c105859621e.js → fd808d38ae2d475ac442.js} +1 -1
- package/assets/esri/core/workers/chunks/{d6f7aa280f1bd201d4ef.js → ff673ea8e3291d12689e.js} +1 -1
- package/chunks/GlobalIllumination.glsl.js +8 -13
- package/config.js +1 -1
- package/core/libs/gl-matrix-2/math/quat.js +1 -1
- package/kernel.js +1 -1
- package/layers/IntegratedMeshLayer.d.ts +12 -0
- package/layers/IntegratedMeshLayer.js +1 -1
- package/layers/support/I3SIntegratedMeshElevationQuery.js +2 -0
- package/package.json +2 -2
- package/support/revision.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightManipulators.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/interactive/editingTools/manipulatorUtils.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/I3SNode.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +29 -19
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +24 -9
- package/views/3d/webgl-engine/lib/BufferObject3D.js +2 -0
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
- package/views/3d/webgl-engine/parts/Model.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileLineQueryComputation.js +1 -1
- package/views/support/Scheduler.js +1 -1
- package/assets/esri/core/workers/chunks/014eaccf2c2d357981f0.js +0 -1
- package/assets/esri/core/workers/chunks/0a242e76bc293b0ad04b.js +0 -1
- package/assets/esri/core/workers/chunks/0e65869a5dd5a3917da7.js +0 -1
- package/assets/esri/core/workers/chunks/0f15468ffefd3e9a17b8.js +0 -29
- package/assets/esri/core/workers/chunks/16ffbe484f6cd4736f79.js +0 -1
- package/assets/esri/core/workers/chunks/24a6b28db94e07a702a4.js +0 -1
- package/assets/esri/core/workers/chunks/2bd4b536e329112591c4.js +0 -1
- package/assets/esri/core/workers/chunks/3328a65c2bf1a0cbdb9d.js +0 -1
- package/assets/esri/core/workers/chunks/34f82b4ab11ff5642555.js +0 -1
- package/assets/esri/core/workers/chunks/3a9435569ba460ff7e3d.js +0 -1
- package/assets/esri/core/workers/chunks/3dd57a07c7a28e50d76e.js +0 -1
- package/assets/esri/core/workers/chunks/428f991c14ac12ae1b2c.js +0 -1
- package/assets/esri/core/workers/chunks/4717831effb1ac6d5f5d.js +0 -1
- package/assets/esri/core/workers/chunks/4d7f6c92041d52cc8732.js +0 -1
- package/assets/esri/core/workers/chunks/545a828002fd7da86c19.js +0 -1
- package/assets/esri/core/workers/chunks/58a52adc42fbe5cd12c6.js +0 -1
- package/assets/esri/core/workers/chunks/58b93f13316196d2e97d.js +0 -1
- package/assets/esri/core/workers/chunks/58f98bd89b644cfdafae.js +0 -1
- package/assets/esri/core/workers/chunks/625a692f00357629f609.js +0 -1
- package/assets/esri/core/workers/chunks/69688d521d5ba117e31c.js +0 -1
- package/assets/esri/core/workers/chunks/6f6ae6cf7f6e30b29013.js +0 -1
- package/assets/esri/core/workers/chunks/7fd54fa2f91cdab44ab3.js +0 -1
- package/assets/esri/core/workers/chunks/862eabda80ddb9e7a332.js +0 -1
- package/assets/esri/core/workers/chunks/8b24feffd5e084af2fa9.js +0 -1
- package/assets/esri/core/workers/chunks/925f83be3c1eb4b5c6af.js +0 -1
- package/assets/esri/core/workers/chunks/97aaff86e06380a68df8.js +0 -1
- package/assets/esri/core/workers/chunks/989937c120bdd676ec1e.js +0 -1
- package/assets/esri/core/workers/chunks/9cc14a41d4a90f6d626e.js +0 -1
- package/assets/esri/core/workers/chunks/a03e7333e3328036f478.js +0 -1
- package/assets/esri/core/workers/chunks/a34cadd486e7fcc79063.js +0 -1
- package/assets/esri/core/workers/chunks/a72983c3621810d4b1af.js +0 -1
- package/assets/esri/core/workers/chunks/a88aa26a7bee1fe7aea2.js +0 -1
- package/assets/esri/core/workers/chunks/a8e9aa5461c71c88e2e5.js +0 -1
- package/assets/esri/core/workers/chunks/a8f70cece5ce2b095cdd.js +0 -1
- package/assets/esri/core/workers/chunks/abd2f8fae6b918fbdd6d.js +0 -1
- package/assets/esri/core/workers/chunks/b2e5a89aca245263901c.js +0 -1
- package/assets/esri/core/workers/chunks/b2e692f52b9f02210e10.js +0 -1
- package/assets/esri/core/workers/chunks/b5fcf4165ac72654742d.js +0 -1
- package/assets/esri/core/workers/chunks/ba77a8892cb23c7a297d.js +0 -1
- package/assets/esri/core/workers/chunks/bf357afbabaa8dec4d75.js +0 -1
- package/assets/esri/core/workers/chunks/c07d2fb9940b2c6eda9f.js +0 -1
- package/assets/esri/core/workers/chunks/d179ec37d2612d65624f.js +0 -1
- package/assets/esri/core/workers/chunks/d2865c604849ce79183f.js +0 -1
- package/assets/esri/core/workers/chunks/e5d114f2b57d2b8e2f1c.js +0 -1
- package/assets/esri/core/workers/chunks/f2cbcd1b0e77e733a8e0.js +0 -1
- package/assets/esri/core/workers/chunks/f331c24247d132589859.js +0 -1
- package/assets/esri/core/workers/chunks/f8a6d8cdcabcd1d511b6.js +0 -1
- package/assets/esri/core/workers/chunks/ffa35ecc681ec1c4739a.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform as t}from"../../shaderModules/Float2BindUniform.js";import{FloatBindUniform as o}from"../../shaderModules/FloatBindUniform.js";import{If as r,glsl as i}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as a}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as n}from"../../shaderModules/Texture2DBindUniform.js";function c(c,
|
|
2
|
+
import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform as t}from"../../shaderModules/Float2BindUniform.js";import{FloatBindUniform as o}from"../../shaderModules/FloatBindUniform.js";import{If as r,glsl as i}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as a}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as n}from"../../shaderModules/Texture2DBindUniform.js";function c(c,s){const d=c.fragment;d.include(e),d.uniforms.add(new t("nearFar",e=>e.camera.nearFar),new n("depthMap",e=>e.depth?.attachment),new a("proj",e=>e.camera.projectionMatrix),new o("invResolutionHeight",e=>1/e.camera.height),new a("reprojectionMatrix",e=>e.reprojection.matrix)).code.add(i`
|
|
3
3
|
vec2 reprojectionCoordinate(vec3 projectionCoordinate) {
|
|
4
4
|
vec4 clipDepthCoordinate = proj * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
|
|
5
5
|
vec4 reprojectedCoordinate = reprojectionMatrix * vec4(
|
|
@@ -31,7 +31,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
31
31
|
vec2 projectedCoordEnd = applyProjectionMat(proj, startPosition + rayDirection * rayDistanceWorld).xy;
|
|
32
32
|
vec2 projectedCoordOffset = projectedCoordEnd - projectedCoordStart;
|
|
33
33
|
|
|
34
|
-
return ${
|
|
34
|
+
return ${s.useProjectedRayLength?"length(projectedCoordOffset)":"abs(projectedCoordOffset.y)"};
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
vec3 screenSpaceIntersectionWithLimits(
|
|
@@ -64,7 +64,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
64
64
|
vec2 projectedCoordDirection = (projectedCoordEnd.xy - projectedCoordStart.xy);
|
|
65
65
|
vec2 vanishingPointScreenOffset = (projectedCoordVanishingPoint.xy - projectedCoordStart.xy);
|
|
66
66
|
|
|
67
|
-
float rayMarchDistance = ${
|
|
67
|
+
float rayMarchDistance = ${s.useProjectedRayLength?"length(vanishingPointScreenOffset.xy)":"abs(vanishingPointScreenOffset.y)"};
|
|
68
68
|
float clampedRayMarchDistance = min(rayMarchDistance, rayMarchMaxReach);
|
|
69
69
|
|
|
70
70
|
float projectedCoordDirectionLength = length(projectedCoordDirection);
|
|
@@ -87,6 +87,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
87
87
|
float rayDepthDelta = 0.0;
|
|
88
88
|
float estimatedDepthDifference;
|
|
89
89
|
float sampledDepth;
|
|
90
|
+
vec3 firstSegmentHit = vec3(projectedPosition, 0.0);
|
|
90
91
|
|
|
91
92
|
if (dot(normal, rayDirection) < 0.0 || dot(-viewDirection, normal) < 0.0) {
|
|
92
93
|
return vec3(projectedPosition, 0.0);
|
|
@@ -114,7 +115,21 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
114
115
|
previousEstimatedZ = rayEndZ;
|
|
115
116
|
|
|
116
117
|
if(-rayEndZ > nearFar[1] || -rayEndZ < nearFar[0] || projectedPosition.y < 0.0 || projectedPosition.y > 1.0 ) {
|
|
117
|
-
return
|
|
118
|
+
return firstSegmentHit;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Preserve the original march result, but remember a valid hit in the skipped origin-to-offset interval.
|
|
122
|
+
if (stepIndex == 0) {
|
|
123
|
+
float firstSegmentDepthDifference = -startPosition.z - sampledDepth;
|
|
124
|
+
float firstSegmentDepthDelta = rayEndZ - startPosition.z;
|
|
125
|
+
vec2 firstSegmentPixelOffset = (projectedPosition - projectedCoordStart.xy) * vec2(textureSize(depthMap, 0));
|
|
126
|
+
if (firstSegmentDepthDifference < 0.025 / abs(inverseW) + abs(firstSegmentDepthDelta) &&
|
|
127
|
+
firstSegmentDepthDifference > 0.0 &&
|
|
128
|
+
sampledDepth > nearFar[0] &&
|
|
129
|
+
sampledDepth < nearFar[1] &&
|
|
130
|
+
length(firstSegmentPixelOffset) > 1.0) {
|
|
131
|
+
firstSegmentHit = vec3(projectedPosition, sampledDepth);
|
|
132
|
+
}
|
|
118
133
|
}
|
|
119
134
|
|
|
120
135
|
// If we detect a hit - return the intersection point, two conditions:
|
|
@@ -138,7 +153,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
138
153
|
}
|
|
139
154
|
}
|
|
140
155
|
|
|
141
|
-
${r(!
|
|
156
|
+
${r(!s.clampRayToScreen,"if (projectedPosition.x <= 0.0 || projectedPosition.x >= 1.0) {\n return firstSegmentHit;\n }")}
|
|
142
157
|
|
|
143
158
|
// Continue with ray marching
|
|
144
159
|
projectedPosition = projectedPosition + projectedStep;
|
|
@@ -146,9 +161,9 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
146
161
|
inverseW += inverseWStep;
|
|
147
162
|
previousEstimatedDepthDifference = estimatedDepthDifference;
|
|
148
163
|
|
|
149
|
-
${r(
|
|
164
|
+
${r(s.clampRayToScreen,"projectedPosition = clamp(projectedPosition, vec2(0.0), vec2(0.999));")}
|
|
150
165
|
}
|
|
151
|
-
return
|
|
166
|
+
return firstSegmentHit;
|
|
152
167
|
}
|
|
153
168
|
|
|
154
169
|
vec3 screenSpaceIntersection(vec3 rayDirection, vec3 startPosition, vec3 viewDirection, vec3 normal, float rayStepOffset) {
|
|
@@ -158,8 +173,8 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
|
|
|
158
173
|
viewDirection,
|
|
159
174
|
normal,
|
|
160
175
|
rayStepOffset,
|
|
161
|
-
${i.float(
|
|
162
|
-
${i.float(
|
|
176
|
+
${i.float(s.rayMarchMaxReach)},
|
|
177
|
+
${i.float(s.rayMarchMaxSteps)}
|
|
163
178
|
);
|
|
164
179
|
}
|
|
165
180
|
`)}export{c as ScreenSpaceRayMarching};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{generateUID as e}from"../../../../core/uid.js";import{identity as t}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as i,IDENTITY as r}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{add as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{copy as s,offset as n}from"../../../../geometry/support/aaBoundingBox.js";import{BoundingVolume as l}from"./BoundingVolume.js";import{Object3DOccludeeStateID as m,Object3DHighlightStateID as h}from"./Object3DStateID.js";import{assert as g}from"./Util.js";import{addObject3DStateID as a,removeObject3DStateID as u}from"../materials/renderers/utils.js";class c{constructor(t){this.id=e(),this.type=1,this.lastValidElevationBB=void 0,this._layer=null,this._boundingVolume=null,this._geometries=[t]}dispose(){this._geometries.length=0}get layerViewUid(){return this.geometry.layerViewUid}get graphicUid(){return this.geometry.graphicUid}get geometries(){return this._geometries}get geometry(){return this._geometries[0]}get layer(){return this._layer}set layer(e){g(null==this._layer||null==e,"BufferObject3D can only be added to a single Layer"),this._layer=e}get visible(){return this.geometry.visible}set visible(e){this.visible!==e&&(this.geometry.visible=e,this._emit("visibilityChanged",this))}_emit(e,t){this.layer?.events.emit(e,t)}maskOccludee(){const e=new m;return this.geometry.occludees=a(this.geometry.occludees,e),this._emit("occlusionChanged",this),e}removeOcclude(e){this.geometry.occludees=u(this.geometry.occludees,e),this._emit("occlusionChanged",this)}highlight(e){const t=new h(e);return this.geometry.addHighlight(t),this._emit("highlightChanged",this),t}removeHighlight(e){this.geometry.removeHighlight(e),this._emit("highlightChanged",this)}removeStateID(e){0===e.channel?this.removeHighlight(e):this.removeOcclude(e)}getCombinedStaticTransformation(e,i){return t(i)}getCombinedShaderTransformation(e,r=i()){return t(r)}get boundingVolumeWorldSpace(){return this._boundingVolume||(this._boundingVolume=new l,this._validateBoundingVolume(this._boundingVolume)),this._boundingVolume}get boundingVolumeObjectSpace(){return this.boundingVolumeWorldSpace}_validateBoundingVolume(e){const{boundingInfo:t,localOrigin:i}=this.geometry;if(null==t)return;const{box:r,sphere:l}=e,[m,h,g]=i.vec3;s(r,t.box),n(r,m,h,g),l.copyFrom(t.sphere),o(l.center,l.center,i.vec3)}get transformation(){return r}get shaderTransformation(){return null}}export{c as BufferObject3D};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{add as t,transformMat4 as e,copy as s}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as r}from"../../../../geometry/support/frustumPlanes.js";import{create as n,fromPoints as o,copy as a}from"../../../../geometry/support/ray.js";import l from"../../webgl/RenderCamera.js";import{HUDTarget as c,HUDIntersectorResult as h}from"./HUDIntersectorResult.js";import{IntersectorOptions as f}from"./IntersectorInterfaces.js";import{IntersectorResultRay as m,compareOrderedIntersectionHits as u}from"./IntersectorResult.js";import{ObjectTarget as
|
|
2
|
+
import{add as t,transformMat4 as e,copy as s}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as r}from"../../../../geometry/support/frustumPlanes.js";import{create as n,fromPoints as o,copy as a}from"../../../../geometry/support/ray.js";import l from"../../webgl/RenderCamera.js";import{HUDTarget as c,HUDIntersectorResult as h}from"./HUDIntersectorResult.js";import{IntersectorOptions as f}from"./IntersectorInterfaces.js";import{IntersectorResultRay as m,compareOrderedIntersectionHits as u}from"./IntersectorResult.js";import{ObjectTarget as y}from"./ObjectTarget.js";import{PolygonIntersectionResults as d}from"./PolygonIntersectionResults.js";import{IntersectorTransform as g,getVerticalOffsetObject3D as p}from"./verticalOffsetUtils.js";const _=1e-5;class v{constructor(t){this.options=new f,this._results=new b,this.polygonResults=new d,this.transform=new g,this.camera=new l,this.screenPolygonPrimitiveProcessor=j,this.tolerance=_,this.verticalOffset=null,this._ray=n(),this._rayEnd=i(),this._rayBeginTransformed=i(),this._rayEndTransformed=i(),this.viewingMode=t??1}get results(){return this._results}get ray(){return this._ray}get rayBegin(){return this._ray.origin}get rayEnd(){return this._rayEnd}reset(t,e,s){this.resetWithRay(o(t,e,this._ray),s)}resetWithRay(e,s){this.camera=s,e!==this._ray&&a(e,this._ray),0!==this.options.verticalOffset?2===this.viewingMode?this._ray.origin[2]-=this.options.verticalOffset:this.verticalOffset=this.options.verticalOffset:this.verticalOffset=null,t(this._rayEnd,this._ray.origin,this._ray.direction),this._results.init(this._ray),this.polygonResults.init()}intersect(t=null,e,s,i,r){this.point=e,this.filterPredicate=i,this.tolerance=s??_;const n=p(this.verticalOffset);if(t&&t.length>0){const e=r?t=>{r(t)&&this.intersectObject(t)}:t=>{this.intersectObject(t)};for(const s of t){const t=s.getSpatialQueryAccelerator?.();null!=t?(null!=n?t.forEachAlongRayWithVerticalOffset(this._ray.origin,this._ray.direction,e,n):t.forEachAlongRay(this._ray.origin,this._ray.direction,e),this.options.selectionMode&&this.options.hud&&t.forEachDegenerateObject(e)):s.objects.forEach(t=>e(t))}}this.sortResults()}*intersectScreenPolygon(t=null,e){if(this.verticalOffset=null,t?.length)for(const s of t){const t=s.getSpatialQueryAccelerator?.();if(null!=t)for(const s of t.intersectingFrustumValues(e.broadPhaseFrustum,t=>t.visible))yield*this._intersectScreenPolygonObject(s,e);else for(const i of s.objects.values())i.visible&&r(e.broadPhaseFrustum,i.boundingVolumeWorldSpace.sphere)&&(yield*this._intersectScreenPolygonObject(i,e))}}*intersectHUDScreenPolygon(t=null,e){if(this.verticalOffset=null,this.options.selectionMode&&this.options.hud&&t?.length)for(const s of t){const t=s.getSpatialQueryAccelerator?.(),i=t?.degenerateObjectValues()??s.objects.values();for(const s of i)yield*this._intersectScreenPolygonObject(s,e)}}*_intersectScreenPolygonObject(t,e){if(0!==t.type)return;const s=t.geometries;if(!t.visible||!s)return;const i=t.effectiveTransformation;for(const r of s){if(!r.visible)continue;const{material:s,id:n}=r;if(!s.visible||!s.intersectScreenPolygon)continue;this.transform.setAndInvalidateLazyTransforms(i,r.transformation);const o=s.intersectScreenPolygon(r,this.transform.transform,this,e);o?.valid&&this._handleObjectScreenPolygonIntersection(o.type,new y(t,n,o.primitiveIndex),o.distance,o.point),yield}}intersectObject(t){if(0!==t.type)return;const s=t.geometries;if(!s)return;const i=t.effectiveTransformation,r=p(this.verticalOffset);for(const n of s){if(!n.visible)continue;const{material:s,id:o}=n;if(!s.visible)continue;this.transform.setAndInvalidateLazyTransforms(i,n.transformation),e(this._rayBeginTransformed,this.rayBegin,this.transform.inverse),e(this._rayEndTransformed,this.rayEnd,this.transform.inverse);const a=this.transform.transform;null!=r&&(r.objectTransform=this.transform),s.intersectRay(n,this.transform.transform,this,this._rayBeginTransformed,this._rayEndTransformed,(e,s,i,r,n)=>this.handleObjectIntersection({object:t,geometryId:o,primitiveIndex:r},e,s,i,a,n))}}handleObjectIntersection(t,e,s,i,r,n){if(e<0||null!=this.filterPredicate&&!this.filterPredicate(this._ray.origin,this._rayEnd,s))return;const o=n?this._results.hud:this._results;t=n?new c(t,n):t;const a=n?r=>r.set(1,t,e,s,i):n=>n.set(4,t,e,s,i,r);if((null==o.min.renderDistance||s<o.min.renderDistance)&&a(o.min),0!==this.options.store&&(null==o.max.renderDistance||s>o.max.renderDistance)&&a(o.max),2===this.options.store)if(n){const t=new h(this._ray);a(t),this._results.hud.all.push(t)}else{const t=new m(this._ray);a(t),this._results.all.push(t)}}_handleObjectScreenPolygonIntersection(t,e,s,i){s<0||(null==this.filterPredicate||null!=i&&this.filterPredicate(this.camera.eye,i,1))&&this.polygonResults.add(t,1===t&&i?new c(e,i):e,s)}sortResults(t=this._results.all){t.sort(u)}}class b{constructor(){this.min=new m(n()),this.max=new m(n()),this.hud={min:new h(n()),max:new h(n()),all:new Array},this.ground=new m(n()),this.all=[]}init(t){this.min.init(t),this.max.init(t),this.ground.init(t),this.all.length=0,this.hud.min.init(t),this.hud.max.init(t),this.hud.all.length=0}}const j={*processTriangle(t){yield t},*processLineSegment(t,e,i){s(t[0],e),s(t[1],i),yield t},validatePoint:()=>!0};export{v as Intersector,j as defaultScreenPolygonPrimitiveProcessor,_ as defaultTolerance};
|
|
@@ -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{NestedMap as r}from"../../../../core/NestedMap.js";import{nullUid as o}from"../../../../core/uid.js";import{property as s,subclass as d}from"../../../../core/accessorSupport/decorators.js";import{assert as i}from"./Util.js";class n{constructor(e,t,r,o){this.operation=e,this.geometry=t,this.states=r,this.sync=o}}let c=class extends t{constructor(e){super(e),this._residentGeomRecords=new r,this._dirtyGeomRecords=new r,this._dirtyRecordCount=0}get dirty(){return this._dirtyRecordCount>0}commitLayer(e,t){const r=this._dirtyGeomRecords.getInner(e),o=this.model.getLayer(e);if(!r||!o)return;let s=0;r.forEach((r,d)=>{const n=this._ensureGeomRecord(e,d);this._dirtyGeomRecords.delete(e,d),s+=r.size,r.forEach(({geometry:e,operation:r,states:s},c)=>{let a=!1;if(1===r){const r=n.get(c);if(r){if(4&s){const t=o.getObject(d);this.model.updateRenderGeometryTransformation(t,e,r)&&(a=!0)}a||t.updates.push({renderGeometry:r,updateType:s})}else i(!1,"ModelDirtySet.commitLayer: invalid update")}if(2===r||a){const e=n.get(c);e?(t.removes.push(e),n.delete(c)):2===r&&i(!1,"ModelDirtySet.commitLayer: invalid remove")}if(0===r||a){const r=o.getObject(d);if(null!=r){const o=this.model.getRenderGeometry(r,e);t.adds.push(o),n.set(c,o)}}}),0===n.size&&this._residentGeomRecords.delete(e,d)}),this._dirtyRecordCount-=s}commitSyncUpdates(e,t){const r=this._dirtyGeomRecords.getInner(e),o=this.model.getLayer(e);r&&o&&r.forEach((r,s)=>{const d=this._ensureGeomRecord(e,s);r.forEach(({geometry:e,operation:r,states:n,sync:c},a)=>{let
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import"../../../../core/has.js";import{NestedMap as r}from"../../../../core/NestedMap.js";import{nullUid as o}from"../../../../core/uid.js";import{property as s,subclass as d}from"../../../../core/accessorSupport/decorators.js";import{assert as i}from"./Util.js";class n{constructor(e,t,r,o){this.operation=e,this.geometry=t,this.states=r,this.sync=o}}let c=class extends t{constructor(e){super(e),this._residentGeomRecords=new r,this._dirtyGeomRecords=new r,this._dirtyRecordCount=0}get dirty(){return this._dirtyRecordCount>0}commitLayer(e,t){const r=this._dirtyGeomRecords.getInner(e),o=this.model.getLayer(e);if(!r||!o)return;let s=0;r.forEach((r,d)=>{const n=this._ensureGeomRecord(e,d);this._dirtyGeomRecords.delete(e,d),s+=r.size,r.forEach(({geometry:e,operation:r,states:s},c)=>{let a=!1;if(1===r){const r=n.get(c);if(r){if(4&s){const t=o.getObject(d);i(1!==t?.type&&1!==r.type&&1!==e.type,"ModelDirtySet.commitLayer: invalid update on BufferObject3D"),this.model.updateRenderGeometryTransformation(t,e,r)&&(a=!0)}a||t.updates.push({renderGeometry:r,updateType:s})}else i(!1,"ModelDirtySet.commitLayer: invalid update")}if(2===r||a){const e=n.get(c);e?(t.removes.push(e),n.delete(c)):2===r&&i(!1,"ModelDirtySet.commitLayer: invalid remove")}if(0===r||a){const r=o.getObject(d);if(null!=r){const o=this.model.getRenderGeometry(r,e);t.adds.push(o),n.set(c,o)}}}),0===n.size&&this._residentGeomRecords.delete(e,d)}),this._dirtyRecordCount-=s}commitSyncUpdates(e,t){const r=this._dirtyGeomRecords.getInner(e),o=this.model.getLayer(e);r&&o&&r.forEach((r,s)=>{const d=this._ensureGeomRecord(e,s);r.forEach(({geometry:e,operation:r,states:n,sync:c},a)=>{let y=!1;if(1===r&&c){const r=d.get(a);if(r){if(4&n){const t=o.getObject(s);i(1!==t?.type&&1!==r.type&&1!==e.type,"ModelDirtySet.commitLayer: invalid update on BufferObject3D"),this.model.updateRenderGeometryTransformation(t,e,r)&&(y=!0)}y||t.updates.push({renderGeometry:r,updateType:n})}else i(!1,"ModelDirtySet.commitSyncUpdates: invalid update")}})})}_objectStateChanged(e,t){for(const r of t.geometries)this._updateOrCreateDirtyRecord(t,r,1,e)}visibilityChanged(e){this._objectStateChanged(1,e)}highlightChanged(e){this._objectStateChanged(8,e)}occlusionChanged(e){this._objectStateChanged(16,e)}attributesChanged({object:e,geometry:t,sync:r}){this._updateOrCreateDirtyRecord(e,t,1,2,r)}layerAdded(e){e.objects.forEach(e=>this.layerObjectAdded(e))}layerRemoved(e){e.objects.forEach(e=>this.layerObjectRemoved(e))}layerObjectAdded(e){for(const t of e.geometries)this._geometryAdded(e,t)}layerObjectRemoved(e){for(const t of e.geometries)this._geometryRemoved(e,t)}layerObjectsAdded(e){for(const t of e)this.layerObjectAdded(t)}layerObjectsRemoved(e){for(const t of e)this.layerObjectRemoved(t)}transformationChanged(e){const t=this._getLayerId(e),r=e.id,o=this._ensureGeomRecord(t,r);for(const{geometry:s}of o.values().filter(e=>1!==e.type))this._updateOrCreateDirtyRecord(e,s,1,4)}shaderTransformationChanged(e){const t=this._getLayerId(e),r=e.id,o=this._ensureGeomRecord(t,r);for(const s of o.values().filter(e=>1!==e.type))s.objectShaderTransformationChanged(e.shaderTransformation)}geometryAdded(e){this._geometryAdded(e.object,e.geometry)}_geometryAdded(e,t){this._updateOrCreateDirtyRecord(e,t,0)}geometryRemoved(e){this._geometryRemoved(e.object,e.geometry)}_geometryRemoved(e,t){this._updateOrCreateDirtyRecord(e,t,2)}_updateOrCreateDirtyRecord(e,t,r,o=0,s=!1){const d=this._getLayerId(e),c=e.id,a=t.id,y=this._ensureDirtyRecord(d,c),m=y.get(a);if(m){const e=m.operation;2===e&&0===r&&0!==m.states?m.operation=1:2===e&&0===r||0===e&&2===r?(y.delete(a),this._dirtyRecordCount--):1!==e||2!==r&&1!==r?(i((2===e||0===e)&&1===r,"ModelDirtySet.objectGeometryAdded: inconsistent state"),m.states|=o):(m.operation=r,m.states|=o),m.sync=m.sync||s}else y.set(a,new n(r,t,o,s)),this._dirtyRecordCount++}_ensureGeomRecord(e,t){let r=this._residentGeomRecords.get(e,t);return r||(r=new Map,this._residentGeomRecords.set(e,t,r)),r}assertLayerClean(e){i(null==this._dirtyGeomRecords.getInner(e),"Dirty geometry records for removed layer")}_ensureDirtyRecord(e,t){const r=this.model.getLayer(e);i(null!=r,"Updating geometry record for an unregistered layer");let o=this._dirtyGeomRecords.get(e,t);return o||(o=new Map,this._dirtyGeomRecords.set(e,t,o)),o}_getLayerId(e){return e.layer?.id??o}formatDebugInfo(){const e=["ADD","UPD",void 0,"REM"];let t="";return this._dirtyGeomRecords.forAll((r,o,s)=>{t.length>0&&(t+="\n"),t+=o+"."+s;const d=[];r.forEach(e=>{const t=e.operation;d[t]||(d[t]=[]),d[t].push(e.geometry.id)});for(let i=0;i<d.length;i++)if(d[i]){t+=" "+e[i-1]+": ";for(let e=0;e<d[i].length;e++)t+=d[i][e]+", "}}),t}get test(){}};e([s({constructOnly:!0})],c.prototype,"model",void 0),e([s()],c.prototype,"_dirtyRecordCount",void 0),c=e([d("esri.views.3d.webgl-engine.lib.ModelDirtySet")],c);const a=c;export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"../../../../core/has.js";import{generateUID as t}from"../../../../core/uid.js";import{multiply as e,copy as i}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as s,IDENTITY as o}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{transformMat4 as r,distance as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{empty as a,center as m}from"../../../../geometry/support/aaBoundingBox.js";import{maxScale as l}from"../../support/mathUtils.js";import{BoundingVolume as g,expandWithTransformedBox as d}from"./BoundingVolume.js";import{Object3DOccludeeStateID as c,Object3DHighlightStateID as f}from"./Object3DStateID.js";import{assert as u}from"./Util.js";import{affectsGeometry as _}from"./VertexAttribute.js";import{addObject3DStateID as b,removeObject3DStateID as v}from"../materials/renderers/utils.js";class p{constructor(e={}){this.id=t(),this._highlightIds=new Set,this._shaderTransformation=null,this._visible=!0,this.castShadow=e.castShadow??!0,this.usesVerticalDistanceToGround=e.usesVerticalDistanceToGround??!1,this.graphicUid=e.graphicUid,this.layerViewUid=e.layerViewUid,e.isElevationSource&&(this.lastValidElevationBB=a()),this._geometries=e.geometries?Array.from(e.geometries):[]}dispose(){this._geometries.length=0}get layer(){return this._layer}set layer(t){u(null==this._layer||null==t,"Object3D can only be added to a single Layer"),this._layer=t}addGeometry(t){t.visible=this._visible,this._geometries.push(t);for(const e of this._highlightIds)t.addHighlight(e);this._emit("geometryAdded",{object:this,geometry:t}),this._highlightIds.size&&this._emit("highlightChanged",this),this._invalidateBoundingVolume()}removeGeometry(t){const e=this._geometries.splice(t,1)[0];if(e){for(const t of this._highlightIds)e.removeHighlight(t);this._emit("geometryRemoved",{object:this,geometry:e}),this._highlightIds.size&&this._emit("highlightChanged",this),this._invalidateBoundingVolume()}}removeAllGeometries(){for(;this._geometries.length>0;)this.removeGeometry(0)}geometryVertexAttributeUpdated(t,e,i=!1){this._emit("attributesChanged",{object:this,geometry:t,attribute:e,sync:i}),_(e)&&this._invalidateBoundingVolume()}get visible(){return this._visible}set visible(t){if(this._visible!==t){this._visible=t;for(const t of this._geometries)t.visible=this._visible;this._emit("visibilityChanged",this)}}maskOccludee(){const t=new c;for(const e of this._geometries)e.occludees=b(e.occludees,t);return this._emit("occlusionChanged",this),t}removeOcclude(t){for(const e of this._geometries)e.occludees=v(e.occludees,t);this._emit("occlusionChanged",this)}highlight(t){const e=new f(t);for(const i of this._geometries)i.addHighlight(e);return this._emit("highlightChanged",this),this._highlightIds.add(e),e}removeHighlight(t){this._highlightIds.delete(t);for(const e of this._geometries)e.removeHighlight(t);this._emit("highlightChanged",this)}removeStateID(t){0===t.channel?this.removeHighlight(t):this.removeOcclude(t)}getCombinedStaticTransformation(t,i){return e(i,this.transformation,t.transformation)}getCombinedShaderTransformation(t,i=s()){return e(i,this.effectiveTransformation,t.transformation)}get boundingVolumeWorldSpace(){return this._bvWorldSpace||(this._bvWorldSpace=new g,this._validateBoundingVolume(this._bvWorldSpace,0)),this._bvWorldSpace}get boundingVolumeObjectSpace(){return this._bvObjectSpace||(this._bvObjectSpace=new g,this._validateBoundingVolume(this._bvObjectSpace,1)),this._bvObjectSpace}_validateBoundingVolume(t,e){const i=1===e;for(const s of this._geometries){const e=s.boundingInfo;e&&d(t.box,e.box,i?s.transformation:this.getCombinedShaderTransformation(s))}m(t.box,t.sphere.center);for(const s of this._geometries){const e=s.boundingInfo;if(null==e)continue;const o=i?s.transformation:this.getCombinedShaderTransformation(s),n=l(o);r(y,e.sphere.center,o);const a=h(y,t.sphere.center),m=e.sphere.radius*n;t.sphere.radius=Math.max(t.sphere.radius,a+m)}}_invalidateBoundingVolume(){const t=this._bvWorldSpace?.sphere;this._bvObjectSpace=this._bvWorldSpace=void 0,this.layer&&t&&this.layer.notifyObjectBBChanged(this,t)}_emit(t,e){this.layer?.events.emit(t,e)}get geometries(){return this._geometries}get transformation(){return this._transformation??o}set transformation(t){this._transformation=i(this._transformation??s(),t),this._invalidateBoundingVolume(),this._emit("transformationChanged",this)}get shaderTransformation(){return this._shaderTransformation}set shaderTransformation(t){this._shaderTransformation=t?i(this._shaderTransformation??s(),t):null,this._invalidateBoundingVolume(),this._emit("shaderTransformationChanged",this)}get effectiveTransformation(){return this.shaderTransformation??this.transformation}get test(){}}const y=n();export{p as Object3D};
|
|
2
|
+
import"../../../../core/has.js";import{generateUID as t}from"../../../../core/uid.js";import{multiply as e,copy as i}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as s,IDENTITY as o}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{transformMat4 as r,distance as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{empty as a,center as m}from"../../../../geometry/support/aaBoundingBox.js";import{maxScale as l}from"../../support/mathUtils.js";import{BoundingVolume as g,expandWithTransformedBox as d}from"./BoundingVolume.js";import{Object3DOccludeeStateID as c,Object3DHighlightStateID as f}from"./Object3DStateID.js";import{assert as u}from"./Util.js";import{affectsGeometry as _}from"./VertexAttribute.js";import{addObject3DStateID as b,removeObject3DStateID as v}from"../materials/renderers/utils.js";class p{constructor(e={}){this.id=t(),this.type=0,this._highlightIds=new Set,this._shaderTransformation=null,this._visible=!0,this.castShadow=e.castShadow??!0,this.usesVerticalDistanceToGround=e.usesVerticalDistanceToGround??!1,this.graphicUid=e.graphicUid,this.layerViewUid=e.layerViewUid,e.isElevationSource&&(this.lastValidElevationBB=a()),this._geometries=e.geometries?Array.from(e.geometries):[]}dispose(){this._geometries.length=0}get layer(){return this._layer}set layer(t){u(null==this._layer||null==t,"Object3D can only be added to a single Layer"),this._layer=t}addGeometry(t){t.visible=this._visible,this._geometries.push(t);for(const e of this._highlightIds)t.addHighlight(e);this._emit("geometryAdded",{object:this,geometry:t}),this._highlightIds.size&&this._emit("highlightChanged",this),this._invalidateBoundingVolume()}removeGeometry(t){const e=this._geometries.splice(t,1)[0];if(e){for(const t of this._highlightIds)e.removeHighlight(t);this._emit("geometryRemoved",{object:this,geometry:e}),this._highlightIds.size&&this._emit("highlightChanged",this),this._invalidateBoundingVolume()}}removeAllGeometries(){for(;this._geometries.length>0;)this.removeGeometry(0)}geometryVertexAttributeUpdated(t,e,i=!1){this._emit("attributesChanged",{object:this,geometry:t,attribute:e,sync:i}),_(e)&&this._invalidateBoundingVolume()}get visible(){return this._visible}set visible(t){if(this._visible!==t){this._visible=t;for(const t of this._geometries)t.visible=this._visible;this._emit("visibilityChanged",this)}}maskOccludee(){const t=new c;for(const e of this._geometries)e.occludees=b(e.occludees,t);return this._emit("occlusionChanged",this),t}removeOcclude(t){for(const e of this._geometries)e.occludees=v(e.occludees,t);this._emit("occlusionChanged",this)}highlight(t){const e=new f(t);for(const i of this._geometries)i.addHighlight(e);return this._emit("highlightChanged",this),this._highlightIds.add(e),e}removeHighlight(t){this._highlightIds.delete(t);for(const e of this._geometries)e.removeHighlight(t);this._emit("highlightChanged",this)}removeStateID(t){0===t.channel?this.removeHighlight(t):this.removeOcclude(t)}getCombinedStaticTransformation(t,i){return e(i,this.transformation,t.transformation)}getCombinedShaderTransformation(t,i=s()){return e(i,this.effectiveTransformation,t.transformation)}get boundingVolumeWorldSpace(){return this._bvWorldSpace||(this._bvWorldSpace=new g,this._validateBoundingVolume(this._bvWorldSpace,0)),this._bvWorldSpace}get boundingVolumeObjectSpace(){return this._bvObjectSpace||(this._bvObjectSpace=new g,this._validateBoundingVolume(this._bvObjectSpace,1)),this._bvObjectSpace}_validateBoundingVolume(t,e){const i=1===e;for(const s of this._geometries){const e=s.boundingInfo;e&&d(t.box,e.box,i?s.transformation:this.getCombinedShaderTransformation(s))}m(t.box,t.sphere.center);for(const s of this._geometries){const e=s.boundingInfo;if(null==e)continue;const o=i?s.transformation:this.getCombinedShaderTransformation(s),n=l(o);r(y,e.sphere.center,o);const a=h(y,t.sphere.center),m=e.sphere.radius*n;t.sphere.radius=Math.max(t.sphere.radius,a+m)}}_invalidateBoundingVolume(){const t=this._bvWorldSpace?.sphere;this._bvObjectSpace=this._bvWorldSpace=void 0,this.layer&&t&&this.layer.notifyObjectBBChanged(this,t)}_emit(t,e){this.layer?.events.emit(t,e)}get geometries(){return this._geometries}get transformation(){return this._transformation??o}set transformation(t){this._transformation=i(this._transformation??s(),t),this._invalidateBoundingVolume(),this._emit("transformationChanged",this)}get shaderTransformation(){return this._shaderTransformation}set shaderTransformation(t){this._shaderTransformation=t?i(this._shaderTransformation??s(),t):null,this._invalidateBoundingVolume(),this._emit("shaderTransformationChanged",this)}get effectiveTransformation(){return this.shaderTransformation??this.transformation}get test(){}}const y=n();export{p as Object3D};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/PooledArray.js";import{multiply as t}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{transformMat4Z as n,transformMat4 as i}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{lerp as s}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{intersectsSphere as o}from"../../../../geometry/support/frustumPlanes.js";import{Sphere as h}from"../../../../geometry/support/sphere.js";import{maxScale as f}from"../../support/mathUtils.js";import{DepthRange as c}from"./DepthRange.js";import{assert as u}from"./Util.js";const l=1e4,d=100,m=500,_=500,g=.1;function p(e,t,r,n){let i=0;if(!t.some(e=>!!e.material&&(i+=e.numGeometries,i>=l)))return W.compute(e,t,n);const s=new c;return r.forEach(t=>s.union(b(e,t))),s}function b(e,t){if(!t.visible)return;const r=new c,n=t.getSpatialQueryAccelerator();return n?w(r,e,n):j(r,e,t.objects),r}function w(e,t,r){const{eye:n,viewForward:i,frustum:s}=t,a=e=>e.visible,o=r.objectCount;if(o<m)S.set(t.near,Math.min(e.near,t.far)),r.forEachInDepthRange(n,i,1,S,(r,n)=>{x(e,t,r),S.far=e.near,n.setRange(S)},s,a),S.set(Math.max(e.far,t.near),t.far),r.forEachInDepthRange(n,i,-1,S,(r,n)=>{x(e,t,r),S.near=e.far,n.setRange(S)},s,a);else{const n=Math.max(Math.min(o,_),Math.ceil(o*g)),h=r.findClosest(i,1,s,a,n),f=r.findClosest(i,-1,s,a,n);h&&f&&(v(e,t,h.boundingVolumeWorldSpace.sphere),v(e,t,f.boundingVolumeWorldSpace.sphere))}}function j(e,t,r){F.clear(),r.forEach(e=>{e.visible&&0!==e.geometries.length&&F.add(e,t)}),F.empty||(F.sort(),S.set(t.near,Math.min(e.near,t.far)),F.forEachInDepthRange(S,1,(r,n)=>{n<e.near&&x(e,t,r)}),S.set(Math.max(e.far,t.near),t.far),F.forEachInDepthRange(S,-1,(t,r,n)=>{e.far=Math.max(e.far,n)}))}function x(e,r,n){if(!n.visible)return;if(!o(r.frustum,n.boundingVolumeWorldSpace.sphere))return;const i=n.transformation,s=E;n.geometries.forEach(n=>{t(s,i,n.transformation);const a=f(s);R(e,r,n.boundingInfo,s,a)})}function R(e,t,r,n,s){if(null==r)return;i(D.center,r.sphere.center,n);const{eye:a,viewForward:h}=t,f=h[0]*(D.center[0]-a[0])+h[1]*(D.center[1]-a[1])+h[2]*(D.center[2]-a[2]);if(D.radius=r.sphere.radius*s,!(f-D.radius>e.near&&f+D.radius<e.far)&&o(t.frustum,D))if(r.sphere.radius>d&&r.children)for(const i of r.children)R(e,t,i,n,s);else N.unionDepthRangeWithAABB(e,t.viewProjectionMatrix,n,r.box)}function v(e,t,r){const n=t.eye,i=t.viewForward,s=(r.center[0]-n[0])*i[0]+(r.center[1]-n[1])*i[1]+(r.center[2]-n[2])*i[2];e.near=Math.min(e.near,s-r.radius),e.far=Math.max(e.far,s+r.radius)}class M{constructor(){this._items=new e({allocator:e=>e||{object:null,distance:0,near:0,far:0},deallocator:e=>(e.object=null,e.distance=0,e.near=0,e.far=0,e)})}get length(){return this._items.length}get empty(){return 0===this._items.length}clear(){this._items.clear()}add(e,t){const r=t.eye,n=t.viewForward,i=e.boundingVolumeWorldSpace.sphere,s=(i.center[0]-r[0])*n[0]+(i.center[1]-r[1])*n[1]+(i.center[2]-r[2])*n[2];if(!Number.isFinite(s))return;const a=this._items.pushNew();a.object=e,a.distance=s,a.near=s-i.radius,a.far=s+i.radius}sort(){this._items.sort((e,t)=>e.distance-t.distance)}forEachInDepthRange(e,t,r){if(1===t)for(let n=0;n<this._items.length;++n){const t=this._items.data[n];t.far<e.near||t.near>e.far||r(t.object,t.near,t.far)}else for(let n=this._items.length-1;n>=0;--n){const t=this._items.data[n];t.far<e.near||t.near>e.far||r(t.object,t.near,t.far)}}}class C{constructor(){this._geometries=new Array,this._near=[],this._far=[],this._nearCandidates=[],this._farCandidates=[],this._looseRange=new c(0,0)}compute(e,t,r){this._reset();const{viewMatrix:i}=e;t.forEach(e=>{e.forEachGeometry(e=>{if(!e.visible||0===r&&!e.castShadow)return;const t=e.boundingSphere,s=n(t.center,i),a=s-t.radius,o=s+t.radius;this._geometries.push(e),this._near.push(-o),this._far.push(-a)})});const s=new c;if(0===this._geometries.length)return s;for(let n=0;n<this._geometries.length;++n)this._near[n]>s.far&&(s.far=this._near[n]),this._near[n]>2&&this._far[n]<s.near&&(s.near=this._far[n]);const a=this._looseRange;a.near=Math.max(.5*s.near,2),a.far=2*s.far;let o=0,h=0;for(let n=0;n<this._geometries.length;++n)this._near[n]<s.near&&(this._near[n]>=a.near?s.near=this._near[n]:this._nearCandidates[o++]=n),this._far[n]>s.far&&(this._far[n]<=a.far?s.far=this._far[n]:this._farCandidates[h++]=n);if(0===this._nearCandidates.length&&0===this._farCandidates.length)return s;this._nearCandidates.sort((e,t)=>this._near[e]<this._near[t]?-1:this._near[e]>this._near[t]?1:0),this._farCandidates.sort((e,t)=>this._far[e]<this._far[t]?1:this._far[e]>this._far[t]?-1:0);for(let n=0;n<this._nearCandidates.length;++n){const t=this._nearCandidates[n];if(this._near[t]<s.near){const r=this._geometries[t],{boundingInfo:n,shaderTransformation:i}=r;this._includeNearBoundingInfoRec(e,n,i,s)}}for(let n=0;n<this._farCandidates.length;++n){const t=this._farCandidates[n];if(this._far[t]>s.far){const r=this._geometries[t],{boundingInfo:n,shaderTransformation:i}=r;this._includeFarBoundingInfoRec(e,n,i,s)}}return this._reset(),s}_reset(){this._geometries.length=0,this._near.length=0,this._far.length=0,this._nearCandidates.length=0,this._farCandidates.length=0}_isOutsideSidePlanes(e,t){const{center:r,radius:n}=e;return t[0][0]*r[0]+t[0][1]*r[1]+t[0][2]*r[2]+t[0][3]>n||t[1][0]*r[0]+t[1][1]*r[1]+t[1][2]*r[2]+t[1][3]>n||t[2][0]*r[0]+t[2][1]*r[1]+t[2][2]*r[2]+t[2][3]>n||t[3][0]*r[0]+t[3][1]*r[1]+t[3][2]*r[2]+t[3][3]>n}_includeNearBoundingInfoRec(e,t,r,s){if(null==t)return;i(D.center,t.sphere.center,r),D.radius=t.sphere.radius*f(r);const{frustum:a}=e;if(this._isOutsideSidePlanes(D,a))return;const o=D.radius,{viewMatrix:h}=e,c=n(D.center,h),u=c+o;if(!(-(c-o)<2||-u>=s.near))if(-u>this._looseRange.near)s.near=-u;else{if(o>d){const n=t.children;if(void 0!==n){for(const t of n)this._includeNearBoundingInfoRec(e,t,r,s);return}}N.unionDepthRangeWithAABB(s,e.viewProjectionMatrix,r,t.box)}}_includeFarBoundingInfoRec(e,t,r,s){if(null==t)return;i(D.center,t.sphere.center,r),D.radius=t.sphere.radius*f(r);const{frustum:a}=e;if(this._isOutsideSidePlanes(D,a))return;const{viewMatrix:o,viewProjectionMatrix:h}=e,c=n(D.center,o)-D.radius;if(!(-c<=s.far))if(-c<this._looseRange.far)s.far=-c;else{if(D.radius>d){const n=t.children;if(void 0!==n){for(const t of n)this._includeFarBoundingInfoRec(e,t,r,s);return}}N.unionDepthRangeWithAABB(s,h,r,t.box)}}}class P{constructor(){this._modelViewProj=r(),this._clipPosition=[a(),a(),a(),a(),a(),a(),a(),a()]}unionDepthRangeWithAABB(e,r,n,i){const s=this._modelViewProj;t(s,r,n);let a=!1;for(let t=0;t<8;++t){const e=this._clipPosition[t],r=0===t||3===t||4===t||7===t?i[0]:i[3],n=0===t||1===t||4===t||5===t?i[1]:i[4],a=t<4?i[2]:i[5];e[0]=s[0]*r+s[4]*n+s[8]*a+s[12],e[1]=s[1]*r+s[5]*n+s[9]*a+s[13],e[2]=s[2]*r+s[6]*n+s[10]*a+s[14],e[3]=s[3]*r+s[7]*n+s[11]*a+s[15]}for(let t=0;t<12;++t){const r=
|
|
2
|
+
import e from"../../../../core/PooledArray.js";import{multiply as t}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{transformMat4Z as n,transformMat4 as i}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{lerp as s}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{intersectsSphere as o}from"../../../../geometry/support/frustumPlanes.js";import{Sphere as h}from"../../../../geometry/support/sphere.js";import{maxScale as f}from"../../support/mathUtils.js";import{DepthRange as c}from"./DepthRange.js";import{assert as u}from"./Util.js";const l=1e4,d=100,m=500,_=500,g=.1;function p(e,t,r,n){let i=0;if(!t.some(e=>!!e.material&&(i+=e.numGeometries,i>=l)))return W.compute(e,t,n);const s=new c;return r.forEach(t=>s.union(b(e,t))),s}function b(e,t){if(!t.visible)return;const r=new c,n=t.getSpatialQueryAccelerator();return n?w(r,e,n):j(r,e,t.objects),r}function w(e,t,r){const{eye:n,viewForward:i,frustum:s}=t,a=e=>e.visible,o=r.objectCount;if(o<m)S.set(t.near,Math.min(e.near,t.far)),r.forEachInDepthRange(n,i,1,S,(r,n)=>{x(e,t,r),S.far=e.near,n.setRange(S)},s,a),S.set(Math.max(e.far,t.near),t.far),r.forEachInDepthRange(n,i,-1,S,(r,n)=>{x(e,t,r),S.near=e.far,n.setRange(S)},s,a);else{const n=Math.max(Math.min(o,_),Math.ceil(o*g)),h=r.findClosest(i,1,s,a,n),f=r.findClosest(i,-1,s,a,n);h&&f&&(v(e,t,h.boundingVolumeWorldSpace.sphere),v(e,t,f.boundingVolumeWorldSpace.sphere))}}function j(e,t,r){F.clear(),r.forEach(e=>{0===e.type&&e.visible&&0!==e.geometries.length&&F.add(e,t)}),F.empty||(F.sort(),S.set(t.near,Math.min(e.near,t.far)),F.forEachInDepthRange(S,1,(r,n)=>{n<e.near&&x(e,t,r)}),S.set(Math.max(e.far,t.near),t.far),F.forEachInDepthRange(S,-1,(t,r,n)=>{e.far=Math.max(e.far,n)}))}function x(e,r,n){if(0!==n.type)return;if(!n.visible)return;if(!o(r.frustum,n.boundingVolumeWorldSpace.sphere))return;const i=n.transformation,s=E;n.geometries.forEach(n=>{t(s,i,n.transformation);const a=f(s);R(e,r,n.boundingInfo,s,a)})}function R(e,t,r,n,s){if(null==r)return;i(D.center,r.sphere.center,n);const{eye:a,viewForward:h}=t,f=h[0]*(D.center[0]-a[0])+h[1]*(D.center[1]-a[1])+h[2]*(D.center[2]-a[2]);if(D.radius=r.sphere.radius*s,!(f-D.radius>e.near&&f+D.radius<e.far)&&o(t.frustum,D))if(r.sphere.radius>d&&r.children)for(const i of r.children)R(e,t,i,n,s);else N.unionDepthRangeWithAABB(e,t.viewProjectionMatrix,n,r.box)}function v(e,t,r){const n=t.eye,i=t.viewForward,s=(r.center[0]-n[0])*i[0]+(r.center[1]-n[1])*i[1]+(r.center[2]-n[2])*i[2];e.near=Math.min(e.near,s-r.radius),e.far=Math.max(e.far,s+r.radius)}class M{constructor(){this._items=new e({allocator:e=>e||{object:null,distance:0,near:0,far:0},deallocator:e=>(e.object=null,e.distance=0,e.near=0,e.far=0,e)})}get length(){return this._items.length}get empty(){return 0===this._items.length}clear(){this._items.clear()}add(e,t){const r=t.eye,n=t.viewForward,i=e.boundingVolumeWorldSpace.sphere,s=(i.center[0]-r[0])*n[0]+(i.center[1]-r[1])*n[1]+(i.center[2]-r[2])*n[2];if(!Number.isFinite(s))return;const a=this._items.pushNew();a.object=e,a.distance=s,a.near=s-i.radius,a.far=s+i.radius}sort(){this._items.sort((e,t)=>e.distance-t.distance)}forEachInDepthRange(e,t,r){if(1===t)for(let n=0;n<this._items.length;++n){const t=this._items.data[n];t.far<e.near||t.near>e.far||r(t.object,t.near,t.far)}else for(let n=this._items.length-1;n>=0;--n){const t=this._items.data[n];t.far<e.near||t.near>e.far||r(t.object,t.near,t.far)}}}class C{constructor(){this._geometries=new Array,this._near=[],this._far=[],this._nearCandidates=[],this._farCandidates=[],this._looseRange=new c(0,0)}compute(e,t,r){this._reset();const{viewMatrix:i}=e;t.forEach(e=>{e.forEachGeometry(e=>{if(!e.visible||0===r&&!e.castShadow)return;const t=e.boundingSphere,s=n(t.center,i),a=s-t.radius,o=s+t.radius;this._geometries.push(e),this._near.push(-o),this._far.push(-a)})});const s=new c;if(0===this._geometries.length)return s;for(let n=0;n<this._geometries.length;++n)this._near[n]>s.far&&(s.far=this._near[n]),this._near[n]>2&&this._far[n]<s.near&&(s.near=this._far[n]);const a=this._looseRange;a.near=Math.max(.5*s.near,2),a.far=2*s.far;let o=0,h=0;for(let n=0;n<this._geometries.length;++n)this._near[n]<s.near&&(this._near[n]>=a.near?s.near=this._near[n]:this._nearCandidates[o++]=n),this._far[n]>s.far&&(this._far[n]<=a.far?s.far=this._far[n]:this._farCandidates[h++]=n);if(0===this._nearCandidates.length&&0===this._farCandidates.length)return s;this._nearCandidates.sort((e,t)=>this._near[e]<this._near[t]?-1:this._near[e]>this._near[t]?1:0),this._farCandidates.sort((e,t)=>this._far[e]<this._far[t]?1:this._far[e]>this._far[t]?-1:0);for(let n=0;n<this._nearCandidates.length;++n){const t=this._nearCandidates[n];if(this._near[t]<s.near){const r=this._geometries[t],{boundingInfo:n,shaderTransformation:i}=r;this._includeNearBoundingInfoRec(e,n,i,s)}}for(let n=0;n<this._farCandidates.length;++n){const t=this._farCandidates[n];if(this._far[t]>s.far){const r=this._geometries[t],{boundingInfo:n,shaderTransformation:i}=r;this._includeFarBoundingInfoRec(e,n,i,s)}}return this._reset(),s}_reset(){this._geometries.length=0,this._near.length=0,this._far.length=0,this._nearCandidates.length=0,this._farCandidates.length=0}_isOutsideSidePlanes(e,t){const{center:r,radius:n}=e;return t[0][0]*r[0]+t[0][1]*r[1]+t[0][2]*r[2]+t[0][3]>n||t[1][0]*r[0]+t[1][1]*r[1]+t[1][2]*r[2]+t[1][3]>n||t[2][0]*r[0]+t[2][1]*r[1]+t[2][2]*r[2]+t[2][3]>n||t[3][0]*r[0]+t[3][1]*r[1]+t[3][2]*r[2]+t[3][3]>n}_includeNearBoundingInfoRec(e,t,r,s){if(null==t)return;i(D.center,t.sphere.center,r),D.radius=t.sphere.radius*f(r);const{frustum:a}=e;if(this._isOutsideSidePlanes(D,a))return;const o=D.radius,{viewMatrix:h}=e,c=n(D.center,h),u=c+o;if(!(-(c-o)<2||-u>=s.near))if(-u>this._looseRange.near)s.near=-u;else{if(o>d){const n=t.children;if(void 0!==n){for(const t of n)this._includeNearBoundingInfoRec(e,t,r,s);return}}N.unionDepthRangeWithAABB(s,e.viewProjectionMatrix,r,t.box)}}_includeFarBoundingInfoRec(e,t,r,s){if(null==t)return;i(D.center,t.sphere.center,r),D.radius=t.sphere.radius*f(r);const{frustum:a}=e;if(this._isOutsideSidePlanes(D,a))return;const{viewMatrix:o,viewProjectionMatrix:h}=e,c=n(D.center,o)-D.radius;if(!(-c<=s.far))if(-c<this._looseRange.far)s.far=-c;else{if(D.radius>d){const n=t.children;if(void 0!==n){for(const t of n)this._includeFarBoundingInfoRec(e,t,r,s);return}}N.unionDepthRangeWithAABB(s,h,r,t.box)}}}class P{constructor(){this._modelViewProj=r(),this._clipPosition=[a(),a(),a(),a(),a(),a(),a(),a()]}unionDepthRangeWithAABB(e,r,n,i){const s=this._modelViewProj;t(s,r,n);let a=!1;for(let t=0;t<8;++t){const e=this._clipPosition[t],r=0===t||3===t||4===t||7===t?i[0]:i[3],n=0===t||1===t||4===t||5===t?i[1]:i[4],a=t<4?i[2]:i[5];e[0]=s[0]*r+s[4]*n+s[8]*a+s[12],e[1]=s[1]*r+s[5]*n+s[9]*a+s[13],e[2]=s[2]*r+s[6]*n+s[10]*a+s[14],e[3]=s[3]*r+s[7]*n+s[11]*a+s[15]}for(let t=0;t<12;++t){const r=y(this._clipPosition[A[t][0]],this._clipPosition[A[t][1]],this._clipPosition[A[t][2]]);let n=!0;for(let e=0;e<r.length;++e){if(r[e][3]>=2){n=!1;break}}if(!n){a=!0;for(let t=0;t<r.length;++t){const n=r[t][3];Number.isFinite(n)&&(e.near=Math.min(n,e.near),e.far=Math.max(n,e.far))}}}return a}}function y(e,t,r){let n=[e,t,r];for(let i=0;i<4;++i){const e=n;n=[];for(let t=0;t<e.length;++t){const r=e[t],s=e[(t+1)%e.length];B(s,i)?(B(r,i)||n.push(I(r,s,i)),n.push(s)):B(r,i)&&n.push(I(r,s,i))}}return n}function B(e,t){return 0===t?e[0]>=-e[3]:1===t?e[1]>=-e[3]:2===t?e[0]<=e[3]:3===t?e[1]<=e[3]:void u(!1)}function I(e,t,r){let n=0;return 0===r?n=(-e[3]-e[0])/(t[0]-e[0]+t[3]-e[3]):1===r?n=(-e[3]-e[1])/(t[1]-e[1]+t[3]-e[3]):2===r?n=(e[3]-e[0])/(t[0]-e[0]-t[3]+e[3]):3===r&&(n=(e[3]-e[1])/(t[1]-e[1]-t[3]+e[3])),s(a(),e,t,n)}const A=[[0,1,3],[2,3,1],[1,5,2],[6,2,5],[5,4,6],[7,6,4],[4,0,7],[3,7,0],[3,2,7],[6,7,2],[4,5,0],[1,0,5]],D=new h,E=r(),S=new c,F=new M,W=new C,N=new P;export{p as depthRangeFromScene};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"../../../../core/has.js";import{create as e}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{GridLocalOriginFactory as t}from"../lib/GridLocalOriginFactory.js";import r from"../lib/ModelDirtySet.js";import{RenderGeometry as
|
|
2
|
+
import"../../../../core/has.js";import{create as e}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{GridLocalOriginFactory as t}from"../lib/GridLocalOriginFactory.js";import r from"../lib/ModelDirtySet.js";import{RenderGeometry as i}from"../lib/RenderGeometry.js";import{assert as o}from"../lib/Util.js";class s{constructor(){this.dirtySet=new r({model:this}),this._originFactory=new t(null),this._textures=new Map,this._layers=new Map}hasTexture(e){return this._textures.has(e.id)}getTexture(e){return null==e?null:this._textures.get(e)}addTexture(e){const t=e.id;o(!this._textures.has(t),"Model/Stage already contains texture to be added"),this._textures.set(t,e)}removeTexture(e){return this._textures.delete(e.id)}addTextures(e){for(const t of e)t&&(o(!this._textures.has(t.id),"Model/Stage already contains object to be added"),this._textures.set(t.id,t))}removeTextures(e){for(const t of e)t&&(o(this._textures.has(t.id),"Model/Stage doesn't contain object to be removed"),this._textures.delete(t.id))}forEachTexture(e){this._textures.forEach(t=>e(t))}hasLayer(e){return this._layers.has(e.id)}getLayer(e){return null==e?null:this._layers.get(e)}addLayer(e){const t=e.id;o(!this._layers.has(t),"Model/Stage already contains layer to be added"),this._layers.set(t,e)}removeLayer(e){return this._layers.delete(e.id)}getRenderGeometry(e,t){if(1===e.type)return o(1===t.type),t;o(0===t.type);const r=new i(t,{castShadow:e.castShadow,objectShaderTransformation:e.shaderTransformation});r.transformation=e.getCombinedStaticTransformation(t,a);const s=t.localOrigin;return r.localOrigin=s??this._originFactory.getOrigin(r.boundingSphere.center),r}updateRenderGeometryTransformation(e,t,r){if(null==e)return!1;r.transformation=e.getCombinedStaticTransformation(t,a);const i=t.localOrigin,o=i??this._originFactory.getOrigin(r.boundingSphere.center);return r.localOrigin!==o}get test(){}}const a=e();export{s as Model};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{watch as i,
|
|
2
|
+
import{__decorate as e}from"tslib";import{isLoadable as o}from"../../../core/Loadable.js";import{watch as i,syncAndInitial as r}from"../../../core/reactiveUtils.js";import{property as t,subclass as l}from"../../../core/accessorSupport/decorators.js";import{ElevationProfileLineComputation as s}from"./ElevationProfileLineComputation.js";import{getQuerySourceMinDemResolution as a}from"./elevationProfileQuerySourceUtils.js";let n=class extends s{constructor(){super(...arguments),this.type="query",this.numSamplesForPreview=50,this.numSamplesPerChunk=500}get minDemResolution(){return a(this.profile.source)}get available(){const{source:e}=this.profile;return!!e&&(null==e.visible||e.visible)&&(null==e.layers||e.layers.some(e=>e.visible))}initialize(){this.addHandles([i(()=>this.profile.source,e=>{this.onInvalidate(this),o(e)&&!e.loaded&&e.load().catch(()=>{})},r)])}async queryElevation(e,i){const{source:r}=this.profile;if(!r)throw new Error("No source configured for the elevation profile line");return o(r)&&await r.load({signal:i.signal}),r.queryElevation(e,i)}};e([t({readOnly:!0})],n.prototype,"minDemResolution",null),e([t()],n.prototype,"available",null),n=e([l("esri.views.analysis.ElevationProfile.ElevationProfileLineQueryComputation")],n);export{n as ElevationProfileLineQueryComputation};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{removeUnordered as e,filterInPlace as t}from"../../core/arrayUtils.js";import s from"../../core/Handles.js";import"../../core/has.js";import r from"../../core/Logger.js";import{removeMaybe as i}from"../../core/maybe.js";import{recordPerformance as a}from"../../core/performance.js";import n from"../../core/PerformanceSampler.js";import{isAborted as u,createAbortError as _,when as h,isPromiseLike as o,ignoreAbortErrors as E}from"../../core/promiseUtils.js";import{watch as d,initial as T,when as c}from"../../core/reactiveUtils.js";import{signal as m}from"../../core/signal.js";import{Milliseconds as l}from"../../core/time.js";import R from"./debugFlags.js";import{PromiseQueue as g}from"./PromiseQueue.js";import{Yield as I}from"./Yield.js";function A(){return new C}const p={RESOURCE_CONTROLLER_IMMEDIATE:"immediate",RESOURCE_CONTROLLER:"schedule",SLIDE:"slide",STREAM_DATA_LOADER:"stream loader",ELEVATION_QUERY:"elevation query",TERRAIN_SURFACE:"terrain",SURFACE_GEOMETRY_UPDATES:"surface geometry updates",LOD_RENDERER:"LoD renderer",GRAPHICS_CORE:"Graphics3D",I3S:"I3S",LYR3D:"Lyr3D",TILES3D:"3DTiles",POINT_CLOUD_LAYER:"point cloud",FEATURE_TILE_FETCHER:"feature fetcher",STREAM_CONTROLLER:"stream controller",SCREEN_POLYGON_INTERSECTION:"screen polygon intersection",OCCLUSION_QUERY:"occlusion query",OVERLAY:"overlay",OVERLAY_RENDERER:"overlay renderer",STAGE:"stage",GRAPHICS_DECONFLICTOR:"graphics deconflictor",FILTER_VISIBILITY:"graphics filter visibility",SCALE_VISIBILITY:"graphics scale visibility",FRUSTUM_VISIBILITY:"graphics frustum visibility",POINT_OF_INTEREST_FREQUENT:"POI frequent",POINT_OF_INTEREST_INFREQUENT:"POI infrequent",LABELER:"labeler",FEATURE_QUERY_ENGINE:"feature query",FEATURE_TILE_TREE:"feature tile tree",FEATURE_TILE_TREE_ACTIVE:"fast feature tile tree",ELEVATION_ALIGNMENT:"elevation alignment",ELEVATION_ALIGNMENT_SCENE:"elevation alignment scene",TEXT_TEXTURE_ATLAS:"text texture atlas",TEXTURE_UNLOAD:"texture unload",LINE_OF_SIGHT_TOOL:"line of sight tool",LINE_OF_SIGHT_TOOL_INTERACTIVE:"interactive line of sight tool",VOLUME_MEASUREMENT:"volume measurement",ELEVATION_PROFILE:"elevation profile",SNAPPING:"snapping",SHADOW_ACCUMULATOR:"shadow accumulator",CLOUDS_GENERATOR:"clouds generator",FLOW_GENERATOR:"flow generator",GAUSSIAN_SPLAT_SORTING:"gaussian splat sorting",GAUSSIAN_SPLAT_TEXTURE_ATLAS:"gaussian splat texture atlas",MAPVIEW_FETCH_QUEUE:"mapview fetch queue",MAPVIEW_LAYERVIEW_UPDATE:"mapview layerview update",MAPVIEW_VECTOR_TILE_PARSING_QUEUE:"mapview vector tile parsing queue",NONE:0,TEST_PRIO:1},L=0,f=new Map([[p.RESOURCE_CONTROLLER_IMMEDIATE,L],[p.RESOURCE_CONTROLLER,4],[p.SLIDE,L],[p.STREAM_DATA_LOADER,L],[p.ELEVATION_QUERY,L],[p.TERRAIN_SURFACE,1],[p.SURFACE_GEOMETRY_UPDATES,1],[p.LOD_RENDERER,2],[p.GRAPHICS_CORE,2],[p.I3S,2],[p.LYR3D,2],[p.TILES3D,3],[p.POINT_CLOUD_LAYER,2],[p.FEATURE_TILE_FETCHER,2],[p.STREAM_CONTROLLER,2],[p.SCREEN_POLYGON_INTERSECTION,L],[p.CLOUDS_GENERATOR,2],[p.OCCLUSION_QUERY,2],[p.OVERLAY,4],[p.OVERLAY_RENDERER,4],[p.STAGE,4],[p.GRAPHICS_DECONFLICTOR,4],[p.FILTER_VISIBILITY,4],[p.SCALE_VISIBILITY,4],[p.FRUSTUM_VISIBILITY,4],[p.POINT_OF_INTEREST_FREQUENT,6],[p.POINT_OF_INTEREST_INFREQUENT,30],[p.LABELER,8],[p.FEATURE_QUERY_ENGINE,8],[p.FEATURE_TILE_TREE,16],[p.FEATURE_TILE_TREE_ACTIVE,L],[p.ELEVATION_ALIGNMENT,12],[p.ELEVATION_ALIGNMENT_SCENE,14],[p.TEXT_TEXTURE_ATLAS,12],[p.TEXTURE_UNLOAD,12],[p.LINE_OF_SIGHT_TOOL,16],[p.LINE_OF_SIGHT_TOOL_INTERACTIVE,L],[p.VOLUME_MEASUREMENT,4],[p.SNAPPING,L],[p.SHADOW_ACCUMULATOR,30],[p.FLOW_GENERATOR,12],[p.GAUSSIAN_SPLAT_SORTING,2],[p.GAUSSIAN_SPLAT_TEXTURE_ATLAS,12],[p.MAPVIEW_FETCH_QUEUE,L],[p.MAPVIEW_LAYERVIEW_UPDATE,2],[p.MAPVIEW_VECTOR_TILE_PARSING_QUEUE,L]]);function O(e){return f.has(e)?f.get(e):"number"==typeof e?e:1}const N=l(6.5),S=l(1),U=l(30),P=l(1e3/30),b=l(100),k=.9;class C{get updating(){return this._updating.value}_updatingChanged(){this._updating.value=this._tasks.some(e=>e.needsUpdate)}constructor(){this._updating=m(!0),this._microTaskQueued=!1,this._frameNumber=0,this.performanceInfo={total:new n("total"),tasks:new Map},this._frameTaskTimes=new Map,this._budget=new F,this.state=1,this._tasks=new Array,this._runQueue=new Array,this._load=0,this._forceTask=!1,this._debug=!1,this._debugHandle=d(()=>R.SCHEDULER_LOG_SLOW_TASKS,e=>this._debug=e,T);for(const e of Object.keys(p))this.performanceInfo.tasks.set(p[e],new n(String(p[e])))}destroy(){this._tasks.forEach(e=>e.remove()),this._tasks.length=0,this._runQueue.length=0,i(this._debugHandle),this._microTaskQueued=!1,this._updatingChanged()}taskRunningChanged(e){this._updatingChanged(),e&&this._budget.remaining>0&&!this._microTaskQueued&&(this._microTaskQueued=!0,queueMicrotask(()=>{this._microTaskQueued&&(this._microTaskQueued=!1,this._budget.remaining>0&&this._schedule()&&this._runFrame())}))}registerTask(e,t){const s=new y(this,e,t);return this._tasks.push(s),this._updatingChanged(),this.performanceInfo.tasks.has(e)||this.performanceInfo.tasks.set(e,new n(e)),s}get load(){return this._load}frame(e){if(this._startFrameTaskTimes(),this._updateBudget(e)){const e=this._budget.now();this._runFrame();const t=this._budget.now();this._recordFrameTaskTimes(t-e);const s=2===this.state?"Idle":1===this.state?"Interacting":"Animating";return a(`${s} Frame Tasks`,e,t,"Maps SDK","Scheduling"),!0}return this._recordFrameTaskTimes(0),!1}_updateBudget(e){this._test&&(this._test.usedBudget=0),++this._frameNumber;let t=N,s=e.frameDuration,r=S;switch(this.state){case 2:t=l(0),s=l(Math.max(b,e.frameDuration)),r=U;break;case 1:s=l(Math.max(P,e.frameDuration))}return s=l(s-e.elapsedFrameTime-t),2!==this.state&&s<S&&!this._forceTask?(this._forceTask=!0,!1):(s=l(Math.max(s,r)),this._budget.reset(s),this._updateLoad(),this._schedule())}_runFrame(){this._forceTask=!1,this._microTaskQueued=!1,this._run(),this._test&&(this._test.usedBudget=this._budget.elapsed)}stopFrame(){this._budget.reset(l(0)),this._budget.madeProgress()}removeTask(t){e(this._tasks,t),e(this._runQueue,t),this._updatingChanged()}_updateTask(e){this._tasks.forEach(t=>{t.name===e&&t.setPriority(e)})}_getState(e){if(this._runQueue.some(t=>t.name===e))return"s";let t="i";return this._tasks.forEach(s=>{s.name===e&&s.needsUpdate&&(s.schedulePriority<=1?t="r":"r"!==t&&(t="w"))}),t}_getRuntime(e){let t=0;return this._tasks.forEach(s=>{s.name===e&&(t+=s.runtime)}),t}_resetRuntimes(){this._tasks.forEach(e=>e.runtime=0)}_getRunning(){const e=new Map;if(this._tasks.forEach(t=>{t.needsUpdate&&e.set(t.name,(e.get(t.name)||0)+1)}),0===e.size)return null;let t="";return e.forEach((e,s)=>{t+=e>1?` ${e}x ${s}`:` ${s}`}),t}_updateLoad(){const e=this._tasks.reduce((e,t)=>t.needsUpdate?++e:e,0);this._load=this._load*k+e*(1-k)}_schedule(){for(t(this._runQueue,e=>!!e.needsUpdate||(e.schedulePriority=e.basePriority,!1)),this._tasks.forEach(e=>{e.basePriority===L&&e.needsUpdate&&!this._runQueue.includes(e)&&e.blockFrame!==this._frameNumber&&this._runQueue.unshift(e)});0===this._runQueue.length;){let e=!1,t=0;if(this._tasks.forEach(s=>{if(s.needsUpdate&&0!==s.schedulePriority&&s.basePriority!==L&&s.blockFrame!==this._frameNumber)if(e=!0,t=Math.max(t,s.basePriority),1===s.schedulePriority)s.schedulePriority=0,this._runQueue.push(s);else--s.schedulePriority}),!e)return this._updatingChanged(),!1}return this._updatingChanged(),!0}_run(){do{for(;this._runQueue.length>0;){const t=this._budget.now(),s=this._runQueue.pop();this._budget.resetProgress();try{s.task.runTask(this._budget)===I&&(s.blockFrame=this._frameNumber)}catch(e){r.getLogger("esri.views.support.Scheduler").error(`Exception in task "${s.name}"`,e),s.blockFrame=this._frameNumber}!this._budget.hasProgressed&&s.blockFrame!==this._frameNumber&&s.needsUpdate&&(s.name,p.I3S,s.blockFrame=this._frameNumber),s.schedulePriority=s.basePriority;const i=this._budget.now(),n=i-t;if(a(`${s.name}`,t,i,"Maps SDK","Scheduling"),s.runtime+=n,this._frameTaskTimes.set(s.priority,this._frameTaskTimes.get(s.priority)+n),this._budget.remaining<=0)return void this._updatingChanged()}}while(this._schedule());this._updatingChanged()}_startFrameTaskTimes(){for(const e of Object.keys(p))this._frameTaskTimes.set(p[e],0)}_recordFrameTaskTimes(e){this._frameTaskTimes.forEach((e,t)=>this.performanceInfo.tasks.get(t).push(e)),this.performanceInfo.total.push(e)}get test(){return this._test}}class y{get task(){return this._task.value}get readyToRun(){return this._queue.readyToRun}get updating(){return this._queue.updating}constructor(e,t,r){this._scheduler=e,this.name=t,this.blockFrame=0,this.runtime=0,this._queue=new g,this._handles=new s,this._basePriority=O(t),this.schedulePriority=this._basePriority,this._task=m(null!=r?r:this._queue),this._handles.add(c(()=>this.task.readyToRun,t=>e.taskRunningChanged(t)))}remove(){this.processQueue(w),this._scheduler.removeTask(this),this.schedule=G.schedule,this.reschedule=G.reschedule,this.scheduleGenerator=G.scheduleGenerator,this._handles.destroy()}get basePriority(){return this._basePriority}setPriority(e){if(this.name===e)return;this.name=e;const t=O(e);this._basePriority!==L&&0===this.schedulePriority||(this.schedulePriority=t),this._basePriority=t}get priority(){return this.name}set priority(e){this.setPriority(e)}get needsUpdate(){return this.readyToRun||!this.task.destroyed&&this.task.readyToRun}schedule(e,t,s){return this._queue.push(e,t,s)}reschedule(e,t,s){return this._queue.unshift(e,t,s)}scheduleGenerator(e,t,s){return this._queue.pushGenerator(e,t,s)}processQueue(e){return this._queue.runTask(e)}}class F{constructor(){this._begin=performance?.now()??0,this._budget=0,this._done=!1,this._progressed=!1,this._enabled=!0}run(e){return!this.done&&(!0===e()&&this.madeProgress(),!0)}get done(){return this._done}get budget(){return this._budget}madeProgress(){return this._progressed=!0,this._done=this.elapsed>=this._budget&&this._enabled,this._done}get enabled(){return this._enabled}set enabled(e){this._enabled=e}reset(e){this._begin=this.now(),this._budget=e,this.resetProgress()}get remaining(){return Math.max(this._budget-this.elapsed,0)}now(){return performance.now()}get elapsed(){return this.now()-this._begin}resetProgress(){this._progressed=!1,this._done=!1}get hasProgressed(){return this._progressed}}const w=new F;function D(e){const t=new F;return t.reset(e),t}w.enabled=!1;class M{remove(){}processQueue(){}schedule(e,t,s){try{if(u(t)){const e=_();return s?Promise.resolve(s(e)):Promise.reject(e)}return h(e(w))}catch(r){return Promise.reject(r)}}reschedule(e,t,s){return this.schedule(e,t,s)}async scheduleGenerator(e,t,s){if(u(t)){const e=_();if(s)return s(e);throw e}const r=e(w);for(;;){const e=r.next(w),i=o(e)?await e:e;if(u(t)){const e=_();if(s){const t=s(e),i=r.return(null);return o(i)&&await E(i),t}const t=r.throw(e);throw o(t)&&await E(t),e}if(i.done)return i.value}}}const G=new M;export{G as ImmediateTask,p as TaskPriority,O as getTaskPriority,D as makeBudget,A as newScheduler,w as noBudget,f as taskPriorities};
|
|
2
|
+
import{removeUnordered as e,filterInPlace as t}from"../../core/arrayUtils.js";import s from"../../core/Handles.js";import"../../core/has.js";import r from"../../core/Logger.js";import{removeMaybe as i}from"../../core/maybe.js";import{recordPerformance as a}from"../../core/performance.js";import n from"../../core/PerformanceSampler.js";import{isAborted as u,createAbortError as _,when as o,isPromiseLike as h,ignoreAbortErrors as E}from"../../core/promiseUtils.js";import{watch as d,initial as T,when as c}from"../../core/reactiveUtils.js";import{signal as m}from"../../core/signal.js";import{Milliseconds as l}from"../../core/time.js";import R from"./debugFlags.js";import{PromiseQueue as g}from"./PromiseQueue.js";import{Yield as I}from"./Yield.js";function A(){return new C}const p={RESOURCE_CONTROLLER_IMMEDIATE:"immediate",RESOURCE_CONTROLLER:"schedule",SLIDE:"slide",STREAM_DATA_LOADER:"stream loader",ELEVATION_QUERY:"elevation query",TERRAIN_SURFACE:"terrain",SURFACE_GEOMETRY_UPDATES:"surface geometry updates",LOD_RENDERER:"LoD renderer",GRAPHICS_CORE:"Graphics3D",I3S:"I3S",LYR3D:"Lyr3D",TILES3D:"3DTiles",POINT_CLOUD_LAYER:"point cloud",FEATURE_TILE_FETCHER:"feature fetcher",STREAM_CONTROLLER:"stream controller",SCREEN_POLYGON_INTERSECTION:"screen polygon intersection",OCCLUSION_QUERY:"occlusion query",OVERLAY:"overlay",OVERLAY_RENDERER:"overlay renderer",STAGE:"stage",GRAPHICS_DECONFLICTOR:"graphics deconflictor",FILTER_VISIBILITY:"graphics filter visibility",SCALE_VISIBILITY:"graphics scale visibility",FRUSTUM_VISIBILITY:"graphics frustum visibility",POINT_OF_INTEREST_FREQUENT:"POI frequent",POINT_OF_INTEREST_INFREQUENT:"POI infrequent",LABELER:"labeler",FEATURE_QUERY_ENGINE:"feature query",FEATURE_TILE_TREE:"feature tile tree",FEATURE_TILE_TREE_ACTIVE:"fast feature tile tree",ELEVATION_ALIGNMENT:"elevation alignment",ELEVATION_ALIGNMENT_SCENE:"elevation alignment scene",TEXT_TEXTURE_ATLAS:"text texture atlas",TEXTURE_UNLOAD:"texture unload",LINE_OF_SIGHT_TOOL:"line of sight tool",LINE_OF_SIGHT_TOOL_INTERACTIVE:"interactive line of sight tool",VOLUME_MEASUREMENT:"volume measurement",ELEVATION_PROFILE:"elevation profile",SNAPPING:"snapping",SHADOW_ACCUMULATOR:"shadow accumulator",CLOUDS_GENERATOR:"clouds generator",FLOW_GENERATOR:"flow generator",GAUSSIAN_SPLAT_SORTING:"gaussian splat sorting",GAUSSIAN_SPLAT_TEXTURE_ATLAS:"gaussian splat texture atlas",MAPVIEW_FETCH_QUEUE:"mapview fetch queue",MAPVIEW_LAYERVIEW_UPDATE:"mapview layerview update",MAPVIEW_VECTOR_TILE_PARSING_QUEUE:"mapview vector tile parsing queue",NONE:0,TEST_PRIO:1},L=0,f=new Map([[p.RESOURCE_CONTROLLER_IMMEDIATE,L],[p.RESOURCE_CONTROLLER,4],[p.SLIDE,L],[p.STREAM_DATA_LOADER,L],[p.ELEVATION_QUERY,L],[p.TERRAIN_SURFACE,1],[p.SURFACE_GEOMETRY_UPDATES,1],[p.LOD_RENDERER,2],[p.GRAPHICS_CORE,2],[p.I3S,2],[p.LYR3D,2],[p.TILES3D,3],[p.POINT_CLOUD_LAYER,2],[p.FEATURE_TILE_FETCHER,2],[p.STREAM_CONTROLLER,2],[p.SCREEN_POLYGON_INTERSECTION,L],[p.CLOUDS_GENERATOR,2],[p.OCCLUSION_QUERY,2],[p.OVERLAY,4],[p.OVERLAY_RENDERER,4],[p.STAGE,4],[p.GRAPHICS_DECONFLICTOR,4],[p.FILTER_VISIBILITY,4],[p.SCALE_VISIBILITY,4],[p.FRUSTUM_VISIBILITY,4],[p.POINT_OF_INTEREST_FREQUENT,6],[p.POINT_OF_INTEREST_INFREQUENT,30],[p.LABELER,8],[p.FEATURE_QUERY_ENGINE,8],[p.FEATURE_TILE_TREE,16],[p.FEATURE_TILE_TREE_ACTIVE,L],[p.ELEVATION_ALIGNMENT,12],[p.ELEVATION_ALIGNMENT_SCENE,14],[p.TEXT_TEXTURE_ATLAS,12],[p.TEXTURE_UNLOAD,12],[p.LINE_OF_SIGHT_TOOL,16],[p.LINE_OF_SIGHT_TOOL_INTERACTIVE,L],[p.VOLUME_MEASUREMENT,4],[p.SNAPPING,L],[p.SHADOW_ACCUMULATOR,30],[p.FLOW_GENERATOR,12],[p.GAUSSIAN_SPLAT_SORTING,2],[p.GAUSSIAN_SPLAT_TEXTURE_ATLAS,12],[p.MAPVIEW_FETCH_QUEUE,L],[p.MAPVIEW_LAYERVIEW_UPDATE,2],[p.MAPVIEW_VECTOR_TILE_PARSING_QUEUE,L]]);function O(e){return f.has(e)?f.get(e):"number"==typeof e?e:1}const N=l(6.5),S=l(1),U=l(30),b=l(1e3/30),P=l(100),k=.9;class C{get updating(){return this._updating.value}_updatingChanged(){this._updating.value=this._tasks.some(e=>e.needsUpdate)}constructor(){this._updating=m(!0),this._microTaskQueued=!1,this._frameNumber=0,this.performanceInfo={total:new n("total"),tasks:new Map},this._frameTaskTimes=new Map,this._budget=new F,this.state=1,this._tasks=new Array,this._runQueue=new Array,this._load=0,this._forceTask=!1,this._debug=!1,this._debugHandle=d(()=>R.SCHEDULER_LOG_SLOW_TASKS,e=>this._debug=e,T);for(const e of Object.keys(p))this.performanceInfo.tasks.set(p[e],new n(String(p[e])))}destroy(){this._tasks.forEach(e=>e.remove()),this._tasks.length=0,this._runQueue.length=0,i(this._debugHandle),this._microTaskQueued=!1,this._updatingChanged()}taskRunningChanged(e){this._updatingChanged(),e&&this._budget.remaining>0&&!this._microTaskQueued&&(this._microTaskQueued=!0,queueMicrotask(()=>{this._microTaskQueued&&(this._microTaskQueued=!1,this._budget.remaining>0&&this._schedule()&&this._runFrame())}))}registerTask(e,t){const s=new y(this,e,t);return this._tasks.push(s),this._updatingChanged(),this.performanceInfo.tasks.has(e)||this.performanceInfo.tasks.set(e,new n(e)),s}get load(){return this._load}frame(e){if(this._startFrameTaskTimes(),this._updateBudget(e)){const e=this._budget.now();this._runFrame();const t=this._budget.now();this._recordFrameTaskTimes(t-e);const s=2===this.state?"Idle":1===this.state?"Interacting":"Animating";return a(`${s} Frame Tasks`,e,t,"Maps SDK","Scheduling"),!0}return this._recordFrameTaskTimes(0),!1}_updateBudget(e){this._test&&(this._test.usedBudget=0),++this._frameNumber;let t=N,s=e.frameDuration,r=S;switch(this.state){case 2:t=l(0),s=l(Math.max(P,e.frameDuration)),r=U;break;case 1:s=l(Math.max(b,e.frameDuration))}return s=l(s-e.elapsedFrameTime-t),2!==this.state&&s<S&&!this._forceTask?(this._forceTask=!0,!1):(s=l(Math.max(s,r)),this._budget.reset(s),this._updateLoad(),this._schedule())}_runFrame(){this._forceTask=!1,this._microTaskQueued=!1,this._run(),this._test&&(this._test.usedBudget=this._budget.elapsed)}stopFrame(){this._budget.reset(l(0)),this._budget.madeProgress()}removeTask(t){e(this._tasks,t),e(this._runQueue,t),this._updatingChanged()}_updateTask(e){this._tasks.forEach(t=>{t.name===e&&t.setPriority(e)})}_getState(e){if(this._runQueue.some(t=>t.name===e))return"s";let t="i";return this._tasks.forEach(s=>{s.name===e&&s.needsUpdate&&(s.schedulePriority<=1?t="r":"r"!==t&&(t="w"))}),t}_getRuntime(e){let t=0;return this._tasks.forEach(s=>{s.name===e&&(t+=s.runtime)}),t}_resetRuntimes(){this._tasks.forEach(e=>e.runtime=0)}_getRunning(){const e=new Map;if(this._tasks.forEach(t=>{t.needsUpdate&&e.set(t.name,(e.get(t.name)||0)+1)}),0===e.size)return null;let t="";return e.forEach((e,s)=>{t+=e>1?` ${e}x ${s}`:` ${s}`}),t}_updateLoad(){const e=this._tasks.reduce((e,t)=>t.needsUpdate?++e:e,0);this._load=this._load*k+e*(1-k)}_schedule(){for(t(this._runQueue,e=>!!e.needsUpdate||(e.schedulePriority=e.basePriority,!1)),this._tasks.forEach(e=>{e.basePriority===L&&e.needsUpdate&&!this._runQueue.includes(e)&&e.blockFrame!==this._frameNumber&&this._runQueue.unshift(e)});0===this._runQueue.length;){let e=!1,t=0;if(this._tasks.forEach(s=>{if(s.needsUpdate&&0!==s.schedulePriority&&s.basePriority!==L&&s.blockFrame!==this._frameNumber)if(e=!0,t=Math.max(t,s.basePriority),1===s.schedulePriority)s.schedulePriority=0,this._runQueue.push(s);else--s.schedulePriority}),!e)return this._updatingChanged(),!1}return this._updatingChanged(),!0}_run(){do{for(;this._runQueue.length>0;){const t=this._budget.now(),s=this._runQueue.pop();this._budget.resetProgress();try{s.task.runTask(this._budget)===I&&(s.blockFrame=this._frameNumber)}catch(e){r.getLogger("esri.views.support.Scheduler").error(`Exception in task "${s.name}"`,e),s.blockFrame=this._frameNumber}!this._budget.hasProgressed&&s.blockFrame!==this._frameNumber&&s.needsUpdate&&(s.name,p.I3S,s.blockFrame=this._frameNumber),s.schedulePriority=s.basePriority;const i=this._budget.now(),n=i-t;if(a(`${s.name}`,t,i,"Maps SDK","Scheduling"),s.runtime+=n,this._frameTaskTimes.set(s.priority,this._frameTaskTimes.get(s.priority)+n),this._budget.remaining<=0)return void this._updatingChanged()}}while(this._schedule());this._updatingChanged()}_startFrameTaskTimes(){for(const e of Object.keys(p))this._frameTaskTimes.set(p[e],0)}_recordFrameTaskTimes(e){this._frameTaskTimes.forEach((e,t)=>this.performanceInfo.tasks.get(t).push(e)),this.performanceInfo.total.push(e)}get test(){return this._test}}class y{get task(){return this._task.value}get readyToRun(){return this._queue.readyToRun}get updating(){return this._queue.updating}constructor(e,t,r){this._scheduler=e,this.name=t,this.blockFrame=0,this.runtime=0,this._queue=new g,this._handles=new s,this._basePriority=O(t),this.schedulePriority=this._basePriority,this._task=m(null!=r?r:this._queue),this._handles.add(c(()=>this.task.readyToRun,t=>e.taskRunningChanged(t)))}remove(){this.processQueue(w),this._scheduler.removeTask(this),this.schedule=G.schedule,this.reschedule=G.reschedule,this.scheduleGenerator=G.scheduleGenerator,this._handles.destroy()}[Symbol.dispose](){this.remove()}get basePriority(){return this._basePriority}setPriority(e){if(this.name===e)return;this.name=e;const t=O(e);this._basePriority!==L&&0===this.schedulePriority||(this.schedulePriority=t),this._basePriority=t}get priority(){return this.name}set priority(e){this.setPriority(e)}get needsUpdate(){return this.readyToRun||!this.task.destroyed&&this.task.readyToRun}schedule(e,t,s){return this._queue.push(e,t,s)}reschedule(e,t,s){return this._queue.unshift(e,t,s)}scheduleGenerator(e,t,s){return this._queue.pushGenerator(e,t,s)}processQueue(e){return this._queue.runTask(e)}}class F{constructor(){this._begin=performance?.now()??0,this._budget=0,this._done=!1,this._progressed=!1,this._enabled=!0}run(e){return!this.done&&(!0===e()&&this.madeProgress(),!0)}get done(){return this._done}get budget(){return this._budget}madeProgress(){return this._progressed=!0,this._done=this.elapsed>=this._budget&&this._enabled,this._done}get enabled(){return this._enabled}set enabled(e){this._enabled=e}reset(e){this._begin=this.now(),this._budget=e,this.resetProgress()}get remaining(){return Math.max(this._budget-this.elapsed,0)}now(){return performance.now()}get elapsed(){return this.now()-this._begin}resetProgress(){this._progressed=!1,this._done=!1}get hasProgressed(){return this._progressed}}const w=new F;function D(e){const t=new F;return t.reset(e),t}w.enabled=!1;class M{remove(){}[Symbol.dispose](){this.remove()}processQueue(){}schedule(e,t,s){try{if(u(t)){const e=_();return s?Promise.resolve(s(e)):Promise.reject(e)}return o(e(w))}catch(r){return Promise.reject(r)}}reschedule(e,t,s){return this.schedule(e,t,s)}async scheduleGenerator(e,t,s){if(u(t)){const e=_();if(s)return s(e);throw e}const r=e(w);for(;;){const e=r.next(w),i=h(e)?await e:e;if(u(t)){const e=_();if(s){const t=s(e),i=r.return(null);return h(i)&&await E(i),t}const t=r.throw(e);throw h(t)&&await E(t),e}if(i.done)return i.value}}}const G=new M;export{G as ImmediateTask,p as TaskPriority,O as getTaskPriority,D as makeBudget,A as newScheduler,w as noBudget,f as taskPriorities};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5404],{95404(e,r,t){t.d(r,{computeObjectLayerResourceSize:()=>c}),t(11254);var i=t(49186),o=t(66344),n=t(51850),s=t(70328),l=t(8887);let u=new o.q(50);async function c(e,r=null){if(!e.isPrimitive){const r=e.resource?.href;if(!r)throw new i.A("symbol:invalid-resource","The symbol does not have a valid resource");const o=u.get(r);if(null!=o)return o;const{fetch:l}=await Promise.all([t.e(6860),t.e(7005),t.e(5530),t.e(5907)]).then(()=>t(55907)),c=await l(r,{disableTextures:!0,spherical:!0}),a=(0,s.Ej)(c.referenceBoundingBox,(0,n.vt)());return u.put(r,a),a}if(!e.resource?.primitive)throw new i.A("symbol:invalid-resource","The symbol does not have a valid resource");const o=(0,s.vt)((0,l.Fq)(e.resource.primitive));if(null!=r)for(let e=0;e<o.length;e++)o[e]*=r;return(0,s.Ej)(o,(0,n.vt)())}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2772,8325],{80200(t,e,n){n.d(e,{d:()=>h});const s={Base64:0,Hex:1,String:2,Raw:3};function i(t,e){const n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function r(t,e,n,s,r,o){return i(function(t,e){return t<<e|t>>>32-e}(i(i(e,t),i(s,o)),r),n)}function o(t,e,n,s,i,o,c){return r(e&n|~e&s,t,e,i,o,c)}function c(t,e,n,s,i,o,c){return r(e&s|n&~s,t,e,i,o,c)}function a(t,e,n,s,i,o,c){return r(e^n^s,t,e,i,o,c)}function l(t,e,n,s,i,o,c){return r(n^(e|~s),t,e,i,o,c)}function u(t,e){t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;let n=1732584193,s=-271733879,r=-1732584194,u=271733878;for(let e=0;e<t.length;e+=16){const h=n,p=s,f=r,m=u;n=o(n,s,r,u,t[e],7,-680876936),u=o(u,n,s,r,t[e+1],12,-389564586),r=o(r,u,n,s,t[e+2],17,606105819),s=o(s,r,u,n,t[e+3],22,-1044525330),n=o(n,s,r,u,t[e+4],7,-176418897),u=o(u,n,s,r,t[e+5],12,1200080426),r=o(r,u,n,s,t[e+6],17,-1473231341),s=o(s,r,u,n,t[e+7],22,-45705983),n=o(n,s,r,u,t[e+8],7,1770035416),u=o(u,n,s,r,t[e+9],12,-1958414417),r=o(r,u,n,s,t[e+10],17,-42063),s=o(s,r,u,n,t[e+11],22,-1990404162),n=o(n,s,r,u,t[e+12],7,1804603682),u=o(u,n,s,r,t[e+13],12,-40341101),r=o(r,u,n,s,t[e+14],17,-1502002290),s=o(s,r,u,n,t[e+15],22,1236535329),n=c(n,s,r,u,t[e+1],5,-165796510),u=c(u,n,s,r,t[e+6],9,-1069501632),r=c(r,u,n,s,t[e+11],14,643717713),s=c(s,r,u,n,t[e],20,-373897302),n=c(n,s,r,u,t[e+5],5,-701558691),u=c(u,n,s,r,t[e+10],9,38016083),r=c(r,u,n,s,t[e+15],14,-660478335),s=c(s,r,u,n,t[e+4],20,-405537848),n=c(n,s,r,u,t[e+9],5,568446438),u=c(u,n,s,r,t[e+14],9,-1019803690),r=c(r,u,n,s,t[e+3],14,-187363961),s=c(s,r,u,n,t[e+8],20,1163531501),n=c(n,s,r,u,t[e+13],5,-1444681467),u=c(u,n,s,r,t[e+2],9,-51403784),r=c(r,u,n,s,t[e+7],14,1735328473),s=c(s,r,u,n,t[e+12],20,-1926607734),n=a(n,s,r,u,t[e+5],4,-378558),u=a(u,n,s,r,t[e+8],11,-2022574463),r=a(r,u,n,s,t[e+11],16,1839030562),s=a(s,r,u,n,t[e+14],23,-35309556),n=a(n,s,r,u,t[e+1],4,-1530992060),u=a(u,n,s,r,t[e+4],11,1272893353),r=a(r,u,n,s,t[e+7],16,-155497632),s=a(s,r,u,n,t[e+10],23,-1094730640),n=a(n,s,r,u,t[e+13],4,681279174),u=a(u,n,s,r,t[e],11,-358537222),r=a(r,u,n,s,t[e+3],16,-722521979),s=a(s,r,u,n,t[e+6],23,76029189),n=a(n,s,r,u,t[e+9],4,-640364487),u=a(u,n,s,r,t[e+12],11,-421815835),r=a(r,u,n,s,t[e+15],16,530742520),s=a(s,r,u,n,t[e+2],23,-995338651),n=l(n,s,r,u,t[e],6,-198630844),u=l(u,n,s,r,t[e+7],10,1126891415),r=l(r,u,n,s,t[e+14],15,-1416354905),s=l(s,r,u,n,t[e+5],21,-57434055),n=l(n,s,r,u,t[e+12],6,1700485571),u=l(u,n,s,r,t[e+3],10,-1894986606),r=l(r,u,n,s,t[e+10],15,-1051523),s=l(s,r,u,n,t[e+1],21,-2054922799),n=l(n,s,r,u,t[e+8],6,1873313359),u=l(u,n,s,r,t[e+15],10,-30611744),r=l(r,u,n,s,t[e+6],15,-1560198380),s=l(s,r,u,n,t[e+13],21,1309151649),n=l(n,s,r,u,t[e+4],6,-145523070),u=l(u,n,s,r,t[e+11],10,-1120210379),r=l(r,u,n,s,t[e+2],15,718787259),s=l(s,r,u,n,t[e+9],21,-343485551),n=i(n,h),s=i(s,p),r=i(r,f),u=i(u,m)}return[n,s,r,u]}function h(t,e=s.Hex){const n=e||s.Base64,i=u(function(t){const e=[];for(let n=0,s=8*t.length;n<s;n+=8)e[n>>5]|=(255&t.charCodeAt(n/8))<<n%32;return e}(t),8*t.length);switch(n){case s.Raw:return i;case s.Hex:return function(t){const e="0123456789abcdef",n=[];for(let s=0,i=4*t.length;s<i;s++)n.push(e.charAt(t[s>>2]>>s%4*8+4&15)+e.charAt(t[s>>2]>>s%4*8&15));return n.join("")}(i);case s.String:return function(t){const e=[];for(let n=0,s=32*t.length;n<s;n+=8)e.push(String.fromCharCode(t[n>>5]>>>n%32&255));return e.join("")}(i);case s.Base64:return function(t){const e=[];for(let n=0,s=4*t.length;n<s;n+=3){const s=(t[n>>2]>>n%4*8&255)<<16|(t[n+1>>2]>>(n+1)%4*8&255)<<8|t[n+2>>2]>>(n+2)%4*8&255;for(let i=0;i<4;i++)8*n+6*i>32*t.length?e.push("="):e.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(s>>6*(3-i)&63))}return e.join("")}(i)}}n.d(e,["T",0,s])},87024(t,e,n){n.d(e,{P:()=>f});var s=n(49186),i=n(80200),r=n(76553),o=n(84952),c=n(13069),a=n(96156),l=n(35666),u=n(10107),h=n(85648),p=n(97159);function f(t){const e=t?.origins??[void 0];return(n,s)=>{const i=function(t,e,n){if("resource"===t?.type)return function(t,e,n){const s=(0,a.z4)(e,n);return{type:String,read:(t,e,n)=>{const i=(0,p.r)(t,e,n);return s.type===String?i:"function"==typeof s.type?new s.type({url:i}):void 0},write:{isRequired:s.json?.write?.isRequired,writer(e,i,c,a){if(!a?.resources)return"string"==typeof e?void(i[c]=(0,p.t)(e,a)):void(i[c]=e.write({},a));const u=function(t){return null==t?null:"string"==typeof t?t:t.url}(e),f=(0,p.t)(u,{...a,verifyItemRelativeUrls:a?.verifyItemRelativeUrls?{writtenUrls:a.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},1),y=s.type!==String&&(!(0,r.H)(this)||a?.origin&&this.originIdOf(n)>(0,l.aB)(a.origin)),_={object:this,propertyName:n,value:e,targetUrl:f,dest:i,targetPropertyName:c,context:a,params:t};a?.portalItem&&f&&!(0,o.oP)(f)?y&&t?.contentAddressed?m(_):y?function(t){const{context:e,targetUrl:n,params:s,value:i,dest:r,targetPropertyName:c}=t;if(!e.portalItem)return;const a=e.portalItem.resourceFromPath(n),l=g(i,n,e),u=(0,h.n)(l),p=(0,o.Zo)(a.path),f=s?.compress??!1;u===p?(e.resources&&d({...t,resource:a,content:l,compress:f,updates:e.resources.toUpdate}),r[c]=n):m(t)}(_):function({context:t,targetUrl:e,dest:n,targetPropertyName:s}){t.portalItem&&t.resources&&(t.resources.toKeep.push({resource:t.portalItem.resourceFromPath(e),compress:!1}),n[s]=e)}(_):a?.portalItem&&(null==f||null!=(0,p.i)(f)||(0,o.w8)(f)||y)?m(_):i[c]=f}}}}(t,e,n);switch(t?.type??"other"){case"other":return{read:!0,write:!0};case"url":{const{read:t,write:e}=p.b;return{read:t,write:e}}}}(t,n,s);for(const t of e){const e=(0,u.rM)(n,t,s);for(const t in i)e[t]=i[t]}}}function m(t){const{targetUrl:e,params:n,value:r,context:a,dest:l,targetPropertyName:u}=t;if(!a.portalItem)return;const f=(0,p.p)(e),m=g(r,e,a);if(n?.contentAddressed&&"json"!==m.type)return void a.messages?.push(new s.A("persistable:contentAddressingUnsupported",`Property "${u}" is trying to serializing a resource with content of type ${m.type} with content addressing. Content addressing is only supported for json resources.`,{content:m}));const y=n?.contentAddressed&&"json"===m.type?(0,i.d)(m.jsonString):f?.filename??(0,c.lk)(),_=(0,o.fj)(n?.prefix??f?.prefix,y),x=`${_}.${(0,h.n)(m)}`;if(n?.contentAddressed&&a.resources&&"json"===m.type){const t=a.resources.toKeep.find(({resource:t})=>t.path===x)??a.resources.toAdd.find(({resource:t})=>t.path===x);if(t)return void(l[u]=t.resource.itemRelativeUrl)}const v=a.portalItem.resourceFromPath(x);(0,o.w8)(e)&&a.resources&&a.resources.pendingOperations.push((0,o.tk)(e).then(t=>{v.path=`${_}.${(0,h.n)({type:"blob",blob:t})}`,l[u]=v.itemRelativeUrl}).catch(()=>{}));const w=n?.compress??!1;a.resources&&d({...t,resource:v,content:m,compress:w,updates:a.resources.toAdd}),l[u]=v.itemRelativeUrl}function d({object:t,propertyName:e,updates:n,resource:s,content:i,compress:r}){n.push({resource:s,content:i,compress:r,finish:n=>{!function(t,e,n){"string"==typeof t[e]?t[e]=n.url:t[e].url=n.url}(t,e,n)}})}function g(t,e,n){return"string"==typeof t?{type:"url",url:e}:{type:"json",jsonString:JSON.stringify(t.toJSON(n))}}},13069(t,e,n){n.d(e,{AG:()=>c,lk:()=>i,vD:()=>o,yS:()=>r});const s="randomUUID"in crypto;function i(){if(s)return crypto.randomUUID();const t=crypto.getRandomValues(new Uint16Array(8));t[3]=4095&t[3]|16384,t[4]=16383&t[4]|32768;const e=e=>t[e].toString(16).padStart(4,"0");return e(0)+e(1)+"-"+e(2)+"-"+e(3)+"-"+e(4)+"-"+e(5)+e(6)+e(7)}function r(){return`{${i().toUpperCase()}}`}function o(){return`{${i()}}`}function c(t){const e=t.toUpperCase();return t.startsWith("{")?e:`{${e}}`}},83027(t,e,n){const s=n(29953).ho;n.d(e,["h",0,s])},35982(t,e,n){n.d(e,{B:()=>u});var s=n(4576),i=n(71511),r=n(36563),o=n(53966),c=n(97768),a=n(17676),l=n(83027);class u{constructor(t,e,n,s,i={}){this._mainMethod=e,this._transferLists=n,this._listeners=[],this._onClientConnectedHandle=null,this._destroyed=!1,this._promise=(0,l.h)(t,{...i,schedule:s}).then(t=>{null!=this._thread||this._destroyed?t.close():(this._thread=t,this._promise=null,this._onClientConnectedHandle=this._thread.onClientConnected(t=>{i.hasInitialize&&t.invoke("initialize",{}).catch(()=>{});for(const e of this._listeners)this._connectListenerToClient(e,t);this._onClientConnected(t)}))}),this._promise.catch(e=>o.A.getLogger("esri.core.workers.WorkerHandle").error(`Failed to initialize ${t} worker: ${e}`))}on(t,e){const n=new h(t,e);return this._listeners.push(n),this._connectListener(n),(0,r.hA)(()=>{(0,s.TF)(this._listeners,n),n.destroy()})}[Symbol.dispose](){this.destroy()}destroy(){this._onClientConnectedHandle=(0,c.xt)(this._onClientConnectedHandle),this._thread&&(this._thread.close(),this._thread=null),this._promise=null;for(const t of this._listeners)t.destroy();this._listeners.length=0,this._transferLists={},this._destroyed=!0}invoke(t,e,n){return this.invokeMethod(this._mainMethod,t,e,n)}invokeMethod(t,e,n,s){if(this._thread){const i=this._transferLists[t],r=i?i(e):[];return this._thread.invoke(t,e,{transferList:r,signal:n,jobPriority:s})}return this._promise?this._promise.then(()=>((0,a.Te)(n),this.invokeMethod(t,e,n))):Promise.reject((0,a.NK)())}broadcast(t,e){return this._thread?Promise.all(this._thread.broadcast(e,t)).then(p):this._promise?this._promise.then(()=>this.broadcast(t,e)):Promise.reject((0,a.NK)())}get promise(){return this._promise}_onClientConnected(t){}_connectListener(t){this._thread&&t.add(this._thread.on(t.eventName,t.callback))}_connectListenerToClient(t,e){t.add(e.on(t.eventName,t.callback))}}class h{constructor(t,e){this.eventName=t,this.callback=e,this._handles=new i.A}add(t){this._handles.add(t)}destroy(){this._handles.destroy()}}function p(){}},80754(t,e,n){n.d(e,{kS:()=>l,kd:()=>a});var s=n(82799),i=n(16930),r=n(60408),o=n(52006);const c={102100:{maxX:20037508.342788905,minX:-20037508.342788905,plus180Line:new s.A({paths:[[[20037508.342788905,-20037508.342788905],[20037508.342788905,20037508.342788905]]],spatialReference:i.A.WebMercator}),minus180Line:new s.A({paths:[[[-20037508.342788905,-20037508.342788905],[-20037508.342788905,20037508.342788905]]],spatialReference:i.A.WebMercator})},4326:{maxX:180,minX:-180,plus180Line:new s.A({paths:[[[180,-180],[180,180]]],spatialReference:i.A.WGS84}),minus180Line:new s.A({paths:[[[-180,-180],[-180,180]]],spatialReference:i.A.WGS84})}};function a(t,e){return Math.ceil((t-e)/(2*e))}function l(t,e){if((0,o.Ed)(t))for(const n of function(t){return(0,r.Bi)(t)?t.curveRings:t.curvePaths}(t))for(const t of n){if((0,o.aO)(t)){const[n,s]=t.c;n[0]+=e,s[0]+=e;continue}if((0,o.FG)(t)){const[n,s]=t.a;n[0]+=e,s[0]+=e;continue}if((0,o.n1)(t)){const[n,s,i]=t.b;n[0]+=e,s[0]+=e,i[0]+=e;continue}t[0]+=e}for(const n of function(t){return(0,r.Bi)(t)?t.rings:t.paths}(t))for(const t of n)t[0]+=e;return t}n.d(e,["j7",0,c])},89056(t,e,n){n.d(e,{b3:()=>h,jZ:()=>u});var s=n(12195),i=n(19419),r=n(537),o=n(95108),c=n(60408),a=n(80754),l=n(21325);function u(t){return p(t,!0)}function h(t){return p(t,!1)}function p(t,e){if(null==t)return null;const n=t.spatialReference,i=(0,l.Vp)(n),o=(0,s.W)(t)?t.toJSON():t;if(!i)return o;const u=(0,l.K8)(n)?102100:4326,h=a.j7[u].maxX,p=a.j7[u].minX;if((0,c.fT)(o))return m(o,h,p);if((0,c.U9)(o))return o.points=o.points.map(t=>m(t,h,p)),o;if((0,c.ZC)(o))return f(o,i);if((0,c.Bi)(o)||(0,c.Rg)(o)){const t=(0,r.Rg)(v,o),n={xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]},s=(0,a.kd)(n.xmin,p)*(2*h),i=0===s?o:(0,a.kS)(o,s);return n.xmin+=s,n.xmax+=s,n.xmax>h?_(i,h,e):n.xmin<p?_(i,p,e):i}return o}function f(t,e){if(!e)return t;const n=function(t,e){const n=[],{ymin:s,ymax:i,xmin:r,xmax:o}=t,c=t.xmax-t.xmin,[a,l]=e.valid,{x:u,frameId:h}=d(t.xmin,e),{x:p,frameId:f}=d(t.xmax,e),m=u===p&&c>0;if(c>2*l){const t={xmin:r<o?u:p,ymin:s,xmax:l,ymax:i},e={xmin:a,ymin:s,xmax:r<o?p:u,ymax:i},c={xmin:0,ymin:s,xmax:l,ymax:i},m={xmin:a,ymin:s,xmax:0,ymax:i},d=[],y=[];g(t,c)&&d.push(h),g(t,m)&&y.push(h),g(e,c)&&d.push(f),g(e,m)&&y.push(f);for(let t=h+1;t<f;t++)d.push(t),y.push(t);n.push(new x(t,[h]),new x(e,[f]),new x(c,d),new x(m,y))}else u>p||m?n.push(new x({xmin:u,ymin:s,xmax:l,ymax:i},[h]),new x({xmin:a,ymin:s,xmax:p,ymax:i},[f])):n.push(new x({xmin:u,ymin:s,xmax:p,ymax:i},[h]));return n}(t,e).map(t=>t.extent);return n.length<2?n[0]||t:n.length>2?(t.xmin=e.valid[0],t.xmax=e.valid[1],t):{rings:n.map(t=>[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]])}}function m(t,e,n){if(Array.isArray(t)){const s=t[0];if(s>e){const n=(0,a.kd)(s,e);t[0]=s+n*(-2*e)}else if(s<n){const e=(0,a.kd)(s,n);t[0]=s+e*(-2*n)}}else{const s=t.x;if(s>e){const n=(0,a.kd)(s,e);t.x+=n*(-2*e)}else if(s<n){const e=(0,a.kd)(s,n);t.x+=e*(-2*n)}}return t}function d(t,e){const[n,s]=e.valid,i=2*s;let r,o=0;return t>s?(r=Math.ceil(Math.abs(t-s)/i),t-=r*i,o=r):t<n&&(r=Math.ceil(Math.abs(t-n)/i),t+=r*i,o=-r),{x:t,frameId:o}}function g(t,e){const{xmin:n,ymin:s,xmax:i,ymax:r}=e;return y(t,n,s)&&y(t,n,r)&&y(t,i,r)&&y(t,i,s)}function y(t,e,n){return e>=t.xmin&&e<=t.xmax&&n>=t.ymin&&n<=t.ymax}function _(t,e,n=!0){const s=!(0,c.Rg)(t);if(s&&(0,o.m3)(t),n)return(new w).cut(t,e);const i=s?t.rings:t.paths,r=s?4:2,a=i.length,l=-2*e;for(let t=0;t<a;t++){const e=i[t];if(e&&e.length>=r){const t=[];for(const[n,...s]of e)t.push([n+l,...s]);i.push(t)}}return s?t.rings=i:t.paths=i,t}class x{constructor(t,e){this.extent=t,this.frameIds=e}}const v=(0,i.vt)();class w{constructor(){this._linesIn=[],this._linesOut=[]}cut(t,e){let n;if(this._xCut=e,t.rings)this._closed=!0,n=t.rings,this._minPts=4;else{if(!t.paths)return null;this._closed=!1,n=t.paths,this._minPts=2}for(const t of n){if(!t||t.length<this._minPts)continue;let e=!0;for(const n of t)e?(this.moveTo(n),e=!1):this.lineTo(n);this._closed&&this.close()}this._pushLineIn(),this._pushLineOut(),n=[];for(const t of this._linesIn)t&&t.length>=this._minPts&&n.push(t);const s=-2*this._xCut;for(const t of this._linesOut)if(t&&t.length>=this._minPts){for(const e of t)e[0]+=s;n.push(t)}return this._closed?t.rings=n:t.paths=n,t}moveTo(t){this._pushLineIn(),this._pushLineOut(),this._prevSide=this._side(t[0]),this._moveTo(t,this._prevSide),this._prevPt=t,this._firstPt=t}lineTo(t){const e=this._side(t[0]);if(e*this._prevSide===-1){const n=this._intersect(this._prevPt,t);this._lineTo(n,0),this._prevSide=0,this._lineTo(t,e)}else this._lineTo(t,e);this._prevSide=e,this._prevPt=t}close(){const t=this._firstPt,e=this._prevPt;t[0]===e[0]&&t[1]===e[1]||this.lineTo(t),this._checkClosingPt(this._lineIn),this._checkClosingPt(this._lineOut)}_moveTo(t,e){this._closed?(this._lineIn.push(C(t,e<=0?t[0]:this._xCut)),this._lineOut.push(C(t,e>=0?t[0]:this._xCut))):(e<=0&&this._lineIn.push(t.slice()),e>=0&&this._lineOut.push(t.slice()))}_lineTo(t,e){this._closed?(S(this._lineIn,t,e<=0?t[0]:this._xCut),S(this._lineOut,t,e>=0?t[0]:this._xCut)):e<0?(0===this._prevSide&&this._pushLineOut(),this._lineIn.push(t.slice())):e>0?(0===this._prevSide&&this._pushLineIn(),this._lineOut.push(t.slice())):this._prevSide<0?(this._lineIn.push(t.slice()),this._lineOut.push(t.slice())):this._prevSide>0&&(this._lineOut.push(t.slice()),this._lineIn.push(t.slice()))}_checkClosingPt(t){const e=t.length;e>3&&t[0][0]===this._xCut&&t[e-2][0]===this._xCut&&t[1][0]===this._xCut&&(t[0]=t[e-2].slice(),t.pop())}_side(t){return t<this._xCut?-1:t>this._xCut?1:0}_intersect(t,e){const n=(this._xCut-t[0])/(e[0]-t[0]),s=[this._xCut,t[1]+n*(e[1]-t[1])],i=Math.min(t.length,e.length);for(let r=2;r<i;r++)s.push(t[r]+n*(e[r]-t[r]));return s}_pushLineIn(){this._lineIn&&this._lineIn.length>=this._minPts&&this._linesIn.push(this._lineIn),this._lineIn=[]}_pushLineOut(){this._lineOut&&this._lineOut.length>=this._minPts&&this._linesOut.push(this._lineOut),this._lineOut=[]}}function C(t,e){const n=t.slice();return n[0]=e,n}function S(t,e,n){const s=t.length;s>1&&t[s-1][0]===n&&t[s-2][0]===n?t[s-1]=C(e,n):t.push(C(e,n))}},58325(t,e,n){n.d(e,{A:()=>S});var s,i=n(32198),r=n(11254),o=n(7762),c=n(25482),a=n(84952),l=n(91429),u=n(4718),h=n(67076),p=n(87024),f=n(39829),m=n(99917),d=n(16930),g=n(21325),y=n(88546),_=n(72772),x=n(98697),v=n(43937);let w=s=class extends c.o{constructor(t){super(t),this.geometry=null,this.type="clip"}writeGeometry(t,e,n,s){if(this._needWGS84Conversion(s))this._doWGS84Conversion(e,n,s);else if(s.layer?.spatialReference&&!s.layer.spatialReference.equals(this.geometry.spatialReference)){if(!(0,m.canProjectWithoutEngine)(t.spatialReference,s.layer.spatialReference))return void(s?.messages&&s.messages.push(new h.A("scenemodification:unsupported","Scene modifications with incompatible spatial references are not supported",{modification:this,spatialReference:s.layer.spatialReference,context:s})));const i=new f.A;(0,m.projectPolygon)(t,i,s.layer.spatialReference),e[n]=i.toJSON(s)}else e[n]=t.toJSON(s)}_needWGS84Conversion(t){if("integrated-mesh-3dtiles"===t.layer?.type){const e=t.layer;return!e.esriCrsSpatialReference||!(0,g.aI)(e.esriCrsSpatialReference,this.geometry.spatialReference)}return!1}_doWGS84Conversion(t,e,n){let s=!0;if((0,_.isInitialized)()){const i=(0,x.Ir)(null,[this],d.A.WGS84);if(i.length>1){const r=(0,_.switchMeshModificationPolygonVCSSync)({modifications:i,inVCS:5773});if(r.success&&r.modifications){const i=[this.clone()];(0,x.H1)(r.modifications,i),1===i.length&&i[0].geometry&&(i[0].geometry.spatialReference=y.Zx,t[e]=i[0].geometry.toJSON(n),s=!1)}}}s&&n?.messages&&n.messages.push(new h.A("scenemodification:unsupported","Scene modifications with incompatible spatial references are not supported",{modification:this,spatialReference:this.geometry.spatialReference,context:n}))}clone(){return new s({geometry:(0,u.o8)(this.geometry),type:this.type})}};var C;(0,i.Cg)([(0,l.MZ)({type:f.A}),(0,p.P)()],w.prototype,"geometry",void 0),(0,i.Cg)([(0,v.K)(["web-scene","portal-item"],"geometry")],w.prototype,"writeGeometry",null),(0,i.Cg)([(0,l.MZ)({type:["clip","mask","replace"],nonNullable:!0}),(0,p.P)()],w.prototype,"type",void 0),w=s=(0,i.Cg)([(0,l.$K)("esri.layers.support.SceneModification")],w);let S=C=class extends((0,c.T)(o.A.ofType(w))){constructor(t){super(t),this.url=null}clone(){return new C({url:this.url,items:this.items.map(t=>t.clone())})}toJSON(t){return this.toArray().map(e=>e.toJSON(t)).filter(t=>!!t.geometry)}static fromJSON(t,e){const n=new C;for(const s of t)n.add(w.fromJSON(s,e));return n}static async fromUrl(t,e,n,s=!1){const i={url:(0,a.An)(t),origin:"service"},o=await(0,r.A)(t,{responseType:"json",signal:n?.signal}),c=e.toJSON(),l=[];for(const t of o.data){let e=c;s&&t.geometry.spatialReference&&(e=t.geometry.spatialReference),l.push(w.fromJSON({...t,geometry:{spatialReference:e,...t.geometry}},i))}return new C({url:t,items:l})}};(0,i.Cg)([(0,l.MZ)({type:String})],S.prototype,"url",void 0),S=C=(0,i.Cg)([(0,l.$K)("esri.layers.support.SceneModifications")],S)},85648(t,e,n){n.d(e,{n:()=>i});var s=n(84952);function i(t){return r[function(t){return"json"===t.type?"application/json":"blob"===t.type?t.blob.type:function(t){const e=(0,s.Zo)(t);return a[e]||o}(t.url)}(t)]||c}const r={},o="text/plain",c=r[o],a={png:"image/png",jpeg:"image/jpeg",jpg:"image/jpg",bmp:"image/bmp",gif:"image/gif",json:"application/json",txt:"text/plain",xml:"application/xml",svg:"image/svg+xml",zip:"application/zip",pbf:"application/vnd.mapbox-vector-tile",gz:"application/gzip","bin.gz":"application/octet-stream"};for(const t in a)r[a[t]]=t},72772(t,e,n){n.r(e),n.d(e,{addSpatialReferenceInfo:()=>a,destroyWasm:()=>u,initialize:()=>h,isInitialized:()=>p,process:()=>c,switchMeshModificationPolygonVCSSync:()=>l});var s=n(2741);function i(t){return(0,s.s)(`esri/libs/lyr3d/${t}`)}let r,o=null;async function c(t){await h();const e={status:1,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[]};if(t.inputs.length<1)return{result:e,transferList:[]};const n={ptrs:[],sizes:[]};for(const e of t.inputs){const t=o._malloc(e.byteLength);new Uint8Array(o.HEAPU8.buffer,t,e.byteLength).set(new Uint8Array(e)),n.ptrs.push(t),n.sizes.push(e.byteLength)}const s=o.process(t.jobDescJson,t.id,n,t.isMissingResourceCase);e.status=s.status,e.missingInputUrls=s.missingInputUrls.slice();const i=0===s.status&&s.data,r=2===e.status&&e.missingInputUrls.length>0;e.jobDescJson=s.jobDescJson.slice(),e.error=s.error.slice(),i?e.data=s.data.slice():r&&(e.originalInputs=t.inputs.slice());for(let t=0;t<n.ptrs.length;++t)o._free(n.ptrs[t]);const c=[];if(i)c.push(e.data.buffer);else if(r)for(const e of t.inputs)c.push(e);return{result:e,transferList:c}}async function a(t){await h(),o.add_spatial_reference_info(t.sr,t.isGCS,t.toMetersXY,t.toMetersZ)}function l(t){if(!o)return{success:!1,modifications:null};const e=o._malloc(8*t.modifications.length),n=new Float64Array(o.HEAPF64.buffer,e,t.modifications.length);n.set(t.modifications);const s=o.switch_mesh_modification_polygon_vcs(e,t.modifications.length,t.inVCS);let i=null;return s&&(i=n.slice()),o._free(e),{success:s,modifications:i}}function u(){o&&(o.uninitialize_lyr3d_worker_wasm(),o=null)}function h(){return p()?Promise.resolve():(r||(r=new Promise(t=>n.e(2343).then(()=>n(2343)).then(({default:e})=>{const n=e({locateFile:i,onRuntimeInitialized:()=>t(n)})})).catch(t=>{throw t}).then(t=>{o=t,o.initialize_lyr3d_worker_wasm(),r=null})),r)}function p(){return null!==o}},98697(t,e,n){n.d(e,{H1:()=>_,Ir:()=>d,_b:()=>h,sQ:()=>p});var s=n(53966),i=n(15142),r=n(51850),o=n(35982),c=n(39829),a=n(99917),l=n(27993),u=n(89056);class h{constructor(t,e,n,s,i,r){this.layout=t,this.interleavedVertexData=e,this.indices=n,this.hasColors=s,this.hasModifications=i,this.positionData=r}}class p{constructor(t,e,n,s,i,r,o,c,a){this.componentOffsets=t,this.featureIds=e,this.anchorIds=n,this.anchors=s,this.transformedGeometry=i,this.globalTrafo=r,this.obb=o,this.geometryMinElevation=c,this.geometryMaxElevation=a}}o.B;const f=new i.A({deallocator:null}),m=(0,r.vt)();function d(t,e,n,i=!1){f.clear();let r=1/0,o=1/0,l=-1/0,h=-1/0,p=!1;for(const t of e){const e="clip"===t.type?2:"mask"===t.type?1:0,m=t.geometry,d=m.spatialReference??n;if(d!==n&&!(0,a.canProjectWithoutEngine)(d,n)){s.A.getLogger("esri.views.3d.layers.SceneLayerWorkerHandle").warn("im-modification-projection-failed","Can't project modification polygon into layer spatial reference, ignoring modification",{polygon:m});continue}let _=m.rings;if(d!==n){const t=g(m.rings,d,n);if(null==t){s.A.getLogger("esri.views.3d.layers.SceneLayerWorkerHandle").warn("im-modification-projection-failed","Can't project modification polygon into layer spatial reference, ignoring modification",{polygon:m});continue}_=t}const x=_;if(i){const t=(0,u.jZ)(new c.A({rings:_,spatialReference:n}));null!=t&&(_=t.rings)}const v=1===x.length&&_.length>1?[..._.map(t=>[t]),x]:[_];if(v.some(t=>0===t.length||t.some(t=>t.length<3||t.some(t=>!y(t)))))s.A.getLogger("esri.views.3d.layers.SceneLayerWorkerHandle").warn("im-modification-invalid-polygon","Ignoring invalid modification polygon (empty ring, fewer than 3 vertices, or non-finite coordinates).",{polygon:m});else{p||=1===e;for(const t of v){f.push(e),f.push(t.length);for(const e of t){f.push(e.length);for(const t of e){const e=t[2]??0;f.push(t[0]),f.push(t[1]),f.push(e),r=Math.min(r,t[0]),o=Math.min(o,t[1]),l=Math.max(l,t[0]),h=Math.max(h,t[1])}}}}}if(null!=t)if(p){const e=1e-4;f.push(2),f.push(2),f.push(4),f.push(r-e),f.push(o-e),f.push(0),f.push(l+e),f.push(o-e),f.push(0),f.push(l+e),f.push(h+e),f.push(0),f.push(r-e),f.push(h+e),f.push(0),f.push(4),f.push(t[0]),f.push(t[1]),f.push(0),f.push(t[2]),f.push(t[1]),f.push(0),f.push(t[2]),f.push(t[3]),f.push(0),f.push(t[0]),f.push(t[3]),f.push(0)}else f.push(1),f.push(1),f.push(4),f.push(t[0]),f.push(t[1]),f.push(0),f.push(t[2]),f.push(t[1]),f.push(0),f.push(t[2]),f.push(t[3]),f.push(0),f.push(t[0]),f.push(t[3]),f.push(0);f.push(3);const m=new Float64Array(f.length);for(let t=0;t<f.length;++t)m[t]=f.at(t);return m}function g(t,e,n){const s=[];for(const i of t){const t=[];for(const s of i){if(!(0,l.F)(s,e,m,n)||!y(m))return null;t.push([m[0],m[1],m[2]])}s.push(t)}return s}function y(t){return Number.isFinite(t[0])&&Number.isFinite(t[1])&&(null==t[2]||Number.isFinite(t[2]))}function _(t,e){let n=0;for(const s of e){const e=s.geometry,i=e.rings.length,r=e.rings.some(t=>t.length<3);if(0!==i&&!r){n+=1,n+=1;for(let s=0;s<e.rings.length;++s){const i=e.rings[s];n+=1;for(let r=0;r<i.length;++r){const i=[t[n+0],t[n+1],t[n+2]];n+=3,e.setPoint(s,r,i)}}}}}}}]);
|