@arcgis/core 4.25.0-next.20221018 → 4.25.0-next.20221021
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/Basemap.d.ts +1 -1
- package/Camera.d.ts +1 -1
- package/Color.d.ts +1 -1
- package/Graphic.d.ts +1 -1
- package/Ground.d.ts +1 -1
- package/Map.d.ts +1 -1
- package/PopupTemplate.d.ts +1 -1
- package/README.md +158 -158
- package/TimeExtent.d.ts +1 -1
- package/TimeInterval.d.ts +1 -1
- package/Viewpoint.d.ts +1 -1
- package/WebMap.d.ts +1 -1
- package/WebMap.js +1 -1
- package/WebScene.d.ts +1 -1
- package/analysis/AreaMeasurementAnalysis.d.ts +1 -1
- package/analysis/DimensionAnalysis.d.ts +1 -1
- package/analysis/DimensionSimpleStyle.d.ts +1 -1
- package/analysis/DirectLineMeasurementAnalysis.d.ts +1 -1
- package/analysis/LengthDimension.d.ts +1 -1
- package/analysis/LineOfSightAnalysis.d.ts +1 -1
- package/analysis/LineOfSightAnalysisObserver.d.ts +1 -1
- package/analysis/LineOfSightAnalysisTarget.d.ts +1 -1
- package/analysis/SliceAnalysis.d.ts +1 -1
- package/analysis/SlicePlane.d.ts +1 -1
- package/applications/SceneViewer/colorUtils.d.ts +1 -1
- package/applications/SceneViewer/sceneViewerUtils.d.ts +1 -1
- package/arcade.d.ts +1 -1
- package/assets/esri/core/libs/libtess/libtess.wasm +0 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{fc521bcd4fce711edb7e.js → 038dc3f9ef06ef3c960c.js} +1 -1
- package/assets/esri/core/workers/chunks/073fdfd01d940c7b1da1.js +1 -0
- package/assets/esri/core/workers/chunks/0b0f3e93f658a012d5f0.js +1 -0
- package/assets/esri/core/workers/chunks/{5e3686b68e1b5dfa0169.js → 110587dd66c52d0284a9.js} +4 -4
- package/assets/esri/core/workers/chunks/{7b7b6f0b1a6215ee7a60.js → 12efe67be9414262591f.js} +1 -1
- package/assets/esri/core/workers/chunks/{9383dab07abf7e29139e.js → 16a6b4d8c4928c97ef56.js} +1 -1
- package/assets/esri/core/workers/chunks/{cd11fcc3d9678ab4e115.js → 19c208150b7f9cf0b6ea.js} +1 -1
- package/assets/esri/core/workers/chunks/{6f19761acd9ab875a600.js → 2b0952bd7dbeb1a79fbc.js} +1 -1
- package/assets/esri/core/workers/chunks/{7fab18074b130b71a648.js → 2c4938512dd726a177dd.js} +1 -1
- package/assets/esri/core/workers/chunks/2d8201f0f33ba66bb96b.js +1 -0
- package/assets/esri/core/workers/chunks/2ebba71cbbfa62ddf46a.js +1 -0
- package/assets/esri/core/workers/chunks/{de6a1d1cfdc147455d57.js → 2f22105099a3ece58d1d.js} +1 -1
- package/assets/esri/core/workers/chunks/{8ee3da8677255b8c8709.js → 31de71018575457155e5.js} +1 -1
- package/assets/esri/core/workers/chunks/{64a0f93c6a0fd4e14601.js → 3376fbcbd92261d45169.js} +1 -1
- package/assets/esri/core/workers/chunks/4450f17444947fe2f27f.js +1 -0
- package/assets/esri/core/workers/chunks/5de864843c0d3f4d291d.js +1 -0
- package/assets/esri/core/workers/chunks/6dfb2ddfd72009564a34.js +1 -0
- package/assets/esri/core/workers/chunks/{d18b191e158c1aff853c.js → 71bc42d18a9e5c356c2a.js} +1 -1
- package/assets/esri/core/workers/chunks/{179b9a7aa796dac3eb83.js → 7ba0cfe4d1c214f44fc7.js} +1 -1
- package/assets/esri/core/workers/chunks/81139c01e8016cbbe324.js +1 -0
- package/assets/esri/core/workers/chunks/883cfe319b15ebabf71e.js +1 -0
- package/assets/esri/core/workers/chunks/{c2a6ac7046134f725cf3.js → 8ba83fee56dd4f306d87.js} +1 -1
- package/assets/esri/core/workers/chunks/925f53f4ef097c5ce204.js +1 -0
- package/assets/esri/core/workers/chunks/{eff5593e534d2a617ca7.js → 942da417257f8fd8e4cf.js} +1 -1
- package/assets/esri/core/workers/chunks/97450791de57796f842c.js +1 -0
- package/assets/esri/core/workers/chunks/{c9c0dd4d9aaa9b794bd5.js → 9d1faf9358df056be8e7.js} +1 -1
- package/assets/esri/core/workers/chunks/9d410721f42259efe666.js +1 -0
- package/assets/esri/core/workers/chunks/{b98074a98ebc11ed1e09.js → aa3909ffe65b42c61b52.js} +1 -1
- package/assets/esri/core/workers/chunks/af3f30f968363bb3930c.js +1 -0
- package/assets/esri/core/workers/chunks/{93e7d34f52bfafa015e1.js → b58badb11e610024ce4c.js} +1 -1
- package/assets/esri/core/workers/chunks/b5e6a868256c5aae6d5e.js +1 -0
- package/assets/esri/core/workers/chunks/{2307eea4f3b9c0c987f1.js → b9e93d9ea80361716f1d.js} +1 -1
- package/assets/esri/core/workers/chunks/{1f31a507c989b2976660.js → c26a24c89ddf5bdad343.js} +1 -1
- package/assets/esri/core/workers/chunks/{a9b77bea0b8d7a2e5f65.js → c8c0f091aab41e4effa5.js} +1 -1
- package/assets/esri/core/workers/chunks/d573ec98401fbae26383.js +1 -0
- package/assets/esri/core/workers/chunks/{4641e10e0e8e9d257521.js → f436c86f86236ea7ea04.js} +1 -1
- package/assets/esri/core/workers/chunks/{b88c012fa0b0e229a5e3.js → f5b4a8b2bad9b0899954.js} +1 -1
- package/assets/esri/core/workers/chunks/{3bcf3bed475f7c49eb7e.js → f787036fa1ed4f53bb00.js} +1 -1
- package/assets/esri/core/workers/chunks/{ceb38e7e1aa08e1b141f.js → fa3117bb2e11daac000e.js} +1 -1
- package/assets/esri/core/workers/chunks/{77425f33515eb7f0551a.js → fb340c93c114ef090941.js} +1 -1
- package/assets/esri/css/main.scss +1 -1
- package/assets/esri/css/view.scss +1 -1
- package/assets/esri/images/support/loading-throb.gif +0 -0
- package/assets/esri/themes/base/_Overlay.scss +14 -14
- package/assets/esri/themes/base/_OverlayItem.scss +52 -52
- package/assets/esri/themes/base/_Ui.scss +149 -149
- package/assets/esri/themes/base/_View.scss +194 -194
- package/assets/esri/themes/base/_animation.scss +128 -128
- package/assets/esri/themes/base/_color.scss +57 -57
- package/assets/esri/themes/base/_colorVariables.scss +1 -1
- package/assets/esri/themes/base/_core.scss +172 -172
- package/assets/esri/themes/base/_functions.scss +23 -23
- package/assets/esri/themes/base/_layout.scss +11 -11
- package/assets/esri/themes/base/_mixins.scss +665 -665
- package/assets/esri/themes/base/_sizes.scss +130 -130
- package/assets/esri/themes/base/_type.scss +27 -27
- package/assets/esri/themes/base/colors/css/scss/brand_colors.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_core_colors.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_core_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/css/scss/complete.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/brand_colors.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors_dark.scss +0 -0
- package/assets/esri/themes/base/colors/patterns_json/scss/complete.scss +0 -0
- package/assets/esri/themes/base/fonts/fonts/014f2daa-c310-4a36-b9fd-79a8e0c48d44-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/014f2daa-c310-4a36-b9fd-79a8e0c48d44-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/014f2daa-c310-4a36-b9fd-79a8e0c48d44.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/0763eab1-d6ed-4c73-afb0-895f930df099.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/121524c1-8d82-4155-bfb3-fd2f15f09e93.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/12b00842-ec20-4c7f-aa72-802fb00f6cc4-ext.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/12b00842-ec20-4c7f-aa72-802fb00f6cc4-greek.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/12b00842-ec20-4c7f-aa72-802fb00f6cc4.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/13faf0ae-dcab-4d1c-9c08-f9ca339b6023-greek.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/13faf0ae-dcab-4d1c-9c08-f9ca339b6023.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/15e2e15a-2f36-4a01-b529-677d575bf76d.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/174d458a-81e0-4174-9473-35e3bf0a613c.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/18629a56-2ec3-4470-a65f-f82d7ec4d41b.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/1b3078ef-2971-4c95-b6ca-13ab528758cb.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/1fed34fa-250a-4d32-9f1d-42f978a2e0b2.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/2200dfff-da50-40b0-bc12-5e4b872a1998.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/281f890c-8412-4ee3-84ed-8b5d062d2ab8.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/2a1ae9a5-b6b5-405c-b660-bbdf1b356952.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/31da4b04-f98a-4b5f-b545-a31d26da99e5.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/31e0c094-e345-4a54-a797-d5f1a5885572.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/32a2c5cf-6736-44a6-a276-49ba7e030944.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/341bcc5e-7ac0-44ff-819d-5887892eab1b.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/390cea11-2b11-47ac-b3e8-43ded6ae89ee.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/394a711e-3459-44f3-85c7-e99c01e4b55c.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/3ae1e25e-3aa6-4061-a016-a079159f9d65.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/3d5260a1-e4cd-4567-80ed-69d23c40355f-ext.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/3d5260a1-e4cd-4567-80ed-69d23c40355f-greek.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/3d5260a1-e4cd-4567-80ed-69d23c40355f.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/40d36b4a-60c6-460a-bf43-4c948c23563e.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/41331c3c-3759-4462-8695-33c9a21b6a5b.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/439a2ded-d7a4-42d4-8660-ef8765fa7486.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/45b78f45-e639-4836-8612-e0892e120f14.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/46947883-147e-48dd-97c2-5a8ca675b998.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/4ab86b35-c0c2-42b5-98ad-4b6eba66b197.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/4d1d0d0d-9ea6-4117-901f-8b32ca1ab936.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/4daa2125-53c6-4da8-9614-8a1049eaccc2.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/4e4befe6-3f94-41d8-886c-1a6831818c6a.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/5729f02e-f6b0-4f35-8ee5-c2cffa65fa76.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/57a79aa3-9b06-4ba7-a9a4-2b766d826ecf.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/61f13f40-3829-413c-b6f5-b11abb272edc.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/6ea5fa46-5311-450b-8744-288a30c55348.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/75e2f3b1-1402-4916-8392-4db9ababea7b.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/77156710-6a58-4606-b189-b4185e75967b-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/77156710-6a58-4606-b189-b4185e75967b-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/77156710-6a58-4606-b189-b4185e75967b.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/77caabd3-1877-4634-85c8-8e398a093b99-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/77caabd3-1877-4634-85c8-8e398a093b99-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/77caabd3-1877-4634-85c8-8e398a093b99.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/7db1f672-3a8f-4d19-9c49-7f61aed450b5.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/89370128-6a74-471d-ba04-fa0b59bc8ed3.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/8a65abc7-6463-4895-b3e6-5e203b80b7e2.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/8b01637a-f445-4f10-92ea-b84a355f7690.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/94aa531e-7746-4df0-bb6e-349891f2eda5.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/97694c53-4e94-4f9e-969b-a148adfcdcfd.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/97b330aa-d7fa-4f85-830f-b11a5041b157.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/9851da0a-2481-4687-bbeb-ed4ab170dc38-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/9851da0a-2481-4687-bbeb-ed4ab170dc38.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/9c1ab088-0cb0-402f-9cea-170f0fea14a8.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/a1049d00-54ad-4589-95b8-d353f7ab52f0-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/a1049d00-54ad-4589-95b8-d353f7ab52f0.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/a8aeea1b-1a9d-45b7-8ad9-7c71824599e2.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/a9eaf4d3-6427-42df-9306-3ea1270f7b1a.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/ae454969-59fb-4d42-aecb-dea30459bc7e.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/b0b84e4d-2164-45c7-a674-1662f19f3ba6-basic.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b0b84e4d-2164-45c7-a674-1662f19f3ba6-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b0b84e4d-2164-45c7-a674-1662f19f3ba6.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/b17468ea-cf53-4635-984b-4d930a68ed4d.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/bb93c563-55f6-494f-8e1e-448538d95df1.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/c1905e2e-a1cb-49de-9bb0-ce3c5ffc85ae.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/c4cc9032-7eee-4a6e-ae8b-f384b1349bcf.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/c744f2a2-d6a9-4c18-b0ec-f17376acde3e.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/cebce072-9561-4c6d-8c89-f0cefec63289-ext.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/cebce072-9561-4c6d-8c89-f0cefec63289.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/d4ffabb3-dd7c-472a-bdfb-6700383c6354-ext.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/d4ffabb3-dd7c-472a-bdfb-6700383c6354-greek.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/d4ffabb3-dd7c-472a-bdfb-6700383c6354.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/d824d78b-aab0-44e3-8c56-6c3dcf551952.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/d98fb015-7ef6-404f-a58a-5c9242d79770.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/d9e4040d-32ff-4a1c-ac04-927a781da1f5.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/dc10b3bd-5076-4df5-a5f5-e5961f4a6938.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/dd7b7d4e-21ab-4ac0-b26a-d032c992f3c5.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/e388ac99-8c6a-4451-8690-1d15b4d45adb-ext.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/e388ac99-8c6a-4451-8690-1d15b4d45adb-greek.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/e388ac99-8c6a-4451-8690-1d15b4d45adb.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/e57662ff-b1ef-4122-88c1-61bbdabeb365.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/e78b17bb-11fb-4860-8d66-4ee0d0c1e117-ext.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/e78b17bb-11fb-4860-8d66-4ee0d0c1e117-greek.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/e78b17bb-11fb-4860-8d66-4ee0d0c1e117.woff2 +0 -0
- package/assets/esri/themes/base/fonts/fonts/e91d1bbf-3fea-45e2-b003-a22b12ce6e5f-basic.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/e91d1bbf-3fea-45e2-b003-a22b12ce6e5f-ext.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/e91d1bbf-3fea-45e2-b003-a22b12ce6e5f.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/f1799750-0952-403f-8108-b2402eed0f62.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/f4a085c3-1c64-4fc0-a598-26f3e658c2b0.woff +0 -0
- package/assets/esri/themes/base/fonts/fonts/fa71df11-7b19-4baf-8ff7-3537dea718f0.woff +0 -0
- package/assets/esri/themes/base/icons/style.css +0 -0
- package/assets/esri/themes/base/icons/style.scss +0 -0
- package/assets/esri/themes/base/icons/variables.scss +0 -0
- package/assets/esri/themes/base/images/files/archive-32.svg +0 -0
- package/assets/esri/themes/base/images/files/cad-32.svg +0 -0
- package/assets/esri/themes/base/images/files/code-32.svg +0 -0
- package/assets/esri/themes/base/images/files/csv-32.svg +0 -0
- package/assets/esri/themes/base/images/files/excel-32.svg +0 -0
- package/assets/esri/themes/base/images/files/generic-32.svg +0 -0
- package/assets/esri/themes/base/images/files/gpx-32.svg +0 -0
- package/assets/esri/themes/base/images/files/image-32.svg +0 -0
- package/assets/esri/themes/base/images/files/pdf-32.svg +0 -0
- package/assets/esri/themes/base/images/files/report-32.svg +0 -0
- package/assets/esri/themes/base/images/files/sound-32.svg +0 -0
- package/assets/esri/themes/base/images/files/text-32.svg +0 -0
- package/assets/esri/themes/base/images/files/video-32.svg +0 -0
- package/assets/esri/themes/base/images/files/word-32.svg +0 -0
- package/assets/esri/themes/base/images/files/zip-32.svg +0 -0
- package/assets/esri/themes/base/images/loading-throb.gif +0 -0
- package/assets/esri/themes/base/widgets/_AreaMeasurement2D.scss +14 -14
- package/assets/esri/themes/base/widgets/_AreaMeasurement3D.scss +14 -14
- package/assets/esri/themes/base/widgets/_Attachments.scss +286 -286
- package/assets/esri/themes/base/widgets/_Attribution.scss +57 -57
- package/assets/esri/themes/base/widgets/_BasemapGallery.scss +173 -173
- package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +490 -490
- package/assets/esri/themes/base/widgets/_BasemapToggle.scss +123 -123
- package/assets/esri/themes/base/widgets/_BinaryColorSizeSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_Bookmarks.scss +349 -349
- package/assets/esri/themes/base/widgets/_BuildingDisciplinesTree.scss +151 -151
- package/assets/esri/themes/base/widgets/_BuildingExplorer.scss +51 -51
- package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +253 -253
- package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +92 -92
- package/assets/esri/themes/base/widgets/_ButtonMenu.scss +129 -129
- package/assets/esri/themes/base/widgets/_ClassedColorSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_ClassedSizeSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_ColorPicker.scss +70 -70
- package/assets/esri/themes/base/widgets/_ColorSizeSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_ColorSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_Compass.scss +16 -16
- package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +236 -238
- package/assets/esri/themes/base/widgets/_DatePicker.scss +169 -169
- package/assets/esri/themes/base/widgets/_Daylight.scss +270 -270
- package/assets/esri/themes/base/widgets/_DirectLineMeasurement3D.scss +7 -7
- package/assets/esri/themes/base/widgets/_Directions.scss +471 -471
- package/assets/esri/themes/base/widgets/_DistanceMeasurement2D.scss +7 -7
- package/assets/esri/themes/base/widgets/_Editor.scss +260 -255
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +439 -439
- package/assets/esri/themes/base/widgets/_Expand.scss +264 -264
- package/assets/esri/themes/base/widgets/_Feature.scss +93 -92
- package/assets/esri/themes/base/widgets/_FeatureContent.scss +97 -97
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +236 -216
- package/assets/esri/themes/base/widgets/_FeatureMedia.scss +86 -86
- package/assets/esri/themes/base/widgets/_FeatureTable.scss +247 -247
- package/assets/esri/themes/base/widgets/_FeatureTemplates.scss +44 -44
- package/assets/esri/themes/base/widgets/_FloorFilter.scss +480 -480
- package/assets/esri/themes/base/widgets/_Grid.scss +71 -71
- package/assets/esri/themes/base/widgets/_HeatmapSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_Histogram.scss +56 -56
- package/assets/esri/themes/base/widgets/_HistogramRangeSlider.scss +105 -105
- package/assets/esri/themes/base/widgets/_IdentityForm.scss +22 -22
- package/assets/esri/themes/base/widgets/_IdentityModal.scss +105 -105
- package/assets/esri/themes/base/widgets/_ItemList.scss +143 -143
- package/assets/esri/themes/base/widgets/_LayerList.scss +413 -413
- package/assets/esri/themes/base/widgets/_Legend.scss +551 -551
- package/assets/esri/themes/base/widgets/_LineOfSight.scss +41 -41
- package/assets/esri/themes/base/widgets/_Measurement.scss +6 -6
- package/assets/esri/themes/base/widgets/_NavigationToggle.scss +99 -99
- package/assets/esri/themes/base/widgets/_OpacitySlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_Popup.scss +748 -745
- package/assets/esri/themes/base/widgets/_Print.scss +269 -269
- package/assets/esri/themes/base/widgets/_SaveLayer.scss +40 -40
- package/assets/esri/themes/base/widgets/_ScaleBar.scss +160 -160
- package/assets/esri/themes/base/widgets/_ScaleRangeSlider.scss +211 -211
- package/assets/esri/themes/base/widgets/_Search.scss +193 -193
- package/assets/esri/themes/base/widgets/_SearchResultRenderer.scss +34 -34
- package/assets/esri/themes/base/widgets/_SelectionToolbar.scss +18 -18
- package/assets/esri/themes/base/widgets/_ShadowCast.scss +202 -202
- package/assets/esri/themes/base/widgets/_SizeSlider.scss +7 -7
- package/assets/esri/themes/base/widgets/_Sketch.scss +151 -151
- package/assets/esri/themes/base/widgets/_Slice.scss +80 -80
- package/assets/esri/themes/base/widgets/_Slider.scss +367 -367
- package/assets/esri/themes/base/widgets/_SnappingControls.scss +143 -143
- package/assets/esri/themes/base/widgets/_Spinner.scss +76 -76
- package/assets/esri/themes/base/widgets/_Swipe.scss +105 -105
- package/assets/esri/themes/base/widgets/_TableList.scss +299 -299
- package/assets/esri/themes/base/widgets/_TimePicker.scss +15 -15
- package/assets/esri/themes/base/widgets/_TimeSlider.scss +404 -404
- package/assets/esri/themes/base/widgets/_Tooltip.scss +61 -61
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +47 -47
- package/assets/esri/themes/base/widgets/_Weather.scss +59 -59
- package/assets/esri/themes/base/widgets/_Widget.scss +688 -688
- package/assets/esri/themes/base/widgets/_Zoom.scss +45 -45
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark/main.scss +34 -34
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/main.scss +9 -9
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/themes/light/view.scss +9 -9
- package/assets/esri/views/3d/analysis/Slice/images/heading-rotate.svg +4 -4
- package/assets/esri/views/3d/analysis/Slice/images/tilt-rotate.svg +80 -80
- package/assets/esri/views/3d/webgl-engine/lib/intersectorUtils.svg +117 -117
- package/assets/esri/views/magnifier/mask.ts.svg +5 -5
- package/assets/esri/views/magnifier/overlay.ts.svg +36 -36
- package/chunks/Laserlines.glsl.js +5 -5
- package/chunks/LineMarker.glsl.js +32 -38
- package/chunks/Precipitation.glsl.js +1 -1
- package/chunks/RibbonLine.glsl.js +53 -53
- package/chunks/ShadowHighlight.glsl.js +1 -1
- package/chunks/boundedPlane.js +1 -1
- package/chunks/cameraUtilsPlanar.js +1 -1
- package/chunks/cameraUtilsSpherical.js +1 -1
- package/chunks/mat3.js +1 -1
- package/chunks/quat.js +1 -1
- package/chunks/quat2.js +1 -1
- package/chunks/quatf64.js +1 -1
- package/chunks/sphere.js +1 -1
- package/chunks/vec3.js +1 -1
- package/chunks/vec3f32.js +1 -1
- package/chunks/vec4f64.js +1 -1
- package/config.d.ts +1 -1
- package/copyright.txt +1278 -1278
- package/core/Accessor.d.ts +1 -1
- package/core/Accessor.js +1 -1
- package/core/Collection.d.ts +1 -1
- package/core/Error.d.ts +1 -1
- package/core/Evented.d.ts +1 -1
- package/core/HandleOwner.d.ts +1 -1
- package/core/Handles.d.ts +1 -1
- package/core/Identifiable.d.ts +1 -1
- package/core/JSONSupport.d.ts +1 -1
- package/core/Loadable.d.ts +1 -1
- package/core/Promise.d.ts +1 -1
- package/core/VectorStack.js +1 -1
- package/core/accessorSupport/decorators.d.ts +1 -1
- package/core/lang.d.ts +1 -1
- package/core/libs/gl-matrix-2/factories/quatf64.js +1 -1
- package/core/libs/gl-matrix-2/factories/vec3f32.js +1 -1
- package/core/libs/gl-matrix-2/factories/vec4f64.js +1 -1
- package/core/libs/gl-matrix-2/math/mat3.js +1 -1
- package/core/libs/gl-matrix-2/math/quat.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/perspectiveUtils.js +1 -1
- package/core/promiseUtils.d.ts +1 -1
- package/core/quantity.d.ts +1 -1
- package/core/reactiveUtils.d.ts +1 -1
- package/core/scheduling.d.ts +1 -1
- package/core/sql/WhereClause.d.ts +1 -1
- package/core/sql.d.ts +1 -1
- package/core/units.d.ts +1 -1
- package/core/urlUtils.d.ts +1 -1
- package/core/watchUtils.d.ts +1 -1
- package/core/workers/Connection.d.ts +1 -1
- package/core/workers.d.ts +1 -1
- package/form/ExpressionInfo.d.ts +1 -1
- package/form/FormTemplate.d.ts +1 -1
- package/form/elements/Element.d.ts +1 -1
- package/form/elements/FieldElement.d.ts +1 -1
- package/form/elements/GroupElement.d.ts +1 -1
- package/form/elements/inputs/BarcodeScannerInput.d.ts +1 -1
- package/form/elements/inputs/ComboBoxInput.d.ts +1 -1
- package/form/elements/inputs/DateTimePickerInput.d.ts +1 -1
- package/form/elements/inputs/RadioButtonsInput.d.ts +1 -1
- package/form/elements/inputs/SwitchInput.d.ts +1 -1
- package/form/elements/inputs/TextAreaInput.d.ts +1 -1
- package/form/elements/inputs/TextBoxInput.d.ts +1 -1
- package/form/elements/inputs/TextInput.d.ts +1 -1
- package/form/elements/support/inputs.d.ts +1 -1
- package/form/support/elements.d.ts +1 -1
- package/geohash/GeohashTree.js +1 -1
- package/geometry/Circle.d.ts +1 -1
- package/geometry/Extent.d.ts +1 -1
- package/geometry/Geometry.d.ts +1 -1
- package/geometry/HeightModelInfo.d.ts +1 -1
- package/geometry/Mesh.d.ts +1 -1
- package/geometry/Multipoint.d.ts +1 -1
- package/geometry/Point.d.ts +1 -1
- package/geometry/Polygon.d.ts +1 -1
- package/geometry/Polyline.d.ts +1 -1
- package/geometry/SpatialReference.d.ts +1 -1
- package/geometry/coordinateFormatter.d.ts +1 -1
- package/geometry/geometryEngine.d.ts +1 -1
- package/geometry/geometryEngineAsync.d.ts +1 -1
- package/geometry/projection.d.ts +1 -1
- package/geometry/support/GeographicTransformation.d.ts +1 -1
- package/geometry/support/GeographicTransformationStep.d.ts +1 -1
- package/geometry/support/MeshComponent.d.ts +1 -1
- package/geometry/support/MeshMaterial.d.ts +1 -1
- package/geometry/support/MeshMaterialMetallicRoughness.d.ts +1 -1
- package/geometry/support/MeshTexture.d.ts +1 -1
- package/geometry/support/MeshTransform.js +1 -1
- package/geometry/support/axisAngle.js +1 -1
- package/geometry/support/axisAngleDegrees.js +1 -1
- package/geometry/support/geodesicUtils.d.ts +1 -1
- package/geometry/support/jsonUtils.d.ts +1 -1
- package/geometry/support/lineSegment.js +1 -1
- package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
- package/geometry/support/meshUtils/exporters/gltf/node.js +1 -1
- package/geometry/support/meshUtils/georeference.js +1 -1
- package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
- package/geometry/support/meshUtils/projection.js +1 -1
- package/geometry/support/meshUtils/rotate.js +1 -1
- package/geometry/support/meshUtils.d.ts +1 -1
- package/geometry/support/normalizeUtils.d.ts +1 -1
- package/geometry/support/plane.js +1 -1
- package/geometry/support/webMercatorUtils.d.ts +1 -1
- package/geometry.d.ts +1 -1
- package/identity/Credential.d.ts +1 -1
- package/identity/IdentityManager.d.ts +1 -1
- package/identity/OAuthInfo.d.ts +1 -1
- package/identity/ServerInfo.d.ts +1 -1
- package/interfaces.d.ts +768 -706
- package/intl.d.ts +1 -1
- package/kernel.d.ts +1 -1
- package/layers/BaseDynamicLayer.d.ts +1 -1
- package/layers/BaseElevationLayer.d.ts +1 -1
- package/layers/BaseTileLayer.d.ts +1 -1
- package/layers/BingMapsLayer.d.ts +1 -1
- package/layers/BuildingSceneLayer.d.ts +1 -1
- package/layers/CSVLayer.d.ts +1 -1
- package/layers/DimensionLayer.d.ts +1 -1
- package/layers/ElevationLayer.d.ts +1 -1
- package/layers/FeatureLayer.d.ts +1 -1
- package/layers/GeoJSONLayer.d.ts +1 -1
- package/layers/GeoRSSLayer.d.ts +1 -1
- package/layers/GraphicsLayer.d.ts +1 -1
- package/layers/GroupLayer.d.ts +1 -1
- package/layers/ImageryLayer.d.ts +1 -1
- package/layers/ImageryTileLayer.d.ts +1 -1
- package/layers/IntegratedMeshLayer.d.ts +1 -1
- package/layers/KMLLayer.d.ts +1 -1
- package/layers/Layer.d.ts +1 -1
- package/layers/LineOfSightLayer.d.ts +1 -1
- package/layers/MapImageLayer.d.ts +1 -1
- package/layers/MapNotesLayer.d.ts +1 -1
- package/layers/MapNotesLayer.js +1 -1
- package/layers/MediaLayer.d.ts +1 -1
- package/layers/OGCFeatureLayer.d.ts +1 -1
- package/layers/OpenStreetMapLayer.d.ts +1 -1
- package/layers/PointCloudLayer.d.ts +1 -1
- package/layers/RouteLayer.d.ts +1 -1
- package/layers/SceneLayer.d.ts +1 -1
- package/layers/StreamLayer.d.ts +1 -1
- package/layers/SubtypeGroupLayer.d.ts +1 -1
- package/layers/TileLayer.d.ts +1 -1
- package/layers/UnknownLayer.d.ts +1 -1
- package/layers/UnsupportedLayer.d.ts +1 -1
- package/layers/VectorTileLayer.d.ts +1 -1
- package/layers/VoxelLayer.d.ts +1 -1
- package/layers/WCSLayer.d.ts +1 -1
- package/layers/WFSLayer.d.ts +1 -1
- package/layers/WMSLayer.d.ts +1 -1
- package/layers/WMTSLayer.d.ts +1 -1
- package/layers/WebTileLayer.d.ts +1 -1
- package/layers/buildingSublayers/BuildingComponentSublayer.d.ts +1 -1
- package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
- package/layers/buildingSublayers/BuildingSublayer.d.ts +1 -1
- package/layers/graphics/data/SnappingCandidate.js +1 -1
- package/layers/mixins/APIKeyMixin.d.ts +1 -1
- package/layers/mixins/ArcGISCachedService.d.ts +1 -1
- package/layers/mixins/ArcGISImageService.d.ts +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/ArcGISMapService.d.ts +1 -1
- package/layers/mixins/BlendLayer.d.ts +1 -1
- package/layers/mixins/CustomParametersMixin.d.ts +1 -1
- package/layers/mixins/FeatureEffectLayer.d.ts +1 -1
- package/layers/mixins/FeatureLayerBase.d.ts +4 -0
- package/layers/mixins/FeatureReductionLayer.d.ts +1 -1
- package/layers/mixins/ImageryTileMixin.d.ts +1 -1
- package/layers/mixins/ImageryTileMixin.js +1 -1
- package/layers/mixins/OrderedLayer.d.ts +1 -1
- package/layers/mixins/PortalLayer.d.ts +1 -1
- package/layers/mixins/PublishableLayer.d.ts +1 -1
- package/layers/mixins/RefreshableLayer.d.ts +1 -1
- package/layers/mixins/ScaleRangeLayer.d.ts +1 -1
- package/layers/mixins/SceneService.d.ts +1 -1
- package/layers/mixins/SublayersOwner.d.ts +1 -1
- package/layers/mixins/TemporalLayer.d.ts +1 -1
- package/layers/ogc/wfsUtils.d.ts +1 -1
- package/layers/pointCloudFilters/PointCloudFilter.d.ts +1 -1
- package/layers/pointCloudFilters/PointCloudReturnFilter.d.ts +1 -1
- package/layers/pointCloudFilters/PointCloudValueFilter.d.ts +1 -1
- package/layers/support/AggregateField.d.ts +1 -1
- package/layers/support/BuildingFilter.d.ts +1 -1
- package/layers/support/BuildingSummaryStatistics.d.ts +1 -1
- package/layers/support/CodedValueDomain.d.ts +1 -1
- package/layers/support/ControlPointsGeoreference.d.ts +1 -1
- package/layers/support/CornersGeoreference.d.ts +1 -1
- package/layers/support/DimensionalDefinition.d.ts +1 -1
- package/layers/support/Domain.d.ts +1 -1
- package/layers/support/ElevationSampler.d.ts +1 -1
- package/layers/support/ExpressionInfo.d.ts +1 -1
- package/layers/support/ExtentAndRotationGeoreference.d.ts +1 -1
- package/layers/support/FacilityLayerInfo.d.ts +1 -1
- package/layers/support/FeatureEffect.d.ts +1 -1
- package/layers/support/FeatureFilter.d.ts +1 -1
- package/layers/support/FeatureReductionBinning.d.ts +1 -1
- package/layers/support/FeatureReductionCluster.d.ts +1 -1
- package/layers/support/FeatureReductionSelection.d.ts +1 -1
- package/layers/support/FeatureTemplate.d.ts +1 -1
- package/layers/support/FeatureType.d.ts +1 -1
- package/layers/support/Field.d.ts +1 -1
- package/layers/support/FieldsIndex.d.ts +1 -1
- package/layers/support/GeometryFieldsInfo.d.ts +1 -1
- package/layers/support/ImageElement.d.ts +1 -1
- package/layers/support/ImageParameters.d.ts +1 -1
- package/layers/support/InheritedDomain.d.ts +1 -1
- package/layers/support/KMLSublayer.d.ts +1 -1
- package/layers/support/LOD.d.ts +1 -1
- package/layers/support/LabelClass.d.ts +1 -1
- package/layers/support/LayerFloorInfo.d.ts +1 -1
- package/layers/support/LevelLayerInfo.d.ts +1 -1
- package/layers/support/LocalMediaElementSource.d.ts +1 -1
- package/layers/support/MapImage.d.ts +1 -1
- package/layers/support/MediaElementBase.d.ts +1 -1
- package/layers/support/MosaicRule.d.ts +1 -1
- package/layers/support/MultidimensionalSubset.d.ts +4 -0
- package/layers/support/MultidimensionalSubset.js +1 -1
- package/layers/support/PixelBlock.d.ts +1 -1
- package/layers/support/PublishingInfo.d.ts +1 -1
- package/layers/support/RangeDomain.d.ts +1 -1
- package/layers/support/RasterFunction.d.ts +1 -1
- package/layers/support/RasterInfo.d.ts +1 -1
- package/layers/support/Relationship.d.ts +1 -1
- package/layers/support/RouteStopSymbols.d.ts +1 -1
- package/layers/support/RouteSymbols.d.ts +1 -1
- package/layers/support/SceneFilter.d.ts +1 -1
- package/layers/support/SceneModification.d.ts +1 -1
- package/layers/support/SceneModifications.d.ts +1 -1
- package/layers/support/SiteLayerInfo.d.ts +1 -1
- package/layers/support/StreamConnection.d.ts +1 -1
- package/layers/support/Sublayer.d.ts +1 -1
- package/layers/support/SubtypeSublayer.d.ts +1 -1
- package/layers/support/TileInfo.d.ts +1 -1
- package/layers/support/TileMatrixSet.d.ts +1 -1
- package/layers/support/TimeInfo.d.ts +1 -1
- package/layers/support/TimeReference.d.ts +1 -1
- package/layers/support/VideoElement.d.ts +1 -1
- package/layers/support/VoxelVariable.d.ts +1 -1
- package/layers/support/VoxelVolumeStyle.d.ts +1 -1
- package/layers/support/WMSSublayer.d.ts +1 -1
- package/layers/support/WMTSStyle.d.ts +1 -1
- package/layers/support/WMTSSublayer.d.ts +1 -1
- package/layers/support/arcadeUtils.d.ts +1 -1
- package/layers/support/fieldUtils.d.ts +1 -1
- package/layers/support/rasterDatasets/BaseRaster.js +1 -1
- package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
- package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
- package/layers/support/wmtsUtils.js +1 -1
- package/layers/voxel/VoxelDynamicSection.d.ts +1 -1
- package/layers/voxel/VoxelSlice.d.ts +1 -1
- package/layers/voxel/VoxelTransferFunctionStyle.d.ts +1 -1
- package/layers/voxel/VoxelVariable.d.ts +1 -1
- package/layers/voxel/VoxelVariableStyle.d.ts +1 -1
- package/layers/voxel/VoxelVolume.d.ts +1 -1
- package/layers/voxel/VoxelVolume.js +1 -1
- package/layers/voxel/VoxelVolumeStyle.d.ts +1 -1
- package/layers/voxel/voxelPlaneUtils.js +1 -1
- package/networks/Network.d.ts +1 -1
- package/networks/Network.js +1 -1
- package/networks/UtilityNetwork.d.ts +1 -1
- package/networks/support/NamedTraceConfiguration.d.ts +1 -1
- package/networks/support/NetworkSystemLayers.d.ts +1 -1
- package/networks/support/Terminal.d.ts +1 -1
- package/networks/support/TerminalConfiguration.d.ts +1 -1
- package/networks/support/TraceConfiguration.d.ts +1 -1
- package/networks/support/UNTraceConfiguration.d.ts +1 -1
- package/networks/support/utils.js +1 -1
- package/package.json +1 -1
- package/pointCloudRenderers.d.ts +1 -1
- package/popup/ElementExpressionInfo.d.ts +1 -1
- package/popup/ExpressionInfo.d.ts +1 -1
- package/popup/FieldInfo.d.ts +1 -1
- package/popup/LayerOptions.d.ts +1 -1
- package/popup/RelatedRecordsInfo.d.ts +1 -1
- package/popup/content/AttachmentsContent.d.ts +1 -1
- package/popup/content/BarChartMediaInfo.d.ts +1 -1
- package/popup/content/ColumnChartMediaInfo.d.ts +1 -1
- package/popup/content/Content.d.ts +1 -1
- package/popup/content/CustomContent.d.ts +1 -1
- package/popup/content/ExpressionContent.d.ts +1 -1
- package/popup/content/FieldsContent.d.ts +1 -1
- package/popup/content/ImageMediaInfo.d.ts +1 -1
- package/popup/content/LineChartMediaInfo.d.ts +1 -1
- package/popup/content/MediaContent.d.ts +1 -1
- package/popup/content/PieChartMediaInfo.d.ts +1 -1
- package/popup/content/RelationshipContent.d.ts +1 -1
- package/popup/content/TextContent.d.ts +1 -1
- package/popup/content/mixins/ChartMediaInfo.d.ts +1 -1
- package/popup/content/mixins/MediaInfo.d.ts +1 -1
- package/popup/content/support/ChartMediaInfoValue.d.ts +1 -1
- package/popup/content/support/ChartMediaInfoValueSeries.d.ts +1 -1
- package/popup/content/support/ImageMediaInfoValue.d.ts +1 -1
- package/popup/content.d.ts +1 -1
- package/popup/support/FieldInfoFormat.d.ts +1 -1
- package/popup/support/RelatedRecordsInfoFieldOrder.d.ts +1 -1
- package/portal/Portal.d.ts +1 -1
- package/portal/PortalFolder.d.ts +1 -1
- package/portal/PortalGroup.d.ts +1 -1
- package/portal/PortalItem.d.ts +1 -1
- package/portal/PortalItemResource.d.ts +1 -1
- package/portal/PortalQueryParams.d.ts +1 -1
- package/portal/PortalQueryResult.d.ts +1 -1
- package/portal/PortalRating.d.ts +1 -1
- package/portal/PortalUser.d.ts +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/rasterRenderers.d.ts +1 -1
- package/renderers/ClassBreaksRenderer.d.ts +1 -1
- package/renderers/DictionaryRenderer.d.ts +1 -1
- package/renderers/DotDensityRenderer.d.ts +1 -1
- package/renderers/FlowRenderer.d.ts +1 -1
- package/renderers/HeatmapRenderer.d.ts +1 -1
- package/renderers/PieChartRenderer.d.ts +1 -1
- package/renderers/PointCloudClassBreaksRenderer.d.ts +1 -1
- package/renderers/PointCloudRGBRenderer.d.ts +1 -1
- package/renderers/PointCloudRenderer.d.ts +1 -1
- package/renderers/PointCloudStretchRenderer.d.ts +1 -1
- package/renderers/PointCloudUniqueValueRenderer.d.ts +1 -1
- package/renderers/RasterColormapRenderer.d.ts +1 -1
- package/renderers/RasterShadedReliefRenderer.d.ts +1 -1
- package/renderers/RasterStretchRenderer.d.ts +1 -1
- package/renderers/Renderer.d.ts +1 -1
- package/renderers/SimpleRenderer.d.ts +1 -1
- package/renderers/UniqueValueRenderer.d.ts +1 -1
- package/renderers/UniqueValueRenderer.js +1 -1
- package/renderers/VectorFieldRenderer.d.ts +1 -1
- package/renderers/mixins/VisualVariablesMixin.d.ts +1 -1
- package/renderers/support/AttributeColorInfo.d.ts +1 -1
- package/renderers/support/AuthoringInfo.d.ts +1 -1
- package/renderers/support/AuthoringInfoVisualVariable.d.ts +1 -1
- package/renderers/support/ClassBreakInfo.d.ts +1 -1
- package/renderers/support/ColormapInfo.d.ts +1 -1
- package/renderers/support/HeatmapColorStop.d.ts +1 -1
- package/renderers/support/UniqueValue.d.ts +1 -1
- package/renderers/support/UniqueValueClass.d.ts +1 -1
- package/renderers/support/UniqueValueClass.js +1 -1
- package/renderers/support/UniqueValueGroup.d.ts +1 -1
- package/renderers/support/UniqueValueInfo.d.ts +1 -1
- package/renderers/support/jsonUtils.d.ts +1 -1
- package/renderers/visualVariables/ColorVariable.d.ts +1 -1
- package/renderers/visualVariables/OpacityVariable.d.ts +1 -1
- package/renderers/visualVariables/RotationVariable.d.ts +1 -1
- package/renderers/visualVariables/SizeVariable.d.ts +1 -1
- package/renderers/visualVariables/VisualVariable.d.ts +1 -1
- package/renderers/visualVariables/support/ColorSizeStop.d.ts +1 -1
- package/renderers/visualVariables/support/ColorStop.d.ts +1 -1
- package/renderers/visualVariables/support/OpacityStop.d.ts +1 -1
- package/renderers/visualVariables/support/SizeStop.d.ts +1 -1
- package/renderers.d.ts +1 -1
- package/request.d.ts +1 -1
- package/rest/closestFacility.d.ts +1 -1
- package/rest/find.d.ts +1 -1
- package/rest/geometryService.d.ts +1 -1
- package/rest/geoprocessor/GPOptions.d.ts +1 -1
- package/rest/geoprocessor.d.ts +1 -1
- package/rest/identify.d.ts +1 -1
- package/rest/imageService.d.ts +1 -1
- package/rest/knowledgeGraph/DataModel.d.ts +1 -1
- package/rest/knowledgeGraph/Entity.d.ts +1 -1
- package/rest/knowledgeGraph/EntityType.d.ts +1 -1
- package/rest/knowledgeGraph/FieldIndex.d.ts +1 -1
- package/rest/knowledgeGraph/GraphApplyEdits.d.ts +1 -1
- package/rest/knowledgeGraph/GraphApplyEditsResult.d.ts +1 -1
- package/rest/knowledgeGraph/GraphNamedObject.d.ts +1 -1
- package/rest/knowledgeGraph/GraphObject.d.ts +1 -1
- package/rest/knowledgeGraph/GraphObjectType.d.ts +1 -1
- package/rest/knowledgeGraph/GraphProperty.d.ts +1 -1
- package/rest/knowledgeGraph/GraphQuery.d.ts +1 -1
- package/rest/knowledgeGraph/GraphQueryResult.d.ts +1 -1
- package/rest/knowledgeGraph/GraphQueryStreaming.d.ts +1 -1
- package/rest/knowledgeGraph/GraphQueryStreamingResult.d.ts +1 -1
- package/rest/knowledgeGraph/GraphSearch.d.ts +1 -1
- package/rest/knowledgeGraph/GraphSearchStreaming.d.ts +1 -1
- package/rest/knowledgeGraph/InputQuantizationParameters.d.ts +1 -1
- package/rest/knowledgeGraph/KnowledgeGraph.d.ts +1 -1
- package/rest/knowledgeGraph/OutputQuantizationParameters.d.ts +1 -1
- package/rest/knowledgeGraph/Path.d.ts +1 -1
- package/rest/knowledgeGraph/Relationship.d.ts +1 -1
- package/rest/knowledgeGraph/RelationshipType.d.ts +1 -1
- package/rest/knowledgeGraphService.d.ts +1 -1
- package/rest/locator.d.ts +1 -1
- package/rest/networkService.d.ts +1 -1
- package/rest/networks/support/AggregatedGeometry.d.ts +1 -1
- package/rest/networks/support/Association.d.ts +1 -1
- package/rest/networks/support/AssociationGeometriesResult.d.ts +1 -1
- package/rest/networks/support/FunctionResult.d.ts +1 -1
- package/rest/networks/support/NetworkElement.d.ts +1 -1
- package/rest/networks/support/SynthesizeAssociationGeometriesParameters.d.ts +1 -1
- package/rest/networks/support/TraceLocation.d.ts +1 -1
- package/rest/networks/support/TraceParameters.d.ts +1 -1
- package/rest/networks/support/TraceResult.d.ts +1 -1
- package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -1
- package/rest/networks/trace.d.ts +1 -1
- package/rest/print.d.ts +1 -1
- package/rest/print.js +1 -1
- package/rest/query/support/AttachmentInfo.d.ts +1 -1
- package/rest/query.d.ts +1 -1
- package/rest/route.d.ts +1 -1
- package/rest/serviceArea.d.ts +1 -1
- package/rest/support/AddressCandidate.d.ts +1 -1
- package/rest/support/AlgorithmicColorRamp.d.ts +1 -1
- package/rest/support/AreasAndLengthsParameters.d.ts +1 -1
- package/rest/support/AttachmentQuery.d.ts +1 -1
- package/rest/support/BufferParameters.d.ts +1 -1
- package/rest/support/ClosestFacilityParameters.d.ts +1 -1
- package/rest/support/ClosestFacilitySolveResult.d.ts +1 -1
- package/rest/support/ColorRamp.d.ts +1 -1
- package/rest/support/DataFile.d.ts +1 -1
- package/rest/support/DataLayer.d.ts +1 -1
- package/rest/support/DensifyParameters.d.ts +1 -1
- package/rest/support/DirectionLine.d.ts +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.d.ts +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/DirectionsEvent.d.ts +1 -1
- package/rest/support/DirectionsFeature.d.ts +1 -1
- package/rest/support/DirectionsFeatureSet.d.ts +1 -1
- package/rest/support/DistanceParameters.d.ts +1 -1
- package/rest/support/FeatureSet.d.ts +1 -1
- package/rest/support/FindParameters.d.ts +1 -1
- package/rest/support/FindResult.d.ts +1 -1
- package/rest/support/GPMessage.d.ts +1 -1
- package/rest/support/GeneralizeParameters.d.ts +1 -1
- package/rest/support/IdentifyParameters.d.ts +1 -1
- package/rest/support/IdentifyResult.d.ts +1 -1
- package/rest/support/ImageAngleParameters.d.ts +1 -1
- package/rest/support/ImageAngleResult.d.ts +1 -1
- package/rest/support/ImageHistogramParameters.d.ts +1 -1
- package/rest/support/ImageIdentifyParameters.d.ts +1 -1
- package/rest/support/ImageIdentifyResult.d.ts +1 -1
- package/rest/support/ImageParameters.d.ts +1 -1
- package/rest/support/ImagePixelLocationParameters.d.ts +1 -1
- package/rest/support/ImagePixelLocationResult.d.ts +1 -1
- package/rest/support/ImageSample.d.ts +1 -1
- package/rest/support/ImageSampleParameters.d.ts +1 -1
- package/rest/support/ImageSampleResult.d.ts +1 -1
- package/rest/support/JobInfo.d.ts +1 -1
- package/rest/support/LegendLayer.d.ts +1 -1
- package/rest/support/LengthsParameters.d.ts +1 -1
- package/rest/support/LinearUnit.d.ts +1 -1
- package/rest/support/MultipartColorRamp.d.ts +1 -1
- package/rest/support/NAMessage.d.ts +1 -1
- package/rest/support/NetworkFeatureSet.d.ts +1 -1
- package/rest/support/NetworkUrl.d.ts +1 -1
- package/rest/support/OffsetParameters.d.ts +1 -1
- package/rest/support/ParameterValue.d.ts +1 -1
- package/rest/support/PointBarrier.d.ts +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.d.ts +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.d.ts +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/PrintParameters.d.ts +1 -1
- package/rest/support/PrintTemplate.d.ts +1 -1
- package/rest/support/ProjectParameters.d.ts +1 -1
- package/rest/support/Query.d.ts +1 -1
- package/rest/support/RasterData.d.ts +1 -1
- package/rest/support/RelationParameters.d.ts +1 -1
- package/rest/support/RelationshipQuery.d.ts +1 -1
- package/rest/support/RouteInfo.d.ts +1 -1
- package/rest/support/RouteInfo.js +1 -1
- package/rest/support/RouteParameters.d.ts +1 -1
- package/rest/support/RouteResult.d.ts +1 -1
- package/rest/support/RouteSolveResult.d.ts +1 -1
- package/rest/support/ServiceAreaParameters.d.ts +1 -1
- package/rest/support/ServiceAreaSolveResult.d.ts +1 -1
- package/rest/support/StatisticDefinition.d.ts +1 -1
- package/rest/support/Stop.d.ts +1 -1
- package/rest/support/Stop.js +1 -1
- package/rest/support/TopFeaturesQuery.d.ts +1 -1
- package/rest/support/TopFilter.d.ts +1 -1
- package/rest/support/TravelMode.d.ts +1 -1
- package/rest/support/TrimExtendParameters.d.ts +1 -1
- package/rest/symbolService.d.ts +1 -1
- package/smartMapping/heuristics/outline.js +1 -1
- package/smartMapping/heuristics/scaleRange.d.ts +1 -1
- package/smartMapping/heuristics/scaleRange.js +1 -1
- package/smartMapping/heuristics/sizeRange.d.ts +1 -1
- package/smartMapping/heuristics/sizeRange.js +1 -1
- package/smartMapping/labels/clusters.d.ts +1 -1
- package/smartMapping/popup/clusters.d.ts +1 -1
- package/smartMapping/popup/templates.d.ts +1 -1
- package/smartMapping/raster/renderers/classBreaks.d.ts +1 -1
- package/smartMapping/raster/renderers/colormap.d.ts +1 -1
- package/smartMapping/raster/renderers/flow.d.ts +1 -1
- package/smartMapping/raster/renderers/rgb.d.ts +1 -1
- package/smartMapping/raster/renderers/shadedRelief.d.ts +1 -1
- package/smartMapping/raster/renderers/stretch.d.ts +1 -1
- package/smartMapping/raster/renderers/uniqueValue.d.ts +1 -1
- package/smartMapping/raster/renderers/vectorField.d.ts +1 -1
- package/smartMapping/raster/support/utils.d.ts +1 -1
- package/smartMapping/renderers/color.d.ts +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/dotDensity.d.ts +1 -1
- package/smartMapping/renderers/dotDensity.js +1 -1
- package/smartMapping/renderers/heatmap.d.ts +1 -1
- package/smartMapping/renderers/location.d.ts +1 -1
- package/smartMapping/renderers/location.js +1 -1
- package/smartMapping/renderers/opacity.d.ts +1 -1
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/pieChart.d.ts +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/predominance.d.ts +1 -1
- package/smartMapping/renderers/predominance.js +1 -1
- package/smartMapping/renderers/relationship.d.ts +1 -1
- package/smartMapping/renderers/relationship.js +1 -1
- package/smartMapping/renderers/size.d.ts +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/renderers/type.d.ts +1 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/renderers/univariateColorSize.d.ts +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/statistics/classBreaks.d.ts +1 -1
- package/smartMapping/statistics/classBreaks.js +1 -1
- package/smartMapping/statistics/heatmapStatistics.d.ts +1 -1
- package/smartMapping/statistics/histogram.d.ts +1 -1
- package/smartMapping/statistics/histogram.js +1 -1
- package/smartMapping/statistics/predominantCategories.d.ts +1 -1
- package/smartMapping/statistics/predominantCategories.js +1 -1
- package/smartMapping/statistics/summaryStatistics.d.ts +1 -1
- package/smartMapping/statistics/summaryStatistics.js +1 -1
- package/smartMapping/statistics/summaryStatisticsForAge.d.ts +1 -1
- package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
- package/smartMapping/statistics/support/ageUtils.d.ts +1 -1
- package/smartMapping/statistics/support/predominanceUtils.d.ts +1 -1
- package/smartMapping/statistics/uniqueValues.d.ts +1 -1
- package/smartMapping/statistics/uniqueValues.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +5 -0
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/layerUtils.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/smartMapping/support/binningUtils.js +1 -1
- package/smartMapping/symbology/color.d.ts +1 -1
- package/smartMapping/symbology/dotDensity.d.ts +1 -1
- package/smartMapping/symbology/flow.d.ts +1 -1
- package/smartMapping/symbology/heatmap.d.ts +1 -1
- package/smartMapping/symbology/location.d.ts +1 -1
- package/smartMapping/symbology/pieChart.d.ts +1 -1
- package/smartMapping/symbology/predominance.d.ts +1 -1
- package/smartMapping/symbology/relationship.d.ts +1 -1
- package/smartMapping/symbology/size.d.ts +1 -1
- package/smartMapping/symbology/support/colorRamps.d.ts +1 -1
- package/smartMapping/symbology/type.d.ts +1 -1
- package/support/LayersMixin.d.ts +1 -1
- package/support/MapFloorInfo.d.ts +1 -1
- package/support/TablesMixin.d.ts +1 -1
- package/support/actions/ActionBase.d.ts +1 -1
- package/support/actions/ActionButton.d.ts +1 -1
- package/support/actions/ActionToggle.d.ts +1 -1
- package/support/popupUtils.d.ts +1 -1
- package/support/revision.js +1 -1
- package/support/timeUtils.d.ts +1 -1
- package/symbols/CIMSymbol.d.ts +1 -1
- package/symbols/ExtrudeSymbol3DLayer.d.ts +1 -1
- package/symbols/FillSymbol.d.ts +1 -1
- package/symbols/FillSymbol3DLayer.d.ts +1 -1
- package/symbols/Font.d.ts +1 -1
- package/symbols/IconSymbol3DLayer.d.ts +1 -1
- package/symbols/LabelSymbol3D.d.ts +1 -1
- package/symbols/LineStyleMarker3D.d.ts +1 -1
- package/symbols/LineSymbol.d.ts +1 -1
- package/symbols/LineSymbol3D.d.ts +1 -1
- package/symbols/LineSymbol3DLayer.d.ts +1 -1
- package/symbols/LineSymbolMarker.d.ts +1 -1
- package/symbols/MarkerSymbol.d.ts +1 -1
- package/symbols/MeshSymbol3D.d.ts +1 -1
- package/symbols/ObjectSymbol3DLayer.d.ts +1 -1
- package/symbols/PathSymbol3DLayer.d.ts +1 -1
- package/symbols/PictureFillSymbol.d.ts +1 -1
- package/symbols/PictureMarkerSymbol.d.ts +1 -1
- package/symbols/PointSymbol3D.d.ts +1 -1
- package/symbols/PolygonSymbol3D.d.ts +1 -1
- package/symbols/SimpleFillSymbol.d.ts +1 -1
- package/symbols/SimpleLineSymbol.d.ts +1 -1
- package/symbols/SimpleMarkerSymbol.d.ts +1 -1
- package/symbols/Symbol.d.ts +1 -1
- package/symbols/Symbol3D.d.ts +1 -1
- package/symbols/Symbol3DLayer.d.ts +1 -1
- package/symbols/TextSymbol.d.ts +1 -1
- package/symbols/TextSymbol3DLayer.d.ts +1 -1
- package/symbols/WaterSymbol3DLayer.d.ts +1 -1
- package/symbols/WebStyleSymbol.d.ts +1 -1
- package/symbols/callouts/Callout3D.d.ts +1 -1
- package/symbols/callouts/LineCallout3D.d.ts +1 -1
- package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
- package/symbols/edges/Edges3D.d.ts +1 -1
- package/symbols/edges/SketchEdges3D.d.ts +1 -1
- package/symbols/edges/SolidEdges3D.d.ts +1 -1
- package/symbols/patterns/LineStylePattern3D.d.ts +1 -1
- package/symbols/patterns/StylePattern3D.d.ts +1 -1
- package/symbols/support/StyleOrigin.d.ts +1 -1
- package/symbols/support/Symbol3DVerticalOffset.d.ts +1 -1
- package/symbols/support/cimSymbolUtils.d.ts +1 -1
- package/symbols/support/jsonUtils.d.ts +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/symbolUtils.d.ts +1 -1
- package/symbols/support/symbolUtils.js +1 -1
- package/symbols.d.ts +1 -1
- package/views/2d/LabelManager.js +1 -1
- package/views/2d/ViewState.d.ts +1 -1
- package/views/2d/ViewState.js +1 -1
- package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
- package/views/2d/engine/imagery/RasterVFTile.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/OverlayContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/TextureUploadManager.js +1 -1
- package/views/2d/engine/webgl/TiledDisplayObject.js +1 -1
- package/views/2d/engine/webgl/WGLTile.js +1 -1
- package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
- package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
- package/views/2d/layers/BaseLayerView2D.d.ts +1 -1
- package/views/2d/layers/BaseLayerViewGL2D.d.ts +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
- package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
- package/views/2d/layers/support/DebugOverlay.js +1 -1
- package/views/2d/layers/support/FeatureLayerProxy.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/Dimension/DimensionTool.js +1 -1
- package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
- package/views/3d/analysis/Dimension/settings.js +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisResult.d.ts +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/Slice/SliceVisualization.js +1 -1
- package/views/3d/analysis/Slice/sliceToolConfig.js +1 -1
- package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
- package/views/3d/analysis/SliceAnalysisView3D.d.ts +1 -1
- package/views/3d/camera/constraintUtils/distance.js +1 -1
- package/views/3d/camera/constraintUtils/tilt.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/environment/CloudsCompositionParameters.js +1 -1
- package/views/3d/environment/CloudyWeather.d.ts +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/FoggyWeather.d.ts +1 -1
- package/views/3d/environment/RainyWeather.d.ts +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/SnowyWeather.d.ts +1 -1
- package/views/3d/environment/SunLighting.d.ts +1 -1
- package/views/3d/environment/SunnyWeather.d.ts +1 -1
- package/views/3d/environment/VirtualLighting.d.ts +1 -1
- package/views/3d/externalRenderers.d.ts +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/interactive/Manipulator3D.js +1 -1
- package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/edgeOffsetUtils.js +1 -1
- package/views/3d/interactive/editingTools/settings.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
- package/views/3d/interactive/manipulatorUtils.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudWorker.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/elevationAlignPointsInFeatures.js +1 -1
- package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
- package/views/3d/layers/i3s/I3SElevationProvider.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
- package/views/3d/layers/i3s/I3SUtil.js +1 -1
- package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
- package/views/3d/layers/i3s/PointRenderer.js +1 -1
- package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
- package/views/3d/layers/support/I3STreeDebugger.js +1 -1
- package/views/3d/layers/support/edgeUtils.js +1 -1
- package/views/3d/layers/support/uvUtils.js +1 -1
- package/views/3d/state/Frustum.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
- package/views/3d/state/controllers/RotateController.js +1 -1
- package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
- package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
- package/views/3d/state/controllers/local/ZoomController.js +1 -1
- package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
- package/views/3d/state/utils/navigationUtils.js +1 -1
- package/views/3d/support/FrustumExtentIntersection.js +1 -1
- package/views/3d/support/LayerPerformanceInfo.d.ts +1 -1
- package/views/3d/support/SceneViewPerformanceInfo.d.ts +1 -1
- package/views/3d/support/orientedBoundingBox.js +1 -1
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
- package/views/3d/support/sunUtils.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +22 -0
- package/views/3d/webgl-engine/core/util/TwoVectorPosition.js +1 -1
- package/views/3d/webgl-engine/lib/Camera.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryRecord.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/edgePreprocessing.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/InstanceOctree.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
- package/views/3d/webgl-engine/lighting/SphericalHarmonics.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/parts/Model.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/BasemapView.d.ts +1 -1
- package/views/BreakpointsOwner.d.ts +1 -1
- package/views/DOMContainer.d.ts +1 -1
- package/views/GroundView.d.ts +1 -1
- package/views/Magnifier.d.ts +1 -1
- package/views/MapView.d.ts +1 -1
- package/views/MapView.js +1 -1
- package/views/SceneView.d.ts +1 -1
- package/views/ToolViewManager.js +1 -1
- package/views/View.d.ts +1 -1
- package/views/ViewAnimation.d.ts +1 -1
- package/views/analysis/DimensionAnalysisView.d.ts +1 -1
- package/views/analysis/LengthDimensionResult.d.ts +1 -1
- package/views/draw/Draw.d.ts +1 -1
- package/views/draw/Draw.js +1 -1
- package/views/draw/DrawAction.d.ts +1 -1
- package/views/draw/DrawGraphicTool.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/MultipointDrawAction.d.ts +1 -1
- package/views/draw/MultipointDrawAction.js +1 -1
- package/views/draw/PointDrawAction.d.ts +1 -1
- package/views/draw/PolygonDrawAction.d.ts +1 -1
- package/views/draw/PolylineDrawAction.d.ts +1 -1
- package/views/draw/SegmentDrawAction.d.ts +1 -1
- package/views/draw/drawSurfaces.js +1 -1
- package/views/draw/support/surfaceCoordinateSystems.js +1 -1
- package/views/input/Input.d.ts +1 -1
- package/views/input/gamepad/GamepadInputDevice.d.ts +1 -1
- package/views/input/gamepad/GamepadSettings.d.ts +1 -1
- package/views/interactive/coordinateHelper.js +1 -1
- package/views/interactive/dragEventPipeline.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
- package/views/interactive/sketch/SketchLabelOptions.d.ts +1 -1
- package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/FeatureSnappingLayerSource.d.ts +1 -1
- package/views/interactive/snapping/RightAngleSnapper.js +1 -1
- package/views/interactive/snapping/SnappingConstraint.js +1 -1
- package/views/interactive/snapping/SnappingDragPipelineStep.js +1 -1
- package/views/interactive/snapping/SnappingOperation.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
- package/views/interactive/snapping/candidates/DrapedEdgeSnappingCandidate.js +5 -0
- package/views/interactive/snapping/featureSources/FeatureCollectionSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
- package/views/interactive/snapping/featureSources/queryEngineUtils.js +1 -1
- package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
- package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
- package/views/interactive/snapping/featureSources/snappingCandidateElevationFilter.js +1 -1
- package/views/interactive/snapping/snappingUtils.js +1 -1
- package/views/interactive/tooltip/DrawTooltipInfos.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
- package/views/layers/BuildingComponentSublayerView.d.ts +1 -1
- package/views/layers/BuildingSceneLayerView.d.ts +1 -1
- package/views/layers/CSVLayerView.d.ts +1 -1
- package/views/layers/DimensionLayerView.d.ts +1 -1
- package/views/layers/FeatureLayerView.d.ts +1 -1
- package/views/layers/GeoJSONLayerView.d.ts +1 -1
- package/views/layers/GeoRSSLayerView.d.ts +1 -1
- package/views/layers/GraphicsLayerView.d.ts +1 -1
- package/views/layers/ImageryLayerView.d.ts +1 -1
- package/views/layers/KMLLayerView.d.ts +1 -1
- package/views/layers/LayerView.d.ts +1 -1
- package/views/layers/OGCFeatureLayerView.d.ts +1 -1
- package/views/layers/PointCloudLayerView.d.ts +1 -1
- package/views/layers/SceneLayerView.d.ts +1 -1
- package/views/layers/StreamLayerView.d.ts +1 -1
- package/views/layers/WFSLayerView.d.ts +1 -1
- package/views/navigation/Navigation.d.ts +1 -1
- package/views/navigation/PanSphericalMomentumEstimator.js +1 -1
- package/views/navigation/gamepad/GamepadSettings.d.ts +1 -1
- package/views/support/Scheduler.js +1 -1
- package/views/support/colorUtils.d.ts +1 -1
- package/views/support/euclideanAreaMeasurementUtils.js +1 -1
- package/views/support/geometry3dUtils.js +1 -1
- package/views/ui/DefaultUI.d.ts +1 -1
- package/views/ui/UI.d.ts +1 -1
- package/webdoc/GeotriggersInfo.d.ts +1 -1
- package/webdoc/applicationProperties/Search.d.ts +1 -1
- package/webdoc/applicationProperties/SearchLayer.d.ts +1 -1
- package/webdoc/applicationProperties/SearchLayerField.d.ts +1 -1
- package/webdoc/applicationProperties/SearchTable.d.ts +1 -1
- package/webdoc/applicationProperties/SearchTableField.d.ts +1 -1
- package/webdoc/applicationProperties/Viewing.d.ts +1 -1
- package/webdoc/geotriggersInfo/DeviceLocationFeed.d.ts +1 -1
- package/webdoc/geotriggersInfo/ExpressionInfo.d.ts +1 -1
- package/webdoc/geotriggersInfo/FeatureFenceParameters.d.ts +1 -1
- package/webdoc/geotriggersInfo/FeatureFilter.d.ts +1 -1
- package/webdoc/geotriggersInfo/FeatureLayerSource.d.ts +1 -1
- package/webdoc/geotriggersInfo/FenceGeotrigger.d.ts +1 -1
- package/webdoc/geotriggersInfo/Geotrigger.d.ts +1 -1
- package/webdoc/geotriggersInfo/GeotriggerNotificationOptions.d.ts +1 -1
- package/webmap/ApplicationProperties.d.ts +1 -1
- package/webmap/Bookmark.d.ts +1 -1
- package/webmap/InitialViewProperties.d.ts +1 -1
- package/webmap/background/ColorBackground.d.ts +1 -1
- package/webscene/ApplicationProperties.d.ts +1 -1
- package/webscene/Environment.d.ts +1 -1
- package/webscene/InitialViewProperties.d.ts +1 -1
- package/webscene/Lighting.d.ts +1 -1
- package/webscene/Presentation.d.ts +1 -1
- package/webscene/Slide.d.ts +1 -1
- package/webscene/Slide.js +1 -1
- package/webscene/SunLighting.d.ts +1 -1
- package/webscene/VirtualLighting.d.ts +1 -1
- package/webscene/background/Background.d.ts +1 -1
- package/webscene/background/ColorBackground.d.ts +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +1 -1
- package/widgets/AreaMeasurement2D.d.ts +1 -1
- package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.d.ts +1 -1
- package/widgets/AreaMeasurement3D.d.ts +1 -1
- package/widgets/Attachments/AttachmentsViewModel.d.ts +1 -1
- package/widgets/Attachments.d.ts +1 -1
- package/widgets/Attribution/AttributionViewModel.d.ts +1 -1
- package/widgets/Attribution.d.ts +1 -1
- package/widgets/BasemapGallery/BasemapGalleryViewModel.d.ts +1 -1
- package/widgets/BasemapGallery/support/BasemapGalleryItem.d.ts +1 -1
- package/widgets/BasemapGallery/support/LocalBasemapsSource.d.ts +1 -1
- package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +1 -1
- package/widgets/BasemapGallery.d.ts +1 -1
- package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +1 -1
- package/widgets/BasemapLayerList.d.ts +1 -1
- package/widgets/BasemapToggle/BasemapToggleViewModel.d.ts +1 -1
- package/widgets/BasemapToggle.d.ts +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.d.ts +1 -1
- package/widgets/Bookmarks.d.ts +1 -1
- package/widgets/BuildingExplorer/BuildingExplorerViewModel.d.ts +1 -1
- package/widgets/BuildingExplorer/BuildingLevel.d.ts +1 -1
- package/widgets/BuildingExplorer/BuildingPhase.d.ts +1 -1
- package/widgets/BuildingExplorer.d.ts +1 -1
- package/widgets/Compass/CompassViewModel.d.ts +1 -1
- package/widgets/Compass.d.ts +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +1 -1
- package/widgets/CoordinateConversion/support/Conversion.d.ts +1 -1
- package/widgets/CoordinateConversion/support/Format.d.ts +1 -1
- package/widgets/CoordinateConversion.d.ts +1 -1
- package/widgets/Daylight/DaylightViewModel.d.ts +1 -1
- package/widgets/Daylight.d.ts +1 -1
- package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.d.ts +1 -1
- package/widgets/DirectLineMeasurement3D.d.ts +1 -1
- package/widgets/Directions/DirectionsViewModel.d.ts +1 -1
- package/widgets/Directions.d.ts +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +1 -1
- package/widgets/DistanceMeasurement2D.d.ts +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.d.ts +1 -1
- package/widgets/Editor/CreateFeaturesWorkflowData.d.ts +1 -1
- package/widgets/Editor/CreateWorkflow.d.ts +1 -1
- package/widgets/Editor/CreateWorkflowData.d.ts +1 -1
- package/widgets/Editor/EditorViewModel.d.ts +1 -1
- package/widgets/Editor/Edits.d.ts +1 -1
- package/widgets/Editor/UpdateWorkflow.d.ts +1 -1
- package/widgets/Editor/UpdateWorkflowData.d.ts +1 -1
- package/widgets/Editor/Workflow.d.ts +1 -1
- package/widgets/Editor.d.ts +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLine.d.ts +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineView.d.ts +1 -1
- package/widgets/ElevationProfile/ElevationProfileViewModel.d.ts +1 -1
- package/widgets/ElevationProfile/support/ProfileLines3D.js +1 -1
- package/widgets/ElevationProfile/support/constants.js +1 -1
- package/widgets/ElevationProfile.d.ts +1 -1
- package/widgets/Expand/ExpandViewModel.d.ts +1 -1
- package/widgets/Expand.d.ts +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
- package/widgets/Feature/FeatureViewModel.d.ts +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature.d.ts +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.d.ts +1 -1
- package/widgets/FeatureForm/FieldConfig.d.ts +1 -1
- package/widgets/FeatureForm/FieldGroupConfig.d.ts +1 -1
- package/widgets/FeatureForm/FormExpressionArcadeExecutor.js +1 -1
- package/widgets/FeatureForm/InputField.d.ts +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureForm/InputFieldGroup.d.ts +1 -1
- package/widgets/FeatureForm.d.ts +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
- package/widgets/FeatureTable/FieldColumn.d.ts +1 -1
- package/widgets/FeatureTable/FieldColumnConfig.d.ts +1 -1
- package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
- package/widgets/FeatureTable/Grid/GroupColumn.d.ts +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.d.ts +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenuItem.d.ts +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenuViewModel.d.ts +1 -1
- package/widgets/FeatureTable/support/ColumnTemplate.d.ts +1 -1
- package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
- package/widgets/FeatureTable/support/FieldColumnTemplate.d.ts +1 -1
- package/widgets/FeatureTable/support/GroupColumnTemplate.d.ts +1 -1
- package/widgets/FeatureTable/support/TableTemplate.d.ts +1 -1
- package/widgets/FeatureTable.d.ts +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +1 -1
- package/widgets/FeatureTemplates/TemplateItem.d.ts +1 -1
- package/widgets/FeatureTemplates/TemplateItemGroup.d.ts +1 -1
- package/widgets/FeatureTemplates.d.ts +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.d.ts +1 -1
- package/widgets/FloorFilter.d.ts +1 -1
- package/widgets/Fullscreen/FullscreenViewModel.d.ts +1 -1
- package/widgets/Fullscreen.d.ts +1 -1
- package/widgets/Histogram/HistogramViewModel.d.ts +1 -1
- package/widgets/Histogram.d.ts +1 -1
- package/widgets/HistogramRangeSlider/HistogramRangeSliderViewModel.d.ts +1 -1
- package/widgets/HistogramRangeSlider.d.ts +1 -1
- package/widgets/Home/HomeViewModel.d.ts +1 -1
- package/widgets/Home.d.ts +1 -1
- package/widgets/LayerList/LayerListViewModel.d.ts +1 -1
- package/widgets/LayerList/ListItem.d.ts +1 -1
- package/widgets/LayerList/ListItemPanel.d.ts +1 -1
- package/widgets/LayerList.d.ts +1 -1
- package/widgets/Legend/LegendViewModel.d.ts +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.d.ts +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend.d.ts +1 -1
- package/widgets/LineOfSight/LineOfSightTarget.d.ts +1 -1
- package/widgets/LineOfSight/LineOfSightViewModel.d.ts +1 -1
- package/widgets/LineOfSight.d.ts +1 -1
- package/widgets/Locate/LocateViewModel.d.ts +1 -1
- package/widgets/Locate.d.ts +1 -1
- package/widgets/Measurement/MeasurementViewModel.d.ts +1 -1
- package/widgets/Measurement.d.ts +1 -1
- package/widgets/NavigationToggle/NavigationToggleViewModel.d.ts +1 -1
- package/widgets/NavigationToggle.d.ts +1 -1
- package/widgets/Popup/PopupViewModel.d.ts +1 -1
- package/widgets/Popup.d.ts +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print/CustomTemplate.d.ts +1 -1
- package/widgets/Print/PrintViewModel.d.ts +1 -1
- package/widgets/Print/TemplateOptions.d.ts +1 -1
- package/widgets/Print.d.ts +1 -1
- package/widgets/ScaleBar/ScaleBarViewModel.d.ts +1 -1
- package/widgets/ScaleBar.d.ts +1 -1
- package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.d.ts +1 -1
- package/widgets/ScaleRangeSlider/ScaleRanges.d.ts +1 -1
- package/widgets/ScaleRangeSlider.d.ts +1 -1
- package/widgets/Search/LayerSearchSource.d.ts +1 -1
- package/widgets/Search/LocatorSearchSource.d.ts +1 -1
- package/widgets/Search/SearchResultRenderer.d.ts +1 -1
- package/widgets/Search/SearchSource.d.ts +1 -1
- package/widgets/Search/SearchViewModel.d.ts +1 -1
- package/widgets/Search.d.ts +1 -1
- package/widgets/ShadowCast/ShadowCastViewModel.d.ts +1 -1
- package/widgets/ShadowCast.d.ts +1 -1
- package/widgets/Sketch/SketchViewModel.d.ts +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch/support/OperationHandle.js +1 -1
- package/widgets/Sketch.d.ts +1 -1
- package/widgets/Slice/SlicePlane.d.ts +1 -1
- package/widgets/Slice/SliceViewModel.d.ts +1 -1
- package/widgets/Slice.d.ts +1 -1
- package/widgets/Slider/SliderViewModel.d.ts +1 -1
- package/widgets/Slider.d.ts +1 -1
- package/widgets/Swipe/SwipeViewModel.d.ts +1 -1
- package/widgets/Swipe.d.ts +1 -1
- package/widgets/TableList/ListItem.d.ts +1 -1
- package/widgets/TableList/TableListViewModel.d.ts +1 -1
- package/widgets/TableList.d.ts +1 -1
- package/widgets/TimeSlider/TimeSliderViewModel.d.ts +1 -1
- package/widgets/TimeSlider.d.ts +1 -1
- package/widgets/Track/TrackViewModel.d.ts +1 -1
- package/widgets/Track.d.ts +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +1 -1
- package/widgets/UtilityNetworkTrace.d.ts +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/Weather/WeatherViewModel.d.ts +1 -1
- package/widgets/Weather.d.ts +1 -1
- package/widgets/Widget.d.ts +1 -1
- package/widgets/Zoom/ZoomViewModel.d.ts +1 -1
- package/widgets/Zoom.d.ts +1 -1
- package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/ClassedColorSlider.d.ts +1 -1
- package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.d.ts +1 -1
- package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/ColorSizeSlider.d.ts +1 -1
- package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/ColorSlider.d.ts +1 -1
- package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/HeatmapSlider.d.ts +1 -1
- package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/OpacitySlider.d.ts +1 -1
- package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/SizeSlider.d.ts +1 -1
- package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/SmartMappingSliderBase.d.ts +1 -1
- package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +1 -1
- package/widgets/smartMapping/support/utils.d.ts +1 -1
- package/widgets/support/DatePicker.d.ts +1 -1
- package/widgets/support/DatePickerViewModel.d.ts +1 -1
- package/widgets/support/DateTimeElementViewModel.d.ts +1 -1
- package/widgets/support/GeolocationPositioning.d.ts +1 -1
- package/widgets/support/GoTo.d.ts +1 -1
- package/widgets/support/SnappingControls/SnappingControlsViewModel.d.ts +1 -1
- package/widgets/support/SnappingControls.d.ts +1 -1
- package/widgets/support/TimePicker.d.ts +1 -1
- package/widgets/support/TimePickerViewModel.d.ts +1 -1
- package/widgets/support/widget.d.ts +1 -1
- package/assets/esri/core/workers/chunks/09255015e57bdfa5337f.js +0 -1
- package/assets/esri/core/workers/chunks/24ffd7180bb947bc8aec.js +0 -1
- package/assets/esri/core/workers/chunks/2d6d089176b6bd490b9f.js +0 -1
- package/assets/esri/core/workers/chunks/325f9eb52610c6c22f46.js +0 -1
- package/assets/esri/core/workers/chunks/6a2358861b3d3007ad26.js +0 -1
- package/assets/esri/core/workers/chunks/7230a7d5fb7106b14024.js +0 -1
- package/assets/esri/core/workers/chunks/90dfa238d78c92fe43b1.js +0 -1
- package/assets/esri/core/workers/chunks/a16109389dce496ab51c.js +0 -1
- package/assets/esri/core/workers/chunks/bf248b08e18a50878f38.js +0 -1
- package/assets/esri/core/workers/chunks/c9399a106dc167368a39.js +0 -1
- package/assets/esri/core/workers/chunks/ceb68e994b82d69c1215.js +0 -1
- package/assets/esri/core/workers/chunks/dbf72099949febfae5a1.js +0 -1
- package/assets/esri/core/workers/chunks/e158ca25c239a5912ea0.js +0 -1
- package/assets/esri/core/workers/chunks/ece3d9989c9ec13cae09.js +0 -1
- package/assets/esri/core/workers/chunks/f6772f57bb1466e50d63.js +0 -1
- package/chunks/MultipointDrawAction.js +0 -5
- package/smartMapping/statistics/summaryStatisticsForBinning.js +0 -5
- package/views/2d/draw/Draw.js +0 -5
- package/views/2d/draw/DrawAction.js +0 -5
- package/views/2d/draw/MultipointDrawAction.js +0 -5
- package/views/2d/draw/PointDrawAction.js +0 -5
- package/views/2d/draw/PolygonDrawAction.js +0 -5
- package/views/2d/draw/PolylineDrawAction.js +0 -5
- package/views/2d/draw/SegmentDrawAction.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isSome as t,isNone as e}from"../../../../core/maybe.js";import{c as s,m as i}from"../../../../chunks/mat4.js";import{c as r,b as o,I as a}from"../../../../chunks/mat4f64.js";import{h as n,
|
|
5
|
+
import{isSome as t,isNone as e}from"../../../../core/maybe.js";import{c as s,m as i}from"../../../../chunks/mat4.js";import{c as r,b as o,I as a}from"../../../../chunks/mat4f64.js";import{h as n,m as h,i as m,c,s as l}from"../../../../chunks/vec3.js";import{a as d,f as g,c as _}from"../../../../chunks/vec3f64.js";import{c as u,l as b}from"../../../../chunks/sphere.js";import{maxScale as f}from"../../support/mathUtils.js";import{Object3DState as p}from"./basicInterfaces.js";import{ContentObject as v}from"./ContentObject.js";import{ContentObjectType as y}from"./ContentObjectType.js";import{GeometryRecord as j}from"./GeometryRecord.js";import{Object3DStateID as V}from"./Object3DStateID.js";import{assert as S}from"./Util.js";import{addObject3DStateID as A,removeObject3DStateID as T}from"../materials/renderers/utils.js";class x extends v{constructor(t={}){super(),this.type=y.Object,this._geometryRecords=new Array,this._geometries=new Array,this._objectTransformation=r(),this._bvObjectSpace=new L,this._bvWorldSpace=new L,this._bvDirty=!0,this._hasVolatileTransformation=!1,this._visible=!0,this.castShadow=null==t.castShadow||t.castShadow,this.metadata=t.metadata,this.metadata&&this.metadata.isElevationSource&&(this.metadata.lastValidElevationBB=new O);const{geometries:e,materials:s,transformations:i,origins:a}=t;if(Array.isArray(e)){S(s.length===e.length,"Object3D: materials don't match geometries"),S(i.length===e.length,"Object3D: transformations don't match geometries"),this._geometryRecords.length=e.length,this._geometries.length=e.length;for(let t=0;t<e.length;t++)this._geometries[t]=e[t],this._geometryRecords[t]=j.pool.acquire(e[t],s[t],o(i[t]),{highlights:null,occludees:null,visible:this._visible},a&&a[t])}}get geometryRecords(){return this._geometryRecords}get geometries(){return this._geometries}get transformation(){return this._objectTransformation}set transformation(t){s(this._objectTransformation,t),this._invalidateBoundingVolume(),this._emit("objectTransformation",this)}dispose(){this._geometryRecords.length=0,this._geometries.length=0}get parentLayer(){return this._parentLayer}set parentLayer(t){S(null==this._parentLayer||null==t,"Object3D can only be added to a single Layer"),this._parentLayer=t}addGeometry(e,s,i,r,o){i=i||a,this._geometries.push(e);const n=j.pool.acquire(e,s,i,{highlights:null,occludees:null,visible:this._visible},r,o);return this._geometryRecords.push(n),this._hasVolatileTransformation=this._hasVolatileTransformation||t(n.shaderTransformation),this._emit("objectGeometryAdded",{object:this,record:n}),this._invalidateBoundingVolume(),n}removeGeometry(e){const s=this._geometryRecords.splice(e,1)[0];return this._hasVolatileTransformation=t(s.shaderTransformation)?this._geometryRecords.some((e=>t(e.shaderTransformation))):this._hasVolatileTransformation,s.dispose(),this._geometries.splice(e,1),this._emit("objectGeometryRemoved",{object:this,record:s}),this._invalidateBoundingVolume(),s}removeAllGeometries(){for(;this.geometryRecords.length>0;)this.removeGeometry(0)}geometryVertexAttrsUpdated(t){this._emit("vertexAttrsUpdated",{object:this,record:t}),this._invalidateBoundingVolume()}get isVisible(){return this._visible}setVisible(t){if(this._visible!==t){this._visible=t;for(const t of this._geometryRecords)t.instanceParameters.visible=this._visible;this._emit("visibilityChanged",this)}}maskOccludee(){const t=new V(p.MaskOccludee);for(const e of this._geometryRecords)e.instanceParameters.occludees=A(e.instanceParameters.occludees,t);return this._emit("occlusionChanged",this),t}removeOcclude(t){for(const e of this._geometryRecords)e.instanceParameters.occludees=T(e.instanceParameters.occludees,t);this._emit("occlusionChanged",this)}highlight(){const t=new V(p.Highlight);for(const e of this._geometryRecords)e.instanceParameters.highlights=A(e.instanceParameters.highlights,t);return this._emit("highlightChanged",this),t}removeHighlight(t){for(const e of this._geometryRecords)e.instanceParameters.highlights=T(e.instanceParameters.highlights,t);this._emit("highlightChanged",this)}getCombinedStaticTransformation(t,e){return i(e,this.transformation,t.getStaticTransformation())}_getCombinedShaderTransformation(t){return i(r(),this.transformation,t.getShaderTransformation())}hasVolativeTransformation(){return this._hasVolatileTransformation}get boundingVolumeWorldSpace(){return this._validateBoundingVolume(),this._bvWorldSpace}get boundingVolumeObjectSpace(){return this._validateBoundingVolume(),this._bvObjectSpace}_validateBoundingVolume(){if(!this._bvDirty&&!this._hasVolatileTransformation)return;this._bvObjectSpace.init(),this._bvWorldSpace.init();for(let e=0;e<this._geometryRecords.length;++e){const s=this._geometries[e],i=this._geometryRecords[e],r=s.boundingInfo;t(r)&&(this._calculateTransformedBoundingVolume(r,this._bvObjectSpace,i.getShaderTransformation()),this._calculateTransformedBoundingVolume(r,this._bvWorldSpace,this._getCombinedShaderTransformation(i)))}n(this._bvObjectSpace.bounds,this._bvObjectSpace.min,this._bvObjectSpace.max,.5),n(this._bvWorldSpace.bounds,this._bvWorldSpace.min,this._bvWorldSpace.max,.5);const s=_(),i=_(),r=f(this.transformation);for(let t=0;t<this._geometryRecords.length;++t){const o=this._geometries[t].boundingInfo;if(e(o))continue;const a=this._geometryRecords[t].getShaderTransformation(),n=f(a);h(s,o.getCenter(),a);const c=m(s,this._bvObjectSpace.bounds),l=o.getBSRadius()*n;this._bvObjectSpace.bounds[3]=Math.max(this._bvObjectSpace.bounds[3],c+l),h(i,s,this.transformation);const d=m(i,this._bvWorldSpace.bounds),g=l*r;this._bvWorldSpace.bounds[3]=Math.max(this._bvWorldSpace.bounds[3],d+g)}this._bvDirty=!1}_calculateTransformedBoundingVolume(t,e,s){const i=t.getBBMin(),r=t.getBBMax(),o=d(i),a=d(r);h(o,o,s),h(a,a,s);for(let n=0;n<3;++n)e.min[n]=Math.min(e.min[n],o[n],a[n]),e.max[n]=Math.max(e.max[n],o[n],a[n]);for(let n=0;n<3;++n){c(o,i),c(a,r),o[n]=r[n],a[n]=i[n],h(o,o,s),h(a,a,s);for(let t=0;t<3;++t)e.min[t]=Math.min(e.min[t],o[t],a[t]),e.max[t]=Math.max(e.max[t],o[t],a[t])}}_invalidateBoundingVolume(){this._bvDirty=!0,t(this._parentLayer)&&this._parentLayer.notifyObjectBBChanged(this,this._bvWorldSpace.bounds)}_emit(e,s){t(this._parentLayer)&&this._parentLayer.events.emit(e,s)}get test(){const t=this;return{hasGeometry:e=>t._geometries.includes(e),getGeometryIndex:e=>t._geometries.indexOf(e)}}}class O{constructor(){this.min=g(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this.max=g(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE)}isEmpty(){return this.max[0]<this.min[0]&&this.max[1]<this.min[1]&&this.max[2]<this.min[2]}}class L extends O{constructor(){super(...arguments),this.bounds=u()}init(){l(this.min,Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),l(this.max,-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),b(this.bounds)}}export{x as Object3D};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{unwrapOr as t,isNone as r,isSome as i}from"../../../../core/maybe.js";import{generateUID as s}from"../../../../core/uid.js";import{c as a}from"../../../../chunks/mat4.js";import{c as n,I as e}from"../../../../chunks/mat4f64.js";import{
|
|
5
|
+
import{unwrapOr as t,isNone as r,isSome as i}from"../../../../core/maybe.js";import{generateUID as s}from"../../../../core/uid.js";import{c as a}from"../../../../chunks/mat4.js";import{c as n,I as e}from"../../../../chunks/mat4f64.js";import{m as o}from"../../../../chunks/vec3.js";import{c as h}from"../../../../chunks/vec4f64.js";import{maxScale as m}from"../../support/mathUtils.js";import{Object3DState as c}from"./basicInterfaces.js";import{computeAttachmentOriginTriangles as d}from"./geometryDataUtils.js";import{InstanceParameters as f}from"./InstanceParameters.js";import{Object3DStateID as u}from"./Object3DStateID.js";import{VertexAttribute as g}from"./VertexAttribute.js";import{addObject3DStateID as l,removeObject3DStateID as p}from"../materials/renderers/utils.js";class T{constructor(r,i,a={}){this.data=r,this.material=i,this.boundingSphere=h(),this.instanceParameters=new f,this._transformation=n(),this._shaderTransformationDirty=!0,this.layerUid=t(a.layerUid,null),this.graphicUid=t(a.graphicUid,null),this.id=a.id?a.id:s(),this.boundingInfo=t(a.boundingInfo,null),this.calculateShaderTransformation=t(a.calculateShaderTransformation,null),this.castShadow=!!a.castShadow&&a.castShadow}get transformation(){return this._transformation}updateTransformation(t){t(this._transformation),this._shaderTransformationDirty=!0,this.computeBoundingSphere(this._transformation,this.boundingSphere)}shaderTransformationChanged(){this._shaderTransformationDirty=!0}computeBoundingSphere(t,i,s=m(t)){r(this.boundingInfo)||(o(i,this.boundingInfo.getCenter(),t),i[3]=this.boundingInfo.getBSRadius()*s)}get hasShaderTransformation(){return i(this.calculateShaderTransformation)}get primitiveType(){return this.data.primitiveType}getShaderTransformation(){return r(this.calculateShaderTransformation)?t(this.transformation,e):(this._shaderTransformationDirty&&(this._shaderTransformation||(this._shaderTransformation=n()),a(this._shaderTransformation,this.calculateShaderTransformation(t(this.transformation,e))),this._shaderTransformationDirty=!1),this._shaderTransformation)}computeAttachmentOrigin(t){if(this.material.computeAttachmentOrigin)return!!this.material.computeAttachmentOrigin(this,t)&&(i(this._transformation)&&o(t,t,this._transformation),!0);const r=this.indices.get(g.POSITION),s=this.vertexAttributes.get(g.POSITION);return!!d(s,r,t)&&(i(this._transformation)&&o(t,t,this._transformation),!0)}get indices(){return this.data.indices}get vertexAttributes(){return this.data.vertexAttributes}addHighlight(){const t=new u(c.Highlight),r=this.instanceParameters;return r.highlights=l(r.highlights,t),t}removeHighlight(t){const r=this.instanceParameters;r.highlights=p(r.highlights,t)}}class S extends T{}export{T as RenderGeometry,S as ValidatedRenderGeometry};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../chunks/tslib.es6.js";import r from"../../../../core/Accessor.js";import{update as t}from"../../../../core/arrayUtils.js";import s from"../../../../core/Handles.js";import has from"../../../../core/has.js";import{someMap as n}from"../../../../core/MapUtils.js";import{clamp as i}from"../../../../core/mathUtils.js";import{destroyMaybe as a,disposeMaybe as h,isSome as d,isNone as o,applySome as _,unwrap as l}from"../../../../core/maybe.js";import{watch as c,syncAndInitial as p,initial as m,sync as g}from"../../../../core/reactiveUtils.js";import{Milliseconds as u}from"../../../../core/time.js";import{property as f}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as R}from"../../../../core/accessorSupport/decorators/subclass.js";import{h as T,a as E,m as b}from"../../../../chunks/mat4.js";import{I as A,c as P}from"../../../../chunks/mat4f64.js";import{a as S}from"../../../../chunks/boundedPlane.js";import{MINIMUM_IDLE_ANIMATION_FPS_TIME as O,MAXIMUM_IDLE_ANIMATION_FPS_TIME as C,MAXIMUM_ANIMATION_LOAD as w}from"../../support/animationUtils.js";import y from"../../support/debugFlags.js";import{TransparencyMode as D}from"../../terrain/TerrainRenderer.js";import{RenderPassManager as x}from"../core/renderPasses/RenderPassManager.js";import{ShaderOutput as I}from"../core/shaderLibrary/ShaderOutput.js";import{HUDTransparentRenderStyle as H}from"../core/shaderLibrary/hud/HUDUniforms.js";import{Decorations as M,RenderRequestType as L,StencilBits as N}from"./basicInterfaces.js";import{BoundingInfo as v}from"./BoundingInfo.js";import{ZERO as U,union as j}from"./depthRange.js";import{depthRangeFromScene as q}from"./depthRangeUtils.js";import{createEmptyDepthTexture as G}from"./glUtil3D.js";import{Highlight as V}from"./Highlight.js";import{RenderOccludedFlag as F}from"./Material.js";import{OffscreenRendering as B}from"./OffscreenRendering.js";import{RenderContext as k}from"./RenderContext.js";import{splitRenderGeometryChangeSetByMaterial as W}from"./rendererUtils.js";import{RenderPluginManager as Q}from"./RenderPluginManager.js";import{RenderSlot as Y}from"./RenderSlot.js";import{ShadowAccumulator as X}from"./ShadowAccumulator.js";import{ShadowHighlight as z}from"./ShadowHighlight.js";import{ShadowMap as J,SnapshotSlot as K}from"./ShadowMap.js";import Z from"./SliceHelper.js";import{SmaaRenderPass as $}from"./SmaaRenderPass.js";import{SSAOHelper as ee}from"./SSAOHelper.js";import{TransparencyPassType as re}from"./TransparencyPassType.js";import{EdgeView as te}from"./edgeRendering/EdgeView.js";import{Transparency as se}from"./edgeRendering/interfaces.js";import{MergedRenderer as ne}from"../materials/renderers/MergedRenderer.js";import{AlphaMode as ie}from"../shaders/CompositingTechniqueConfiguration.js";import{RendererPerformanceInfo as ae,PerformanceCategory as he}from"../statistics/RendererPerformanceInfo.js";import{ClearBufferBit as de,PixelFormat as oe,PixelType as _e}from"../../../webgl/enums.js";const le=.9;let ce=class extends r{constructor(e,r,t,n,i,a,h,d,o){super({}),this._materialRepository=e,this._shaderTechniqueRepository=t,this._rctx=n,this._compositingHelper=i,this._magnifierHelper=a,this._requestRender=h,this._stage=o,this._materialRenderers=new Map,this._needsTransparentPass=!1,this._hasHUDElements=!1,this._hasHighlights=!1,this._hasWater=!1,this._hasOverlayWater=!1,this._renderOverlay=e=>{},this._content=new Map,this._isRendering=!1,this._fallbackDepthStencilTexture=null,this._sliceHelper=new Z,this._antialiasing=!0,this._oitEnabled=!1,this._multipassTerrain=!0,this._terrainRenderingEnabled=!0,this._terrainTransparency=D.Opaque,this._waterReflectionEnabled=!1,this._hasAnimations=!1,this._animationTimestep=O,this._handles=new s,this._renderHiddenTransparentEdges=()=>{},this._oitUsed=!1,this._smaaPass=new $(this._rctx,t),this._oitEnabled=this._hasOITSupport,this._requestRender(),this._offscreenRendering=new B(this._rctx,this._compositingHelper),this.performanceInfo=new ae(this._rctx),this._shadowMap=new J(this._rctx,o.viewingMode),this._ssaoHelper=new ee(t,this._rctx,(()=>this._requestRender())),this._highlight=new V(t,this._rctx),this._shadowHighlight=new z(this._rctx,o.viewingMode),this._shadowAccumulator=new X(this._rctx,t,o,(e=>{const r=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureCameraBindParameters(e.camera,e.contentCamera),this._renderPlugins.prepareRender(),this._shadowMap.enabled=r}),((e,r,t)=>{e.shadowMap.start(e.camera,r,t),this._renderShadowCascades(I.Shadow,e.shadowMap),e.camera.setGLViewport(this._rctx),this._ensureCameraBindParameters(e.camera,e.contentCamera)}),(()=>this._requestRender())),this._renderContext=new k(this._rctx,this._offscreenRendering,this._shadowMap,this._ssaoHelper,this._sliceHelper),this._renderPlugins=new Q({renderContext:this._renderContext,shaderTechniqueRepository:t,textureRep:r,materialRep:this._materialRepository,requestRender:this._requestRender,schedule:d}),this.renderPassManager=new x(this._rctx,this._shaderTechniqueRepository),this._renderPlugins.add(this.renderPassManager.slots(),this.renderPassManager),this._handles.add([c((()=>this._stage.state.camera),(()=>this._requestRender()),p),c((()=>y.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES),(e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(se.TRANSPARENT):()=>{},this._requestRender()}),m)])}get _bindParameters(){return this._renderContext.bindParameters}get hasWater(){return this._hasWater||this._hasOverlayWater}get hasWaterReflection(){return this.hasWater&&this._waterReflectionEnabled}normalizeCtorArgs(){return{}}dispose(){this._handles.destroy(),this._smaaPass.dispose(),this._materialRenderers.forEach((e=>e.dispose())),this._materialRenderers.clear(),this._edgeView=a(this._edgeView),this._offscreenRendering.dispose(),this._fallbackDepthStencilTexture=h(this._fallbackDepthStencilTexture),this._shadowMap.enabled=!1,this._shadowMap.dispose(),this._ssaoHelper.enabled=!1,this._ssaoHelper.dispose(),this._highlight.dispose(),this._shadowHighlight.dispose(),this._shadowAccumulator.dispose(),v.prune(),this._content.clear()}disposeOffscreenBuffers(){this._offscreenRendering.dispose(),this._shadowMap.dispose(),this._smaaPass.disable(),this._ssaoHelper.disposeOffscreenBuffers()}get updating(){return this._antialiasing&&this._smaaPass.updating||d(this._edgeView)&&this._edgeView.updating||this._shadowAccumulator.running||!this.isCameraFinal}ensureEdgeView(){return o(this._edgeView)&&(this._edgeView=new te({rctx:this._rctx,renderSR:this._stage.renderSR,viewingMode:this._stage.viewingMode,techniqueRepository:this._shaderTechniqueRepository,setNeedsRender:()=>this._requestRender(),schedule:e=>this._stage.resourceController.schedule(e)}),this._handles.add(c((()=>_(this._edgeView,(e=>e.updating))),(()=>this._requestRender()),g)),this._requestRender()),this._edgeView}get edgeView(){return this._edgeView}get isCameraFinal(){return T(this._bindParameters.ssr.reprojectionMatrix,A)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this.notifyChange("isCameraFinal")}get shadowsEnabled(){return!!this._shadowMap?.enabled}setRenderParameters(e){const{_shadowMap:r,_ssaoHelper:t,_bindParameters:s}=this;if(void 0!==e.screenSpaceReflectionsEnabled&&s.ssr.enabled!==e.screenSpaceReflectionsEnabled&&(s.ssr.enabled=e.screenSpaceReflectionsEnabled,this._requestRender()),void 0!==e.shadowMap&&r.enabled!==e.shadowMap&&(r.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&r.maxCascades!==e.shadowMapMaxCascades&&(r.maxCascades=e.shadowMapMaxCascades,this._requestRender()),d(e.environment)){d(e.environment.weather)&&(this._bindParameters.weather=e.environment.weather,this._bindParameters.weatherVisible=e.weatherVisible),void 0!==e.environment.lighting.ambientOcclusionEnabled&&t.enabled!==e.environment.lighting.ambientOcclusionEnabled&&(t.enabled=e.environment.lighting.ambientOcclusionEnabled,this._requestRender()),void 0!==e.environment.lighting.waterReflectionEnabled&&this._waterReflectionEnabled!==e.environment.lighting.waterReflectionEnabled&&(this._waterReflectionEnabled=e.environment.lighting.waterReflectionEnabled,this._requestRender());const r="virtual"!==e.environment.lighting.type;s.enableFillLights!==r&&(s.enableFillLights=r,this._requestRender())}e.background&&this._offscreenRendering.background!==e.background&&(this._offscreenRendering.background=e.background,this._requestRender()),void 0!==e.antialiasingEnabled&&this._antialiasing!==e.antialiasingEnabled&&(this._antialiasing=e.antialiasingEnabled,this._requestRender()),void 0!==e.highQualityTransparency&&this._multipassTerrain!==e.highQualityTransparency&&(this._multipassTerrain=e.highQualityTransparency,this._oitEnabled=e.highQualityTransparency&&this._hasOITSupport,this._requestRender()),void 0!==e.defaultHighlightOptions&&(this._highlight.setDefaultOptions(e.defaultHighlightOptions),this._shadowHighlight.setDefaultOptions(e.defaultHighlightOptions),this._requestRender()),void 0!==e.overlays&&this._bindParameters.overlays!==e.overlays&&(this._bindParameters.overlays=e.overlays,this._requestRender()),void 0!==e.hasOverlayWater&&this._hasOverlayWater!==e.hasOverlayWater&&(this._hasOverlayWater=e.hasOverlayWater,this._requestRender()),void 0!==e.renderOverlay&&this._renderOverlay!==e.renderOverlay&&(this._renderOverlay=e.renderOverlay,this._requestRender()),void 0!==e.slicePlane&&this._sliceHelper.plane!==e.slicePlane&&(this._sliceHelper.plane=l(e.slicePlane),this._requestRender()),void 0!==e.terrainRenderingEnabled&&this._terrainRenderingEnabled!==e.terrainRenderingEnabled&&(this._terrainRenderingEnabled=e.terrainRenderingEnabled,this._requestRender()),void 0!==e.terrainTransparency&&this._terrainTransparency!==e.terrainTransparency&&(this._terrainTransparency=e.terrainTransparency,this._requestRender()),void 0!==e.shadowCastOptions&&this._shadowAccumulator.setOptions(e.shadowCastOptions)}get hasSlicePlane(){return!!this._sliceHelper.plane}get renderPlugins(){return this._renderPlugins}get _hasOITSupport(){return this._rctx.driverTest.floatBufferBlendWorking}modify(e){this._isRendering&&console.warn("Renderer.modify called while rendering");const{adds:r,removes:t,updates:s}=e;if(0===r.length&&0===t.length&&0===s.length)return;t.forAll((({id:e})=>this._content.delete(e))),r.forAll((e=>this._content.set(e.id,e)));const i=W(e);let a=!1;i.forEach(((e,r)=>{let t=this._materialRenderers.get(r);if(!t){if(!(e.adds.length>0))return;t=new ne(this._rctx,this._materialRepository,r),this._materialRenderers.set(r,t)}t.modify(e),t.isEmpty&&(a=!0)})),a&&this._materialRenderers.forEach(((e,r)=>{e.isEmpty&&(this._materialRenderers.delete(r),e.dispose())})),this._hasHighlights=n(this._materialRenderers,(e=>e.hasHighlights)),this._bindParameters.hasOccludees=n(this._materialRenderers,(e=>e.hasOccludees)),this._hasWater=n(this._materialRenderers,(e=>e.hasWater)),this._needsTransparentPass=n(this._materialRenderers,(e=>e.requiresSlot(Y.TRANSPARENT_MATERIAL,I.Color))),this._hasHUDElements=n(this._materialRenderers,(e=>e.requiresSlot(Y.LINE_CALLOUTS_HUD_DEPTH,I.Color)||e.requiresSlot(Y.HUD_MATERIAL,I.Color)||e.requiresSlot(Y.LABEL_MATERIAL,I.Color))),this._requestRender()}updateAnimation(e){return this._hasAnimations=!1,this._materialRenderers.forEach((r=>this._hasAnimations=r.updateAnimation(e)||this._hasAnimations)),this._hasAnimations=this._renderPlugins.updateAnimation(e)||this._hasAnimations,this._hasAnimations}get animationTimestep(){return this._animationTimestep}render(e,r,t,s,n){this._isRendering=!0;const{camera:i,contentCamera:a}=t;this._renderContext.time=n,this.performanceInfo.startFrame(),this._renderOverlay(n),this.performanceInfo.advance(he.OVERLAY),this._bindParameters.transparencyPassType=re.NONE;const h=this._offscreenRendering;h.setupRenderTarget(this.hasWaterReflection);const _=S(this._sliceHelper.plane);s===M.OFF&&(this._sliceHelper.plane=null),this._rctx.bindFramebuffer(e),i.setGLViewport(this._rctx),this._ensureCameraBindParameters(i,a),this._renderPlugins.prepareRender(),this.performanceInfo.advance(he.PREPARE);const l=this._computeDepthRange(i);this._renderShadowMap(e,i,this._bindParameters.lighting.mainLight.direction,l),this.performanceInfo.advance(he.SHADOW_MAP),h.initializeFrame(i),this._ensureBindParameters(i,a),this._renderLinearDepth(),this.performanceInfo.advance(he.LINEAR_DEPTH),this._accumulateShadows(l,i,a),this.performanceInfo.advance(he.ACCUMULATED_SHADOWS),this._renderNormal(),this.performanceInfo.advance(he.NORMALS),this._ensureBindParametersSSR(),this._renderSSAO(),this.performanceInfo.advance(he.SSAO),this._renderContext.output=I.Color,h.bindFramebuffer(),this._renderOpaqueGeometry(),this.performanceInfo.advance(he.OPAQUE);const c=this._terrainRenderingEnabled&&this._terrainTransparency!==D.Opaque,p=this._multipassTerrain&&c;this._renderTerrainLinearDepth(p),this._setMultipassEnabled(p),this._setTerrainCulling(p),this._renderEdges(se.OPAQUE),this.performanceInfo.advance(he.OPAQUE_EDGES),this._offscreenRendering.bindTarget(this._offscreenRendering.currentColorTarget,this._offscreenRendering.mainDepth),this._renderSlot(Y.VOXEL),this.performanceInfo.advance(he.VOXEL),this._renderHiddenTransparentEdges();const m=this._needsTransparentPass||this._renderPlugins.needsTransparentPass;m&&(this._oitEnabled?this._renderOrderIndependentTransparency((()=>this._renderTransparentGeometry()),!1):this._renderTransparentGeometry()),this.performanceInfo.advance(he.TRANSPARENT),this._renderGeometryLinearDepth(p);const g=this._renderHUDVisibility(this._multipassTerrain&&c);p||this._renderInternalSlot(Y.LINE_CALLOUTS),this.performanceInfo.advance(he.HUD_VISIBILITY),this._renderObjectAndLayerIdColor(r),this.performanceInfo.advance(he.OBJECT_AND_LAYER_ID_COLOR),this._renderEdges(se.TRANSPARENT,p),this.performanceInfo.advance(he.TRANSPARENT_EDGES),this._renderTransparentTerrain(),c&&g&&(p?this._renderLineCallouts(H.Occluded):h.compositeTransparentTerrainOntoHUDVisibility(this._bindParameters),this._renderHUD(H.Occluded,h.framebuffer),this.performanceInfo.advance(he.HUD_OCCLUDED)),this.performanceInfo.advance(he.TRANSPARENT_TERRAIN),this._setTerrainCulling(!1),c&&(h.compositeTransparentTerrainOntoMain(this._bindParameters),p&&(this._renderEdges(se.OPAQUE),this.performanceInfo.advance(he.OPAQUE_EDGES),m&&(this._oitEnabled?this._renderOrderIndependentTransparency((()=>this._renderTransparentGeometry()),!1):this._renderTransparentGeometry()),this.performanceInfo.advance(he.TRANSPARENT),this._renderEdges(se.TRANSPARENT),this.performanceInfo.advance(he.TRANSPARENT_EDGES))),p&&this._renderLineCallouts(H.NotOccluded),this._setMultipassEnabled(!1),this._shadowAccumulator.render(this._bindParameters),h.renderToTargets((()=>{this._renderInternalSlot(Y.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL),this._renderSlot(Y.POSTPROCESSING_ENVIRONMENT_TRANSPARENT),this._renderSlot(Y.LASERLINES)}),h.currentColorTarget,h.mainDepth),this.performanceInfo.advance(he.ENVIRONMENT),this._renderPlugins.needsLaserlineWithContrastControl&&h.renderTmpAndCompositeToMain((()=>this._renderSlot(Y.LASERLINES_CONTRAST_CONTROL)),this._bindParameters,ie.PremultipliedAlpha),this.performanceInfo.advance(he.LASER_LINE),this._renderOccluded(),this.performanceInfo.advance(he.OCCLUDED);const u=s===M.ON&&this._magnifierHelper.enabled,f=u&&o(e)?this._offscreenRendering.getFramebuffer(this._offscreenRendering.tmpColor,this._offscreenRendering.tmpDepth):e;this._rctx.bindFramebuffer(f);const R=this._offscreenRendering.colorTexture;!this._renderAntiAliasing(R)&&d(R)&&this._compositingHelper.composite(this._bindParameters,R,ie.None),this.performanceInfo.advance(he.ANTIALIASING),this._renderHUD(H.NotOccluded,f),this.performanceInfo.advance(he.HUD_NOT_OCCLUDED),this._renderHighlights(f,this._bindParameters),this.performanceInfo.advance(he.HIGHLIGHTS),u&&this._magnifierHelper.render(this._rctx,this._bindParameters),f!==e&&(this._rctx.bindFramebuffer(e),this._compositingHelper.composite(this._bindParameters,this._offscreenRendering.tmpColorTexture,ie.None)),this._disposeOITBuffers(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this._sliceHelper.plane=_,this._isRendering=!1,this.onPostRender&&this.onPostRender(),this.performanceInfo.finishFrame()}_renderObjectAndLayerIdColor(e){d(e)&&has("enable-feature:objectAndLayerId-rendering")&&(this._rctx.bindFramebuffer(e),this._offscreenRendering.renderToFBO((()=>this._renderGeometryAndTransparentTerrainPass(I.ObjectAndLayerIdColor)),[0,0,0,0],!0,!0),this._rctx.bindFramebuffer(e),this._offscreenRendering.renderToFBO((()=>{this._bindParameters.renderTransparentlyOccludedHUD=H.NotOccluded,this._renderInternalSlot(Y.HUD_MATERIAL)}),null,!0,!0))}finish(e){if(this._hasAnimations||(this._animationTimestep=u(0)),e===L.BACKGROUND){let e=0;this.performanceInfo.gpuSamplingEnabled?e=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.getError();const r=this.performanceInfo.elapsedTime,t=Math.max(r,e),s=i(t/w,C,O);this._animationTimestep=u(this._animationTimestep*le+s*(1-le))}}readDepthPixels(e,r,t){const s=this._offscreenRendering.bindTarget(this._offscreenRendering.linearDepth,this._offscreenRendering.tmpDepth);if(!this._needsLinearDepth){this._ensureBindParameters(e,e),this._bindParameters.camera.setGLViewport(this._rctx),this._rctx.setClearColor(0,0,0,0);const r=de.COLOR_BUFFER_BIT|de.DEPTH_BUFFER_BIT|de.STENCIL_BUFFER_BIT;this._rctx.clearSafe(r),this._renderGeometryAndTransparentTerrainPass(I.Depth)}s.readPixels(r[0],r[1],r[2],r[3],oe.RGBA,_e.UNSIGNED_BYTE,t)}readHUDVisibility(e,r,t,s,n){this._offscreenRendering.bindTarget(this._offscreenRendering.hudVisibility).readPixels(e,r,t,s,oe.RGBA,_e.UNSIGNED_BYTE,n)}readAccumulatedShadow(e,r){return this._shadowAccumulator.readAccumulatedShadow(e,r)}_setMultipassEnabled(e){this._bindParameters.multipassTerrain.enabled=this._bindParameters.multipassGeometry.enabled=e}_setTerrainCulling(e){this._bindParameters.multipassTerrain.cullAboveGround=e}_renderSlot(e){this._bindParameters.slot=e,this._renderPlugins.render()}_renderEdges(e,r=!1){const t=this._edgeView;d(t)&&t.shouldRender()&&this._offscreenRendering.renderTmpAndCompositeToMain((()=>t.render(this._bindParameters,e)),this._bindParameters,ie.Alpha,r)}_renderShadowMap(e,r,t,s){const n=this._shadowMap;n.enabled&&(n.start(r,t,s),this._shadowHighlight.updateParameters(r,t),this._needsShadowHighlight?(this._renderShadowCascades(I.ShadowHighlight,this._shadowMap,(e=>n.takeCascadeSnapshotTo(e,K.Highlight))),n.clear(),this._renderShadowCascades(I.ShadowExludeHighlight,this._shadowMap,(e=>{n.takeCascadeSnapshotTo(e,K.Default),this._renderGeometryAndTransparentTerrainPass(I.ShadowHighlight)}))):this._renderShadowCascades(I.Shadow),n.finish(e),r.setGLViewport(this._rctx))}_renderShadowCascades(e,r=this._shadowMap,t=(e=>{})){for(const s of r.getCascades())s.camera.setGLViewport(this._rctx),this._ensureCameraBindParameters(s.camera,s.camera),this._renderGeometryAndTransparentTerrainPass(e),t(s)}get _needsLinearDepth(){return this._ssaoHelper.ready||this._renderPlugins.needsLinearDepth||this._hasWater&&this._waterReflectionEnabled||this._needsShadowHighlight||this._needsShadowCast}_renderLinearDepth(){this._needsLinearDepth?this._offscreenRendering.renderToTargets((()=>this._renderGeometryAndTransparentTerrainPass(I.Depth)),this._offscreenRendering.linearDepth,this._offscreenRendering.tmpDepth,[0,0,0,0],!0,!0):this._offscreenRendering.disposeTarget(this._offscreenRendering.linearDepth),this._bindParameters.linearDepthTexture=this._offscreenRendering.linearDepthTexture}_renderTerrainLinearDepth(e){if(e){const e=this._renderContext.output;this._renderContext.output=I.Depth,this._offscreenRendering.renderToTargets((()=>this._renderTransparentTerrain()),this._offscreenRendering.terrainLinearDepth,this._offscreenRendering.tmpDepth,[-1e10,-1e10,-1e10,1],!0,!0),this._renderContext.output=e}else this._offscreenRendering.disposeTarget(this._offscreenRendering.terrainLinearDepth);this._bindParameters.multipassTerrain.linearDepthTexture=this._offscreenRendering.terrainLinearDepthTexture}_renderGeometryLinearDepth(e){if(e){const e=this._renderContext.output;this._offscreenRendering.renderToTargets((()=>this._renderGeometryPass(I.Depth)),this._offscreenRendering.geometryLinearDepth,this._offscreenRendering.tmpDepth,[1,1,1,1],!0,!0),this._renderContext.output=e}else this._offscreenRendering.disposeTarget(this._offscreenRendering.geometryLinearDepth);this._bindParameters.multipassGeometry.linearDepthTexture=this._offscreenRendering.geometryLinearDepthTexture}get _needsNormal(){return this._ssaoHelper.ready}_renderNormal(){this._needsNormal?this._offscreenRendering.renderToTargets((()=>{this._renderGeometryAndTransparentTerrainPass(I.Normal)}),this._offscreenRendering.normal,this._offscreenRendering.tmpDepth,[0,0,0,0],!0,!0):this._offscreenRendering.disposeTarget(this._offscreenRendering.normal)}get _needsDepthRange(){return this._shadowMap.enabled||this._needsShadowCast}_computeDepthRange(e){if(!this._needsDepthRange)return U;const r=q(e,this._content,this._stage.layers);return j(r,this.renderPlugins.queryDepthRange(e)),r.near=Math.max(e.near,r.near),r.far=Math.min(e.far,r.far),r}_renderGeometryAndTransparentTerrainPass(e){this._renderContext.output=e,this._renderGeometryPass(e),this._renderTransparentTerrain()}_renderGeometryPass(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderSSAO(){this._ssaoHelper.loading?this._requestRender():this._ssaoHelper.computeSSAO(this._bindParameters,this._offscreenRendering.linearDepthTexture,this._offscreenRendering.normalTexture)}_renderOpaqueGeometry(){this._renderSlot(Y.INTEGRATED_MESH),this._renderSlot(Y.OPAQUE_TERRAIN),this._renderInternalSlot(Y.OPAQUE_MATERIAL),this._renderSlot(Y.OPAQUE_MATERIAL),this._renderSlot(Y.POSTPROCESSING_ENVIRONMENT_OPAQUE)}_renderTransparentGeometry(){this._renderInternalSlot(Y.TRANSPARENT_MATERIAL),this._renderSlot(Y.TRANSPARENT_MATERIAL)}_renderTransparentTerrain(){this._renderSlot(Y.TRANSPARENT_TERRAIN)}_renderHUDVisibility(e){let r=!1;return this._renderContext.offscreenRenderingHelper&&this._renderContext.offscreenRenderingHelper.renderHUDVisibility((()=>{this._bindParameters.hudVisibilityTexture=this._renderContext.offscreenRenderingHelper.hudVisibilityTexture,r=this._renderInternalSlot(Y.OCCLUSION_PIXELS)}),e),r}_renderLineCallouts(e){this._bindParameters.renderTransparentlyOccludedHUD=e,e===H.Occluded?this._offscreenRendering.renderToTargets((()=>this._renderInternalSlot(Y.LINE_CALLOUTS)),this._offscreenRendering.currentColorTarget,this._offscreenRendering.tmpDepth,void 0,!0,!0):this._renderInternalSlot(Y.LINE_CALLOUTS)}_renderHUD(e,r){this._hasHUDElements&&(this._oitEnabled?(this._renderOrderIndependentTransparency((()=>this._renderHUDElements(e)),!0),this._rctx.bindFramebuffer(r),this._compositingHelper.composite(this._bindParameters,this._offscreenRendering.hudColorTexture,ie.PremultipliedAlpha)):e===H.Occluded?this._offscreenRendering.renderToTargets((()=>this._renderHUDElements(H.Occluded)),this._offscreenRendering.currentColorTarget,this._offscreenRendering.tmpDepth,void 0,!0,!0):this._renderHUDElements(e))}_renderHUDElements(e){this._bindParameters.renderTransparentlyOccludedHUD=e,this._renderInternalSlot(Y.LINE_CALLOUTS_HUD_DEPTH),this._renderInternalSlot(Y.HUD_MATERIAL),this._renderInternalSlot(Y.LABEL_MATERIAL)}get _needsHighlight(){return this._hasHighlights||this._renderPlugins.needsHighlight}get _needsShadowHighlight(){return this._shadowMap.enabled&&this._shadowHighlight.isVisible&&this._needsHighlight}_renderHighlights(e,r){if(!this._needsHighlight)return void this._offscreenRendering.disposeTarget(this._offscreenRendering.highlight);const t=this._highlight,s=this._offscreenRendering.renderToTargets((()=>{this._renderGeometryAndTransparentTerrainPass(I.Highlight),this._rctx.clearSafe(de.DEPTH_BUFFER_BIT),this._renderHUDElements(H.Both)}),this._offscreenRendering.highlight,this._offscreenRendering.tmpDepth,[0,0,0,0],!0,!0);this._bindParameters.highlightColorTexture=s.colorTexture,this._needsShadowHighlight&&this._shadowHighlight.render(r,e),t.render(this._bindParameters,s,e)}get _needsShadowCast(){return this._shadowAccumulator.isAccumulating}_accumulateShadows(e,r,t){this._needsShadowCast&&this._shadowAccumulator.renderAccumulation(this._offscreenRendering.linearDepthTexture,e,r,t)}_renderOrderIndependentTransparency(e,r){const t=t=>{this._bindParameters.transparencyPassType=t,this._offscreenRendering.renderOITPass((()=>e()),t,r)},s=this._renderContext.output;this._renderContext.output=I.Alpha,t(re.Alpha),this._renderContext.output=I.Color,t(re.Color),t(re.FrontFace),this._offscreenRendering.compositeTransparentOntoOpaque(this._bindParameters,r),this._bindParameters.transparencyPassType=re.NONE,this._renderContext.output=s,this._oitUsed=!0}_disposeOITBuffers(){this._oitUsed||(this._offscreenRendering.disposeTarget(this._offscreenRendering.alphaFloatTarget),this._offscreenRendering.disposeTarget(this._offscreenRendering.colorFloatTarget),this._offscreenRendering.disposeTarget(this._offscreenRendering.frontFaceTarget)),this._oitUsed=!1}_renderOccluded(){let e=0;this._materialRenderers.forEach(((r,t)=>{t&&t.isVisible()&&t.renderOccluded===F.OccludeAndTransparentStencil&&(e|=t.renderOccluded,ge.push(t))}));const r=this._offscreenRendering,t=(t,s,n,i,a)=>{0!=(e&s)&&(r.renderToTargets(n,r.tmpColor,r.mainDepth,[0,0,0,0],i,a),r.compositeOccludedOntoMain(this._bindParameters,t))};0!==ge.length&&(this._renderInternalSlot(Y.OCCLUDER_MATERIAL,ge),t(.5,F.OccludeAndTransparentStencil,(()=>this._renderInternalSlot(Y.TRANSPARENT_OCCLUDER_MATERIAL,ge)),!1,!1),ge.length=0),this._materialRenderers.forEach(((r,t)=>{t&&t.isVisible()&&(t.renderOccluded===F.OccludeAndTransparent||t.renderOccluded===F.Transparent||t.renderOccluded===F.Opaque)&&(e|=t.renderOccluded,me.push(t))}));const s=this._renderPlugins.renderOccludedFlags;if(e|=s,!e)return;const n=e=>{this._renderContext.renderOccludedMask=e,s>F.Occlude&&this._renderSlot(Y.OCCLUDED_TERRAIN),this._renderInternalSlot(Y.OPAQUE_MATERIAL,me),this._renderInternalSlot(Y.TRANSPARENT_MATERIAL,me),this._renderInternalSlot(Y.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL,me),this._renderContext.resetRenderOccludedMask()};this._renderContext.output=I.Color,t(.5,F.OccludeAndTransparent,(()=>n(F.OccludeAndTransparent)),!0,N.OutlineVisualElementMask),t(.5,F.Transparent,(()=>n(F.Transparent)),!0,N.OutlineVisualElementMask),t(1,F.Opaque,(()=>n(F.Opaque)),!0,N.OutlineVisualElementMask),me.length=0}_renderAntiAliasing(e){if(this._antialiasing){if(this._smaaPass.enable((()=>this._requestRender()))&&d(e))return this._smaaPass.render(e),!0}else this._smaaPass.disable();return!1}_ensureCameraBindParameters(e,r){this._bindParameters.camera=e,this._bindParameters.contentCamera=r}_ensureBindParameters(e,r){this._ensureCameraBindParameters(e,r);const t=this._renderContext.offscreenRenderingHelper;this._bindParameters.hudVisibilityTexture=t.hudVisibilityTexture,this._bindParameters.mainColorTexture=t.mainColorTexture,this._bindParameters.highlightDepthTexture=t.depthTexture??this._getFallbackDepthTexture()}_ensureBindParametersSSR(){this.hasWaterReflection?(this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=A:(E(fe,this._bindParameters.camera.viewMatrix),E(ue,this._bindParameters.camera.projectionMatrix),b(Re,fe,ue),b(Re,this._renderContext.lastFrameCamera.viewMatrix,Re),b(Re,this._renderContext.lastFrameCamera.projectionMatrix,Re),this._reprojectionMatrix=Re),this._bindParameters.ssr.lastFrameColorTexture=this._offscreenRendering.lastFrameColorTexture):this._bindParameters.ssr.lastFrameColorTexture=null,this._bindParameters.ssr.enabled=this.hasWaterReflection}_renderInternalSlot(e,r){let t=!1;return this._bindParameters.slot=e,d(r)?r.forEach((e=>{if(!e.shouldRender(this._renderContext))return;const r=this._materialRenderers.get(e);d(r)&&(t=r.render(this._renderContext.output,this._bindParameters)||t)})):this._materialRenderers.forEach(((e,r)=>{r.shouldRender(this._renderContext)&&e.render(this._renderContext.output,this._bindParameters)&&(t=!0)})),t}_getFallbackDepthTexture(){return this._fallbackDepthStencilTexture||(this._fallbackDepthStencilTexture=G(this._rctx)),this._fallbackDepthStencilTexture}get gpuMemoryUsage(){return{offscreen:this._offscreenRendering?.gpuMemoryUsage??0,highlights:(this._highlight?.gpuMemoryUsage??0)+(this._shadowHighlight?.gpuMemoryUsage??0),shadows:this._shadowMap?.gpuMemoryUsage??0,ssao:this._ssaoHelper?.gpuMemoryUsage??0}}get test(){const e=this;return{offscreen:this._offscreenRendering,shadowMap:this._shadowMap,ssao:this._ssaoHelper,highlight:this._highlight,lighting:this._bindParameters.lighting,materialRenderers:this._materialRenderers,shadowAccumulator:this._shadowAccumulator,getFramebufferTexture:r=>{switch(r){case pe.Color:return e._offscreenRendering.colorTexture;case pe.LinearDepth:return e._offscreenRendering.linearDepthTexture;case pe.Normals:return e._offscreenRendering.normalTexture;case pe.ShadowMap:return e._shadowMap.depthTexture;case pe.HudVisibility:return e._offscreenRendering.hudVisibilityTexture;case pe.Highlight:return e._offscreenRendering.highlightTexture}}}}};var pe;e([f()],ce.prototype,"_shadowAccumulator",void 0),e([f()],ce.prototype,"_smaaPass",void 0),e([f()],ce.prototype,"_antialiasing",void 0),e([f()],ce.prototype,"_edgeView",void 0),e([f()],ce.prototype,"updating",null),e([f()],ce.prototype,"isCameraFinal",null),ce=e([R("esri.views.3d.webgl-engine.lib.Renderer")],ce),function(e){e[e.Color=0]="Color",e[e.LinearDepth=1]="LinearDepth",e[e.Normals=2]="Normals",e[e.ShadowMap=3]="ShadowMap",e[e.HudVisibility=4]="HudVisibility",e[e.Highlight=5]="Highlight"}(pe||(pe={}));const me=[],ge=[],ue=P(),fe=P(),Re=P();export{pe as FramebufferId,ce as Renderer};
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import r from"../../../../core/Accessor.js";import{update as t}from"../../../../core/arrayUtils.js";import s from"../../../../core/Handles.js";import has from"../../../../core/has.js";import{someMap as n}from"../../../../core/MapUtils.js";import{clamp as i}from"../../../../core/mathUtils.js";import{destroyMaybe as a,disposeMaybe as h,isSome as d,isNone as o,applySome as _,unwrap as l}from"../../../../core/maybe.js";import{watch as c,syncAndInitial as p,initial as m,sync as g}from"../../../../core/reactiveUtils.js";import{Milliseconds as u}from"../../../../core/time.js";import{property as f}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as R}from"../../../../core/accessorSupport/decorators/subclass.js";import{h as T,a as E,m as b}from"../../../../chunks/mat4.js";import{I as A,c as P}from"../../../../chunks/mat4f64.js";import{a as S}from"../../../../chunks/boundedPlane.js";import{MINIMUM_IDLE_ANIMATION_FPS_TIME as O,MAXIMUM_IDLE_ANIMATION_FPS_TIME as C,MAXIMUM_ANIMATION_LOAD as w}from"../../support/animationUtils.js";import y from"../../support/debugFlags.js";import{TransparencyMode as D}from"../../terrain/TerrainRenderer.js";import{RenderPassManager as x}from"../core/renderPasses/RenderPassManager.js";import{ShaderOutput as I}from"../core/shaderLibrary/ShaderOutput.js";import{HUDTransparentRenderStyle as H}from"../core/shaderLibrary/hud/HUDUniforms.js";import{Decorations as M,RenderRequestType as L,StencilBits as N}from"./basicInterfaces.js";import{BoundingInfo as v}from"./BoundingInfo.js";import{ZERO as U,union as j}from"./depthRange.js";import{depthRangeFromScene as q}from"./depthRangeUtils.js";import{createEmptyDepthTexture as F}from"./glUtil3D.js";import{Highlight as G}from"./Highlight.js";import{RenderOccludedFlag as V}from"./Material.js";import{OffscreenRendering as B}from"./OffscreenRendering.js";import{RenderContext as k}from"./RenderContext.js";import{splitRenderGeometryChangeSetByMaterial as W}from"./rendererUtils.js";import{RenderPluginManager as Q}from"./RenderPluginManager.js";import{RenderSlot as Y}from"./RenderSlot.js";import{ShadowAccumulator as X}from"./ShadowAccumulator.js";import{ShadowHighlight as z}from"./ShadowHighlight.js";import{ShadowMap as J,SnapshotSlot as K}from"./ShadowMap.js";import Z from"./SliceHelper.js";import{SmaaRenderPass as $}from"./SmaaRenderPass.js";import{SSAOHelper as ee}from"./SSAOHelper.js";import{TransparencyPassType as re}from"./TransparencyPassType.js";import{EdgeView as te}from"./edgeRendering/EdgeView.js";import{Transparency as se}from"./edgeRendering/interfaces.js";import{MergedRenderer as ne}from"../materials/renderers/MergedRenderer.js";import{AlphaMode as ie}from"../shaders/CompositingTechniqueConfiguration.js";import{RendererPerformanceInfo as ae,PerformanceCategory as he}from"../statistics/RendererPerformanceInfo.js";import{ClearBufferBit as de,PixelFormat as oe,PixelType as _e}from"../../../webgl/enums.js";const le=.9;let ce=class extends r{constructor(e,r,t,n,i,a,h,d,o){super({}),this._materialRepository=e,this._shaderTechniqueRepository=t,this._rctx=n,this._compositingHelper=i,this._magnifierHelper=a,this._requestRender=h,this._stage=o,this._materialRenderers=new Map,this._needsTransparentPass=!1,this._hasHUDElements=!1,this._hasHighlights=!1,this._hasWater=!1,this._hasOverlayWater=!1,this._renderOverlay=e=>{},this._content=new Map,this._isRendering=!1,this._fallbackDepthStencilTexture=null,this._sliceHelper=new Z,this._antialiasing=!0,this._oitEnabled=!1,this._multipassTerrain=!0,this._terrainRenderingEnabled=!0,this._terrainTransparency=D.Opaque,this._waterReflectionEnabled=!1,this._hasAnimations=!1,this._animationTimestep=O,this._handles=new s,this._renderHiddenTransparentEdges=()=>{},this._oitUsed=!1,this._smaaPass=new $(this._rctx,t),this._oitEnabled=this._hasOITSupport,this._requestRender(),this._offscreenRendering=new B(this._rctx,this._compositingHelper),this.performanceInfo=new ae(this._rctx),this._shadowMap=new J(this._rctx,o.viewingMode),this._ssaoHelper=new ee(t,this._rctx,(()=>this._requestRender())),this._highlight=new G(t,this._rctx),this._shadowHighlight=new z(this._rctx,o.viewingMode),this._shadowAccumulator=new X(this._rctx,t,o,(e=>{const r=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureCameraBindParameters(e.camera,e.contentCamera),this._renderPlugins.prepareRender(),this._shadowMap.enabled=r}),((e,r,t)=>{e.shadowMap.start(e.camera,r,t),this._renderShadowCascades(I.Shadow,e.shadowMap),e.camera.setGLViewport(this._rctx),this._ensureCameraBindParameters(e.camera,e.contentCamera)}),(()=>this._requestRender())),this._renderContext=new k(this._rctx,this._offscreenRendering,this._shadowMap,this._ssaoHelper,this._sliceHelper),this._renderPlugins=new Q({renderContext:this._renderContext,shaderTechniqueRepository:t,textureRep:r,materialRep:this._materialRepository,requestRender:this._requestRender,schedule:d}),this.renderPassManager=new x(this._rctx,this._shaderTechniqueRepository),this._renderPlugins.add(this.renderPassManager.slots(),this.renderPassManager),this._handles.add([c((()=>this._stage.state.camera),(()=>this._requestRender()),p),c((()=>y.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES),(e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(se.TRANSPARENT):()=>{},this._requestRender()}),m)])}get _bindParameters(){return this._renderContext.bindParameters}get hasWater(){return this._hasWater||this._hasOverlayWater}get hasWaterReflection(){return this.hasWater&&this._waterReflectionEnabled}normalizeCtorArgs(){return{}}dispose(){this._handles.destroy(),this._smaaPass.dispose(),this._materialRenderers.forEach((e=>e.dispose())),this._materialRenderers.clear(),this._edgeView=a(this._edgeView),this._offscreenRendering.dispose(),this._fallbackDepthStencilTexture=h(this._fallbackDepthStencilTexture),this._shadowMap.enabled=!1,this._shadowMap.dispose(),this._ssaoHelper.enabled=!1,this._ssaoHelper.dispose(),this._highlight.dispose(),this._shadowHighlight.dispose(),this._shadowAccumulator.dispose(),v.prune(),this._content.clear()}disposeOffscreenBuffers(){this._offscreenRendering.dispose(),this._shadowMap.dispose(),this._smaaPass.disable(),this._ssaoHelper.disposeOffscreenBuffers()}get updating(){return this._antialiasing&&this._smaaPass.updating||d(this._edgeView)&&this._edgeView.updating||this._shadowAccumulator.running||!this.isCameraFinal}ensureEdgeView(){return o(this._edgeView)&&(this._edgeView=new te({rctx:this._rctx,renderSR:this._stage.renderSR,viewingMode:this._stage.viewingMode,techniqueRepository:this._shaderTechniqueRepository,setNeedsRender:()=>this._requestRender(),schedule:e=>this._stage.resourceController.schedule(e)}),this._handles.add(c((()=>_(this._edgeView,(e=>e.updating))),(()=>this._requestRender()),g)),this._requestRender()),this._edgeView}get edgeView(){return this._edgeView}get isCameraFinal(){return T(this._bindParameters.ssr.reprojectionMatrix,A)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this.notifyChange("isCameraFinal")}get shadowsEnabled(){return!!this._shadowMap?.enabled}setRenderParameters(e){const{_shadowMap:r,_ssaoHelper:t,_bindParameters:s}=this;if(void 0!==e.screenSpaceReflectionsEnabled&&s.ssr.enabled!==e.screenSpaceReflectionsEnabled&&(s.ssr.enabled=e.screenSpaceReflectionsEnabled,this._requestRender()),void 0!==e.shadowMap&&r.enabled!==e.shadowMap&&(r.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&r.maxCascades!==e.shadowMapMaxCascades&&(r.maxCascades=e.shadowMapMaxCascades,this._requestRender()),d(e.environment)){d(e.environment.weather)&&(this._bindParameters.weather=e.environment.weather,this._bindParameters.weatherVisible=e.weatherVisible),void 0!==e.environment.lighting.ambientOcclusionEnabled&&t.enabled!==e.environment.lighting.ambientOcclusionEnabled&&(t.enabled=e.environment.lighting.ambientOcclusionEnabled,this._requestRender()),void 0!==e.environment.lighting.waterReflectionEnabled&&this._waterReflectionEnabled!==e.environment.lighting.waterReflectionEnabled&&(this._waterReflectionEnabled=e.environment.lighting.waterReflectionEnabled,this._requestRender());const r="virtual"!==e.environment.lighting.type;s.enableFillLights!==r&&(s.enableFillLights=r,this._requestRender())}e.background&&this._offscreenRendering.background!==e.background&&(this._offscreenRendering.background=e.background,this._requestRender()),void 0!==e.antialiasingEnabled&&this._antialiasing!==e.antialiasingEnabled&&(this._antialiasing=e.antialiasingEnabled,this._requestRender()),void 0!==e.highQualityTransparency&&this._multipassTerrain!==e.highQualityTransparency&&(this._multipassTerrain=e.highQualityTransparency,this._oitEnabled=e.highQualityTransparency&&this._hasOITSupport,this._requestRender()),void 0!==e.defaultHighlightOptions&&(this._highlight.setDefaultOptions(e.defaultHighlightOptions),this._shadowHighlight.setDefaultOptions(e.defaultHighlightOptions),this._requestRender()),void 0!==e.overlays&&this._bindParameters.overlays!==e.overlays&&(this._bindParameters.overlays=e.overlays,this._requestRender()),void 0!==e.hasOverlayWater&&this._hasOverlayWater!==e.hasOverlayWater&&(this._hasOverlayWater=e.hasOverlayWater,this._requestRender()),void 0!==e.renderOverlay&&this._renderOverlay!==e.renderOverlay&&(this._renderOverlay=e.renderOverlay,this._requestRender()),void 0!==e.slicePlane&&this._sliceHelper.plane!==e.slicePlane&&(this._sliceHelper.plane=l(e.slicePlane),this._requestRender()),void 0!==e.terrainRenderingEnabled&&this._terrainRenderingEnabled!==e.terrainRenderingEnabled&&(this._terrainRenderingEnabled=e.terrainRenderingEnabled,this._requestRender()),void 0!==e.terrainTransparency&&this._terrainTransparency!==e.terrainTransparency&&(this._terrainTransparency=e.terrainTransparency,this._requestRender()),void 0!==e.shadowCastOptions&&this._shadowAccumulator.setOptions(e.shadowCastOptions)}get hasSlicePlane(){return!!this._sliceHelper.plane}get renderPlugins(){return this._renderPlugins}get _hasOITSupport(){return this._rctx.driverTest.floatBufferBlendWorking}modify(e){this._isRendering&&console.warn("Renderer.modify called while rendering");const{adds:r,removes:t,updates:s}=e;if(0===r.length&&0===t.length&&0===s.length)return;t.forAll((({id:e})=>this._content.delete(e))),r.forAll((e=>this._content.set(e.id,e)));const i=W(e);let a=!1;i.forEach(((e,r)=>{let t=this._materialRenderers.get(r);if(!t){if(!(e.adds.length>0))return;t=new ne(this._rctx,this._materialRepository,r),this._materialRenderers.set(r,t)}t.modify(e),t.isEmpty&&(a=!0)})),a&&this._materialRenderers.forEach(((e,r)=>{e.isEmpty&&(this._materialRenderers.delete(r),e.dispose())})),this._hasHighlights=n(this._materialRenderers,(e=>e.hasHighlights)),this._bindParameters.hasOccludees=n(this._materialRenderers,(e=>e.hasOccludees)),this._hasWater=n(this._materialRenderers,(e=>e.hasWater)),this._needsTransparentPass=n(this._materialRenderers,(e=>e.requiresSlot(Y.TRANSPARENT_MATERIAL,I.Color))),this._hasHUDElements=n(this._materialRenderers,(e=>e.requiresSlot(Y.LINE_CALLOUTS_HUD_DEPTH,I.Color)||e.requiresSlot(Y.HUD_MATERIAL,I.Color)||e.requiresSlot(Y.LABEL_MATERIAL,I.Color))),this._requestRender()}updateAnimation(e){return this._hasAnimations=!1,this._materialRenderers.forEach((r=>this._hasAnimations=r.updateAnimation(e)||this._hasAnimations)),this._hasAnimations=this._renderPlugins.updateAnimation(e)||this._hasAnimations,this._hasAnimations}get animationTimestep(){return this._animationTimestep}render(e,r,t,s,n){this._isRendering=!0;const{camera:i,contentCamera:a}=t;this._renderContext.time=n,this.performanceInfo.startFrame(),this._renderOverlay(n),this.performanceInfo.advance(he.OVERLAY),this._bindParameters.transparencyPassType=re.NONE;const h=this._offscreenRendering;h.setupRenderTarget(this.hasWaterReflection);const _=S(this._sliceHelper.plane);s===M.OFF&&(this._sliceHelper.plane=null),this._rctx.bindFramebuffer(e),i.setGLViewport(this._rctx),this._ensureCameraBindParameters(i,a),this._renderPlugins.prepareRender(),this.performanceInfo.advance(he.PREPARE);const l=this._computeDepthRange(i);this._renderShadowMap(e,i,this._bindParameters.lighting.mainLight.direction,l),this.performanceInfo.advance(he.SHADOW_MAP),h.initializeFrame(i),this._ensureBindParameters(i,a),this._renderLinearDepth(),this.performanceInfo.advance(he.LINEAR_DEPTH),this._accumulateShadows(l,i,a),this.performanceInfo.advance(he.ACCUMULATED_SHADOWS),this._renderNormal(),this.performanceInfo.advance(he.NORMALS),this._ensureBindParametersSSR(),this._renderSSAO(),this.performanceInfo.advance(he.SSAO),this._renderContext.output=I.Color,h.bindFramebuffer(),this._renderOpaqueGeometry(),this.performanceInfo.advance(he.OPAQUE);const c=this._terrainRenderingEnabled&&this._terrainTransparency!==D.Opaque,p=this._multipassTerrain&&c;this._renderTerrainLinearDepth(p),this._setMultipassEnabled(p),this._setTerrainCulling(p),this._renderEdges(se.OPAQUE),this.performanceInfo.advance(he.OPAQUE_EDGES),this._offscreenRendering.bindTarget(this._offscreenRendering.currentColorTarget,this._offscreenRendering.mainDepth),this._renderSlot(Y.VOXEL),this.performanceInfo.advance(he.VOXEL),this._renderHiddenTransparentEdges();const m=this._needsTransparentPass||this._renderPlugins.needsTransparentPass;m&&(this._oitEnabled?this._renderOrderIndependentTransparency((()=>this._renderTransparentGeometry()),!1):this._renderTransparentGeometry()),this.performanceInfo.advance(he.TRANSPARENT),this._renderGeometryLinearDepth(p);const g=this._renderHUDVisibility(this._multipassTerrain&&c);p||this._renderInternalSlot(Y.LINE_CALLOUTS),this.performanceInfo.advance(he.HUD_VISIBILITY),this._renderObjectAndLayerIdColor(r),this.performanceInfo.advance(he.OBJECT_AND_LAYER_ID_COLOR),this._renderEdges(se.TRANSPARENT,p),this.performanceInfo.advance(he.TRANSPARENT_EDGES),this._renderTransparentTerrain(),c&&g&&(p?this._renderLineCallouts(H.Occluded):h.compositeTransparentTerrainOntoHUDVisibility(this._bindParameters),this._renderHUD(H.Occluded,h.framebuffer),this.performanceInfo.advance(he.HUD_OCCLUDED)),this.performanceInfo.advance(he.TRANSPARENT_TERRAIN),this._setTerrainCulling(!1),c&&(h.compositeTransparentTerrainOntoMain(this._bindParameters),p&&(this._renderEdges(se.OPAQUE),this.performanceInfo.advance(he.OPAQUE_EDGES),m&&(this._oitEnabled?this._renderOrderIndependentTransparency((()=>this._renderTransparentGeometry()),!1):this._renderTransparentGeometry()),this.performanceInfo.advance(he.TRANSPARENT),this._renderEdges(se.TRANSPARENT),this.performanceInfo.advance(he.TRANSPARENT_EDGES))),p&&this._renderLineCallouts(H.NotOccluded),this._setMultipassEnabled(!1),this._shadowAccumulator.render(this._bindParameters),h.renderToTargets((()=>{this._renderInternalSlot(Y.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL),this._renderSlot(Y.POSTPROCESSING_ENVIRONMENT_TRANSPARENT),this._renderSlot(Y.LASERLINES)}),h.currentColorTarget,h.mainDepth),this.performanceInfo.advance(he.ENVIRONMENT),this._renderPlugins.needsLaserlineWithContrastControl&&h.renderTmpAndCompositeToMain((()=>this._renderSlot(Y.LASERLINES_CONTRAST_CONTROL)),this._bindParameters,ie.PremultipliedAlpha),this.performanceInfo.advance(he.LASER_LINE),this._renderOccluded(),this.performanceInfo.advance(he.OCCLUDED);const u=s===M.ON&&this._magnifierHelper.enabled,f=u&&o(e)?this._offscreenRendering.getFramebuffer(this._offscreenRendering.tmpColor,this._offscreenRendering.tmpDepth):e;this._rctx.bindFramebuffer(f);const R=this._offscreenRendering.colorTexture;!this._renderAntiAliasing(R)&&d(R)&&this._compositingHelper.composite(this._bindParameters,R,ie.None),this.performanceInfo.advance(he.ANTIALIASING),this._renderHUD(H.NotOccluded,f),this.performanceInfo.advance(he.HUD_NOT_OCCLUDED),this._renderHighlights(f,this._bindParameters),this.performanceInfo.advance(he.HIGHLIGHTS),u&&this._magnifierHelper.render(this._rctx,this._bindParameters),f!==e&&(this._rctx.bindFramebuffer(e),this._compositingHelper.composite(this._bindParameters,this._offscreenRendering.tmpColorTexture,ie.None)),this._disposeOITBuffers(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this._sliceHelper.plane=_,this._isRendering=!1,this.onPostRender&&this.onPostRender(),this.performanceInfo.finishFrame()}_renderObjectAndLayerIdColor(e){d(e)&&has("enable-feature:objectAndLayerId-rendering")&&(this._rctx.bindFramebuffer(e),this._offscreenRendering.renderToFBO((()=>this._renderGeometryAndTransparentTerrainPass(I.ObjectAndLayerIdColor)),[0,0,0,0],!0,!0),this._rctx.bindFramebuffer(e),this._offscreenRendering.renderToFBO((()=>{this._bindParameters.renderTransparentlyOccludedHUD=H.NotOccluded,this._renderInternalSlot(Y.HUD_MATERIAL)}),null,!0,!0))}finish(e){if(this._hasAnimations||(this._animationTimestep=u(0)),e===L.BACKGROUND){let e=0;this.performanceInfo.gpuSamplingEnabled?e=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.getError();const r=this.performanceInfo.elapsedTime,t=Math.max(r,e),s=i(t/w,C,O);this._animationTimestep=u(this._animationTimestep*le+s*(1-le))}}readDepthPixels(e,r,t){const s=this._offscreenRendering.bindTarget(this._offscreenRendering.linearDepth,this._offscreenRendering.tmpDepth);if(!this._needsLinearDepth){this._ensureBindParameters(e,e),this._bindParameters.camera.setGLViewport(this._rctx),this._rctx.setClearColor(0,0,0,0);const r=de.COLOR_BUFFER_BIT|de.DEPTH_BUFFER_BIT|de.STENCIL_BUFFER_BIT;this._rctx.clearSafe(r),this._renderGeometryAndTransparentTerrainPass(I.Depth)}s.readPixels(r[0],r[1],r[2],r[3],oe.RGBA,_e.UNSIGNED_BYTE,t)}readHUDVisibility(e,r,t,s,n){this._offscreenRendering.bindTarget(this._offscreenRendering.hudVisibility).readPixels(e,r,t,s,oe.RGBA,_e.UNSIGNED_BYTE,n)}readAccumulatedShadow(e,r){return this._shadowAccumulator.readAccumulatedShadow(e,r)}_setMultipassEnabled(e){this._bindParameters.multipassTerrain.enabled=this._bindParameters.multipassGeometry.enabled=e}_setTerrainCulling(e){this._bindParameters.multipassTerrain.cullAboveGround=e}_renderSlot(e){this._bindParameters.slot=e,this._renderPlugins.render()}_renderEdges(e,r=!1){const t=this._edgeView;d(t)&&t.shouldRender()&&this._offscreenRendering.renderTmpAndCompositeToMain((()=>t.render(this._bindParameters,e)),this._bindParameters,ie.Alpha,r)}_renderShadowMap(e,r,t,s){const n=this._shadowMap;n.enabled&&(n.start(r,t,s),this._shadowHighlight.updateParameters(r,t),this._needsShadowHighlight?(this._renderShadowCascades(I.ShadowHighlight,this._shadowMap,(e=>n.takeCascadeSnapshotTo(e,K.Highlight))),n.clear(),this._renderShadowCascades(I.ShadowExludeHighlight,this._shadowMap,(e=>{n.takeCascadeSnapshotTo(e,K.Default),this._renderGeometryAndTransparentTerrainPass(I.ShadowHighlight)}))):this._renderShadowCascades(I.Shadow),n.finish(e),r.setGLViewport(this._rctx))}_renderShadowCascades(e,r=this._shadowMap,t=(e=>{})){for(const s of r.getCascades())s.camera.setGLViewport(this._rctx),this._ensureCameraBindParameters(s.camera,s.camera),this._renderGeometryAndTransparentTerrainPass(e),t(s)}get _needsLinearDepth(){return this._ssaoHelper.ready||this._renderPlugins.needsLinearDepth||this._hasWater&&this._waterReflectionEnabled||this._needsShadowHighlight||this._needsShadowCast}_renderLinearDepth(){this._needsLinearDepth?this._offscreenRendering.renderToTargets((()=>this._renderGeometryAndTransparentTerrainPass(I.Depth)),this._offscreenRendering.linearDepth,this._offscreenRendering.tmpDepth,[0,0,0,0],!0,!0):this._offscreenRendering.disposeTarget(this._offscreenRendering.linearDepth),this._bindParameters.linearDepthTexture=this._offscreenRendering.linearDepthTexture}_renderTerrainLinearDepth(e){if(e){const e=this._renderContext.output;this._renderContext.output=I.Depth,this._offscreenRendering.renderToTargets((()=>this._renderTransparentTerrain()),this._offscreenRendering.terrainLinearDepth,this._offscreenRendering.tmpDepth,[-1e10,-1e10,-1e10,1],!0,!0),this._renderContext.output=e}else this._offscreenRendering.disposeTarget(this._offscreenRendering.terrainLinearDepth);this._bindParameters.multipassTerrain.linearDepthTexture=this._offscreenRendering.terrainLinearDepthTexture}_renderGeometryLinearDepth(e){if(e){const e=this._renderContext.output;this._offscreenRendering.renderToTargets((()=>this._renderGeometryPass(I.Depth)),this._offscreenRendering.geometryLinearDepth,this._offscreenRendering.tmpDepth,[1,1,1,1],!0,!0),this._renderContext.output=e}else this._offscreenRendering.disposeTarget(this._offscreenRendering.geometryLinearDepth);this._bindParameters.multipassGeometry.linearDepthTexture=this._offscreenRendering.geometryLinearDepthTexture}get _needsNormal(){return this._ssaoHelper.ready}_renderNormal(){this._needsNormal?this._offscreenRendering.renderToTargets((()=>{this._renderGeometryAndTransparentTerrainPass(I.Normal)}),this._offscreenRendering.normal,this._offscreenRendering.tmpDepth,[0,0,0,0],!0,!0):this._offscreenRendering.disposeTarget(this._offscreenRendering.normal)}get _needsDepthRange(){return this._shadowMap.enabled||this._needsShadowCast}_computeDepthRange(e){if(!this._needsDepthRange)return U;const r=q(e,this._content,this._stage.layers);return j(r,this.renderPlugins.queryDepthRange(e)),r.near=Math.max(e.near,r.near),r.far=Math.min(e.far,r.far),r}_renderGeometryAndTransparentTerrainPass(e){this._renderContext.output=e,this._renderGeometryPass(e),this._renderTransparentTerrain()}_renderGeometryPass(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderSSAO(){this._ssaoHelper.loading?this._requestRender():this._ssaoHelper.computeSSAO(this._bindParameters,this._offscreenRendering.linearDepthTexture,this._offscreenRendering.normalTexture)}_renderOpaqueGeometry(){this._renderSlot(Y.INTEGRATED_MESH),this._renderSlot(Y.OPAQUE_TERRAIN),this._renderInternalSlot(Y.OPAQUE_MATERIAL),this._renderSlot(Y.OPAQUE_MATERIAL),this._renderSlot(Y.POSTPROCESSING_ENVIRONMENT_OPAQUE)}_renderTransparentGeometry(){this._renderInternalSlot(Y.TRANSPARENT_MATERIAL),this._renderSlot(Y.TRANSPARENT_MATERIAL)}_renderTransparentTerrain(){this._renderSlot(Y.TRANSPARENT_TERRAIN)}_renderHUDVisibility(e){let r=!1;return this._renderContext.offscreenRenderingHelper&&this._renderContext.offscreenRenderingHelper.renderHUDVisibility((()=>{this._bindParameters.hudVisibilityTexture=this._renderContext.offscreenRenderingHelper.hudVisibilityTexture,r=this._renderInternalSlot(Y.OCCLUSION_PIXELS)}),e),r}_renderLineCallouts(e){this._bindParameters.renderTransparentlyOccludedHUD=e,e===H.Occluded?this._offscreenRendering.renderToTargets((()=>this._renderInternalSlot(Y.LINE_CALLOUTS)),this._offscreenRendering.currentColorTarget,this._offscreenRendering.tmpDepth,void 0,!0,!0):this._renderInternalSlot(Y.LINE_CALLOUTS)}_renderHUD(e,r){this._hasHUDElements&&(this._oitEnabled?(this._renderOrderIndependentTransparency((()=>this._renderHUDElements(e)),!0),this._rctx.bindFramebuffer(r),this._compositingHelper.composite(this._bindParameters,this._offscreenRendering.hudColorTexture,ie.PremultipliedAlpha)):e===H.Occluded?this._offscreenRendering.renderToTargets((()=>this._renderHUDElements(H.Occluded)),this._offscreenRendering.currentColorTarget,this._offscreenRendering.tmpDepth,void 0,!0,!0):this._renderHUDElements(e))}_renderHUDElements(e){this._bindParameters.renderTransparentlyOccludedHUD=e,this._renderInternalSlot(Y.LINE_CALLOUTS_HUD_DEPTH),this._renderInternalSlot(Y.HUD_MATERIAL),this._renderInternalSlot(Y.LABEL_MATERIAL)}get _needsHighlight(){return this._hasHighlights||this._renderPlugins.needsHighlight}get _needsShadowHighlight(){return this._shadowMap.enabled&&this._shadowHighlight.isVisible&&this._needsHighlight}_renderHighlights(e,r){if(!this._needsHighlight)return void this._offscreenRendering.disposeTarget(this._offscreenRendering.highlight);const t=this._highlight,s=this._offscreenRendering.renderToTargets((()=>{this._renderGeometryAndTransparentTerrainPass(I.Highlight),this._rctx.clearSafe(de.DEPTH_BUFFER_BIT),this._renderHUDElements(H.Both)}),this._offscreenRendering.highlight,this._offscreenRendering.tmpDepth,[0,0,0,0],!0,!0);this._bindParameters.highlightColorTexture=s.colorTexture,this._needsShadowHighlight&&this._shadowHighlight.render(r,e),t.render(this._bindParameters,s,e)}get _needsShadowCast(){return this._shadowAccumulator.isAccumulating}_accumulateShadows(e,r,t){this._needsShadowCast&&this._shadowAccumulator.renderAccumulation(this._offscreenRendering.linearDepthTexture,e,r,t)}_renderOrderIndependentTransparency(e,r){const t=t=>{this._bindParameters.transparencyPassType=t,this._offscreenRendering.renderOITPass((()=>e()),t,r)},s=this._renderContext.output;this._renderContext.output=I.Alpha,t(re.Alpha),this._renderContext.output=I.Color,t(re.Color),t(re.FrontFace),this._offscreenRendering.compositeTransparentOntoOpaque(this._bindParameters,r),this._bindParameters.transparencyPassType=re.NONE,this._renderContext.output=s,this._oitUsed=!0}_disposeOITBuffers(){this._oitUsed||(this._offscreenRendering.disposeTarget(this._offscreenRendering.alphaFloatTarget),this._offscreenRendering.disposeTarget(this._offscreenRendering.colorFloatTarget),this._offscreenRendering.disposeTarget(this._offscreenRendering.frontFaceTarget)),this._oitUsed=!1}_renderOccluded(){let e=0;this._materialRenderers.forEach(((r,t)=>{t&&t.isVisible()&&t.renderOccluded===V.OccludeAndTransparentStencil&&(e|=t.renderOccluded,ge.push(t))}));const r=this._offscreenRendering,t=(t,s,n,i,a)=>{0!=(e&s)&&(r.renderToTargets(n,r.tmpColor,r.mainDepth,[0,0,0,0],i,a),r.compositeOccludedOntoMain(this._bindParameters,t))};0!==ge.length&&(this._renderInternalSlot(Y.OCCLUDER_MATERIAL,ge),t(.5,V.OccludeAndTransparentStencil,(()=>this._renderInternalSlot(Y.TRANSPARENT_OCCLUDER_MATERIAL,ge)),!1,!1),ge.length=0),this._materialRenderers.forEach(((r,t)=>{t&&t.isVisible()&&(t.renderOccluded===V.OccludeAndTransparent||t.renderOccluded===V.Transparent||t.renderOccluded===V.Opaque)&&(e|=t.renderOccluded,me.push(t))}));const s=this._renderPlugins.renderOccludedFlags;if(e|=s,!e)return;const n=e=>{this._renderContext.renderOccludedMask=e,s>V.Occlude&&this._renderSlot(Y.OCCLUDED_TERRAIN),this._renderInternalSlot(Y.OPAQUE_MATERIAL,me),this._renderInternalSlot(Y.TRANSPARENT_MATERIAL,me),this._renderInternalSlot(Y.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL,me),this._renderContext.resetRenderOccludedMask()};this._renderContext.output=I.Color,t(.5,V.OccludeAndTransparent,(()=>n(V.OccludeAndTransparent)),!0,N.OutlineVisualElementMask),t(.5,V.Transparent,(()=>n(V.Transparent)),!0,N.OutlineVisualElementMask),t(1,V.Opaque,(()=>n(V.Opaque)),!0,N.OutlineVisualElementMask),me.length=0}_renderAntiAliasing(e){if(this._antialiasing){if(this._smaaPass.enable((()=>this._requestRender()))&&d(e))return this._smaaPass.render(e),!0}else this._smaaPass.disable();return!1}_ensureCameraBindParameters(e,r){this._bindParameters.camera=e,this._bindParameters.contentCamera=r}_ensureBindParameters(e,r){this._ensureCameraBindParameters(e,r);const t=this._renderContext.offscreenRenderingHelper;this._bindParameters.hudVisibilityTexture=t.hudVisibilityTexture,this._bindParameters.mainColorTexture=t.mainColorTexture,this._bindParameters.highlightDepthTexture=t.depthTexture??this._getFallbackDepthTexture()}_ensureBindParametersSSR(){this.hasWaterReflection?(this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=A:(E(fe,this._bindParameters.camera.viewMatrix),E(ue,this._bindParameters.camera.projectionMatrix),b(Re,fe,ue),b(Re,this._renderContext.lastFrameCamera.viewMatrix,Re),b(Re,this._renderContext.lastFrameCamera.projectionMatrix,Re),this._reprojectionMatrix=Re),this._bindParameters.ssr.lastFrameColorTexture=this._offscreenRendering.lastFrameColorTexture):this._bindParameters.ssr.lastFrameColorTexture=null,this._bindParameters.ssr.enabled=this.hasWaterReflection}_renderInternalSlot(e,r){let t=!1;return this._bindParameters.slot=e,d(r)?r.forEach((e=>{if(!e.shouldRender(this._renderContext))return;const r=this._materialRenderers.get(e);d(r)&&(t=r.render(this._renderContext.output,this._bindParameters)||t)})):this._materialRenderers.forEach(((e,r)=>{r.shouldRender(this._renderContext)&&e.render(this._renderContext.output,this._bindParameters)&&(t=!0)})),t}_getFallbackDepthTexture(){return this._fallbackDepthStencilTexture||(this._fallbackDepthStencilTexture=F(this._rctx)),this._fallbackDepthStencilTexture}get gpuMemoryUsage(){return{offscreen:this._offscreenRendering?.gpuMemoryUsage??0,highlights:(this._highlight?.gpuMemoryUsage??0)+(this._shadowHighlight?.gpuMemoryUsage??0),shadows:this._shadowMap?.gpuMemoryUsage??0,ssao:this._ssaoHelper?.gpuMemoryUsage??0}}get test(){const e=this;return{offscreen:this._offscreenRendering,shadowMap:this._shadowMap,ssao:this._ssaoHelper,highlight:this._highlight,lighting:this._bindParameters.lighting,materialRenderers:this._materialRenderers,shadowAccumulator:this._shadowAccumulator,weatherIsFading:this._bindParameters.cloudsFade.isFading,getFramebufferTexture:r=>{switch(r){case pe.Color:return e._offscreenRendering.colorTexture;case pe.LinearDepth:return e._offscreenRendering.linearDepthTexture;case pe.Normals:return e._offscreenRendering.normalTexture;case pe.ShadowMap:return e._shadowMap.depthTexture;case pe.HudVisibility:return e._offscreenRendering.hudVisibilityTexture;case pe.Highlight:return e._offscreenRendering.highlightTexture}}}}};var pe;e([f()],ce.prototype,"_shadowAccumulator",void 0),e([f()],ce.prototype,"_smaaPass",void 0),e([f()],ce.prototype,"_antialiasing",void 0),e([f()],ce.prototype,"_edgeView",void 0),e([f()],ce.prototype,"updating",null),e([f()],ce.prototype,"isCameraFinal",null),ce=e([R("esri.views.3d.webgl-engine.lib.Renderer")],ce),function(e){e[e.Color=0]="Color",e[e.LinearDepth=1]="LinearDepth",e[e.Normals=2]="Normals",e[e.ShadowMap=3]="ShadowMap",e[e.HudVisibility=4]="HudVisibility",e[e.Highlight=5]="Highlight"}(pe||(pe={}));const me=[],ge=[],ue=P(),fe=P(),Re=P();export{pe as FramebufferId,ce as Renderer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import has from"../../../../core/has.js";import{clamp as t,acosClamped as e,lerp as s}from"../../../../core/mathUtils.js";import{isSome as a,disposeMaybe as r}from"../../../../core/maybe.js";import{c as i}from"../../../../chunks/mat3f64.js";import{v as c,m as h,w as o,a as n,q as _}from"../../../../chunks/mat4.js";import{c as m}from"../../../../chunks/mat4f64.js";import{s as u,j as d,b as p,l,k as f,a as x,h as T,n as g,f as w,c as b}from"../../../../chunks/vec2.js";import{a as S}from"../../../../chunks/vec2f64.js";import{w as M,c as C,x as D,v as E,s as j}from"../../../../chunks/vec3.js";import{c as v}from"../../../../chunks/vec3f64.js";import{s as z,t as R}from"../../../../chunks/vec4.js";import{c as U}from"../../../../chunks/vec4f64.js";import{ViewingMode as F}from"../../../ViewingMode.js";import{Camera as y}from"./Camera.js";import{assert as N,logWithBase as O,verify as A,rayRay2D as k}from"./Util.js";import{TextureType as L,ClearBufferBit as P,PixelFormat as B,PixelType as G,TextureWrapMode as I,TextureSamplingMode as X,TargetType as H,DepthStencilTargetType as q}from"../../../webgl/enums.js";import{FramebufferObject as Y}from"../../../webgl/FramebufferObject.js";import{Texture as V}from"../../../webgl/Texture.js";import{getGpuMemoryUsage as W}from"../../../webgl/Util.js";var J;!function(t){t[t.Highlight=0]="Highlight",t[t.Default=1]="Default"}(J||(J={}));class K{constructor(){this.camera=new y,this.lightMat=m()}}class Q{constructor(t,e){this._rctx=t,this._viewingMode=e,this._enabled=!1,this._snapshots=new Array,this._textureSize=0,this.numCascades=1,this._maxNumCascades=4,this._splitSchemeLambda=0,this._warp=!0,this._cascadeDistances=[0,0,0,0,0],this._usedCascadeDistances=U(),this._cascades=[new K,new K,new K,new K],this._maxTextureSize=Math.min(has("esri-mobile")?2048:8192,this._rctx.parameters.maxTextureSize)}get depthTexture(){return this._depthTexture}get textureSize(){return this._textureSize}get cascadeDistances(){return z(this._usedCascadeDistances,this._cascadeDistances[0],this.numCascades>1?this._cascadeDistances[1]:1/0,this.numCascades>2?this._cascadeDistances[2]:1/0,this.numCascades>3?this._cascadeDistances[3]:1/0)}dispose(){this._discardDepthTexture(),this._discardAllSnapshots()}set maxCascades(e){this._maxNumCascades=t(Math.floor(e),1,4)}get maxCascades(){return this._maxNumCascades}set enabled(t){this._enabled=t,t||(this._discardDepthTexture(),this._discardAllSnapshots())}get enabled(){return this._enabled}get ready(){return this._enabled&&a(this._depthTexture)}getSnapshot(t){return this.enabled?this._snapshots[t]:null}getCascades(){for(let t=0;t<this.numCascades;++t)ut[t]=this._cascades[t];return ut.length=this.numCascades,ut}start(t,e,s){N(this.enabled),this._textureSize=this._computeTextureSize(t.fullWidth,t.fullHeight),this._ensureDepthTexture();const{near:a,far:r}=this._clampNearFar(s);this._computeCascadeDistances(r,a),this._setupMatrices(t,e);const i=t.viewMatrix,c=t.projectionMatrix;for(let h=0;h<this.numCascades;++h)this._constructCascade(h,c,i,e);this._lastOrigin=null,this.clear()}finish(t){N(this.enabled),this._rctx.bindFramebuffer(t)}getShadowMapMatrices(t){if(!this._lastOrigin||!M(t,this._lastOrigin)){this._lastOrigin=this._lastOrigin||v(),C(this._lastOrigin,t);for(let e=0;e<this.numCascades;++e){c(dt,this._cascades[e].lightMat,t);for(let t=0;t<16;++t)pt[16*e+t]=dt[t]}}return pt}takeCascadeSnapshotTo(t,e){N(this.enabled);const s=this._ensureSnapshot(e);this._bindFbo();const a=this._rctx,r=a.bindTexture(s,V.TEXTURE_UNIT_FOR_UPDATES);a.gl.copyTexSubImage2D(L.TEXTURE_2D,0,t.camera.viewport[0],t.camera.viewport[1],t.camera.viewport[0],t.camera.viewport[1],t.camera.viewport[2],t.camera.viewport[3]),a.bindTexture(r,V.TEXTURE_UNIT_FOR_UPDATES)}clear(){const t=this._rctx;this._bindFbo(),t.setClearColor(1,1,1,1),t.clearSafe(P.COLOR_BUFFER_BIT|P.DEPTH_BUFFER_BIT)}_computeTextureSize(t,e){const s=.5*Math.log(t*t+e*e)*Math.LOG2E,a=.35,r=2**Math.round(s+a);return Math.min(this._maxTextureSize,2*r)}_ensureDepthTexture(){if(a(this._depthTexture)&&this._depthTexture.descriptor.width===this._textureSize)return;this._discardDepthTexture();const t={target:L.TEXTURE_2D,pixelFormat:B.RGBA,dataType:G.UNSIGNED_BYTE,wrapMode:I.CLAMP_TO_EDGE,samplingMode:X.NEAREST,flipped:!0,width:this._textureSize,height:this._textureSize};this._depthTexture=new V(this._rctx,t),this._fbo=new Y(this._rctx,{colorTarget:H.TEXTURE,depthStencilTarget:q.DEPTH_RENDER_BUFFER,width:this._textureSize,height:this._textureSize},this._depthTexture)}_ensureSnapshot(t){let e=this._snapshots[t];if(a(e)&&e.descriptor.width===this._textureSize)return e;this._discardSnapshot(t);const s={target:L.TEXTURE_2D,pixelFormat:B.RGBA,dataType:G.UNSIGNED_BYTE,wrapMode:I.CLAMP_TO_EDGE,samplingMode:X.NEAREST,flipped:!0,width:this._textureSize,height:this._textureSize};return e=new V(this._rctx,s),this._snapshots[t]=e,e}_discardDepthTexture(){this._fbo=r(this._fbo),this._depthTexture=r(this._depthTexture)}_discardSnapshot(t){this._snapshots[t]=r(this._snapshots[t])}_discardAllSnapshots(){for(let t=0;t<this._snapshots.length;++t)this._discardSnapshot(t);this._snapshots.length=0}_bindFbo(){const t=this._rctx;t.unbindTexture(this._depthTexture),t.bindFramebuffer(this._fbo)}_constructCascade(t,e,s,a){const r=this._cascades[t],i=-this._cascadeDistances[t],o=-this._cascadeDistances[t+1],n=(e[10]*i+e[14])/Math.abs(e[11]*i+e[15]),_=(e[10]*o+e[14])/Math.abs(e[11]*o+e[15]);N(n<_);for(let c=0;c<8;++c){z(et,c%4==0||c%4==3?-1:1,c%4==0||c%4==1?-1:1,c<4?n:_,1),R(st[c],et,tt);for(let t=0;t<3;++t)st[c][t]/=st[c][3]}D(mt,st[0]),c(Z,_t,mt),r.camera.viewMatrix=Z;for(let c=0;c<8;++c)E(st[c],st[c],r.camera.viewMatrix);C(at,st[0]),C(rt,st[0]);for(let c=1;c<8;++c)for(let t=0;t<3;++t)at[t]=Math.min(at[t],st[c][t]),rt[t]=Math.max(rt[t],st[c][t]);at[2]-=200,rt[2]+=200,r.camera.near=-rt[2],r.camera.far=-at[2],this._warp?this._constructTrapezoidalProjection(s,a,r):this._constructOrthogonalProjection(r),h(r.lightMat,r.camera.projectionMatrix,r.camera.viewMatrix);const m=this._textureSize/2;r.camera.viewport[0]=t%2==0?0:m,r.camera.viewport[1]=0===Math.floor(t/2)?0:m,r.camera.viewport[2]=m,r.camera.viewport[3]=m}_constructOrthogonalProjection(t){o(t.camera.projectionMatrix,at[0],rt[0],at[1],rt[1],t.camera.near,t.camera.far)}_constructTrapezoidalProjection(t,s,a){const r=1/st[0][3],i=1/st[4][3];N(r<i);let c=r+Math.sqrt(r*i);const h=Math.sin(e(t[2]*s[0]+t[6]*s[1]+t[10]*s[2]));c/=h,Dt(st,c,h,it,ct,ht,ot,nt),Ut(it,ct,ot,nt,a.camera.projectionMatrix),a.camera.projectionMatrix[10]=2/(at[2]-rt[2]),a.camera.projectionMatrix[14]=-(at[2]+rt[2])/(at[2]-rt[2])}_setupMatrices(t,e){h($,t.projectionMatrix,t.viewMatrix),n(tt,$);const s=this._viewingMode===F.Global?t.eye:j(mt,0,0,1);_(_t,[0,0,0],[-e[0],-e[1],-e[2]],s)}_clampNearFar(t){let{near:e,far:s}=t;return e<2&&(e=2),s<2&&(s=2),e>=s&&(e=2,s=4),{near:e,far:s}}_computeCascadeDistances(t,e){this.numCascades=Math.min(1+Math.floor(O(t/e,4)),this._maxNumCascades);const a=(t-e)/this.numCascades,r=(t/e)**(1/this.numCascades);let i=e,c=e;for(let h=0;h<this.numCascades+1;++h)this._cascadeDistances[h]=s(i,c,this._splitSchemeLambda),i*=r,c+=a}get gpuMemoryUsage(){return this._snapshots.reduce(((t,e)=>t+W(e)),this._fbo?.gpuMemoryUsage??0)}get test(){const t=this;return{maxNumCascades:this._maxNumCascades,cascades:this._cascades,textureSize:this._textureSize,set splitSchemeLambda(e){t._splitSchemeLambda=e},get splitSchemeLambda(){return t._splitSchemeLambda},set warp(e){t._warp=e},get warp(){return t._warp}}}}const Z=m(),$=m(),tt=m(),et=U(),st=[];for(let Ft=0;Ft<8;++Ft)st.push(U());const at=v(),rt=v(),it=S(),ct=S(),ht=S(),ot=S(),nt=S(),_t=m(),mt=v(),ut=[],dt=m(),pt=new Float32Array(64),lt=S(),ft=S(),xt=[S(),S(),S(),S()],Tt=S(),gt=S(),wt=S(),bt=S(),St=S(),Mt=S(),Ct=S();function Dt(t,e,s,a,r,i,c,h){u(lt,0,0);for(let u=0;u<4;++u)d(lt,lt,t[u]);p(lt,lt,.25),u(ft,0,0);for(let u=4;u<8;++u)d(ft,ft,t[u]);p(ft,ft,.25),l(xt[0],t[4],t[5],.5),l(xt[1],t[5],t[6],.5),l(xt[2],t[6],t[7],.5),l(xt[3],t[7],t[4],.5);let o=0,n=f(xt[0],lt);for(let u=1;u<4;++u){const t=f(xt[u],lt);t<n&&(n=t,o=u)}x(Tt,xt[o],t[o+4]);const _=Tt[0];let m,S;Tt[0]=-Tt[1],Tt[1]=_,x(gt,ft,lt),T(gt,Tt)<0&&g(Tt,Tt),l(Tt,Tt,gt,s),w(Tt,Tt),m=S=T(x(wt,t[0],lt),Tt);for(let u=1;u<8;++u){const e=T(x(wt,t[u],lt),Tt);e<m?m=e:e>S&&(S=e)}b(a,lt),p(wt,Tt,m-e),d(a,a,wt);let M=-1,C=1,D=0,E=0;for(let u=0;u<8;++u){x(bt,t[u],a),w(bt,bt);const e=Tt[0]*bt[1]-Tt[1]*bt[0];e>0?e>M&&(M=e,D=u):e<C&&(C=e,E=u)}A(M>0,"leftArea"),A(C<0,"rightArea"),p(St,Tt,m),d(St,St,lt),p(Mt,Tt,S),d(Mt,Mt,lt),Ct[0]=-Tt[1],Ct[1]=Tt[0];const j=k(a,t[E],Mt,d(wt,Mt,Ct),1,r),v=k(a,t[D],Mt,wt,1,i),z=k(a,t[D],St,d(wt,St,Ct),1,c),R=k(a,t[E],St,wt,1,h);A(j,"rayRay"),A(v,"rayRay"),A(z,"rayRay"),A(R,"rayRay")}function Et(t,e){return 3*e+t}const jt=S();function vt(t,e){return u(jt,t[e],t[e+3]),jt}const zt=S(),Rt=i();function Ut(t,e,s,a,r){x(zt,s,a),p(zt,zt,.5),Rt[0]=zt[0],Rt[1]=zt[1],Rt[2]=0,Rt[3]=zt[1],Rt[4]=-zt[0],Rt[5]=0,Rt[6]=zt[0]*zt[0]+zt[1]*zt[1],Rt[7]=zt[0]*zt[1]-zt[1]*zt[0],Rt[8]=1,Rt[Et(0,2)]=-T(vt(Rt,0),t),Rt[Et(1,2)]=-T(vt(Rt,1),t);let i=T(vt(Rt,0),s)+Rt[Et(0,2)],c=T(vt(Rt,1),s)+Rt[Et(1,2)],h=T(vt(Rt,0),a)+Rt[Et(0,2)],o=T(vt(Rt,1),a)+Rt[Et(1,2)];i=-(i+h)/(c+o),Rt[Et(0,0)]+=Rt[Et(1,0)]*i,Rt[Et(0,1)]+=Rt[Et(1,1)]*i,Rt[Et(0,2)]+=Rt[Et(1,2)]*i,i=1/(T(vt(Rt,0),s)+Rt[Et(0,2)]),c=1/(T(vt(Rt,1),s)+Rt[Et(1,2)]),Rt[Et(0,0)]*=i,Rt[Et(0,1)]*=i,Rt[Et(0,2)]*=i,Rt[Et(1,0)]*=c,Rt[Et(1,1)]*=c,Rt[Et(1,2)]*=c,Rt[Et(2,0)]=Rt[Et(1,0)],Rt[Et(2,1)]=Rt[Et(1,1)],Rt[Et(2,2)]=Rt[Et(1,2)],Rt[Et(1,2)]+=1,i=T(vt(Rt,1),e)+Rt[Et(1,2)],c=T(vt(Rt,2),e)+Rt[Et(2,2)],h=T(vt(Rt,1),s)+Rt[Et(1,2)],o=T(vt(Rt,2),s)+Rt[Et(2,2)],i=-.5*(i/c+h/o),Rt[Et(1,0)]+=Rt[Et(2,0)]*i,Rt[Et(1,1)]+=Rt[Et(2,1)]*i,Rt[Et(1,2)]+=Rt[Et(2,2)]*i,i=T(vt(Rt,1),e)+Rt[Et(1,2)],c=T(vt(Rt,2),e)+Rt[Et(2,2)],h=-c/i,Rt[Et(1,0)]*=h,Rt[Et(1,1)]*=h,Rt[Et(1,2)]*=h,r[0]=Rt[0],r[1]=Rt[1],r[2]=0,r[3]=Rt[2],r[4]=Rt[3],r[5]=Rt[4],r[6]=0,r[7]=Rt[5],r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=Rt[6],r[13]=Rt[7],r[14]=0,r[15]=Rt[8]}export{Q as ShadowMap,J as SnapshotSlot};
|
|
5
|
+
import has from"../../../../core/has.js";import{clamp as t,acosClamped as e,lerp as s}from"../../../../core/mathUtils.js";import{isSome as a,disposeMaybe as r}from"../../../../core/maybe.js";import{c as i}from"../../../../chunks/mat3f64.js";import{v as c,m as h,w as o,a as n,q as _}from"../../../../chunks/mat4.js";import{c as m}from"../../../../chunks/mat4f64.js";import{s as u,j as d,b as p,l,k as f,a as x,h as T,n as g,f as b,c as w}from"../../../../chunks/vec2.js";import{a as S}from"../../../../chunks/vec2f64.js";import{k as M,c as C,o as D,m as E,s as j}from"../../../../chunks/vec3.js";import{c as v}from"../../../../chunks/vec3f64.js";import{s as z,t as R}from"../../../../chunks/vec4.js";import{c as U}from"../../../../chunks/vec4f64.js";import{ViewingMode as F}from"../../../ViewingMode.js";import{Camera as y}from"./Camera.js";import{assert as N,logWithBase as O,verify as A,rayRay2D as k}from"./Util.js";import{TextureType as L,ClearBufferBit as P,PixelFormat as B,PixelType as G,TextureWrapMode as I,TextureSamplingMode as X,TargetType as H,DepthStencilTargetType as q}from"../../../webgl/enums.js";import{FramebufferObject as Y}from"../../../webgl/FramebufferObject.js";import{Texture as V}from"../../../webgl/Texture.js";import{getGpuMemoryUsage as W}from"../../../webgl/Util.js";var J;!function(t){t[t.Highlight=0]="Highlight",t[t.Default=1]="Default"}(J||(J={}));class K{constructor(){this.camera=new y,this.lightMat=m()}}class Q{constructor(t,e){this._rctx=t,this._viewingMode=e,this._enabled=!1,this._snapshots=new Array,this._textureSize=0,this._numCascades=1,this._maxNumCascades=4,this._splitSchemeLambda=0,this._warp=!0,this._cascadeDistances=[0,0,0,0,0],this._usedCascadeDistances=U(),this._cascades=[new K,new K,new K,new K],this._maxTextureSize=Math.min(has("esri-mobile")?2048:8192,this._rctx.parameters.maxTextureSize)}get depthTexture(){return this._depthTexture}get textureSize(){return this._textureSize}get numCascades(){return this._numCascades}get cascadeDistances(){return z(this._usedCascadeDistances,this._cascadeDistances[0],this._numCascades>1?this._cascadeDistances[1]:1/0,this._numCascades>2?this._cascadeDistances[2]:1/0,this._numCascades>3?this._cascadeDistances[3]:1/0)}dispose(){this._discardDepthTexture(),this._discardAllSnapshots()}set maxCascades(e){this._maxNumCascades=t(Math.floor(e),1,4)}get maxCascades(){return this._maxNumCascades}set enabled(t){this._enabled=t,t||(this._discardDepthTexture(),this._discardAllSnapshots())}get enabled(){return this._enabled}get ready(){return this._enabled&&a(this._depthTexture)}getSnapshot(t){return this.enabled?this._snapshots[t]:null}getCascades(){for(let t=0;t<this._numCascades;++t)ut[t]=this._cascades[t];return ut.length=this._numCascades,ut}start(t,e,s){N(this.enabled),this._textureSize=this._computeTextureSize(t.fullWidth,t.fullHeight),this._ensureDepthTexture();const{near:a,far:r}=this._clampNearFar(s);this._computeCascadeDistances(r,a),this._setupMatrices(t,e);const i=t.viewMatrix,c=t.projectionMatrix;for(let h=0;h<this._numCascades;++h)this._constructCascade(h,c,i,e);this._lastOrigin=null,this.clear()}finish(t){N(this.enabled),this._rctx.bindFramebuffer(t)}getShadowMapMatrices(t){if(!this._lastOrigin||!M(t,this._lastOrigin)){this._lastOrigin=this._lastOrigin||v(),C(this._lastOrigin,t);for(let e=0;e<this._numCascades;++e){c(dt,this._cascades[e].lightMat,t);for(let t=0;t<16;++t)pt[16*e+t]=dt[t]}}return pt}takeCascadeSnapshotTo(t,e){N(this.enabled);const s=this._ensureSnapshot(e);this._bindFbo();const a=this._rctx,r=a.bindTexture(s,V.TEXTURE_UNIT_FOR_UPDATES);a.gl.copyTexSubImage2D(L.TEXTURE_2D,0,t.camera.viewport[0],t.camera.viewport[1],t.camera.viewport[0],t.camera.viewport[1],t.camera.viewport[2],t.camera.viewport[3]),a.bindTexture(r,V.TEXTURE_UNIT_FOR_UPDATES)}clear(){const t=this._rctx;this._bindFbo(),t.setClearColor(1,1,1,1),t.clearSafe(P.COLOR_BUFFER_BIT|P.DEPTH_BUFFER_BIT)}_computeTextureSize(t,e){const s=.5*Math.log(t*t+e*e)*Math.LOG2E,a=.35,r=2**Math.round(s+a);return Math.min(this._maxTextureSize,2*r)}_ensureDepthTexture(){if(a(this._depthTexture)&&this._depthTexture.descriptor.width===this._textureSize)return;this._discardDepthTexture();const t={target:L.TEXTURE_2D,pixelFormat:B.RGBA,dataType:G.UNSIGNED_BYTE,wrapMode:I.CLAMP_TO_EDGE,samplingMode:X.NEAREST,flipped:!0,width:this._textureSize,height:this._textureSize};this._depthTexture=new V(this._rctx,t),this._fbo=new Y(this._rctx,{colorTarget:H.TEXTURE,depthStencilTarget:q.DEPTH_RENDER_BUFFER,width:this._textureSize,height:this._textureSize},this._depthTexture)}_ensureSnapshot(t){let e=this._snapshots[t];if(a(e)&&e.descriptor.width===this._textureSize)return e;this._discardSnapshot(t);const s={target:L.TEXTURE_2D,pixelFormat:B.RGBA,dataType:G.UNSIGNED_BYTE,wrapMode:I.CLAMP_TO_EDGE,samplingMode:X.NEAREST,flipped:!0,width:this._textureSize,height:this._textureSize};return e=new V(this._rctx,s),this._snapshots[t]=e,e}_discardDepthTexture(){this._fbo=r(this._fbo),this._depthTexture=r(this._depthTexture)}_discardSnapshot(t){this._snapshots[t]=r(this._snapshots[t])}_discardAllSnapshots(){for(let t=0;t<this._snapshots.length;++t)this._discardSnapshot(t);this._snapshots.length=0}_bindFbo(){const t=this._rctx;t.unbindTexture(this._depthTexture),t.bindFramebuffer(this._fbo)}_constructCascade(t,e,s,a){const r=this._cascades[t],i=-this._cascadeDistances[t],o=-this._cascadeDistances[t+1],n=(e[10]*i+e[14])/Math.abs(e[11]*i+e[15]),_=(e[10]*o+e[14])/Math.abs(e[11]*o+e[15]);N(n<_);for(let c=0;c<8;++c){z(et,c%4==0||c%4==3?-1:1,c%4==0||c%4==1?-1:1,c<4?n:_,1),R(st[c],et,tt);for(let t=0;t<3;++t)st[c][t]/=st[c][3]}D(mt,st[0]),c(Z,_t,mt),r.camera.viewMatrix=Z;for(let c=0;c<8;++c)E(st[c],st[c],r.camera.viewMatrix);C(at,st[0]),C(rt,st[0]);for(let c=1;c<8;++c)for(let t=0;t<3;++t)at[t]=Math.min(at[t],st[c][t]),rt[t]=Math.max(rt[t],st[c][t]);at[2]-=200,rt[2]+=200,r.camera.near=-rt[2],r.camera.far=-at[2],this._warp?this._constructTrapezoidalProjection(s,a,r):this._constructOrthogonalProjection(r),h(r.lightMat,r.camera.projectionMatrix,r.camera.viewMatrix);const m=this._textureSize/2;r.camera.viewport[0]=t%2==0?0:m,r.camera.viewport[1]=0===Math.floor(t/2)?0:m,r.camera.viewport[2]=m,r.camera.viewport[3]=m}_constructOrthogonalProjection(t){o(t.camera.projectionMatrix,at[0],rt[0],at[1],rt[1],t.camera.near,t.camera.far)}_constructTrapezoidalProjection(t,s,a){const r=1/st[0][3],i=1/st[4][3];N(r<i);let c=r+Math.sqrt(r*i);const h=Math.sin(e(t[2]*s[0]+t[6]*s[1]+t[10]*s[2]));c/=h,Dt(st,c,h,it,ct,ht,ot,nt),Ut(it,ct,ot,nt,a.camera.projectionMatrix),a.camera.projectionMatrix[10]=2/(at[2]-rt[2]),a.camera.projectionMatrix[14]=-(at[2]+rt[2])/(at[2]-rt[2])}_setupMatrices(t,e){h($,t.projectionMatrix,t.viewMatrix),n(tt,$);const s=this._viewingMode===F.Global?t.eye:j(mt,0,0,1);_(_t,[0,0,0],[-e[0],-e[1],-e[2]],s)}_clampNearFar(t){let{near:e,far:s}=t;return e<2&&(e=2),s<2&&(s=2),e>=s&&(e=2,s=4),{near:e,far:s}}_computeCascadeDistances(t,e){this._numCascades=Math.min(1+Math.floor(O(t/e,4)),this._maxNumCascades);const a=(t-e)/this._numCascades,r=(t/e)**(1/this._numCascades);let i=e,c=e;for(let h=0;h<this._numCascades+1;++h)this._cascadeDistances[h]=s(i,c,this._splitSchemeLambda),i*=r,c+=a}get gpuMemoryUsage(){return this._snapshots.reduce(((t,e)=>t+W(e)),this._fbo?.gpuMemoryUsage??0)}get test(){const t=this;return{maxNumCascades:this._maxNumCascades,cascades:this._cascades,textureSize:this._textureSize,set splitSchemeLambda(e){t._splitSchemeLambda=e},get splitSchemeLambda(){return t._splitSchemeLambda},set warp(e){t._warp=e},get warp(){return t._warp}}}}const Z=m(),$=m(),tt=m(),et=U(),st=[];for(let Ft=0;Ft<8;++Ft)st.push(U());const at=v(),rt=v(),it=S(),ct=S(),ht=S(),ot=S(),nt=S(),_t=m(),mt=v(),ut=[],dt=m(),pt=new Float32Array(64),lt=S(),ft=S(),xt=[S(),S(),S(),S()],Tt=S(),gt=S(),bt=S(),wt=S(),St=S(),Mt=S(),Ct=S();function Dt(t,e,s,a,r,i,c,h){u(lt,0,0);for(let u=0;u<4;++u)d(lt,lt,t[u]);p(lt,lt,.25),u(ft,0,0);for(let u=4;u<8;++u)d(ft,ft,t[u]);p(ft,ft,.25),l(xt[0],t[4],t[5],.5),l(xt[1],t[5],t[6],.5),l(xt[2],t[6],t[7],.5),l(xt[3],t[7],t[4],.5);let o=0,n=f(xt[0],lt);for(let u=1;u<4;++u){const t=f(xt[u],lt);t<n&&(n=t,o=u)}x(Tt,xt[o],t[o+4]);const _=Tt[0];let m,S;Tt[0]=-Tt[1],Tt[1]=_,x(gt,ft,lt),T(gt,Tt)<0&&g(Tt,Tt),l(Tt,Tt,gt,s),b(Tt,Tt),m=S=T(x(bt,t[0],lt),Tt);for(let u=1;u<8;++u){const e=T(x(bt,t[u],lt),Tt);e<m?m=e:e>S&&(S=e)}w(a,lt),p(bt,Tt,m-e),d(a,a,bt);let M=-1,C=1,D=0,E=0;for(let u=0;u<8;++u){x(wt,t[u],a),b(wt,wt);const e=Tt[0]*wt[1]-Tt[1]*wt[0];e>0?e>M&&(M=e,D=u):e<C&&(C=e,E=u)}A(M>0,"leftArea"),A(C<0,"rightArea"),p(St,Tt,m),d(St,St,lt),p(Mt,Tt,S),d(Mt,Mt,lt),Ct[0]=-Tt[1],Ct[1]=Tt[0];const j=k(a,t[E],Mt,d(bt,Mt,Ct),1,r),v=k(a,t[D],Mt,bt,1,i),z=k(a,t[D],St,d(bt,St,Ct),1,c),R=k(a,t[E],St,bt,1,h);A(j,"rayRay"),A(v,"rayRay"),A(z,"rayRay"),A(R,"rayRay")}function Et(t,e){return 3*e+t}const jt=S();function vt(t,e){return u(jt,t[e],t[e+3]),jt}const zt=S(),Rt=i();function Ut(t,e,s,a,r){x(zt,s,a),p(zt,zt,.5),Rt[0]=zt[0],Rt[1]=zt[1],Rt[2]=0,Rt[3]=zt[1],Rt[4]=-zt[0],Rt[5]=0,Rt[6]=zt[0]*zt[0]+zt[1]*zt[1],Rt[7]=zt[0]*zt[1]-zt[1]*zt[0],Rt[8]=1,Rt[Et(0,2)]=-T(vt(Rt,0),t),Rt[Et(1,2)]=-T(vt(Rt,1),t);let i=T(vt(Rt,0),s)+Rt[Et(0,2)],c=T(vt(Rt,1),s)+Rt[Et(1,2)],h=T(vt(Rt,0),a)+Rt[Et(0,2)],o=T(vt(Rt,1),a)+Rt[Et(1,2)];i=-(i+h)/(c+o),Rt[Et(0,0)]+=Rt[Et(1,0)]*i,Rt[Et(0,1)]+=Rt[Et(1,1)]*i,Rt[Et(0,2)]+=Rt[Et(1,2)]*i,i=1/(T(vt(Rt,0),s)+Rt[Et(0,2)]),c=1/(T(vt(Rt,1),s)+Rt[Et(1,2)]),Rt[Et(0,0)]*=i,Rt[Et(0,1)]*=i,Rt[Et(0,2)]*=i,Rt[Et(1,0)]*=c,Rt[Et(1,1)]*=c,Rt[Et(1,2)]*=c,Rt[Et(2,0)]=Rt[Et(1,0)],Rt[Et(2,1)]=Rt[Et(1,1)],Rt[Et(2,2)]=Rt[Et(1,2)],Rt[Et(1,2)]+=1,i=T(vt(Rt,1),e)+Rt[Et(1,2)],c=T(vt(Rt,2),e)+Rt[Et(2,2)],h=T(vt(Rt,1),s)+Rt[Et(1,2)],o=T(vt(Rt,2),s)+Rt[Et(2,2)],i=-.5*(i/c+h/o),Rt[Et(1,0)]+=Rt[Et(2,0)]*i,Rt[Et(1,1)]+=Rt[Et(2,1)]*i,Rt[Et(1,2)]+=Rt[Et(2,2)]*i,i=T(vt(Rt,1),e)+Rt[Et(1,2)],c=T(vt(Rt,2),e)+Rt[Et(2,2)],h=-c/i,Rt[Et(1,0)]*=h,Rt[Et(1,1)]*=h,Rt[Et(1,2)]*=h,r[0]=Rt[0],r[1]=Rt[1],r[2]=0,r[3]=Rt[2],r[4]=Rt[3],r[5]=Rt[4],r[6]=0,r[7]=Rt[5],r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=Rt[6],r[13]=Rt[7],r[14]=0,r[15]=Rt[8]}export{Q as ShadowMap,J as SnapshotSlot};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{unpackFloatRGBA as e}from"../../../../core/floatRGBA.js";import{isSome as t,isNone as r}from"../../../../core/maybe.js";import i from"../../../../core/PooledArray.js";import{m as n,c as s}from"../../../../chunks/mat4.js";import{c as a}from"../../../../chunks/mat4f64.js";import{
|
|
5
|
+
import{unpackFloatRGBA as e}from"../../../../core/floatRGBA.js";import{isSome as t,isNone as r}from"../../../../core/maybe.js";import i from"../../../../core/PooledArray.js";import{m as n,c as s}from"../../../../chunks/mat4.js";import{c as a}from"../../../../chunks/mat4f64.js";import{m as o}from"../../../../chunks/vec3.js";import{l as h}from"../../../../chunks/vec4.js";import{c as f}from"../../../../chunks/vec4f64.js";import{intersectsSphere as _,create as c,copy as l}from"../../../../geometry/support/frustum.js";import{c as u}from"../../../../chunks/sphere.js";import{maxScale as d}from"../../support/mathUtils.js";import{empty as m,union as g,set as p}from"./depthRange.js";import b from"./Octree.js";import{assert as w}from"./Util.js";const R=1e4,B=100,v=500,j=500,C=.1;function A(t,r,i){return e(r,t)*(i[1]-i[0])+i[0]}function M(e,t,r){if(t.size<R)return K.compute(e,t);const i=m();return r.forAll((t=>{t.isVisible&&g(i,O(e,t))})),i}function O(e,r){if(!r.isVisible)return;const i=m(),n=r.getSpatialQueryAccelerator();return t(n)?T(i,e,n):D(i,e,r.objects),i}function T(e,t,r){const i=t.eye,n=t.viewForward,s=t.frustum,a=e=>e.isVisible,o=r.objectCount;if(o<v)p(W,t.near,Math.min(e.near,t.far)),r.forEachInDepthRange(i,n,b.DepthOrder.FRONT_TO_BACK,W,((r,i)=>{F(e,t,r),W.far=e.near,i.setRange(W)}),s,a),p(W,Math.max(e.far,t.near),t.far),r.forEachInDepthRange(i,n,b.DepthOrder.BACK_TO_FRONT,W,((r,i)=>{F(e,t,r),W.near=e.far,i.setRange(W)}),s,a);else{const i=Math.max(Math.min(o,j),Math.ceil(o*C)),h=r.findClosest(n,b.DepthOrder.FRONT_TO_BACK,s,a,i),f=r.findClosest(n,b.DepthOrder.BACK_TO_FRONT,s,a,i);h&&f&&(x(e,t,h.boundingVolumeWorldSpace.bounds),x(e,t,f.boundingVolumeWorldSpace.bounds))}}function D(e,t,r){k.clear(),r.forAll((e=>{e.isVisible&&0!==e.geometryRecords.length&&k.add(e)})),k.empty||(k.sort(t),p(W,t.near,Math.min(e.near,t.far)),k.forEachInDepthRange(W,b.DepthOrder.FRONT_TO_BACK,((r,i)=>{i<e.near&&F(e,t,r)})),p(W,Math.max(e.far,t.near),t.far),k.forEachInDepthRange(W,b.DepthOrder.BACK_TO_FRONT,((t,r,i)=>{e.far=Math.max(e.far,i)})))}function F(e,t,r){if(!r.isVisible)return;if(!_(t.frustum,r.boundingVolumeWorldSpace.bounds))return;const i=r.transformation,s=E;r.geometryRecords.forEach((r=>{n(s,i,r.getShaderTransformation());const a=d(s);S(e,t,r.geometry.boundingInfo,s,a)}))}function S(e,t,i,n,s){if(r(i))return;o(V,i.center,n);const{eye:a,viewForward:h}=t,f=h[0]*(V[0]-a[0])+h[1]*(V[1]-a[1])+h[2]*(V[2]-a[2]);if(V[3]=i.radius*s,!(f-V[3]>e.near&&f+V[3]<e.far)&&_(t.frustum,V))if(i.radius>B&&i.getChildren()){const r=i.getChildren();for(let i=0;i<8;++i)r[i]&&S(e,t,r[i],n,s)}else U.unionDepthRangeWithAABB(e,t.viewProjectionMatrix,n,i.bbMin,i.bbMax)}function x(e,t,r){const i=t.eye,n=t.viewForward,s=(r[0]-i[0])*n[0]+(r[1]-i[1])*n[1]+(r[2]-i[2])*n[2];e.near=Math.min(e.near,s-r[3]),e.far=Math.max(e.far,s+r[3])}class y{constructor(){this._items=new i({allocator:e=>e||{obj:null,distance:0,near:0,far:0},deallocator:e=>(e.obj=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){this._items.pushNew().obj=e}sort(e){const t=e.eye,r=e.viewForward;this._items.forAll((e=>{const i=e.obj.boundingVolumeWorldSpace.bounds,n=(i[0]-t[0])*r[0]+(i[1]-t[1])*r[1]+(i[2]-t[2])*r[2];e.distance=n,e.near=n-i[3],e.far=n+i[3]})),this._items.sort(((e,t)=>e.distance-t.distance))}forEachInDepthRange(e,t,r){if(t===b.DepthOrder.FRONT_TO_BACK)for(let i=0;i<this._items.length;++i){const t=this._items.data[i];t.far<e.near||t.near>e.far||r(t.obj,t.near,t.far)}else for(let i=this._items.length-1;i>=0;--i){const t=this._items.data[i];t.far<e.near||t.near>e.far||r(t.obj,t.near,t.far)}}}class I{constructor(){this._view=a(),this._viewProj=a(),this._frustum=c(),this._geometries=[],this._near=[],this._far=[],this._nearCandidates=[],this._farCandidates=[],this._range={near:0,far:0},this._looseRange={near:0,far:0}}compute(e,t){this._reset(),s(this._view,e.viewMatrix),n(this._viewProj,e.projectionMatrix,this._view),l(this._frustum,e.frustum);const r=this._view,i=r[2],a=r[6],o=r[10],h=r[14],f=this._range;let _=0;if(t.forEach((e=>{if(!e.instanceParameters.visible)return;if(!e.castShadow)return;let t;e.hasShaderTransformation?(e.computeBoundingSphere(e.getShaderTransformation(),V,1),t=V):t=e.boundingSphere;const r=i*t[0]+a*t[1]+o*t[2]+h,n=r-t[3],s=r+t[3];this._geometries[_]=e,this._near[_]=-s,this._far[_]=-n,++_})),0===this._geometries.length)return f;for(let n=0;n<this._geometries.length;++n)this._near[n]>f.far&&(f.far=this._near[n]),this._near[n]>2&&this._far[n]<f.near&&(f.near=this._far[n]);const c=this._looseRange;c.near=Math.max(.5*f.near,2),c.far=2*f.far;let u=0,d=0;for(let n=0;n<this._geometries.length;++n)this._near[n]<f.near&&(this._near[n]>=c.near?f.near=this._near[n]:this._nearCandidates[u++]=n),this._far[n]>f.far&&(this._far[n]<=c.far?f.far=this._far[n]:this._farCandidates[d++]=n);if(0===this._nearCandidates.length&&0===this._farCandidates.length)return f;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 e=this._nearCandidates[n];if(this._near[e]<f.near){const t=this._geometries[e],r=t.boundingInfo;this._includeNearBoundingInfoRec(r,t.getShaderTransformation())}}for(let n=0;n<this._farCandidates.length;++n){const e=this._farCandidates[n];if(this._far[e]>f.far){const t=this._geometries[e],r=t.boundingInfo;this._includeFarBoundingInfoRec(r,t.getShaderTransformation())}}return f}_reset(){this._geometries.length=0,this._near.length=0,this._far.length=0,this._nearCandidates.length=0,this._farCandidates.length=0,this._range.near=Number.MAX_VALUE,this._range.far=-Number.MAX_VALUE}_includeNearBoundingInfoRec(e,t){if(r(e))return;const i=e.getCenter();o(V,i,t);const n=d(t),s=V[0],a=V[1],h=V[2],f=e.getBSRadius()*n,_=this._frustum;if(_[0][0]*s+_[0][1]*a+_[0][2]*h+_[0][3]>f||_[1][0]*s+_[1][1]*a+_[1][2]*h+_[1][3]>f||_[2][0]*s+_[2][1]*a+_[2][2]*h+_[2][3]>f||_[3][0]*s+_[3][1]*a+_[3][2]*h+_[3][3]>f)return;const c=this._view[2]*s+this._view[6]*a+this._view[10]*h+this._view[14],l=c+f;if(!(-(c-f)<2||-l>=this._range.near))if(-l>this._looseRange.near)this._range.near=-l;else{if(f>B){const r=e.getChildren();if(void 0!==r){for(let e=0;e<8;++e)void 0!==r[e]&&this._includeNearBoundingInfoRec(r[e],t);return}}U.unionDepthRangeWithAABB(this._range,this._viewProj,t,e.getBBMin(),e.getBBMax())}}_includeFarBoundingInfoRec(e,t){if(r(e))return;let i=e.getBSRadius();const n=e.getCenter();o(V,n,t);const s=d(t),a=V[0],h=V[1],f=V[2];i*=s;const _=this._frustum;if(_[0][0]*a+_[0][1]*h+_[0][2]*f+_[0][3]>i||_[1][0]*a+_[1][1]*h+_[1][2]*f+_[1][3]>i||_[2][0]*a+_[2][1]*h+_[2][2]*f+_[2][3]>i||_[3][0]*a+_[3][1]*h+_[3][2]*f+_[3][3]>i)return;const c=this._view[2]*a+this._view[6]*h+this._view[10]*f+this._view[14]-i;if(!(-c<=this._range.far))if(-c<this._looseRange.far)this._range.far=-c;else{if(i>B){const r=e.getChildren();if(void 0!==r){for(let e=0;e<8;++e)void 0!==r[e]&&this._includeFarBoundingInfoRec(r[e],t);return}}U.unionDepthRangeWithAABB(this._range,this._viewProj,t,e.getBBMin(),e.getBBMax())}}}class N{constructor(){this._modelViewProj=a(),this._clipPosition=[f(),f(),f(),f(),f(),f(),f(),f()]}unionDepthRangeWithAABB(e,t,r,i,s){const a=this._modelViewProj;n(a,t,r);let o=!1;for(let n=0;n<8;++n){const e=this._clipPosition[n],t=0===n||3===n||4===n||7===n?i[0]:s[0],r=0===n||1===n||4===n||5===n?i[1]:s[1],o=n<4?i[2]:s[2];e[0]=a[0]*t+a[4]*r+a[8]*o+a[12],e[1]=a[1]*t+a[5]*r+a[9]*o+a[13],e[2]=a[2]*t+a[6]*r+a[10]*o+a[14],e[3]=a[3]*t+a[7]*r+a[11]*o+a[15]}for(let n=0;n<12;++n){const t=this._clipPosition[P[n][0]],r=this._clipPosition[P[n][1]],i=this._clipPosition[P[n][2]],s=this._clipTriangle(t,r,i);let a=!0;for(let e=0;e<s.length;++e){if(s[e][3]>=2){a=!1;break}}if(!a){o=!0;for(let t=0;t<s.length;++t){const r=s[t][3];Number.isFinite(r)&&(e.near=Math.min(r,e.near),e.far=Math.max(r,e.far))}}}return o}_inside(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 w(!1)}_intersect(e,t,r){let i=0;return 0===r?i=(-e[3]-e[0])/(t[0]-e[0]+t[3]-e[3]):1===r?i=(-e[3]-e[1])/(t[1]-e[1]+t[3]-e[3]):2===r?i=(e[3]-e[0])/(t[0]-e[0]-t[3]+e[3]):3===r&&(i=(e[3]-e[1])/(t[1]-e[1]-t[3]+e[3])),h(f(),e,t,i)}_clipTriangle(e,t,r){let i=[e,t,r];for(let n=0;n<4;++n){const e=i;i=[];for(let t=0;t<e.length;++t){const r=e[t],s=e[(t+1)%e.length];this._inside(s,n)?(this._inside(r,n)||i.push(this._intersect(r,s,n)),i.push(s)):this._inside(r,n)&&i.push(this._intersect(r,s,n))}}return i}}const P=[[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]],V=u(),E=a(),W=m(),k=new y,K=new I,U=new N;export{I as DepthRangeFromRenderGeometries,O as depthRangeFromLayer,M as depthRangeFromScene,A as textureToDepth};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Accessor.js";import{equals as r,binaryIndexOf as s}from"../../../../../core/arrayUtils.js";import o from"../../../../../core/Logger.js";import{clamp as n}from"../../../../../core/mathUtils.js";import{disposeMaybe as i,destroyMaybe as a,isNone as c,isSome as d}from"../../../../../core/maybe.js";import{property as l}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/accessorSupport/ensureType.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{f as u,t as m,e as g}from"../../../../../chunks/mat3.js";import{c as p}from"../../../../../chunks/mat3f64.js";import{c as f}from"../../../../../chunks/mat4f64.js";import{s as _,c as b,p as y,e as j}from"../../../../../chunks/vec3.js";import{c as O}from"../../../../../chunks/vec3f64.js";import{WatchUpdatingTracking as w}from"../../../../../core/support/WatchUpdatingTracking.js";import{g as v,a as x}from"../../../../../chunks/sphere.js";import{c as R}from"../../../../../chunks/vec33.js";import{ViewingMode as E}from"../../../../ViewingMode.js";import{encodeElevationOffset as T}from"../../collections/Component/Material/shader/ComponentData.glsl.js";import{TwoVectorPosition as C}from"../../core/util/TwoVectorPosition.js";import{GridLocalOriginFactory as M}from"../GridLocalOriginFactory.js";import{applyToModelMatrix as D}from"../localOriginHelper.js";import{LocalOriginManager as P}from"../LocalOriginManager.js";import{Object3D as S}from"../Object3D.js";import{VertexArrayObject as A}from"../VertexArrayObject.js";import{VertexAttribute as B}from"../VertexAttribute.js";import{VertexLayout as k,EdgeShaderAttributeLocations as I,glVertexLayout as U,EdgeInputBufferLayout as L}from"./bufferLayouts.js";import{RegularEdgeBufferWriter as V,SilhouetteEdgeBufferWriter as H}from"./edgeBufferWriters.js";import{EdgeType as N}from"./edgePreprocessing.js";import{EdgeRenderer as z,LINE_WIDTH_FRACTION_FACTOR as W,EXTENSION_LENGTH_OFFSET as q}from"./EdgeRenderer.js";import{EdgePassParameters as G}from"./EdgeShaderParameters.js";import{EdgeWorkerHandle as K}from"./EdgeWorkerHandle.js";import{Transparency as F}from"./interfaces.js";import{generateStrokesTexture as Q}from"./strokes.js";import{determineRendererType as J,determineEdgeTransparency as X,determineObjectTransparency as Y,fillComponenBufferIndices as Z}from"./util.js";import{BufferManager as $}from"../TextureBackedBuffer/BufferManager.js";import{BufferObject as ee}from"../../../../webgl/BufferObject.js";import{Usage as te}from"../../../../webgl/enums.js";let re=class extends t{constructor(e){super(e),this._updatingHandles=new w,this._perObjectData=new Map,this._perObjectDataEvictionCache=new Set,this._renderers=new Map,this._gpuMemoryUsage=0,this._workerAbort=new AbortController,this._tmpModelPosition=O(),this._localOrigins=new P(new M(e.renderSR))}initialize(){this._worker=new K(this.schedule),this._componentColorManager=new $(this.rctx,3);const e=k.createBuffer(4);for(let t=0;t<4;t++)e.sideness.set(t,0,0===t||3===t?0:1),e.sideness.set(t,1,0===t||1===t?0:1);this._verticesBufferObject=ee.createVertex(this.rctx,te.STATIC_DRAW,e.buffer)}destroy(){this.destroyed||(this._perObjectData.forEach((e=>this._discardObjectEntry(e))),this._perObjectData.clear(),this._strokesTexture=i(this._strokesTexture),this._componentColorManager=a(this._componentColorManager),this._workerAbort.abort(),this._worker.destroy(),this._verticesBufferObject=i(this._verticesBufferObject),this._renderers.clear(),this._updatingHandles.destroy())}get updating(){return this._updatingHandles.updating}get usedMemory(){return this._gpuMemoryUsage}shouldRender(){return this._renderers.size>0}async addComponentObject(e,t,r,s,o,n,i,a){if(this.hasObject(e))return this.getObjectMemoryUsage(e);let c;const d=new ne(new Promise((e=>c=e)),r.center,r.radius);this._perObjectData.set(e,d);const l=await this._updatingHandles.addPromise(this._addComponentGeometry(t,d,s,o,n,i,a));return this.setNeedsRender(),c(),l}async addOrUpdateObject3D(e,t,r,s){if(this.destroyed)return void o.getLogger(this.declaredClass).warn("Attempt to add an object to a destroyed instance");const n=this._perObjectData.get(e);let i;n?.renderables.length>0&&this._perObjectDataEvictionCache.add(n);const a=e.boundingVolumeWorldSpace.bounds,c=new ne(new Promise((e=>i=e)),v(a),x(a));this._perObjectData.set(e,c);const d=new Array;if(r.mergeGeometries&&e.geometries.length>1&&oe(e))d.push(this._addObjectMergedGeometries(e,c,t,r,s));else for(let o=0;o<e.geometries.length;o++){const n=e.geometryRecords[o];if(!n.material.supportsEdges)continue;const i=e.geometries[o];d.push(this._addGeometry(e,c,i,n,t[0],r,s))}await this._updatingHandles.addPromise(Promise.all(d)),this._perObjectDataEvictionCache.delete(c),this._discardObjectEntry(n),this.setNeedsRender(),i()}_discardObjectEntry(e){e&&(e.renderables.length&&(e.renderables.forEach((e=>this._removeRenderable(e))),this.setNeedsRender()),e.loaded=null)}hasObject(e){return this._perObjectData.has(e)}async updateAllComponentOpacities(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));if(c(r))return;const s=t instanceof Array?e=>t[e]:()=>t;r.renderables.forEach((e=>{const t=e.components.meta.length;for(let r=0;r<t;r++){const t=s(r),o=e.components.meta[r],n=o.index;o.material.opacity=t,e.components.buffer.textureBuffer.setDataElement(n,1,3,255*t)}this._updateTransparency(e)})),this.setNeedsRender()}async getObjectMemoryUsage(e){const t=await this._getObjectEntry(e);return d(t)?t.renderables.reduce(((e,t)=>e+t.statistics.gpuMemoryUsage),0):0}async updateAllComponentMaterials(e,t,r,s){const o=e instanceof S,n=!!r.hasSlicePlane,i=J(t),a=z.getKey(i,n,o),d=await this._updatingHandles.addPromise(this._getObjectEntry(e));c(d)||(d.renderables.forEach((e=>{if(a!==e.rendererKey){const t=this._renderers.get(e.rendererKey),r=this._acquireRenderer(i,n,o);t.removeRenderable(e),--t.refCount,e.rendererKey=a,r.addRenderable(e)}for(let r=0;r<t.length;r++)e.components.meta[r].material=t[r];s&&this._updateComponentBuffer(e.components),this._updateTransparency(e)})),this.setNeedsRender())}async updateAllVerticalOffsets(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));c(r)||(r.renderables.forEach((e=>{const r=e.components.meta;for(let s=0;s<r.length;s++)e.components.meta[s].verticalOffset=t?.[s]??0;this._updateComponentBuffer(e.components)})),this.setNeedsRender())}async updateObjectVisibility(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));d(r)&&(r.renderables.forEach((e=>e.visible=t)),this.setNeedsRender())}removeObject(e){const t=this._perObjectData.get(e);t&&(this._perObjectData.delete(e),this._discardObjectEntry(t))}async _getObjectEntry(e){const t=this._perObjectData.get(e);if(!t)throw"no object";return await t.loaded,null==t.loaded?null:t}removeAll(){this._perObjectData.forEach(((e,t)=>this.removeObject(t)))}render(e,t){if(c(this._componentColorManager))return;this._localOrigins.updateViewMatrices(e.camera.viewMatrix);const r=e.camera.viewInverseTransposeMatrix,s=O(),o=new C;let n=0,i=0;if(this._renderers.forEach((r=>{if(0===r.refCount)this._renderers.delete(r.key),r.dispose();else{let s=!0,o=!0;r.forEachRenderable((t=>{t.visible&&(n+=t.statistics.averageEdgeLength,i++,s&&t.regular&&(r.updateTechnique(e,!1),s=!1),o&&t.silhouette&&(r.updateTechnique(e,!0),o=!1))}),t)}})),this._componentColorManager.garbageCollect(),this._componentColorManager.updateTextures(),0===i)return;const a=new G(40*n/i,t);_(s,r[3],r[7],r[11]),o.set(s),b(a.transformWorldFromViewTH,o.high),b(a.transformWorldFromViewTL,o.low),u(a.transformViewFromCameraRelativeRS,e.camera.viewMatrix),m(fe,a.transformViewFromCameraRelativeRS),g(a.transformNormalViewFromGlobal,fe),a.transformProjFromView=e.camera.projectionMatrix,this._updateObjectCameraDistances(e),this._renderers.forEach((t=>{this._renderRegularEdges(t,e,a),this._renderSilhouetteEdges(t,e,a)}))}_updateTransparency(e){const t=X(e.components.meta),r=Y(e.components.meta);t===e.edgeTransparency&&r===e.objectTransparency||(e.edgeTransparency=t,e.objectTransparency=r,this._renderers.get(e.rendererKey).setRenderablesDirty())}_computeModelTransformWithLocalOrigin(e,t,r){e.getCombinedStaticTransformation(t,r);const s=d(t.origin)?this._localOrigins.register(t.origin):this._localOrigins.acquire(_(this._tmpModelPosition,r[12],r[13],r[14]));return t.origin=s.origin,D(s.origin.vec3,r),s}_updateComponentBuffer(e){const{meta:t,buffer:r}=e,s=new Uint8Array(4);for(let o=0;o<t.length;o++){const e=t[o].material,i=t[o].index,a=n(Math.round(e.size*W),0,255),c=n(e.extensionLength,-q,255-q)+q,d="solid"===e.type?N.SOLID:N.SKETCH,l=255*e.opacity,h=e.color,u=255*h[0],m=255*h[1],g=255*h[2],p=255*h[3];r.textureBuffer.setData(i,0,u,m,g,p),r.textureBuffer.setData(i,1,a,c,d,l),T(t[o].verticalOffset,s),r.textureBuffer.setData(i,2,s[0],s[1],s[2],s[3])}}_createComponentBuffers(e){if(c(this._componentColorManager))return null;const t=new Array,r=this._componentColorManager.getBuffer(e.length);for(let o=0;o<e.length;o++){const s=e[o],n=r.acquireIndex();t.push({index:n,verticalOffset:0,material:s})}const s=new ie(r,t);return this._updateComponentBuffer(s),s}_extractEdges(e,t,r,s,o,n=o.length){return this._worker.process({data:t,indices:o,indicesLength:n,writerSettings:e,skipDeduplicate:r},this._workerAbort.signal,s)}_createRenderable(e,t,r,s,o){const n=d(this._verticesBufferObject)&&e.regular.lodInfo.lengths.length>0?new ae(new A(this.rctx,I,{vertices:U,instances:V.glLayout},{vertices:this._verticesBufferObject,instances:ee.createVertex(this.rctx,te.STATIC_DRAW,e.regular.instancesData.buffer)}),e.regular.lodInfo):null,i=d(this._verticesBufferObject)&&e.silhouette.lodInfo.lengths.length>0?new ae(new A(this.rctx,I,{vertices:U,instances:H.glLayout},{vertices:this._verticesBufferObject,instances:ee.createVertex(this.rctx,te.STATIC_DRAW,e.silhouette.instancesData.buffer)}),e.silhouette.lodInfo):null,a=(d(n)?n.vao.size:0)+(d(i)?i.vao.size:0);return new de(n,i,{gpuMemoryUsage:a,externalMemoryUsage:o,averageEdgeLength:e.averageEdgeLength},r,X(t.meta),Y(t.meta),t,s)}async _addGeometry(e,t,r,s,o,n,i){const a=r.vertexAttributes.get(B.POSITION),c=r.indices.get(B.POSITION),d=f(),l=this._computeModelTransformWithLocalOrigin(e,s,d),h=new pe(a,c,d,l);return this._addPositionData(t,h,r.edgeIndicesLength,o,n,i)}async _addPositionData(e,t,r,s,o,n=!1){if(null==e.loaded)return;const i=this._createComponentBuffers([s]);if(c(i)||r<=0)return;const a=this._acquireRenderer(s.type,!!o.hasSlicePlane,!0),{modelTransform:d,origin:l}=t,h=t.indices,u=t.position,m=u.data.length/u.size,g=L.createBuffer(m);for(let c=0;c<m;c++)g.position.set(c,0,u.data[c*u.size+0]),g.position.set(c,1,u.data[c*u.size+1]),g.position.set(c,2,u.data[c*u.size+2]);Z(i.meta,[0,g.componentIndex.count],g.componentIndex);const p=await this._updatingHandles.addPromise(this._extractEdges(a.writerSettings,g,!1,n,h,r));if(null==e.loaded)return;const f=this._createRenderable(p,i,new ce(d,l),a.key,!1);e.renderables.push(f),a.addRenderable(f),this._gpuMemoryUsage+=f.statistics.gpuMemoryUsage}async _addComponentGeometry(e,t,r,s,o,n,i){if(null==t.loaded)return 0;const a=this._createComponentBuffers(n);if(c(a))return 0;const d=J(n),l=this._acquireRenderer(d,i.hasSlicePlane||!1,!1),h=L.createBuffer(r.count);R(h.position,r),Z(a.meta,o,h.componentIndex,s);const u=!0,m=l.writerSettings,g=await this._updatingHandles.addPromise(this._extractEdges(m,h,u,!1,s));if(null==t.loaded)return 0;const p=this._createRenderable(g,a,e,l.key,!0);return t.renderables.push(p),l.addRenderable(p),p.statistics.gpuMemoryUsage}async _addObjectMergedGeometries(e,t,r,s,o){const n=new Map;let i=0,a=null,c=0;for(let f=0;f<e.geometries.length;f++){const t=e.geometries[f],r=e.geometryRecords[f];if(!r.material.supportsEdges)continue;!a&&r.origin&&(a=r);const s=t.vertexAttributes.get(B.POSITION);c+=s.data.length/s.size,i+=t.edgeIndicesLength}const d=c>=65536?Uint32Array:Uint16Array,l=i?new d(i):null,h=[];let u=0;for(let f=0;f<e.geometries.length;f++){const t=e.geometries[f];if(!e.geometryRecords[f].material.supportsEdges)continue;const r=t.vertexAttributes.get(B.POSITION),s=t.indices.get(B.POSITION);let o=n.get(r.data);if(null==o){o=h.length/3;for(let e=0;e<r.data.length;e+=r.size)h.push(r.data[e+0]),h.push(r.data[e+1]),h.push(r.data[e+2]);n.set(r.data,o)}if(s)for(let e=0;e<t.edgeIndicesLength;e++)l[u++]=o+s[e]}const m=a||e.geometryRecords[0],g=f(),p=this._computeModelTransformWithLocalOrigin(e,m,g);for(let f=0;f<e.geometryRecords.length;f++)e.geometryRecords[f].origin=p.origin;const _=new pe({data:h,size:3},l,g,p);await this._updatingHandles.addPromise(this._addPositionData(t,_,l.length,r[0],s,o))}_acquireRenderer(e,t,r){const s=z.getKey(e,t,r);let o=this._renderers.get(s);return c(this._strokesTexture)&&(this._strokesTexture=Q(this.rctx)),o||(o=new z(this.rctx,this.techniqueRepository,{type:e,hasSlicePlane:t,strokesTexture:this._strokesTexture,legacy:r,spherical:this.viewingMode===E.Global}),this._renderers.set(s,o)),++o.refCount,o}_removeRenderable(e){se(e);const t=this._renderers.get(e.rendererKey);if(t){t.removeRenderable(e),--t.refCount,"origin"in e.transform&&this._localOrigins.release(e.transform.origin),this._gpuMemoryUsage-=e.statistics.externalMemoryUsage?0:e.statistics.gpuMemoryUsage;for(const t of e.components.meta)e.components.buffer.releaseIndex(t.index)}}_updateObjectCameraDistances(e){const t=e.camera.eye,r=e.camera.viewForward,s=O(),o=e=>{y(s,e.center,t);const o=j(s,r),n=e.radius,i=o<-n?1/0:o<n?0:o-n;e.renderables.forEach((e=>e.distanceToCamera=i))};this._perObjectData.forEach(o),this._perObjectDataEvictionCache.forEach(o)}_renderRegularEdges(e,t,r){const s=e.bindRegularEdges(r,t),o=r.transparency,n=t.camera.perScreenPixelRatio;e.forEachRenderable((o=>{if(!he(o)||!o.visible)return;const i=ge(o.regular.lod.lengths,o.distanceToCamera,n);e.renderRegularEdges(s,o,r,t,i)}),o)}_renderSilhouetteEdges(e,t,r){const s=e.bindSilhouetteEdges(r,t),o=r.transparency,n=t.camera.perScreenPixelRatio;e.forEachRenderable((o=>{if(!me(o)||!o.visible)return;const i=ge(o.silhouette.lod.lengths,o.distanceToCamera,n);e.renderSilhouetteEdges(s,o,r,t,i)}),o)}get test(){return{hasRenderedPrimitives:e=>{let t=!1;const r=e.perScreenPixelRatio,s=(e,s)=>e.forEachRenderable((e=>{e.visible&&!t&&(he(e)&&(t=ge(e.regular.lod.lengths,e.distanceToCamera,r)>0),!t&&me(e)&&(t=ge(e.silhouette.lod.lengths,e.distanceToCamera,r)>0))}),s);return this._renderers.forEach((e=>{t||(s(e,F.OPAQUE),s(e,F.TRANSPARENT))})),t}}}};function se(e){d(e.regular)&&(e.regular.vao.vertexBuffers.instances.dispose(),e.regular.vao.dispose(!1),e.regular.vao=null),d(e.silhouette)&&(e.silhouette.vao.vertexBuffers.instances.dispose(),e.silhouette.vao.dispose(!1),e.silhouette.vao=null)}function oe(e){let t=null,s=null;for(let o=0;o<e.geometries.length;o++){const n=e.geometryRecords[o];if(n.material.supportsEdges){if(t){if(!r(t,n.transformation))return!1}else t=n.transformation;if(!s&&d(n.origin))s=n;else if(d(s?.origin)&&d(n.origin)&&s.origin.id!==n.origin.id)return!1}}return!0}e([l({constructOnly:!0})],re.prototype,"rctx",void 0),e([l({constructOnly:!0})],re.prototype,"renderSR",void 0),e([l({constructOnly:!0})],re.prototype,"viewingMode",void 0),e([l({constructOnly:!0})],re.prototype,"techniqueRepository",void 0),e([l({constructOnly:!0})],re.prototype,"setNeedsRender",void 0),e([l({constructOnly:!0})],re.prototype,"schedule",void 0),e([l({readOnly:!0})],re.prototype,"_updatingHandles",void 0),e([l({readOnly:!0})],re.prototype,"updating",null),re=e([h("esri.views.3d.webgl-engine.lib.edgeRendering.EdgeView")],re);class ne{constructor(e,t,r){this.center=t,this.radius=r,this.renderables=new Array,this.loaded=e,this.loaded.then((()=>{null!=this.loaded&&(this.loaded=!0)}))}}class ie{constructor(e,t){this.buffer=e,this.meta=t}}class ae{constructor(e,t){this.vao=e,this.lod=t}}class ce{constructor(e,t){this.modelMatrix=e,this.origin=t}}class de{constructor(e,t,r,s,o,n,i,a){this.regular=e,this.silhouette=t,this.statistics=r,this.transform=s,this.edgeTransparency=o,this.objectTransparency=n,this.components=i,this.rendererKey=a,this.distanceToCamera=0,this.visible=!0}}class le extends de{}function he(e){return d(e.regular)}class ue extends de{}function me(e){return d(e.silhouette)}function ge(e,t,r){const o=t*r,n=s(e,o,!0);return-1===n?o<e[0]?e.length:0:e.length-n}class pe{constructor(e,t,r,s){this.position=e,this.indices=t,this.modelTransform=r,this.origin=s}}const fe=p();export{re as EdgeView,ce as LegacyTransform,le as RegularRenderable,de as Renderable,ue as SilhouetteRenderable};
|
|
5
|
+
import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Accessor.js";import{equals as r,binaryIndexOf as s}from"../../../../../core/arrayUtils.js";import o from"../../../../../core/Logger.js";import{clamp as n}from"../../../../../core/mathUtils.js";import{disposeMaybe as i,destroyMaybe as a,isNone as c,isSome as d}from"../../../../../core/maybe.js";import{property as l}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/accessorSupport/ensureType.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{f as u,t as m,e as g}from"../../../../../chunks/mat3.js";import{c as p}from"../../../../../chunks/mat3f64.js";import{c as f}from"../../../../../chunks/mat4f64.js";import{s as _,c as b,y,e as j}from"../../../../../chunks/vec3.js";import{c as O}from"../../../../../chunks/vec3f64.js";import{WatchUpdatingTracking as w}from"../../../../../core/support/WatchUpdatingTracking.js";import{g as v,a as x}from"../../../../../chunks/sphere.js";import{c as R}from"../../../../../chunks/vec33.js";import{ViewingMode as E}from"../../../../ViewingMode.js";import{encodeElevationOffset as T}from"../../collections/Component/Material/shader/ComponentData.glsl.js";import{TwoVectorPosition as C}from"../../core/util/TwoVectorPosition.js";import{GridLocalOriginFactory as M}from"../GridLocalOriginFactory.js";import{applyToModelMatrix as D}from"../localOriginHelper.js";import{LocalOriginManager as P}from"../LocalOriginManager.js";import{Object3D as S}from"../Object3D.js";import{VertexArrayObject as A}from"../VertexArrayObject.js";import{VertexAttribute as B}from"../VertexAttribute.js";import{VertexLayout as k,EdgeShaderAttributeLocations as I,glVertexLayout as U,EdgeInputBufferLayout as L}from"./bufferLayouts.js";import{RegularEdgeBufferWriter as V,SilhouetteEdgeBufferWriter as H}from"./edgeBufferWriters.js";import{EdgeType as N}from"./edgePreprocessing.js";import{EdgeRenderer as z,LINE_WIDTH_FRACTION_FACTOR as W,EXTENSION_LENGTH_OFFSET as q}from"./EdgeRenderer.js";import{EdgePassParameters as G}from"./EdgeShaderParameters.js";import{EdgeWorkerHandle as K}from"./EdgeWorkerHandle.js";import{Transparency as F}from"./interfaces.js";import{generateStrokesTexture as Q}from"./strokes.js";import{determineRendererType as J,determineEdgeTransparency as X,determineObjectTransparency as Y,fillComponenBufferIndices as Z}from"./util.js";import{BufferManager as $}from"../TextureBackedBuffer/BufferManager.js";import{BufferObject as ee}from"../../../../webgl/BufferObject.js";import{Usage as te}from"../../../../webgl/enums.js";let re=class extends t{constructor(e){super(e),this._updatingHandles=new w,this._perObjectData=new Map,this._perObjectDataEvictionCache=new Set,this._renderers=new Map,this._gpuMemoryUsage=0,this._workerAbort=new AbortController,this._tmpModelPosition=O(),this._localOrigins=new P(new M(e.renderSR))}initialize(){this._worker=new K(this.schedule),this._componentColorManager=new $(this.rctx,3);const e=k.createBuffer(4);for(let t=0;t<4;t++)e.sideness.set(t,0,0===t||3===t?0:1),e.sideness.set(t,1,0===t||1===t?0:1);this._verticesBufferObject=ee.createVertex(this.rctx,te.STATIC_DRAW,e.buffer)}destroy(){this.destroyed||(this._perObjectData.forEach((e=>this._discardObjectEntry(e))),this._perObjectData.clear(),this._strokesTexture=i(this._strokesTexture),this._componentColorManager=a(this._componentColorManager),this._workerAbort.abort(),this._worker.destroy(),this._verticesBufferObject=i(this._verticesBufferObject),this._renderers.clear(),this._updatingHandles.destroy())}get updating(){return this._updatingHandles.updating}get usedMemory(){return this._gpuMemoryUsage}shouldRender(){return this._renderers.size>0}async addComponentObject(e,t,r,s,o,n,i,a){if(this.hasObject(e))return this.getObjectMemoryUsage(e);let c;const d=new ne(new Promise((e=>c=e)),r.center,r.radius);this._perObjectData.set(e,d);const l=await this._updatingHandles.addPromise(this._addComponentGeometry(t,d,s,o,n,i,a));return this.setNeedsRender(),c(),l}async addOrUpdateObject3D(e,t,r,s){if(this.destroyed)return void o.getLogger(this.declaredClass).warn("Attempt to add an object to a destroyed instance");const n=this._perObjectData.get(e);let i;n?.renderables.length>0&&this._perObjectDataEvictionCache.add(n);const a=e.boundingVolumeWorldSpace.bounds,c=new ne(new Promise((e=>i=e)),v(a),x(a));this._perObjectData.set(e,c);const d=new Array;if(r.mergeGeometries&&e.geometries.length>1&&oe(e))d.push(this._addObjectMergedGeometries(e,c,t,r,s));else for(let o=0;o<e.geometries.length;o++){const n=e.geometryRecords[o];if(!n.material.supportsEdges)continue;const i=e.geometries[o];d.push(this._addGeometry(e,c,i,n,t[0],r,s))}await this._updatingHandles.addPromise(Promise.all(d)),this._perObjectDataEvictionCache.delete(c),this._discardObjectEntry(n),this.setNeedsRender(),i()}_discardObjectEntry(e){e&&(e.renderables.length&&(e.renderables.forEach((e=>this._removeRenderable(e))),this.setNeedsRender()),e.loaded=null)}hasObject(e){return this._perObjectData.has(e)}async updateAllComponentOpacities(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));if(c(r))return;const s=t instanceof Array?e=>t[e]:()=>t;r.renderables.forEach((e=>{const t=e.components.meta.length;for(let r=0;r<t;r++){const t=s(r),o=e.components.meta[r],n=o.index;o.material.opacity=t,e.components.buffer.textureBuffer.setDataElement(n,1,3,255*t)}this._updateTransparency(e)})),this.setNeedsRender()}async getObjectMemoryUsage(e){const t=await this._getObjectEntry(e);return d(t)?t.renderables.reduce(((e,t)=>e+t.statistics.gpuMemoryUsage),0):0}async updateAllComponentMaterials(e,t,r,s){const o=e instanceof S,n=!!r.hasSlicePlane,i=J(t),a=z.getKey(i,n,o),d=await this._updatingHandles.addPromise(this._getObjectEntry(e));c(d)||(d.renderables.forEach((e=>{if(a!==e.rendererKey){const t=this._renderers.get(e.rendererKey),r=this._acquireRenderer(i,n,o);t.removeRenderable(e),--t.refCount,e.rendererKey=a,r.addRenderable(e)}for(let r=0;r<t.length;r++)e.components.meta[r].material=t[r];s&&this._updateComponentBuffer(e.components),this._updateTransparency(e)})),this.setNeedsRender())}async updateAllVerticalOffsets(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));c(r)||(r.renderables.forEach((e=>{const r=e.components.meta;for(let s=0;s<r.length;s++)e.components.meta[s].verticalOffset=t?.[s]??0;this._updateComponentBuffer(e.components)})),this.setNeedsRender())}async updateObjectVisibility(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));d(r)&&(r.renderables.forEach((e=>e.visible=t)),this.setNeedsRender())}removeObject(e){const t=this._perObjectData.get(e);t&&(this._perObjectData.delete(e),this._discardObjectEntry(t))}async _getObjectEntry(e){const t=this._perObjectData.get(e);if(!t)throw"no object";return await t.loaded,null==t.loaded?null:t}removeAll(){this._perObjectData.forEach(((e,t)=>this.removeObject(t)))}render(e,t){if(c(this._componentColorManager))return;this._localOrigins.updateViewMatrices(e.camera.viewMatrix);const r=e.camera.viewInverseTransposeMatrix,s=O(),o=new C;let n=0,i=0;if(this._renderers.forEach((r=>{if(0===r.refCount)this._renderers.delete(r.key),r.dispose();else{let s=!0,o=!0;r.forEachRenderable((t=>{t.visible&&(n+=t.statistics.averageEdgeLength,i++,s&&t.regular&&(r.updateTechnique(e,!1),s=!1),o&&t.silhouette&&(r.updateTechnique(e,!0),o=!1))}),t)}})),this._componentColorManager.garbageCollect(),this._componentColorManager.updateTextures(),0===i)return;const a=new G(40*n/i,t);_(s,r[3],r[7],r[11]),o.set(s),b(a.transformWorldFromViewTH,o.high),b(a.transformWorldFromViewTL,o.low),u(a.transformViewFromCameraRelativeRS,e.camera.viewMatrix),m(fe,a.transformViewFromCameraRelativeRS),g(a.transformNormalViewFromGlobal,fe),a.transformProjFromView=e.camera.projectionMatrix,this._updateObjectCameraDistances(e),this._renderers.forEach((t=>{this._renderRegularEdges(t,e,a),this._renderSilhouetteEdges(t,e,a)}))}_updateTransparency(e){const t=X(e.components.meta),r=Y(e.components.meta);t===e.edgeTransparency&&r===e.objectTransparency||(e.edgeTransparency=t,e.objectTransparency=r,this._renderers.get(e.rendererKey).setRenderablesDirty())}_computeModelTransformWithLocalOrigin(e,t,r){e.getCombinedStaticTransformation(t,r);const s=d(t.origin)?this._localOrigins.register(t.origin):this._localOrigins.acquire(_(this._tmpModelPosition,r[12],r[13],r[14]));return t.origin=s.origin,D(s.origin.vec3,r),s}_updateComponentBuffer(e){const{meta:t,buffer:r}=e,s=new Uint8Array(4);for(let o=0;o<t.length;o++){const e=t[o].material,i=t[o].index,a=n(Math.round(e.size*W),0,255),c=n(e.extensionLength,-q,255-q)+q,d="solid"===e.type?N.SOLID:N.SKETCH,l=255*e.opacity,h=e.color,u=255*h[0],m=255*h[1],g=255*h[2],p=255*h[3];r.textureBuffer.setData(i,0,u,m,g,p),r.textureBuffer.setData(i,1,a,c,d,l),T(t[o].verticalOffset,s),r.textureBuffer.setData(i,2,s[0],s[1],s[2],s[3])}}_createComponentBuffers(e){if(c(this._componentColorManager))return null;const t=new Array,r=this._componentColorManager.getBuffer(e.length);for(let o=0;o<e.length;o++){const s=e[o],n=r.acquireIndex();t.push({index:n,verticalOffset:0,material:s})}const s=new ie(r,t);return this._updateComponentBuffer(s),s}_extractEdges(e,t,r,s,o,n=o.length){return this._worker.process({data:t,indices:o,indicesLength:n,writerSettings:e,skipDeduplicate:r},this._workerAbort.signal,s)}_createRenderable(e,t,r,s,o){const n=d(this._verticesBufferObject)&&e.regular.lodInfo.lengths.length>0?new ae(new A(this.rctx,I,{vertices:U,instances:V.glLayout},{vertices:this._verticesBufferObject,instances:ee.createVertex(this.rctx,te.STATIC_DRAW,e.regular.instancesData.buffer)}),e.regular.lodInfo):null,i=d(this._verticesBufferObject)&&e.silhouette.lodInfo.lengths.length>0?new ae(new A(this.rctx,I,{vertices:U,instances:H.glLayout},{vertices:this._verticesBufferObject,instances:ee.createVertex(this.rctx,te.STATIC_DRAW,e.silhouette.instancesData.buffer)}),e.silhouette.lodInfo):null,a=(d(n)?n.vao.size:0)+(d(i)?i.vao.size:0);return new de(n,i,{gpuMemoryUsage:a,externalMemoryUsage:o,averageEdgeLength:e.averageEdgeLength},r,X(t.meta),Y(t.meta),t,s)}async _addGeometry(e,t,r,s,o,n,i){const a=r.vertexAttributes.get(B.POSITION),c=r.indices.get(B.POSITION),d=f(),l=this._computeModelTransformWithLocalOrigin(e,s,d),h=new pe(a,c,d,l);return this._addPositionData(t,h,r.edgeIndicesLength,o,n,i)}async _addPositionData(e,t,r,s,o,n=!1){if(null==e.loaded)return;const i=this._createComponentBuffers([s]);if(c(i)||r<=0)return;const a=this._acquireRenderer(s.type,!!o.hasSlicePlane,!0),{modelTransform:d,origin:l}=t,h=t.indices,u=t.position,m=u.data.length/u.size,g=L.createBuffer(m);for(let c=0;c<m;c++)g.position.set(c,0,u.data[c*u.size+0]),g.position.set(c,1,u.data[c*u.size+1]),g.position.set(c,2,u.data[c*u.size+2]);Z(i.meta,[0,g.componentIndex.count],g.componentIndex);const p=await this._updatingHandles.addPromise(this._extractEdges(a.writerSettings,g,!1,n,h,r));if(null==e.loaded)return;const f=this._createRenderable(p,i,new ce(d,l),a.key,!1);e.renderables.push(f),a.addRenderable(f),this._gpuMemoryUsage+=f.statistics.gpuMemoryUsage}async _addComponentGeometry(e,t,r,s,o,n,i){if(null==t.loaded)return 0;const a=this._createComponentBuffers(n);if(c(a))return 0;const d=J(n),l=this._acquireRenderer(d,i.hasSlicePlane||!1,!1),h=L.createBuffer(r.count);R(h.position,r),Z(a.meta,o,h.componentIndex,s);const u=!0,m=l.writerSettings,g=await this._updatingHandles.addPromise(this._extractEdges(m,h,u,!1,s));if(null==t.loaded)return 0;const p=this._createRenderable(g,a,e,l.key,!0);return t.renderables.push(p),l.addRenderable(p),p.statistics.gpuMemoryUsage}async _addObjectMergedGeometries(e,t,r,s,o){const n=new Map;let i=0,a=null,c=0;for(let f=0;f<e.geometries.length;f++){const t=e.geometries[f],r=e.geometryRecords[f];if(!r.material.supportsEdges)continue;!a&&r.origin&&(a=r);const s=t.vertexAttributes.get(B.POSITION);c+=s.data.length/s.size,i+=t.edgeIndicesLength}const d=c>=65536?Uint32Array:Uint16Array,l=i?new d(i):null,h=[];let u=0;for(let f=0;f<e.geometries.length;f++){const t=e.geometries[f];if(!e.geometryRecords[f].material.supportsEdges)continue;const r=t.vertexAttributes.get(B.POSITION),s=t.indices.get(B.POSITION);let o=n.get(r.data);if(null==o){o=h.length/3;for(let e=0;e<r.data.length;e+=r.size)h.push(r.data[e+0]),h.push(r.data[e+1]),h.push(r.data[e+2]);n.set(r.data,o)}if(s)for(let e=0;e<t.edgeIndicesLength;e++)l[u++]=o+s[e]}const m=a||e.geometryRecords[0],g=f(),p=this._computeModelTransformWithLocalOrigin(e,m,g);for(let f=0;f<e.geometryRecords.length;f++)e.geometryRecords[f].origin=p.origin;const _=new pe({data:h,size:3},l,g,p);await this._updatingHandles.addPromise(this._addPositionData(t,_,l.length,r[0],s,o))}_acquireRenderer(e,t,r){const s=z.getKey(e,t,r);let o=this._renderers.get(s);return c(this._strokesTexture)&&(this._strokesTexture=Q(this.rctx)),o||(o=new z(this.rctx,this.techniqueRepository,{type:e,hasSlicePlane:t,strokesTexture:this._strokesTexture,legacy:r,spherical:this.viewingMode===E.Global}),this._renderers.set(s,o)),++o.refCount,o}_removeRenderable(e){se(e);const t=this._renderers.get(e.rendererKey);if(t){t.removeRenderable(e),--t.refCount,"origin"in e.transform&&this._localOrigins.release(e.transform.origin),this._gpuMemoryUsage-=e.statistics.externalMemoryUsage?0:e.statistics.gpuMemoryUsage;for(const t of e.components.meta)e.components.buffer.releaseIndex(t.index)}}_updateObjectCameraDistances(e){const t=e.camera.eye,r=e.camera.viewForward,s=O(),o=e=>{y(s,e.center,t);const o=j(s,r),n=e.radius,i=o<-n?1/0:o<n?0:o-n;e.renderables.forEach((e=>e.distanceToCamera=i))};this._perObjectData.forEach(o),this._perObjectDataEvictionCache.forEach(o)}_renderRegularEdges(e,t,r){const s=e.bindRegularEdges(r,t),o=r.transparency,n=t.camera.perScreenPixelRatio;e.forEachRenderable((o=>{if(!he(o)||!o.visible)return;const i=ge(o.regular.lod.lengths,o.distanceToCamera,n);e.renderRegularEdges(s,o,r,t,i)}),o)}_renderSilhouetteEdges(e,t,r){const s=e.bindSilhouetteEdges(r,t),o=r.transparency,n=t.camera.perScreenPixelRatio;e.forEachRenderable((o=>{if(!me(o)||!o.visible)return;const i=ge(o.silhouette.lod.lengths,o.distanceToCamera,n);e.renderSilhouetteEdges(s,o,r,t,i)}),o)}get test(){return{hasRenderedPrimitives:e=>{let t=!1;const r=e.perScreenPixelRatio,s=(e,s)=>e.forEachRenderable((e=>{e.visible&&!t&&(he(e)&&(t=ge(e.regular.lod.lengths,e.distanceToCamera,r)>0),!t&&me(e)&&(t=ge(e.silhouette.lod.lengths,e.distanceToCamera,r)>0))}),s);return this._renderers.forEach((e=>{t||(s(e,F.OPAQUE),s(e,F.TRANSPARENT))})),t}}}};function se(e){d(e.regular)&&(e.regular.vao.vertexBuffers.instances.dispose(),e.regular.vao.dispose(!1),e.regular.vao=null),d(e.silhouette)&&(e.silhouette.vao.vertexBuffers.instances.dispose(),e.silhouette.vao.dispose(!1),e.silhouette.vao=null)}function oe(e){let t=null,s=null;for(let o=0;o<e.geometries.length;o++){const n=e.geometryRecords[o];if(n.material.supportsEdges){if(t){if(!r(t,n.transformation))return!1}else t=n.transformation;if(!s&&d(n.origin))s=n;else if(d(s?.origin)&&d(n.origin)&&s.origin.id!==n.origin.id)return!1}}return!0}e([l({constructOnly:!0})],re.prototype,"rctx",void 0),e([l({constructOnly:!0})],re.prototype,"renderSR",void 0),e([l({constructOnly:!0})],re.prototype,"viewingMode",void 0),e([l({constructOnly:!0})],re.prototype,"techniqueRepository",void 0),e([l({constructOnly:!0})],re.prototype,"setNeedsRender",void 0),e([l({constructOnly:!0})],re.prototype,"schedule",void 0),e([l({readOnly:!0})],re.prototype,"_updatingHandles",void 0),e([l({readOnly:!0})],re.prototype,"updating",null),re=e([h("esri.views.3d.webgl-engine.lib.edgeRendering.EdgeView")],re);class ne{constructor(e,t,r){this.center=t,this.radius=r,this.renderables=new Array,this.loaded=e,this.loaded.then((()=>{null!=this.loaded&&(this.loaded=!0)}))}}class ie{constructor(e,t){this.buffer=e,this.meta=t}}class ae{constructor(e,t){this.vao=e,this.lod=t}}class ce{constructor(e,t){this.modelMatrix=e,this.origin=t}}class de{constructor(e,t,r,s,o,n,i,a){this.regular=e,this.silhouette=t,this.statistics=r,this.transform=s,this.edgeTransparency=o,this.objectTransparency=n,this.components=i,this.rendererKey=a,this.distanceToCamera=0,this.visible=!0}}class le extends de{}function he(e){return d(e.regular)}class ue extends de{}function me(e){return d(e.silhouette)}function ge(e,t,r){const o=t*r,n=s(e,o,!0);return-1===n?o<e[0]?e.length:0:e.length-n}class pe{constructor(e,t,r,s){this.position=e,this.indices=t,this.modelTransform=r,this.origin=s}}const fe=p();export{re as EdgeView,ce as LegacyTransform,le as RegularRenderable,de as Renderable,ue as SilhouetteRenderable};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{range as e}from"../../../../../core/arrayUtils.js";import{deg2rad as t,acosClamped as n}from"../../../../../core/mathUtils.js";import{forEach as o}from"../../../../../core/typedArrayUtil.js";import{i as r,s,c,e as a,
|
|
5
|
+
import{range as e}from"../../../../../core/arrayUtils.js";import{deg2rad as t,acosClamped as n}from"../../../../../core/mathUtils.js";import{forEach as o}from"../../../../../core/typedArrayUtil.js";import{i as r,s,c,e as a,r as i,f as l,b as f,n as g}from"../../../../../chunks/vec3.js";import{c as m}from"../../../../../chunks/vec3f64.js";const p=-1;var u;function h(n,i,l,f=N){const g=n.vertices.position,m=n.vertices.componentIndex,u=t(f.anglePlanar),h=t(f.angleSignificantEdge),V=Math.cos(h),S=Math.cos(u),j=I.edge,x=j.position0,E=j.position1,D=j.faceNormal0,F=j.faceNormal1,L=y(n),U=w(n),b=U.length/4,k=i.allocate(b);let C=0;const H=b,K=l.allocate(H);let M=0,O=0,P=0;const T=e(0,b),q=new Float32Array(b);o(q,((e,t,n)=>{g.getVec(U[4*t+0],x),g.getVec(U[4*t+1],E),n[t]=r(x,E)})),T.sort(((e,t)=>q[t]-q[e]));const z=new Array,B=new Array;for(let e=0;e<b;e++){const t=T[e],n=q[t],o=U[4*t+0],r=U[4*t+1],f=U[4*t+2],h=U[4*t+3],w=h===p;if(g.getVec(o,x),g.getVec(r,E),w)s(D,L[3*f+0],L[3*f+1],L[3*f+2]),c(F,D),j.componentIndex=m.get(o),j.cosAngle=a(D,F);else{if(s(D,L[3*f+0],L[3*f+1],L[3*f+2]),s(F,L[3*h+0],L[3*h+1],L[3*h+2]),j.componentIndex=m.get(o),j.cosAngle=a(D,F),A(j,S))continue;j.cosAngle<-.9999&&c(F,D)}O+=n,P++,w||v(j,V)?(i.write(k,C++,j),z.push(n)):d(j,u)&&(l.write(K,M++,j),B.push(n))}const G=new Float32Array(z.reverse()),J=new Float32Array(B.reverse());return{regular:{instancesData:i.trim(k,C),lodInfo:{lengths:G}},silhouette:{instancesData:l.trim(K,M),lodInfo:{lengths:J}},averageEdgeLength:O/P}}function v(e,t){return e.cosAngle<t}function A(e,t){return e.cosAngle>t}function d(e,t){const o=n(e.cosAngle),r=I.fwd,s=I.ortho;i(r,e.position1,e.position0);return o*(a(l(s,e.faceNormal0,e.faceNormal1),r)>0?-1:1)>t}function w(e){const t=e.faces.length/3,n=e.faces,o=e.neighbors;let r=0;for(let a=0;a<t;a++){const e=o[3*a+0],t=o[3*a+1],s=o[3*a+2],c=n[3*a+0],i=n[3*a+1],l=n[3*a+2];r+=e===p||c<i?1:0,r+=t===p||i<l?1:0,r+=s===p||l<c?1:0}const s=new Int32Array(4*r);let c=0;for(let a=0;a<t;a++){const e=o[3*a+0],t=o[3*a+1],r=o[3*a+2],i=n[3*a+0],l=n[3*a+1],f=n[3*a+2];(e===p||i<l)&&(s[c++]=i,s[c++]=l,s[c++]=a,s[c++]=e),(t===p||l<f)&&(s[c++]=l,s[c++]=f,s[c++]=a,s[c++]=t),(r===p||f<i)&&(s[c++]=f,s[c++]=i,s[c++]=a,s[c++]=r)}return s}function y(e){const t=e.faces.length/3,n=e.vertices.position,o=e.faces,r=V.v0,s=V.v1,c=V.v2,a=new Float32Array(3*t);for(let i=0;i<t;i++){const e=o[3*i+0],t=o[3*i+1],m=o[3*i+2];n.getVec(e,r),n.getVec(t,s),n.getVec(m,c),f(s,s,r),f(c,c,r),l(r,s,c),g(r,r),a[3*i+0]=r[0],a[3*i+1]=r[1],a[3*i+2]=r[2]}return a}!function(e){e[e.SOLID=0]="SOLID",e[e.SKETCH=1]="SKETCH"}(u||(u={}));const I={edge:{position0:m(),position1:m(),faceNormal0:m(),faceNormal1:m(),componentIndex:0,cosAngle:0},ortho:m(),fwd:m()},V={v0:m(),v1:m(),v2:m()},N={anglePlanar:4,angleSignificantEdge:35};export{u as EdgeType,h as extractEdges};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{c as t}from"../../../../../chunks/mat4f64.js";import{
|
|
5
|
+
import{c as t}from"../../../../../chunks/mat4f64.js";import{m as e}from"../../../../../chunks/vec3.js";import{w as s,c as i}from"../../../../../chunks/sphere.js";import{maxScale as r}from"../../../support/mathUtils.js";import h from"../Octree.js";class n extends h{constructor(e,r){super((t=>s(this._instanceData.view.boundingSphere.getVec(t,this._tmpSphere))),{maximumDepth:25}),this._tmpSphere=i(),this._tmpMat4=t(),this._instanceData=e,this._boundingSphere=r}addInstance(t){const s=this._instanceData.view.boundingSphere,i=this._instanceData.getCombinedModelTransform(t,this._tmpMat4);e(this._tmpSphere,this._boundingSphere.center,i),this._tmpSphere[3]=this._boundingSphere.radius*r(i),s.setVec(t,this._tmpSphere),this.add([t])}removeInstance(t){this.remove([t])}}export{n as InstanceOctree};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isNone as e,destroyMaybe as t,isSome as a}from"../../../../../core/maybe.js";import{isAborted as s,throwIfAborted as n}from"../../../../../core/promiseUtils.js";import{c as i}from"../../../../../chunks/mat4f64.js";import{b as r,e as o,v as l}from"../../../../../chunks/vec3.js";import{c}from"../../../../../chunks/vec3f64.js";import{c as h,f as d}from"../../../../../chunks/vec4f64.js";import u from"../../../support/debugFlags.js";import{glLayout as _}from"../../../support/buffer/glUtil.js";import{ShaderOutput as m}from"../../core/shaderLibrary/ShaderOutput.js";import{Camera as f}from"../Camera.js";import{Default3D as p}from"../DefaultVertexAttributeLocations.js";import{IntersectorType as g}from"../IntersectorInterfaces.js";import C from"../Octree.js";import{RenderSlot as I}from"../RenderSlot.js";import{assert as D}from"../Util.js";import{InstanceData as y,StateFlags as v}from"./InstanceData.js";import{InstanceOctree as b}from"./InstanceOctree.js";import{LevelSelector as R}from"./LevelSelector.js";import{LodLevel as E}from"./LodLevel.js";import{RenderInstanceData as A}from"./RenderInstanceData.js";import{getInstanceBufferLayout as T}from"../../materials/DefaultMaterial.js";import{colorMixModes as L}from"../../materials/internal/MaterialUtil.js";import{encodeDoubleVec3 as S}from"../../materials/renderers/utils.js";import{DefaultMaterialDrawParameters as O}from"../../shaders/DefaultMaterialTechnique.js";import{bindVertexBufferLayout as U,unbindVertexBufferLayout as j}from"../../../../webgl/Util.js";const x=e=>{const t=e.baseBoundingSphere.radius,a=e.levels.map((e=>e.minScreenSpaceRadius));return new R(t,a)};class M{constructor(e,t,a,s){this.type=g.LOD,this.isGround=!1,this._levels=[],this._defaultRenderInstanceData=[],this._highlightRenderInstanceData=[],this._instanceIndex=0,this._slicePlane=!1,this._lastCamera=new f,this._updateCyclesWithStaticCamera=-1,this._needFullCycle=!1,this.slots=[I.OPAQUE_MATERIAL,I.TRANSPARENT_MATERIAL],this.canRender=!0,this._symbol=e,this._optionalFields=t,this._metadata=a,this._instanceBufferLayout=T({instancedDoublePrecision:!0,instanced:t}),this._glInstanceBufferLayout=_(this._instanceBufferLayout,1),this._instanceData=new y(this._optionalFields,s),this._instanceData.on("instance-added",(()=>this._requestUpdateCycle())),this._instanceData.on("instance-removed",(()=>this._requestUpdateCycle())),this._instanceData.on("instance-transform-changed",(e=>{this._requestUpdateCycle(),this._metadata.notifyGraphicGeometryChanged(e.index)})),this._instanceData.on("instance-visibility-changed",(e=>{this._requestUpdateCycle(!0),this._metadata.notifyGraphicVisibilityChanged(e.index)})),this._instanceData.on("instance-highlight-changed",(()=>this._requestUpdateCycle(!0))),this._enableLevelSelection=this._symbol.levels.length>1}get levels(){return this._levels}get baseBoundingBox(){return this._levels[this._levels.length-1].boundingBox}get baseBoundingSphere(){return this._levels[this._levels.length-1].boundingSphere}get baseMaterial(){return this._levels[this._levels.length-1].components[0].material}get slicePlaneEnabled(){return this._slicePlane}set slicePlaneEnabled(e){this._slicePlane=e}get layerUid(){return this._metadata.layerUid}get instanceData(){return this._instanceData}get memoryUsage(){const e={cpu:0,gpu:0};return this._defaultRenderInstanceData.forEach((t=>{const a=t.memoryUsage;e.cpu+=a.cpu,e.gpu+=a.gpu})),this._highlightRenderInstanceData.forEach((t=>{const a=t.memoryUsage;e.cpu+=a.cpu,e.gpu+=a.gpu})),e}get renderStats(){const e=this._instanceData.size,t=[];return this._levels.forEach(((e,a)=>{const s=this._defaultRenderInstanceData[a],n=this._highlightRenderInstanceData[a],i=s.size+n.size,r=e.triangleCount;t.push({renderedInstances:i,renderedTriangles:i*r,trianglesPerInstance:r})})),{totalInstances:e,renderedInstances:t.reduce(((e,t)=>e+t.renderedInstances),0),renderedTriangles:t.reduce(((e,t)=>e+t.renderedTriangles),0),levels:t}}async initializeRenderContext(e,t){this._context=e;const a=e.renderContext.rctx,i=await Promise.allSettled(this._symbol.levels.map((s=>(this._defaultRenderInstanceData.push(new A(a,this._instanceBufferLayout)),this._highlightRenderInstanceData.push(new A(a,this._instanceBufferLayout)),E.create(e,s,t))))),r=i.map((e=>"fulfilled"===e.status?e.value:null)).filter((e=>e));if(s(t)||r.length!==i.length){r.forEach((e=>e.destroy())),n(t);for(const e of i)if("rejected"===e.status)throw e.reason}this._levels=r,this._levelSelector=x(this)}uninitializeRenderContext(){this._invalidateOctree(),this._levels.forEach((e=>e.destroy())),this._defaultRenderInstanceData.forEach((e=>e.destroy())),this._highlightRenderInstanceData.forEach((e=>e.destroy()))}get needsTransparentPass(){return this._levels.some((e=>e.components.some((e=>e.material.requiresSlot(I.TRANSPARENT_MATERIAL,m.Color)))))}get needsHighlight(){return this._highlightRenderInstanceData.some((e=>e.size>0))}prepareRender(e){if(u.LOD_INSTANCE_RENDERER_DISABLE_UPDATES)return;if(this._enableLevelSelection){const t=e.bindParameters.contentCamera.equals(this._lastCamera);this._lastCamera.copyFrom(e.bindParameters.contentCamera),t||this._requestUpdateCycle()}const t=this._needFullCycle?this._instanceData.size:2e3;this._needFullCycle=!1,this._updateInstances(e.bindParameters.contentCamera,t),this._needsUpdates&&this._context.requestRender()}render(e){if(!this.baseMaterial.isVisible()||!this.baseMaterial.isVisibleForOutput(e.output))return;e.rctx.bindVAO();e.output!==m.Highlight&&e.output!==m.ShadowHighlight&&this._renderComponents(e,this._defaultRenderInstanceData);e.output!==m.ShadowExludeHighlight&&this._renderComponents(e,this._highlightRenderInstanceData)}intersect(e,t,a,s){if(!this.baseMaterial.isVisible())return;const n=c();r(n,s,a);const i=n=>{this._instanceData.getCombinedModelTransform(n,q),e.transform.set(q),l(H,a,e.transform.inverse),l(B,s,e.transform.inverse);const i=this._instanceData.getState(n),r=this._instanceData.getLodLevel(n),o=this._levels.length;D(i&v.ACTIVE,"invalid instance state"),D(r>=0&&r<o,"invaid lod level"),this._levels[r].intersect(e,t,H,B,n,this._metadata,o)};this.baseMaterial.parameters.verticalOffset?this._octree.forEach(i):this._octree.forEachAlongRay(a,n,i)}queryDepthRange(e){return this._queryDepthRangeOctree(e)}notifyShaderTransformationChanged(){this._invalidateOctree()}_requestUpdateCycle(e=!1){this._updateCyclesWithStaticCamera=-1,e&&(this._needFullCycle=!0),this._needsUpdates&&this._context.requestRender()}get _needsUpdates(){return this._instanceData.size>0&&this._updateCyclesWithStaticCamera<1}get _octree(){return e(this._octreeCached)&&(this._octreeCached=this._buildOctree()),this._octreeCached}_invalidateOctree(){this._octreeCached=t(this._octreeCached)}_buildOctree(){const e=new b(this._instanceData,this.baseBoundingSphere),t=this._instanceData,a=t.view?t.view.state:null;for(let s=0;s<this._instanceData.capacity;++s){a.get(s)&v.ACTIVE&&e.addInstance(s)}return e}_queryDepthRangeOctree(e){const t=e.eye,a=e.viewForward,s=this._octree.findClosest(a,C.DepthOrder.FRONT_TO_BACK,e.frustum),n=this._octree.findClosest(a,C.DepthOrder.BACK_TO_FRONT,e.frustum);if(null!=s&&null!=n){this._instanceData.view.boundingSphere.getVec(s,N),r(N,N,t);const i=o(N,a)-N[3];this._instanceData.view.boundingSphere.getVec(n,N),r(N,N,t);const l=o(N,a)+N[3];return{near:Math.max(e.near,i),far:Math.min(e.far,l)}}return{near:1/0,far:-1/0}}_startUpdateCycle(){this._updateCyclesWithStaticCamera++,this._defaultRenderInstanceData.forEach((e=>{e.startUpdateCylce()})),this._highlightRenderInstanceData.forEach((e=>{e.startUpdateCylce()})),this._needsUpdates&&this._context.requestRender()}_updateInstances(e,t){const s=this._enableLevelSelection,n=this._levelSelector;n.updateCamera(e),this._defaultRenderInstanceData.forEach((e=>e.beginUpdate())),this._highlightRenderInstanceData.forEach((e=>e.beginUpdate()));const i=this._instanceData,r=this._instanceData.view,o=i.size,l=i.capacity;let c=this._instanceIndex;t=Math.min(o,t);for(let h=0;h<t;++h){0===c&&this._startUpdateCycle();const e=r.state.get(c);let o=0;if(!(e&v.ALLOCATED)){c=c+1===l?0:c+1,t++;continue}const h=r.lodLevel.get(c);if(e&v.DEFAULT_ACTIVE&&this._defaultRenderInstanceData[h].freeTail(),e&v.HIGHLIGHT_ACTIVE&&this._highlightRenderInstanceData[h].freeTail(),e&v.REMOVE)i.freeInstance(c);else if(e&v.VISIBLE){let t=0;s&&(r.modelOrigin.getVec(c,w),t=n.selectLevel(w,i.getCombinedMedianScaleFactor(c))),o=e&~(v.ACTIVE|v.TRANSFORM_CHANGED),t>=0&&(e&v.HIGHLIGHT?(V(this._highlightRenderInstanceData[t],r,c),o|=v.HIGHLIGHT_ACTIVE):(V(this._defaultRenderInstanceData[t],r,c),o|=v.DEFAULT_ACTIVE)),r.state.set(c,o),r.lodLevel.set(c,t)}else o=e&~(v.ACTIVE|v.TRANSFORM_CHANGED),r.state.set(c,o);if(a(this._octreeCached)){const t=!!(e&v.ACTIVE),a=!!(o&v.ACTIVE);!t&&a?this._octreeCached.addInstance(c):t&&!a?this._octreeCached.removeInstance(c):t&&a&&e&v.TRANSFORM_CHANGED&&(this._octreeCached.removeInstance(c),this._octreeCached.addInstance(c))}c=c+1===l?0:c+1}this._instanceIndex=c,this._defaultRenderInstanceData.forEach((e=>e.endUpdate())),this._highlightRenderInstanceData.forEach((e=>e.endUpdate()))}_renderComponents(e,t){this.levels.forEach(((a,s)=>{a.components.forEach((a=>{this._renderComponent(e,t[s],a,s)}))}))}_renderComponent(t,a,s,n){const{bindParameters:i,rctx:r,output:o}=t;if(0===a.size||!s.material.requiresSlot(i.slot,t.output))return;const l=s.glMaterials.load(r,i.slot,o);if(e(l))return;const c=l.beginSlot(i),h=r.bindTechnique(c,s.material.parameters,i);r.bindVAO(s.vao),c.ensureAttributeLocations(s.vao),h.bindDraw(G,i,s.material.parameters),u.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL&&t.output===m.Color&&(h.setUniform4fv("externalColor",P[Math.min(n,P.length-1)]),h.setUniform1i("colorMixMode",L.replace));const d=r.capabilities.instancing,_=a.capacity,f=a.headIndex,g=a.tailIndex,C=a.firstIndex,I=this._glInstanceBufferLayout,y=(e,t)=>{U(r,p,a.buffer,I,e),d.drawArraysInstanced(c.primitiveType,0,s.vertexCount,t-e),j(r,p,a.buffer,I)};s.material.parameters.transparent&&null!=C?f>g?(D(C>=g&&C<=f,"invalid firstIndex"),y(C,f),y(g,C)):f<g&&(C<=f?(D(C>=0&&C<=f,"invalid firstIndex"),y(C,f),y(g,_),y(0,C)):(D(C>=g&&C<=_,"invalid firstIndex"),y(C,_),y(0,f),y(g,C))):f>g?y(g,f):f<g&&(y(0,f),y(g,_)),r.bindVAO(null)}}function V(e,t,a){const s=e.allocateHead();F(t,a,e.view,s)}function F(e,t,a,s){S(e.modelOrigin,t,a.modelOriginHi,a.modelOriginLo,s),a.model.copyFrom(s,e.model,t),a.modelNormal.copyFrom(s,e.modelNormal,t),e.color&&a.color&&a.color.copyFrom(s,e.color,t),e.objectAndLayerIdColor&&a.objectAndLayerIdColor&&a.objectAndLayerIdColor.copyFrom(s,e.objectAndLayerIdColor,t),e.featureAttribute&&a.featureAttribute&&a.featureAttribute.copyFrom(s,e.featureAttribute,t)}const w=c(),N=h(),q=i(),H=c(),B=c(),P=[d(1,0,1,1),d(0,0,1,1),d(0,1,0,1),d(1,1,0,1),d(1,0,0,1)],G=new O;export{M as LodRenderer};
|
|
5
|
+
import{isNone as e,destroyMaybe as t,isSome as a}from"../../../../../core/maybe.js";import{isAborted as s,throwIfAborted as n}from"../../../../../core/promiseUtils.js";import{c as i}from"../../../../../chunks/mat4f64.js";import{b as r,e as o,m as l}from"../../../../../chunks/vec3.js";import{c}from"../../../../../chunks/vec3f64.js";import{c as h,f as d}from"../../../../../chunks/vec4f64.js";import u from"../../../support/debugFlags.js";import{glLayout as _}from"../../../support/buffer/glUtil.js";import{ShaderOutput as m}from"../../core/shaderLibrary/ShaderOutput.js";import{Camera as f}from"../Camera.js";import{Default3D as p}from"../DefaultVertexAttributeLocations.js";import{IntersectorType as g}from"../IntersectorInterfaces.js";import C from"../Octree.js";import{RenderSlot as I}from"../RenderSlot.js";import{assert as D}from"../Util.js";import{InstanceData as y,StateFlags as v}from"./InstanceData.js";import{InstanceOctree as b}from"./InstanceOctree.js";import{LevelSelector as R}from"./LevelSelector.js";import{LodLevel as E}from"./LodLevel.js";import{RenderInstanceData as A}from"./RenderInstanceData.js";import{getInstanceBufferLayout as T}from"../../materials/DefaultMaterial.js";import{colorMixModes as L}from"../../materials/internal/MaterialUtil.js";import{encodeDoubleVec3 as S}from"../../materials/renderers/utils.js";import{DefaultMaterialDrawParameters as O}from"../../shaders/DefaultMaterialTechnique.js";import{bindVertexBufferLayout as U,unbindVertexBufferLayout as j}from"../../../../webgl/Util.js";const x=e=>{const t=e.baseBoundingSphere.radius,a=e.levels.map((e=>e.minScreenSpaceRadius));return new R(t,a)};class M{constructor(e,t,a,s){this.type=g.LOD,this.isGround=!1,this._levels=[],this._defaultRenderInstanceData=[],this._highlightRenderInstanceData=[],this._instanceIndex=0,this._slicePlane=!1,this._lastCamera=new f,this._updateCyclesWithStaticCamera=-1,this._needFullCycle=!1,this.slots=[I.OPAQUE_MATERIAL,I.TRANSPARENT_MATERIAL],this.canRender=!0,this._symbol=e,this._optionalFields=t,this._metadata=a,this._instanceBufferLayout=T({instancedDoublePrecision:!0,instanced:t}),this._glInstanceBufferLayout=_(this._instanceBufferLayout,1),this._instanceData=new y(this._optionalFields,s),this._instanceData.on("instance-added",(()=>this._requestUpdateCycle())),this._instanceData.on("instance-removed",(()=>this._requestUpdateCycle())),this._instanceData.on("instance-transform-changed",(e=>{this._requestUpdateCycle(),this._metadata.notifyGraphicGeometryChanged(e.index)})),this._instanceData.on("instance-visibility-changed",(e=>{this._requestUpdateCycle(!0),this._metadata.notifyGraphicVisibilityChanged(e.index)})),this._instanceData.on("instance-highlight-changed",(()=>this._requestUpdateCycle(!0))),this._enableLevelSelection=this._symbol.levels.length>1}get levels(){return this._levels}get baseBoundingBox(){return this._levels[this._levels.length-1].boundingBox}get baseBoundingSphere(){return this._levels[this._levels.length-1].boundingSphere}get baseMaterial(){return this._levels[this._levels.length-1].components[0].material}get slicePlaneEnabled(){return this._slicePlane}set slicePlaneEnabled(e){this._slicePlane=e}get layerUid(){return this._metadata.layerUid}get instanceData(){return this._instanceData}get memoryUsage(){const e={cpu:0,gpu:0};return this._defaultRenderInstanceData.forEach((t=>{const a=t.memoryUsage;e.cpu+=a.cpu,e.gpu+=a.gpu})),this._highlightRenderInstanceData.forEach((t=>{const a=t.memoryUsage;e.cpu+=a.cpu,e.gpu+=a.gpu})),e}get renderStats(){const e=this._instanceData.size,t=[];return this._levels.forEach(((e,a)=>{const s=this._defaultRenderInstanceData[a],n=this._highlightRenderInstanceData[a],i=s.size+n.size,r=e.triangleCount;t.push({renderedInstances:i,renderedTriangles:i*r,trianglesPerInstance:r})})),{totalInstances:e,renderedInstances:t.reduce(((e,t)=>e+t.renderedInstances),0),renderedTriangles:t.reduce(((e,t)=>e+t.renderedTriangles),0),levels:t}}async initializeRenderContext(e,t){this._context=e;const a=e.renderContext.rctx,i=await Promise.allSettled(this._symbol.levels.map((s=>(this._defaultRenderInstanceData.push(new A(a,this._instanceBufferLayout)),this._highlightRenderInstanceData.push(new A(a,this._instanceBufferLayout)),E.create(e,s,t))))),r=i.map((e=>"fulfilled"===e.status?e.value:null)).filter((e=>e));if(s(t)||r.length!==i.length){r.forEach((e=>e.destroy())),n(t);for(const e of i)if("rejected"===e.status)throw e.reason}this._levels=r,this._levelSelector=x(this)}uninitializeRenderContext(){this._invalidateOctree(),this._levels.forEach((e=>e.destroy())),this._defaultRenderInstanceData.forEach((e=>e.destroy())),this._highlightRenderInstanceData.forEach((e=>e.destroy()))}get needsTransparentPass(){return this._levels.some((e=>e.components.some((e=>e.material.requiresSlot(I.TRANSPARENT_MATERIAL,m.Color)))))}get needsHighlight(){return this._highlightRenderInstanceData.some((e=>e.size>0))}prepareRender(e){if(u.LOD_INSTANCE_RENDERER_DISABLE_UPDATES)return;if(this._enableLevelSelection){const t=e.bindParameters.contentCamera.equals(this._lastCamera);this._lastCamera.copyFrom(e.bindParameters.contentCamera),t||this._requestUpdateCycle()}const t=this._needFullCycle?this._instanceData.size:2e3;this._needFullCycle=!1,this._updateInstances(e.bindParameters.contentCamera,t),this._needsUpdates&&this._context.requestRender()}render(e){if(!this.baseMaterial.isVisible()||!this.baseMaterial.isVisibleForOutput(e.output))return;e.rctx.bindVAO();e.output!==m.Highlight&&e.output!==m.ShadowHighlight&&this._renderComponents(e,this._defaultRenderInstanceData);e.output!==m.ShadowExludeHighlight&&this._renderComponents(e,this._highlightRenderInstanceData)}intersect(e,t,a,s){if(!this.baseMaterial.isVisible())return;const n=c();r(n,s,a);const i=n=>{this._instanceData.getCombinedModelTransform(n,q),e.transform.set(q),l(H,a,e.transform.inverse),l(B,s,e.transform.inverse);const i=this._instanceData.getState(n),r=this._instanceData.getLodLevel(n),o=this._levels.length;D(i&v.ACTIVE,"invalid instance state"),D(r>=0&&r<o,"invaid lod level"),this._levels[r].intersect(e,t,H,B,n,this._metadata,o)};this.baseMaterial.parameters.verticalOffset?this._octree.forEach(i):this._octree.forEachAlongRay(a,n,i)}queryDepthRange(e){return this._queryDepthRangeOctree(e)}notifyShaderTransformationChanged(){this._invalidateOctree()}_requestUpdateCycle(e=!1){this._updateCyclesWithStaticCamera=-1,e&&(this._needFullCycle=!0),this._needsUpdates&&this._context.requestRender()}get _needsUpdates(){return this._instanceData.size>0&&this._updateCyclesWithStaticCamera<1}get _octree(){return e(this._octreeCached)&&(this._octreeCached=this._buildOctree()),this._octreeCached}_invalidateOctree(){this._octreeCached=t(this._octreeCached)}_buildOctree(){const e=new b(this._instanceData,this.baseBoundingSphere),t=this._instanceData,a=t.view?t.view.state:null;for(let s=0;s<this._instanceData.capacity;++s){a.get(s)&v.ACTIVE&&e.addInstance(s)}return e}_queryDepthRangeOctree(e){const t=e.eye,a=e.viewForward,s=this._octree.findClosest(a,C.DepthOrder.FRONT_TO_BACK,e.frustum),n=this._octree.findClosest(a,C.DepthOrder.BACK_TO_FRONT,e.frustum);if(null!=s&&null!=n){this._instanceData.view.boundingSphere.getVec(s,N),r(N,N,t);const i=o(N,a)-N[3];this._instanceData.view.boundingSphere.getVec(n,N),r(N,N,t);const l=o(N,a)+N[3];return{near:Math.max(e.near,i),far:Math.min(e.far,l)}}return{near:1/0,far:-1/0}}_startUpdateCycle(){this._updateCyclesWithStaticCamera++,this._defaultRenderInstanceData.forEach((e=>{e.startUpdateCylce()})),this._highlightRenderInstanceData.forEach((e=>{e.startUpdateCylce()})),this._needsUpdates&&this._context.requestRender()}_updateInstances(e,t){const s=this._enableLevelSelection,n=this._levelSelector;n.updateCamera(e),this._defaultRenderInstanceData.forEach((e=>e.beginUpdate())),this._highlightRenderInstanceData.forEach((e=>e.beginUpdate()));const i=this._instanceData,r=this._instanceData.view,o=i.size,l=i.capacity;let c=this._instanceIndex;t=Math.min(o,t);for(let h=0;h<t;++h){0===c&&this._startUpdateCycle();const e=r.state.get(c);let o=0;if(!(e&v.ALLOCATED)){c=c+1===l?0:c+1,t++;continue}const h=r.lodLevel.get(c);if(e&v.DEFAULT_ACTIVE&&this._defaultRenderInstanceData[h].freeTail(),e&v.HIGHLIGHT_ACTIVE&&this._highlightRenderInstanceData[h].freeTail(),e&v.REMOVE)i.freeInstance(c);else if(e&v.VISIBLE){let t=0;s&&(r.modelOrigin.getVec(c,w),t=n.selectLevel(w,i.getCombinedMedianScaleFactor(c))),o=e&~(v.ACTIVE|v.TRANSFORM_CHANGED),t>=0&&(e&v.HIGHLIGHT?(V(this._highlightRenderInstanceData[t],r,c),o|=v.HIGHLIGHT_ACTIVE):(V(this._defaultRenderInstanceData[t],r,c),o|=v.DEFAULT_ACTIVE)),r.state.set(c,o),r.lodLevel.set(c,t)}else o=e&~(v.ACTIVE|v.TRANSFORM_CHANGED),r.state.set(c,o);if(a(this._octreeCached)){const t=!!(e&v.ACTIVE),a=!!(o&v.ACTIVE);!t&&a?this._octreeCached.addInstance(c):t&&!a?this._octreeCached.removeInstance(c):t&&a&&e&v.TRANSFORM_CHANGED&&(this._octreeCached.removeInstance(c),this._octreeCached.addInstance(c))}c=c+1===l?0:c+1}this._instanceIndex=c,this._defaultRenderInstanceData.forEach((e=>e.endUpdate())),this._highlightRenderInstanceData.forEach((e=>e.endUpdate()))}_renderComponents(e,t){this.levels.forEach(((a,s)=>{a.components.forEach((a=>{this._renderComponent(e,t[s],a,s)}))}))}_renderComponent(t,a,s,n){const{bindParameters:i,rctx:r,output:o}=t;if(0===a.size||!s.material.requiresSlot(i.slot,t.output))return;const l=s.glMaterials.load(r,i.slot,o);if(e(l))return;const c=l.beginSlot(i),h=r.bindTechnique(c,s.material.parameters,i);r.bindVAO(s.vao),c.ensureAttributeLocations(s.vao),h.bindDraw(G,i,s.material.parameters),u.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL&&t.output===m.Color&&(h.setUniform4fv("externalColor",P[Math.min(n,P.length-1)]),h.setUniform1i("colorMixMode",L.replace));const d=r.capabilities.instancing,_=a.capacity,f=a.headIndex,g=a.tailIndex,C=a.firstIndex,I=this._glInstanceBufferLayout,y=(e,t)=>{U(r,p,a.buffer,I,e),d.drawArraysInstanced(c.primitiveType,0,s.vertexCount,t-e),j(r,p,a.buffer,I)};s.material.parameters.transparent&&null!=C?f>g?(D(C>=g&&C<=f,"invalid firstIndex"),y(C,f),y(g,C)):f<g&&(C<=f?(D(C>=0&&C<=f,"invalid firstIndex"),y(C,f),y(g,_),y(0,C)):(D(C>=g&&C<=_,"invalid firstIndex"),y(C,_),y(0,f),y(g,C))):f>g?y(g,f):f<g&&(y(0,f),y(g,_)),r.bindVAO(null)}}function V(e,t,a){const s=e.allocateHead();F(t,a,e.view,s)}function F(e,t,a,s){S(e.modelOrigin,t,a.modelOriginHi,a.modelOriginLo,s),a.model.copyFrom(s,e.model,t),a.modelNormal.copyFrom(s,e.modelNormal,t),e.color&&a.color&&a.color.copyFrom(s,e.color,t),e.objectAndLayerIdColor&&a.objectAndLayerIdColor&&a.objectAndLayerIdColor.copyFrom(s,e.objectAndLayerIdColor,t),e.featureAttribute&&a.featureAttribute&&a.featureAttribute.copyFrom(s,e.featureAttribute,t)}const w=c(),N=h(),q=i(),H=c(),B=c(),P=[d(1,0,1,1),d(0,0,1,1),d(0,1,0,1),d(1,1,0,1),d(1,0,0,1)],G=new O;export{M as LodRenderer};
|