@arcgis/core 5.0.0-next.85 → 5.0.0-next.86
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 +2 -2
- package/Camera.d.ts +3 -3
- package/CameraLayout.d.ts +2 -2
- package/Graphic.d.ts +3 -3
- package/Ground.d.ts +2 -2
- package/Map.d.ts +2 -2
- package/PopupTemplate.d.ts +3 -3
- package/Viewpoint.d.ts +2 -2
- package/WebDocument2D.d.ts +3 -3
- package/WebScene.d.ts +3 -3
- package/analysis/Analysis.d.ts +3 -3
- package/analysis/Dimension/types.d.ts +0 -1
- package/analysis/DimensionSimpleStyle.d.ts +3 -3
- package/analysis/ElevationProfile/ElevationProfileDisplayUnits.d.ts +2 -2
- package/analysis/ElevationProfile/ElevationProfileLine.d.ts +2 -2
- package/analysis/ElevationProfile/ElevationProfileLineChartOptions.d.ts +2 -2
- package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +2 -2
- package/analysis/ElevationProfile/ElevationProfileViewOptions.d.ts +2 -2
- package/analysis/LengthDimension.d.ts +3 -3
- package/analysis/LineOfSightAnalysisObserver.d.ts +3 -3
- package/analysis/LineOfSightAnalysisTarget.d.ts +3 -3
- package/analysis/ShadowCast/DiscreteOptions.d.ts +2 -2
- package/analysis/ShadowCast/MinDurationOptions.d.ts +2 -2
- package/analysis/ShadowCast/TotalDurationOptions.d.ts +2 -2
- package/analysis/ShadowCast/types.d.ts +0 -1
- package/analysis/SlicePlane.d.ts +3 -3
- package/analysis/Viewshed.d.ts +3 -3
- package/analysis/VolumeMeasurement/VolumeMeasurementCutFillOptions.d.ts +3 -3
- package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +3 -3
- package/analysis/VolumeMeasurement/VolumeMeasurementInputUnits.d.ts +3 -3
- package/analysis/VolumeMeasurement/types.d.ts +0 -1
- package/analysis/support/AnalysisOriginWebScene.d.ts +2 -2
- package/applications/Components/templateUtils.d.ts +30 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{9919b3c345785e910c38.js → 03d037f9f04f165aac63.js} +1 -1
- package/assets/esri/core/workers/chunks/09ca0d05b090e9a70e61.js +1 -0
- package/assets/esri/core/workers/chunks/{84a4390b1c277c415d44.js → 0c358199ada2ff71e7d9.js} +1 -1
- package/assets/esri/core/workers/chunks/{bbb409e54db77bfabdee.js → 0dcf1f3b6aa84cbe03a9.js} +1 -1
- package/assets/esri/core/workers/chunks/{59e7a0215791b2b51180.js → 126183819921e6025c90.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a41c9127ca5a260d5ef.js → 15132d36e7ccbb3c009e.js} +1 -1
- package/assets/esri/core/workers/chunks/1919ed99166e70021917.js +1 -0
- package/assets/esri/core/workers/chunks/{9fac9eda0a41f7f4c2c6.js → 198ae9e02366870d3ec8.js} +1 -1
- package/assets/esri/core/workers/chunks/{6de843d1809cba61ded3.js → 1aee859eaffa54ef2515.js} +1 -1
- package/assets/esri/core/workers/chunks/1c68befc39d39799fcb8.js +1 -0
- package/assets/esri/core/workers/chunks/{b190a776de4859ac00f8.js → 1cf27708d17a4de75b68.js} +1 -1
- package/assets/esri/core/workers/chunks/{f3fdf9970b3c7acd071d.js → 21163137e345badb1aaf.js} +1 -1
- package/assets/esri/core/workers/chunks/{055aead7135a2f8bca29.js → 32b09ca094377a305881.js} +1 -1
- package/assets/esri/core/workers/chunks/365cb8aab4ca56999b47.js +1 -0
- package/assets/esri/core/workers/chunks/{c825ca22894bdb4d01ba.js → 3b434f318fdbbe4111e3.js} +1 -1
- package/assets/esri/core/workers/chunks/{98e04c2382fa5ba382fc.js → 3dc1ae04cfa2c06daf48.js} +1 -1
- package/assets/esri/core/workers/chunks/{c46a4681cbba638b58c1.js → 3ebd4cdafa7682062447.js} +1 -1
- package/assets/esri/core/workers/chunks/45c1a3376b138eeee329.js +1 -0
- package/assets/esri/core/workers/chunks/{301fa6276f4098521106.js → 476e51284e6ed7dc5c99.js} +1 -1
- package/assets/esri/core/workers/chunks/{18cdd268fc921ffd92e2.js → 47bea83ae7fe0e1acee0.js} +1 -1
- package/assets/esri/core/workers/chunks/{304ea784c28dc78e5e65.js → 4a857a7f5e00dfab2b44.js} +1 -1
- package/assets/esri/core/workers/chunks/{04fddd41a8e6a4c1bc57.js → 5139bbe8f94df01467c7.js} +1 -1
- package/assets/esri/core/workers/chunks/5734aefbce8b6425630c.js +1 -0
- package/assets/esri/core/workers/chunks/{5543de9a0435c319f4f9.js → 5852d291ef41201030d5.js} +11 -11
- package/assets/esri/core/workers/chunks/{348560f083350ad0bf2e.js → 5a0c5271304189a2401d.js} +1 -1
- package/assets/esri/core/workers/chunks/{1fe1a131be1d5e1e23ed.js → 5a1921c177580f17ff96.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a13b472e0cf9f88e8de.js → 5d791bfca20791d8e0af.js} +1 -1
- package/assets/esri/core/workers/chunks/{3b6fc34b6d92eef030e5.js → 6298e71e6c480d6f46e3.js} +1 -1
- package/assets/esri/core/workers/chunks/{854adab6a06af861c104.js → 68d0bae1816061d96307.js} +1 -1
- package/assets/esri/core/workers/chunks/6d9e92d9c2503d5dc8dd.js +1 -0
- package/assets/esri/core/workers/chunks/{156c73a948bde11f0d53.js → 743165f9bc4d85748a0d.js} +1 -1
- package/assets/esri/core/workers/chunks/{9ff1e650ce0912afa780.js → 7449af8f3637c1694660.js} +1 -1
- package/assets/esri/core/workers/chunks/7f15d15c7e2c5d3e70c3.js +1 -0
- package/assets/esri/core/workers/chunks/804c9666d0dc548b9f79.js +1 -0
- package/assets/esri/core/workers/chunks/8258b1c8ba6d44ba19c3.js +1 -0
- package/assets/esri/core/workers/chunks/890833e98e79b8fd3747.js +1 -0
- package/assets/esri/core/workers/chunks/{d6e11f05db698d14f21d.js → 8a7f56139b7de0011a37.js} +1 -1
- package/assets/esri/core/workers/chunks/{ec03d59984782529031a.js → 8b575ac55bc396c0c477.js} +1 -1
- package/assets/esri/core/workers/chunks/{db9a9712038df76e3eda.js → 8ef337e25d65670eb73b.js} +1 -1
- package/assets/esri/core/workers/chunks/8f2fc50eb988c0228b05.js +1 -0
- package/assets/esri/core/workers/chunks/{c500b59cd7da54fe72ec.js → 8f3abaabc61858e929a5.js} +1 -1
- package/assets/esri/core/workers/chunks/{e201bfe3158c025edc99.js → 93faad2a759b08dce619.js} +1 -1
- package/assets/esri/core/workers/chunks/{1779e6eabc299831fc9f.js → 94c4ef224ff38eca7b87.js} +1 -1
- package/assets/esri/core/workers/chunks/{e8f6305744f87bbed961.js → 96616126aaf319cd1c6f.js} +1 -1
- package/assets/esri/core/workers/chunks/{c791e8ebf3ee0805c479.js → 981f05b5ef6f9c3f7e8a.js} +1 -1
- package/assets/esri/core/workers/chunks/{841058de8bc6e328fd68.js → 9d77a7d04872b4535e9e.js} +1 -1
- package/assets/esri/core/workers/chunks/{338768f94cc49559b209.js → 9ebc4303e29ee0fc1716.js} +1 -1
- package/assets/esri/core/workers/chunks/a270e34bb248114ec280.js +1 -0
- package/assets/esri/core/workers/chunks/a6b8ce1c2996ee392bdf.js +1 -0
- package/assets/esri/core/workers/chunks/{b91a157fb5f729de6597.js → b5ca894a6cb1a19676d5.js} +1 -1
- package/assets/esri/core/workers/chunks/{a2c0c1bb5e775abefc90.js → b6530c66804bede649d7.js} +1 -1
- package/assets/esri/core/workers/chunks/{3849dc35941e569fae5f.js → c12c095937b21e39ad3c.js} +1 -1
- package/assets/esri/core/workers/chunks/{4ff3c03cfbec928c0720.js → c4fb3f0b0cfb21e68413.js} +1 -1
- package/assets/esri/core/workers/chunks/{f5b32bc3f7ee911e3c59.js → c5d56b85d34026507902.js} +1 -1
- package/assets/esri/core/workers/chunks/{181fab86394f1f912490.js → cc464d5a83f8f405e66c.js} +1 -1
- package/assets/esri/core/workers/chunks/cee29c3a94376f6740d7.js +1 -0
- package/assets/esri/core/workers/chunks/d6d9d56b3733622deab6.js +1 -0
- package/assets/esri/core/workers/chunks/{ce9467dc1ff695d795e5.js → d8b72c6f5f9b2d013b7f.js} +1 -1
- package/assets/esri/core/workers/chunks/{f0eb2bfe5a8607b251f5.js → dc2c9b584f8e4627de7f.js} +1 -1
- package/assets/esri/core/workers/chunks/{b586d7e608e8ba8b88fe.js → e067bbf12f711fd5b9a6.js} +1 -1
- package/assets/esri/core/workers/chunks/e271065410ba5c872f53.js +1 -0
- package/assets/esri/core/workers/chunks/{d9d2178d436597b1afaf.js → e7e508258ad27468a6a5.js} +1 -1
- package/assets/esri/core/workers/chunks/e8a0654cebafa22b5b56.js +1 -0
- package/assets/esri/core/workers/chunks/e95f90d59041640727da.js +1 -0
- package/assets/esri/core/workers/chunks/eb063660c37093f85349.js +1 -0
- package/assets/esri/core/workers/chunks/{a09099697955eb44bfac.js → f1e1666bede364c069fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{ac0949ea3d2cf3eb7383.js → f25eb512592a84a508c1.js} +1 -1
- package/assets/esri/core/workers/chunks/f64ec13167eb51da2f9b.js +1 -0
- package/assets/esri/core/workers/chunks/{14f8215ab716c6d9d5f8.js → fbf21fda283836e8633c.js} +1 -1
- package/assets/esri/core/workers/chunks/fc763ce37d631e006199.js +1 -0
- package/assets/esri/core/workers/chunks/ff2a170acd98edfd0e06.js +1 -0
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/config.js +1 -1
- package/core/Clonable.d.ts +0 -2
- package/core/Collection.d.ts +1 -1
- package/core/Error.d.ts +0 -1
- package/core/Evented.d.ts +0 -2
- package/core/Identifiable.d.ts +0 -1
- package/core/JSONSupport.d.ts +0 -2
- package/core/MultiOriginJSONSupport.d.ts +1 -3
- package/core/Promise.d.ts +8 -4
- package/core/ReadOnlyMultiOriginJSONSupport.d.ts +0 -2
- package/core/Version.d.ts +0 -1
- package/core/accessorSupport/types.d.ts +0 -1
- package/core/sql/types.d.ts +0 -1
- package/core/timeUtils.js +1 -1
- package/core/types.d.ts +0 -1
- package/core/units.d.ts +1 -1
- package/editing/sharedTemplates/types.d.ts +0 -1
- package/effects/FocusArea.d.ts +3 -3
- package/effects/FocusAreaOutline.d.ts +3 -3
- package/effects/FocusAreas.d.ts +3 -3
- package/effects/types.d.ts +0 -1
- package/form/ExpressionInfo.d.ts +2 -2
- package/form/FormTemplate.d.ts +2 -2
- package/form/elements/Element.d.ts +2 -2
- package/form/elements/UtilityNetworkAssociationsElement.d.ts +2 -2
- package/geometry/Geometry.d.ts +2 -2
- package/geometry/HeightModelInfo.d.ts +2 -2
- package/geometry/Mesh.d.ts +3 -3
- package/geometry/SpatialReference.d.ts +2 -2
- package/geometry/geometryEngineTypes.d.ts +0 -1
- package/geometry/support/MeshComponent.d.ts +3 -3
- package/geometry/support/MeshGeoreferencedVertexSpace.d.ts +3 -3
- package/geometry/support/MeshLocalVertexSpace.d.ts +3 -3
- package/geometry/support/MeshMaterial.d.ts +3 -3
- package/geometry/support/MeshTexture.d.ts +3 -3
- package/geometry/support/MeshTextureTransform.d.ts +3 -3
- package/geometry/support/MeshTransform.d.ts +3 -3
- package/geometry/support/MeshVertexAttributes.d.ts +3 -3
- package/graphic/GraphicOrigin.d.ts +0 -1
- package/ground/NavigationConstraint.d.ts +2 -2
- package/identity/Credential.d.ts +2 -2
- package/identity/OAuthInfo.d.ts +2 -2
- package/identity/ServerInfo.d.ts +2 -2
- package/interfaces.d.ts +2 -3
- package/intl/locale.d.ts +0 -1
- package/intl/messages.d.ts +0 -1
- package/intl/number.d.ts +0 -1
- package/intl/substitute.d.ts +0 -1
- package/intl/t9n.d.ts +0 -1
- package/kernel.js +1 -1
- package/layers/BaseElevationLayer.d.ts +3 -4
- package/layers/BingMapsLayer.d.ts +2 -2
- package/layers/BuildingSceneLayer.d.ts +5 -4
- package/layers/CatalogLayer.d.ts +3 -3
- package/layers/DimensionLayer.d.ts +2 -2
- package/layers/ElevationLayer.d.ts +3 -4
- package/layers/ElevationLayer.js +1 -1
- package/layers/FeatureLayer.d.ts +4 -4
- package/layers/GaussianSplatLayer.d.ts +2 -2
- package/layers/GeoJSONLayer.d.ts +2 -2
- package/layers/GeoRSSLayer.d.ts +2 -2
- package/layers/GroupLayer.d.ts +2 -2
- package/layers/ImageryLayer.d.ts +3 -3
- package/layers/ImageryTileLayer.d.ts +3 -3
- package/layers/IntegratedMesh3DTilesLayer.d.ts +2 -2
- package/layers/IntegratedMeshLayer.d.ts +5 -4
- package/layers/KMLLayer.d.ts +2 -2
- package/layers/KnowledgeGraphLayer.d.ts +2 -2
- package/layers/Layer.d.ts +2 -2
- package/layers/LineOfSightLayer.d.ts +2 -2
- package/layers/LinkChartLayer.d.ts +2 -2
- package/layers/MapImageLayer.d.ts +2 -2
- package/layers/MapNotesLayer.d.ts +2 -2
- package/layers/MediaLayer.d.ts +2 -2
- package/layers/OGCFeatureLayer.d.ts +2 -2
- package/layers/ParquetLayer.d.ts +3 -3
- package/layers/PointCloudLayer.d.ts +5 -4
- package/layers/RouteLayer.d.ts +2 -2
- package/layers/SceneLayer.d.ts +6 -5
- package/layers/StreamLayer.d.ts +3 -3
- package/layers/SubtypeGroupLayer.d.ts +4 -4
- package/layers/TileLayer.d.ts +2 -2
- package/layers/UnknownLayer.d.ts +2 -2
- package/layers/UnsupportedLayer.d.ts +2 -2
- package/layers/VectorTileLayer.d.ts +2 -2
- package/layers/VideoLayer.d.ts +2 -2
- package/layers/ViewshedLayer.d.ts +2 -2
- package/layers/VoxelLayer.d.ts +2 -2
- package/layers/WCSLayer.d.ts +3 -3
- package/layers/WFSLayer.d.ts +2 -2
- package/layers/WMSLayer.d.ts +2 -2
- package/layers/WMTSLayer.d.ts +2 -2
- package/layers/WebTileLayer.d.ts +2 -2
- package/layers/buildingSublayers/BuildingComponentSublayer.d.ts +2 -2
- package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
- package/layers/buildingSublayers/BuildingSublayer.d.ts +2 -2
- package/layers/catalog/CatalogDynamicGroupLayer.d.ts +2 -2
- package/layers/catalog/CatalogFootprintLayer.d.ts +2 -2
- package/layers/effects/types.d.ts +0 -1
- package/layers/knowledgeGraph/IdTypePair.d.ts +0 -1
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +2 -2
- package/layers/mixins/APIKeyMixin.d.ts +0 -1
- package/layers/mixins/CustomParametersMixin.d.ts +0 -1
- package/layers/mixins/EditBusLayer.d.ts +0 -2
- package/layers/mixins/OperationalLayer.d.ts +0 -1
- package/layers/mixins/ScaleRangeLayer.d.ts +0 -1
- package/layers/mixins/SceneService.d.ts +0 -6
- package/layers/pointCloudFilters/PointCloudFilter.d.ts +2 -2
- package/layers/raster/datasets/pixelReader.d.ts +0 -1
- package/layers/raster/datasets/types.d.ts +0 -1
- package/layers/raster/functions/changeDetectionUtils.d.ts +0 -1
- package/layers/raster/functions/focalStatUtils.d.ts +0 -1
- package/layers/scene/types.d.ts +11 -0
- package/layers/support/AggregateField.d.ts +2 -2
- package/layers/support/BuildingFilter.d.ts +2 -2
- package/layers/support/BuildingFilterBlock.d.ts +2 -2
- package/layers/support/BuildingSummaryStatistics.d.ts +3 -3
- package/layers/support/CodedValue.d.ts +2 -2
- package/layers/support/ControlPoint.d.ts +2 -2
- package/layers/support/ControlPointsGeoreference.d.ts +2 -2
- package/layers/support/DimensionalDefinition.d.ts +2 -2
- package/layers/support/DisplayFilter.d.ts +3 -3
- package/layers/support/DisplayFilterInfo.d.ts +3 -3
- package/layers/support/Domain.d.ts +2 -2
- package/layers/support/EditFieldsInfo.d.ts +3 -3
- package/layers/support/ElevationQuery.js +1 -1
- package/layers/support/ElevationTileData.js +1 -1
- package/layers/support/ExpressionInfo.d.ts +3 -3
- package/layers/support/FacilityLayerInfo.d.ts +2 -2
- package/layers/support/FeatureEffect.d.ts +2 -2
- package/layers/support/FeatureFilter.d.ts +2 -2
- package/layers/support/FeatureReductionBinning.d.ts +2 -2
- package/layers/support/FeatureReductionCluster.d.ts +2 -2
- package/layers/support/FeatureReductionSelection.d.ts +2 -2
- package/layers/support/FeatureTemplate.d.ts +3 -3
- package/layers/support/FeatureType.d.ts +3 -3
- package/layers/support/Field.d.ts +2 -2
- package/layers/support/FieldConfiguration.d.ts +3 -3
- package/layers/support/GeometryFieldsInfo.d.ts +3 -3
- package/layers/support/KMLSublayer.d.ts +3 -3
- package/layers/support/LOD.d.ts +2 -2
- package/layers/support/LabelClass.d.ts +2 -2
- package/layers/support/LabelExpressionInfo.d.ts +2 -2
- package/layers/support/LayerFloorInfo.d.ts +2 -2
- package/layers/support/LevelLayerInfo.d.ts +2 -2
- package/layers/support/LocalMediaElementSource.d.ts +3 -3
- package/layers/support/MapImage.d.ts +2 -2
- package/layers/support/MediaElementBase.d.ts +2 -2
- package/layers/support/MosaicRule.d.ts +2 -2
- package/layers/support/MultidimensionalSubset.d.ts +13 -4
- package/layers/support/OrderByInfo.d.ts +2 -2
- package/layers/support/ParquetGeometryEncodingLocation.d.ts +3 -3
- package/layers/support/ParquetGeometryEncodingWkb.d.ts +3 -3
- package/layers/support/PixelBlock.d.ts +2 -2
- package/layers/support/PlaybackInfo.d.ts +3 -3
- package/layers/support/PurgeOptions.d.ts +2 -2
- package/layers/support/RasterBandInfo.d.ts +2 -2
- package/layers/support/RasterFunction.d.ts +2 -2
- package/layers/support/RasterInfo.d.ts +2 -2
- package/layers/support/RasterSensorInfo.d.ts +2 -2
- package/layers/support/Relationship.d.ts +5 -3
- package/layers/support/RouteStopSymbols.d.ts +2 -2
- package/layers/support/RouteSymbols.d.ts +2 -2
- package/layers/support/SceneFilter.d.ts +2 -2
- package/layers/support/SceneLayerViewFilter.js +5 -0
- package/layers/support/SceneModification.d.ts +2 -2
- package/layers/support/SceneModifications.d.ts +1 -1
- package/layers/support/SiteLayerInfo.d.ts +2 -2
- package/layers/support/Sublayer.d.ts +2 -2
- package/layers/support/Subtype.d.ts +3 -3
- package/layers/support/SubtypeSublayer.d.ts +3 -3
- package/layers/support/TelemetryData.d.ts +3 -3
- package/layers/support/TelemetryDisplay.d.ts +3 -3
- package/layers/support/TileInfo.d.ts +2 -2
- package/layers/support/TileMatrixSet.d.ts +2 -2
- package/layers/support/TimeInfo.d.ts +3 -3
- package/layers/support/TrackInfo.d.ts +3 -3
- package/layers/support/TrackPartInfo.d.ts +3 -3
- package/layers/support/VideoTimeExtent.d.ts +3 -3
- package/layers/support/WMSSublayer.d.ts +2 -2
- package/layers/support/WMTSStyle.d.ts +2 -2
- package/layers/support/WMTSSublayer.d.ts +2 -2
- package/layers/support/types.d.ts +32 -0
- package/layers/video/types.d.ts +0 -1
- package/layers/voxel/VoxelColorStop.d.ts +3 -3
- package/layers/voxel/VoxelDynamicSection.d.ts +3 -3
- package/layers/voxel/VoxelIsosurface.d.ts +3 -3
- package/layers/voxel/VoxelOpacityStop.d.ts +3 -3
- package/layers/voxel/VoxelRangeFilter.d.ts +3 -3
- package/layers/voxel/VoxelSlice.d.ts +3 -3
- package/layers/voxel/VoxelTransferFunctionStyle.d.ts +3 -3
- package/layers/voxel/VoxelUniqueValue.d.ts +3 -3
- package/layers/voxel/VoxelVariable.d.ts +2 -2
- package/layers/voxel/VoxelVariableStyle.d.ts +2 -2
- package/layers/voxel/VoxelVolumeStyle.d.ts +2 -2
- package/layers/wms/types.d.ts +0 -1
- package/layers/wmts/types.d.ts +0 -1
- package/linkChart/ChronologicalLayoutSettings.d.ts +3 -3
- package/linkChart/LayoutSettings.d.ts +3 -3
- package/linkChart/LinkChartProperties.d.ts +3 -3
- package/linkChart/NonspatialDataDisplay.d.ts +3 -3
- package/linkChart/OrganicLayoutSettings.d.ts +3 -3
- package/linkChart/types.d.ts +0 -1
- package/networks/CircuitManager.d.ts +2 -2
- package/networks/Network.d.ts +2 -2
- package/networks/UnitIdentifierManager.d.ts +2 -2
- package/networks/support/Circuit.d.ts +2 -2
- package/networks/support/CircuitLocation.d.ts +2 -2
- package/networks/support/CircuitPath.d.ts +2 -2
- package/networks/support/CircuitPathConnectivityElement.d.ts +2 -2
- package/networks/support/CircuitSection.d.ts +2 -2
- package/networks/support/NamedTraceConfiguration.d.ts +2 -2
- package/networks/support/Subcircuit.d.ts +2 -2
- package/networks/support/Terminal.d.ts +2 -2
- package/networks/support/TerminalConfiguration.d.ts +2 -2
- package/networks/support/TraceConfiguration.d.ts +2 -2
- package/networks/support/UNTraceConfiguration.d.ts +2 -2
- package/networks/support/typeUtils.d.ts +0 -1
- package/package.json +1 -1
- package/popup/ElementExpressionInfo.d.ts +2 -2
- package/popup/ExpressionInfo.d.ts +2 -2
- package/popup/FieldInfo.d.ts +3 -3
- package/popup/LayerOptions.d.ts +2 -2
- package/popup/RelatedRecordsInfo.d.ts +2 -2
- package/popup/content/AttachmentsContent.d.ts +2 -2
- package/popup/content/Content.d.ts +2 -2
- package/popup/content/RelationshipContent.d.ts +2 -2
- package/popup/content/UtilityNetworkAssociationsContent.d.ts +2 -2
- package/popup/content/mixins/MediaInfo.d.ts +2 -2
- package/popup/content/support/ChartMediaInfoValue.d.ts +2 -2
- package/popup/content/support/ImageMediaInfoValue.d.ts +2 -2
- package/popup/support/AttachmentsOrderByInfo.d.ts +3 -3
- package/popup/support/FieldInfoFormat.d.ts +3 -3
- package/popup/support/RelatedRecordsInfoFieldOrder.d.ts +2 -2
- package/popup/support/UtilityNetworkAssociationType.d.ts +3 -3
- package/portal/Portal.d.ts +2 -2
- package/portal/PortalFolder.d.ts +2 -2
- package/portal/PortalGroup.d.ts +2 -2
- package/portal/PortalItem.d.ts +2 -2
- package/portal/PortalUser.d.ts +2 -2
- package/portal/timeUnitKebabDictionary.js +1 -1
- package/renderers/FlowRenderer.d.ts +2 -2
- package/renderers/PieChartRenderer.d.ts +2 -2
- package/renderers/PointCloudRenderer.d.ts +2 -2
- package/renderers/RasterColormapRenderer.d.ts +2 -2
- package/renderers/RasterShadedReliefRenderer.d.ts +2 -2
- package/renderers/RasterStretchRenderer.d.ts +2 -2
- package/renderers/Renderer.d.ts +2 -2
- package/renderers/VectorFieldRenderer.d.ts +2 -2
- package/renderers/support/AttributeColorInfo.d.ts +2 -2
- package/renderers/support/AuthoringInfo.d.ts +2 -2
- package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +2 -2
- package/renderers/support/AuthoringInfoFieldInfo.d.ts +2 -2
- package/renderers/support/AuthoringInfoVisualVariable.d.ts +2 -2
- package/renderers/support/ClassBreakInfo.d.ts +2 -2
- package/renderers/support/ColormapInfo.d.ts +2 -2
- package/renderers/support/DotDensityLegendOptions.d.ts +2 -2
- package/renderers/support/HeatmapColorStop.d.ts +2 -2
- package/renderers/support/HeatmapLegendOptions.d.ts +3 -3
- package/renderers/support/OthersCategory.d.ts +3 -3
- package/renderers/support/RasterPresetRenderer.d.ts +3 -3
- package/renderers/support/RendererLegendOptions.d.ts +3 -3
- package/renderers/support/UniqueValue.d.ts +3 -3
- package/renderers/support/UniqueValueClass.d.ts +3 -3
- package/renderers/support/UniqueValueGroup.d.ts +3 -3
- package/renderers/support/UniqueValueInfo.d.ts +2 -2
- package/renderers/support/pointCloud/ColorClassBreakInfo.d.ts +2 -2
- package/renderers/support/pointCloud/ColorModulation.d.ts +2 -2
- package/renderers/support/pointCloud/ColorUniqueValueInfo.d.ts +2 -2
- package/renderers/visualVariables/VisualVariable.d.ts +2 -2
- package/renderers/visualVariables/support/ColorSizeStop.d.ts +2 -2
- package/renderers/visualVariables/support/ColorStop.d.ts +2 -2
- package/renderers/visualVariables/support/OpacityStop.d.ts +2 -2
- package/renderers/visualVariables/support/SizeStop.d.ts +2 -2
- package/renderers/visualVariables/support/VisualVariableLegendOptions.d.ts +3 -3
- package/rest/featureService/FeatureService.d.ts +2 -2
- package/rest/geoprocessor/GPOptions.d.ts +2 -2
- package/rest/geoprocessor/utils.js +1 -1
- package/rest/knowledgeGraph/DataModel.d.ts +2 -2
- package/rest/knowledgeGraph/FieldIndex.d.ts +2 -2
- package/rest/knowledgeGraph/GraphObject.d.ts +2 -2
- package/rest/knowledgeGraph/GraphObjectType.d.ts +2 -2
- package/rest/knowledgeGraph/GraphProperty.d.ts +2 -2
- package/rest/knowledgeGraph/KnowledgeGraph.d.ts +2 -2
- package/rest/knowledgeGraph/Path.d.ts +2 -2
- package/rest/knowledgeGraph/ServiceDefinition.d.ts +2 -2
- package/rest/knowledgeGraph/SourceTypeValueBehavior.d.ts +2 -2
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.d.ts +2 -2
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.d.ts +2 -2
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +2 -2
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsResultJSON.d.ts +0 -1
- package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +2 -2
- package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.d.ts +0 -1
- package/rest/lastMileDelivery/types.d.ts +0 -1
- package/rest/layerSources/DynamicDataLayer.d.ts +2 -2
- package/rest/layerSources/DynamicMapLayer.d.ts +2 -2
- package/rest/layerSources/JoinTableDataSource.d.ts +2 -2
- package/rest/layerSources/QueryTableDataSource.d.ts +2 -2
- package/rest/layerSources/RasterDataSource.d.ts +2 -2
- package/rest/layerSources/TableDataSource.d.ts +2 -2
- package/rest/networks/circuits/support/CircuitTraceResult.d.ts +2 -2
- package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +2 -2
- package/rest/networks/circuits/support/QueryCircuitsParameters.d.ts +2 -2
- package/rest/networks/support/AggregatedGeometry.d.ts +2 -2
- package/rest/networks/support/Association.d.ts +2 -2
- package/rest/networks/support/AssociationGeometriesResult.d.ts +2 -2
- package/rest/networks/support/FunctionResult.d.ts +2 -2
- package/rest/networks/support/NetworkElement.d.ts +2 -2
- package/rest/networks/support/QueryAssociationsParameters.d.ts +2 -2
- package/rest/networks/support/QueryAssociationsResult.d.ts +2 -2
- package/rest/networks/support/QueryNamedTraceConfigurationsParameters.d.ts +2 -2
- package/rest/networks/support/SynthesizeAssociationGeometriesParameters.d.ts +2 -2
- package/rest/networks/support/TraceLocation.d.ts +3 -3
- package/rest/networks/support/TraceParameters.d.ts +2 -2
- package/rest/networks/support/TraceResult.d.ts +2 -2
- package/rest/networks/support/ValidateNetworkTopologyParameters.d.ts +2 -2
- package/rest/networks/support/ValidateNetworkTopologyResult.d.ts +2 -2
- package/rest/query/support/AttachmentInfo.d.ts +2 -2
- package/rest/support/AddressCandidate.d.ts +2 -2
- package/rest/support/AddressToLocationsParameters.d.ts +2 -2
- package/rest/support/AddressesToLocationsParameters.d.ts +2 -2
- package/rest/support/ArealUnit.d.ts +2 -2
- package/rest/support/AreasAndLengthsParameters.d.ts +2 -2
- package/rest/support/AttachmentQuery.d.ts +2 -2
- package/rest/support/AttributeBinsFeatureSet.d.ts +2 -2
- package/rest/support/AttributeBinsGrouping.d.ts +3 -3
- package/rest/support/AttributeBinsQuery.d.ts +3 -3
- package/rest/support/BaseImageMeasureParameters.d.ts +2 -2
- package/rest/support/BaseImageMeasureResult.d.ts +2 -2
- package/rest/support/BaseImageMeasureResultValue.d.ts +2 -2
- package/rest/support/BinParametersBase.d.ts +3 -3
- package/rest/support/BufferParameters.d.ts +2 -2
- package/rest/support/CameraInfo.d.ts +2 -2
- package/rest/support/CameraInfoMixin.d.ts +0 -1
- package/rest/support/ClosestFacilityParameters.d.ts +3 -3
- package/rest/support/ClosestFacilitySolveResult.d.ts +2 -2
- package/rest/support/ColorRamp.d.ts +2 -2
- package/rest/support/DataFile.d.ts +2 -2
- package/rest/support/DataLayer.d.ts +3 -3
- package/rest/support/DateBinTimeInterval.d.ts +3 -3
- package/rest/support/DensifyParameters.d.ts +2 -2
- package/rest/support/DirectionLine.d.ts +3 -3
- package/rest/support/DirectionPoint.d.ts +3 -3
- package/rest/support/DirectionsEvent.d.ts +2 -2
- package/rest/support/DirectionsString.d.ts +2 -2
- package/rest/support/FeatureSet.d.ts +2 -2
- package/rest/support/FindImagesParameters.d.ts +3 -3
- package/rest/support/FindImagesResult.d.ts +2 -2
- package/rest/support/FindParameters.d.ts +2 -2
- package/rest/support/FindResult.d.ts +2 -2
- package/rest/support/GPMessage.d.ts +2 -2
- package/rest/support/GeneralizeParameters.d.ts +2 -2
- package/rest/support/IdentifyParameters.d.ts +2 -2
- package/rest/support/IdentifyResult.d.ts +2 -2
- package/rest/support/ImageAngleParameters.d.ts +2 -2
- package/rest/support/ImageAngleResult.d.ts +2 -2
- package/rest/support/ImageBoundaryParameters.d.ts +3 -3
- package/rest/support/ImageBoundaryResult.d.ts +2 -2
- package/rest/support/ImageGPSInfo.d.ts +2 -2
- package/rest/support/ImageGPSInfoParameters.d.ts +3 -3
- package/rest/support/ImageGPSInfoResult.d.ts +2 -2
- package/rest/support/ImageHistogramParameters.d.ts +2 -2
- package/rest/support/ImageIdentifyParameters.d.ts +2 -2
- package/rest/support/ImageIdentifyResult.d.ts +2 -2
- package/rest/support/ImageInspectionInfo.d.ts +2 -2
- package/rest/support/ImagePixelLocationParameters.d.ts +2 -2
- package/rest/support/ImagePixelLocationResult.d.ts +2 -2
- package/rest/support/ImageSample.d.ts +2 -2
- package/rest/support/ImageSampleParameters.d.ts +2 -2
- package/rest/support/ImageSampleResult.d.ts +2 -2
- package/rest/support/ImageToMapMultirayParameters.d.ts +3 -3
- package/rest/support/ImageToMapParameters.d.ts +3 -3
- package/rest/support/ImageUrlParameters.d.ts +3 -3
- package/rest/support/ImageUrlResult.d.ts +2 -2
- package/rest/support/ImageVolume.d.ts +2 -2
- package/rest/support/ImageVolumeParameters.d.ts +3 -3
- package/rest/support/ImageVolumeResult.d.ts +2 -2
- package/rest/support/JobInfo.d.ts +2 -2
- package/rest/support/LastMileDeliveryParameters.d.ts +3 -3
- package/rest/support/LegendLayer.d.ts +2 -2
- package/rest/support/LengthsParameters.d.ts +2 -2
- package/rest/support/LinearUnit.d.ts +2 -2
- package/rest/support/LocateSettingBase.d.ts +3 -3
- package/rest/support/LocateSettingSource.d.ts +3 -3
- package/rest/support/LocateSettings.d.ts +3 -3
- package/rest/support/LocateSettingsOverrides.d.ts +3 -3
- package/rest/support/LocationToAddressParameters.d.ts +2 -2
- package/rest/support/MapToImageParameters.d.ts +3 -3
- package/rest/support/MeasureAreaFromImageResult.d.ts +2 -2
- package/rest/support/MeasureFromImageParameters.d.ts +2 -2
- package/rest/support/MeasureLengthFromImageResult.d.ts +2 -2
- package/rest/support/NetworkUrl.d.ts +3 -3
- package/rest/support/NormalizationBinParametersMixin.d.ts +0 -1
- package/rest/support/OffsetParameters.d.ts +2 -2
- package/rest/support/ParameterValue.d.ts +4 -2
- package/rest/support/PointBarrier.d.ts +3 -3
- package/rest/support/PolygonBarrier.d.ts +3 -3
- package/rest/support/PolylineBarrier.d.ts +3 -3
- package/rest/support/ProjectParameters.d.ts +2 -2
- package/rest/support/QuantizationParameters.d.ts +2 -2
- package/rest/support/Query.d.ts +2 -2
- package/rest/support/RasterData.d.ts +2 -2
- package/rest/support/RelationParameters.d.ts +2 -2
- package/rest/support/RelationshipQuery.d.ts +2 -2
- package/rest/support/RouteInfo.d.ts +3 -3
- package/rest/support/RouteParameters.d.ts +3 -3
- package/rest/support/RouteResult.d.ts +2 -2
- package/rest/support/RouteSolveResult.d.ts +2 -2
- package/rest/support/ServiceAreaParameters.d.ts +3 -3
- package/rest/support/ServiceAreaSolveResult.d.ts +2 -2
- package/rest/support/StatisticDefinition.d.ts +2 -2
- package/rest/support/Stop.d.ts +3 -3
- package/rest/support/SuggestLocationsParameters.d.ts +2 -2
- package/rest/support/TimeUnit.d.ts +42 -0
- package/rest/support/TimeUnit.js +5 -0
- package/rest/support/TopFeaturesQuery.d.ts +2 -2
- package/rest/support/TopFilter.d.ts +2 -2
- package/rest/support/TravelMode.d.ts +3 -3
- package/rest/support/TrimExtendParameters.d.ts +2 -2
- package/rest/support/parameterValueUtils.js +1 -1
- package/rest/types.d.ts +1 -1
- package/rest/versionManagement/gdbVersion/support/AlterVersionParameters.d.ts +2 -2
- package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +2 -2
- package/rest/versionManagement/support/CreateVersionParameters.d.ts +2 -2
- package/rest/versionManagement/support/GetVersionInfosParameters.d.ts +2 -2
- package/statistics/types.d.ts +0 -1
- package/support/MapFloorInfo.d.ts +2 -2
- package/support/revision.js +1 -1
- package/symbols/Font.d.ts +2 -2
- package/symbols/LineStyleMarker3D.d.ts +3 -3
- package/symbols/LineSymbolMarker.d.ts +2 -2
- package/symbols/Symbol.d.ts +2 -2
- package/symbols/Symbol3DLayer.d.ts +2 -2
- package/symbols/callouts/Callout3D.d.ts +2 -2
- package/symbols/callouts/LineCallout3DBorder.d.ts +2 -2
- package/symbols/edges/Edges3D.d.ts +2 -2
- package/symbols/patterns/LinePattern3D.d.ts +2 -2
- package/symbols/patterns/Pattern3D.d.ts +2 -2
- package/symbols/support/ElevationInfo.d.ts +10 -4
- package/symbols/support/FeatureExpressionInfo.d.ts +2 -2
- package/symbols/support/IconSymbol3DLayerResource.d.ts +2 -2
- package/symbols/support/ObjectSymbol3DLayerResource.d.ts +2 -2
- package/symbols/support/OccludedVisibility.d.ts +3 -3
- package/symbols/support/Symbol3DFillMaterial.js +1 -1
- package/symbols/support/Symbol3DHalo.d.ts +2 -2
- package/symbols/support/Symbol3DIconOutline.d.ts +2 -2
- package/symbols/support/Symbol3DMaterial.d.ts +6 -4
- package/symbols/support/Symbol3DMaterial.js +1 -1
- package/symbols/support/Symbol3DOutline.d.ts +2 -2
- package/symbols/support/Symbol3DTextBackground.d.ts +3 -3
- package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
- package/symbols/support/types.d.ts +0 -1
- package/tables/AttributeTableTemplate.d.ts +2 -2
- package/tables/elements/AttributeTableAttachmentElement.d.ts +2 -2
- package/tables/elements/AttributeTableElement.d.ts +2 -2
- package/tables/elements/AttributeTableFieldElement.d.ts +2 -2
- package/tables/elements/AttributeTableGroupElement.d.ts +2 -2
- package/tables/elements/AttributeTableRelationshipElement.d.ts +2 -2
- package/tables/support/FieldOrder.d.ts +3 -3
- package/time/TimeExtent.d.ts +2 -2
- package/time/TimeExtent.js +1 -1
- package/time/TimeInterval.d.ts +3 -3
- package/time/types.d.ts +0 -1
- package/versionManagement/VersionManagementService.d.ts +2 -2
- package/versionManagement/VersioningState.d.ts +2 -2
- package/versionManagement/support/type.d.ts +0 -1
- package/views/2d/ViewState.d.ts +2 -2
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/support/MediaLayerInteractionOptions.d.ts +0 -1
- package/views/3d/analysis/Dimension/types.d.ts +0 -1
- package/views/3d/analysis/Slice/types.d.ts +0 -1
- package/views/3d/analysis/Viewshed/types.d.ts +0 -1
- package/views/3d/constraints/AltitudeConstraint.d.ts +2 -2
- package/views/3d/constraints/ClipDistanceConstraint.d.ts +2 -2
- package/views/3d/constraints/Constraints.d.ts +2 -2
- package/views/3d/constraints/TiltConstraint.d.ts +2 -2
- package/views/3d/environment/CloudyWeather.d.ts +2 -2
- package/views/3d/environment/FoggyWeather.d.ts +2 -2
- package/views/3d/environment/RainyWeather.d.ts +2 -2
- package/views/3d/environment/SnowyWeather.d.ts +2 -2
- package/views/3d/environment/SunLighting.d.ts +2 -2
- package/views/3d/environment/SunnyWeather.d.ts +2 -2
- package/views/3d/environment/VirtualLighting.d.ts +2 -2
- package/views/3d/layers/ElevationLayerView3D.js +1 -1
- package/views/3d/layers/FlowSubView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/webgl/ManagedFBO.js +1 -1
- package/views/3d/webgl/ManagedFBOResource.d.ts +0 -1
- package/views/3d/webgl/RenderNode.d.ts +1 -1
- package/views/3d/webgl/RenderNode.js +1 -1
- package/views/3d/webgl/types.d.ts +0 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillColor.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillDepth.js +1 -1
- package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
- package/views/3d/webgl.d.ts +16 -8
- package/views/3d/webgl.js +1 -1
- package/views/Theme.d.ts +2 -2
- package/views/VideoView.d.ts +4 -4
- package/views/View.d.ts +3 -3
- package/views/View2D.d.ts +2 -2
- package/views/ViewAnimation.d.ts +2 -2
- package/views/Viewport2DMixin.d.ts +0 -2
- package/views/analysis/ElevationProfile/ElevationProfileResult.d.ts +2 -2
- package/views/animation/types.d.ts +0 -1
- package/views/draw/CursorUpdateEvent.d.ts +0 -1
- package/views/draw/DrawAction.d.ts +3 -3
- package/views/draw/DrawCompleteEvent.d.ts +0 -1
- package/views/draw/VertexAddEvent.d.ts +0 -1
- package/views/draw/VertexRemoveEvent.d.ts +0 -1
- package/views/draw/support/managers/{DrawTooltipManager.js → TooltipManager.js} +1 -1
- package/views/draw/types.d.ts +0 -1
- package/views/interactive/Tooltip.d.ts +2 -2
- package/views/interactive/tooltip/types.d.ts +0 -1
- package/views/layers/ImageryTileLayerViewMixin.d.ts +0 -1
- package/views/layers/LayerView.d.ts +3 -3
- package/views/layers/SceneLayerView.js +1 -1
- package/views/layers/types.d.ts +0 -1
- package/views/navigation/types.d.ts +0 -1
- package/views/support/AttributionItem.d.ts +0 -1
- package/views/ui/UI.d.ts +2 -2
- package/webdoc/GeotriggersInfo.d.ts +3 -3
- package/webdoc/IPSInfo.d.ts +3 -3
- package/webdoc/Widgets.d.ts +2 -2
- package/webdoc/applicationProperties/Search.d.ts +2 -2
- package/webdoc/applicationProperties/SearchLayer.d.ts +2 -2
- package/webdoc/applicationProperties/SearchLayerField.d.ts +2 -2
- package/webdoc/applicationProperties/SearchTable.d.ts +2 -2
- package/webdoc/applicationProperties/SearchTableField.d.ts +2 -2
- package/webdoc/applicationProperties/Viewing.d.ts +2 -2
- package/webdoc/geotriggersInfo/DeviceLocationFeed.d.ts +3 -3
- package/webdoc/geotriggersInfo/ExpressionInfo.d.ts +3 -3
- package/webdoc/geotriggersInfo/FeatureFenceParameters.d.ts +3 -3
- package/webdoc/geotriggersInfo/FeatureFilter.d.ts +3 -3
- package/webdoc/geotriggersInfo/FeatureLayerSource.d.ts +3 -3
- package/webdoc/geotriggersInfo/Geotrigger.d.ts +3 -3
- package/webdoc/geotriggersInfo/GeotriggerNotificationOptions.d.ts +3 -3
- package/webdoc/geotriggersInfo/support/typeUtils.d.ts +0 -1
- package/webdoc/ips/AppleIPSProperties.d.ts +3 -3
- package/webdoc/ips/Configuration.d.ts +3 -3
- package/webdoc/ips/GNSSProperties.d.ts +3 -3
- package/webdoc/ips/PathSnappingProperties.d.ts +3 -3
- package/webdoc/ips/PositioningService.d.ts +3 -3
- package/webdoc/ips/SmoothingProperties.d.ts +3 -3
- package/webdoc/support/SlideThumbnail.d.ts +3 -3
- package/webdoc/support/types.d.ts +0 -1
- package/webdoc/widgets/FloorFilter.d.ts +2 -2
- package/webdoc/widgets/TimeSlider.d.ts +2 -2
- package/webmap/ApplicationProperties.d.ts +2 -2
- package/webmap/Bookmark.d.ts +2 -2
- package/webmap/InitialViewProperties.d.ts +2 -2
- package/webmap/background/ColorBackground.d.ts +2 -2
- package/webscene/ApplicationProperties.d.ts +2 -2
- package/webscene/Environment.d.ts +2 -2
- package/webscene/InitialViewProperties.d.ts +3 -3
- package/webscene/Presentation.d.ts +3 -3
- package/webscene/Slide.d.ts +4 -4
- package/webscene/SlideLegendInfo.d.ts +3 -3
- package/webscene/SunLighting.d.ts +2 -2
- package/webscene/VirtualLighting.d.ts +2 -2
- package/webscene/background/Background.d.ts +2 -2
- package/webscene/support/Description.d.ts +3 -3
- package/webscene/support/FeatureReference.d.ts +3 -3
- package/webscene/support/FeatureReferenceId.d.ts +3 -3
- package/webscene/support/LayerReference.d.ts +3 -3
- package/webscene/support/SlideElements.d.ts +3 -3
- package/webscene/support/SlideEnvironment.d.ts +3 -3
- package/webscene/support/SlideGround.d.ts +3 -3
- package/webscene/support/SlidePopupInfo.d.ts +3 -3
- package/webscene/support/SlideVisibleLayer.d.ts +3 -3
- package/webscene/support/Title.d.ts +3 -3
- package/widgets/Attachments/types.d.ts +0 -1
- package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -2
- package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +2 -2
- package/widgets/BasemapLayerList/types.d.ts +0 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +2 -2
- package/widgets/Bookmarks/BookmarksViewModel.d.ts +2 -2
- package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +2 -2
- package/widgets/CatalogLayerList/types.d.ts +0 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +2 -2
- package/widgets/Daylight/DaylightViewModel.d.ts +2 -2
- package/widgets/Daylight/types.d.ts +0 -1
- package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +2 -2
- package/widgets/DirectionalPad/types.d.ts +0 -1
- package/widgets/Directions/DirectionsViewModel.d.ts +2 -2
- package/widgets/Editor/EditorViewModel.d.ts +2 -2
- package/widgets/Editor/UpdateFeaturesWorkflowData.d.ts +2 -2
- package/widgets/Editor/Workflow.d.ts +2 -2
- package/widgets/ElevationProfile/ElevationProfileLine.d.ts +2 -2
- package/widgets/FeatureForm/FeatureFormViewModel.d.ts +3 -3
- package/widgets/FeatureTable/Grid/GridViewModel.d.ts +2 -2
- package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +3 -3
- package/widgets/FeatureTable/support/EditableColumnTemplateMixin.d.ts +0 -1
- package/widgets/FeatureTable/support/TableTemplate.d.ts +3 -3
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +2 -2
- package/widgets/Features/FeaturesViewModel.d.ts +2 -2
- package/widgets/Histogram/types.d.ts +0 -1
- package/widgets/HistogramRangeSlider/types.d.ts +0 -1
- package/widgets/Home/HomeViewModel.d.ts +2 -2
- package/widgets/Home.d.ts +1 -2
- package/widgets/LayerList/LayerListViewModel.d.ts +2 -2
- package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.d.ts +2 -2
- package/widgets/Measurement/types.d.ts +0 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +3 -3
- package/widgets/OrientedImageryViewer/types.d.ts +0 -1
- package/widgets/Print/CustomTemplate.d.ts +2 -2
- package/widgets/Print/PrintViewModel.d.ts +3 -3
- package/widgets/ScaleRangeSlider/types.d.ts +0 -1
- package/widgets/Search/SearchSource.d.ts +2 -2
- package/widgets/Search/SearchViewModel.d.ts +3 -4
- package/widgets/ShadowCast/types.d.ts +0 -1
- package/widgets/Sketch/SketchViewModel.d.ts +2 -2
- package/widgets/Swipe/types.d.ts +0 -1
- package/widgets/TableList/TableListViewModel.d.ts +2 -2
- package/widgets/TimeSlider/TimeSliderViewModel.d.ts +2 -2
- package/widgets/Track/types.d.ts +0 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +2 -2
- package/widgets/ValuePicker/types.d.ts +0 -1
- package/widgets/Weather/types.d.ts +0 -1
- package/widgets/Widget.d.ts +3 -3
- package/widgets/support/GeolocationPositioning.d.ts +2 -2
- package/widgets/support/GridControls/GridControlsViewModel.d.ts +2 -2
- package/widgets/support/GridControls/types.d.ts +0 -1
- package/widgets/support/forms/types.d.ts +0 -1
- package/widgets/types.d.ts +1 -2
- package/assets/esri/core/workers/chunks/3606fc5537c4d11b9554.js +0 -1
- package/assets/esri/core/workers/chunks/3ad7ec46adecf00ae1c2.js +0 -1
- package/assets/esri/core/workers/chunks/3b67aa46a60e35469bf8.js +0 -1
- package/assets/esri/core/workers/chunks/4b09d92c51c4619b548a.js +0 -1
- package/assets/esri/core/workers/chunks/52684c2abc9e8ce793cf.js +0 -1
- package/assets/esri/core/workers/chunks/532935f420ed5f13c011.js +0 -1
- package/assets/esri/core/workers/chunks/5348e4dc55428de9bba7.js +0 -1
- package/assets/esri/core/workers/chunks/53a1c6e008287d1f12f0.js +0 -1
- package/assets/esri/core/workers/chunks/5fc6cada83bf8462d54c.js +0 -1
- package/assets/esri/core/workers/chunks/7a1ec6ac88d974cc5074.js +0 -1
- package/assets/esri/core/workers/chunks/7f76566d9b3801742387.js +0 -1
- package/assets/esri/core/workers/chunks/81e395a93c67749c6487.js +0 -1
- package/assets/esri/core/workers/chunks/8deae3a426eceae73186.js +0 -1
- package/assets/esri/core/workers/chunks/a4ee92867ad5cde25aed.js +0 -1
- package/assets/esri/core/workers/chunks/ab3e457c82fa9bd0203f.js +0 -1
- package/assets/esri/core/workers/chunks/af3d4eba6fe24db3ceba.js +0 -1
- package/assets/esri/core/workers/chunks/b1085fa91724e2d3b24f.js +0 -1
- package/assets/esri/core/workers/chunks/b48b0f512a1cd7226bdc.js +0 -1
- package/assets/esri/core/workers/chunks/c0265669fb616f052b65.js +0 -1
- package/assets/esri/core/workers/chunks/d3c69c9cb3d9c3f5c67a.js +0 -1
- package/assets/esri/core/workers/chunks/d477def8bfd8482596d1.js +0 -1
- package/assets/esri/core/workers/chunks/dd30c1f5da0af72becd1.js +0 -1
- package/assets/esri/core/workers/chunks/dfef6e3d7bbf099de498.js +0 -1
- package/layers/support/ElevationTileData.d.ts +0 -32
- package/rest/geoprocessor/execute.d.ts +0 -6
- /package/layers/buildingSublayers/{utils.d.ts → types.d.ts} +0 -0
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as t}from"tslib";import has from"../../../../core/has.js";import{nextPowerOfTwo as e}from"../../../../core/mathUtils.js";import{disposeMaybe as i,destroyMaybe as r}from"../../../../core/maybe.js";import{property as s,subclass as h}from"../../../../core/accessorSupport/decorators.js";import{ortho as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{set as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UNIT_X as l,ZEROS as c}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{RenderCategory as d,InternalRenderCategory as p}from"../../webgl.js";import{glLayout as _}from"../../support/buffer/glUtil.js";import{newLayout as f}from"../../support/buffer/InterleavedLayout.js";import m from"../../webgl/RenderCamera.js";import g from"../../webgl/RenderNode.js";import{ShaderOutputConfiguration as F}from"../core/shaderLibrary/ShaderOutputConfiguration.js";import{VertexArrayObject as C}from"./VertexArrayObject.js";import{C as w}from"../../../../chunks/CutFillDepth.glsl.js";import{CutFillDepthTechnique as R}from"../shaders/CutFillDepthTechnique.js";import{CutFillDepthTechniqueConfiguration as P}from"../shaders/CutFillDepthTechniqueConfiguration.js";import{C as b}from"../../../../chunks/CutFillReduction.glsl.js";import{CutFillReductionTechnique as T}from"../shaders/CutFillReductionTechnique.js";import{CutFillReductionTechniqueConfiguration as x}from"../shaders/CutFillReductionTechniqueConfiguration.js";import{C as D}from"../../../../chunks/CutFillTargetDepth.glsl.js";import{CutFillTargetDepthTechnique as B}from"../shaders/CutFillTargetDepthTechnique.js";import{ImmediateTask as y,TaskPriority as j}from"../../../support/Scheduler.js";import{Yield as q}from"../../../support/Yield.js";import{PrimitiveType as S,DataType as E}from"../../../webgl/enums.js";import{Sync as v}from"../../../webgl/Sync.js";import{VertexBuffer as O}from"../../../webgl/VertexBuffer.js";let V=class extends g{constructor(t){super(t),this.consumes={required:[d.TRANSPARENT]},this.produces=p.CUTFILL_DEPTH,this._cutFillTargetDepthConfiguration=new F,this._cutFillDepthConfiguration=new P,this._cutFillReductionConfiguration=new x,this._cutFillTargetDepthParameters=new D,this._cutFillDepthParameters=new w,this._cutFillReductionParameters=new b,this.needsRender=!1,this.readyToRun=!1,this.done=!0,this._frameTask=y,this._results=new k,this._localOrigin=u(),this._maxTextureSize=4096,this._width=0,this._height=0,this._reducedWidth=0,this._reducedHeight=0,this._depthFormat=14,this._colorFormat=11,this._numChannels=2,this._targetVao=null,this._numReductions=3,this._reductionPasses=0,this._pixelBufferSize=0,this._pixelBufferOffset=0,this._perReductionPixelBufferSize=0}initialize(){this._frameTask=this.view.resourceController.scheduler.registerTask(j.VOLUME_MEASUREMENT,this),this.addHandles(this._frameTask),this._maxTextureSize=Math.min(has("esri-mobile")?1024:this._maxTextureSize,this.fboCache.rctx.parameters.maxTextureSize),this._cutFillTargetDepthConfiguration.output=7}destroy(){this._targetVao=i(this._targetVao);const t=this.gl;this._sync=r(this._sync),this._pixelBuffer&&(t.deleteBuffer(this._pixelBuffer),this._pixelBuffer=null,this._pixelBufferSize=0)}precompile(){this.techniques.precompile(B,this._cutFillTargetDepthConfiguration),this._cutFillDepthConfiguration.preparePass=0,this.techniques.precompile(R,this._cutFillDepthConfiguration),this._cutFillDepthConfiguration.preparePass=1,this.techniques.precompile(R,this._cutFillDepthConfiguration),this._cutFillReductionConfiguration.reductionPass=0,this.techniques.precompile(T,this._cutFillReductionConfiguration),this._cutFillReductionConfiguration.reductionPass=1,this.techniques.precompile(T,this._cutFillReductionConfiguration),this._cutFillReductionConfiguration.reductionPass=2,this.techniques.precompile(T,this._cutFillReductionConfiguration),this.view.stage.renderer.precompileCutFill()}render(t){const e=t.find(({name:t})=>t===p.CUTFILL_DEPTH);if(!this._orthographicCamera||!this._targetVao||!this.needsRender||this._sync)return e;const i=this.techniques.get(B,this._cutFillTargetDepthConfiguration);this._cutFillDepthConfiguration.preparePass=0;const r=this.techniques.get(R,this._cutFillDepthConfiguration);this._cutFillDepthConfiguration.preparePass=1;const s=this.techniques.get(R,this._cutFillDepthConfiguration);this._cutFillReductionConfiguration.reductionPass=0;const h=this.techniques.get(T,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=1;const o=this.techniques.get(T,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=2;const n=this.techniques.get(T,this._cutFillReductionConfiguration);if(!(i.compiled&&r.compiled&&s.compiled&&h.compiled&&o.compiled&&n.compiled))return this.requestRender(1),e;this.needsRender=!1;const a=this.renderingContext,u=this.fboCache,d=this.gl,_=a.getViewport(),f=u.acquire(this._width,this._height,"cutfill reference depth",this._depthFormat);a.bindFramebuffer(f.fbo),a.setViewport(0,0,this._width,this._height),a.clear(1280),this.view.stage.renderer.renderCutFillReferenceDepth(this._orthographicCamera);const m=u.acquire(this._width,this._height,"cutfill target depth",this._depthFormat);a.bindFramebuffer(m.fbo),a.setViewport(0,0,this._width,this._height),a.setClearDepth(1),a.clear(256),this._cutFillTargetDepthParameters.origin=this._localOrigin,this._cutFillTargetDepthParameters.cutFillCamera=this._orthographicCamera,a.bindTechnique(i,this.bindParameters,this._cutFillTargetDepthParameters),a.bindVAO(this._targetVao),a.drawArrays(S.TRIANGLES,0,this._targetVao.vertexCount("geometry"));const g=u.acquire(this._width,this._height,"cutfill reduction even",this._colorFormat),F=u.acquire(this._width,this._height,"cutfill reduction odd",this._colorFormat);return this._cutFillDepthParameters.referenceDepthTexture=f.depthTexture,this._cutFillDepthParameters.targetDepthTexture=m.depthTexture,this._pixelBuffer||(this._pixelBuffer=d.createBuffer()),d.bindBuffer(d.PIXEL_PACK_BUFFER,this._pixelBuffer),d.bufferData(d.PIXEL_PACK_BUFFER,this._pixelBufferSize,d.STREAM_READ),this._prepareFBO(g,this.width,this.height),a.bindTechnique(r,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(g,F,h),this._prepareFBO(g,this.width,this.height,l),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(g,F,o),this._prepareFBO(g,this.width,this.height,c),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(g,F,n),f.release(),m.release(),g.release(),F.release(),d.bindBuffer(d.PIXEL_PACK_BUFFER,null),a.setViewport(_.x,_.y,_.width,_.height),this._sync=new v(d),setTimeout(()=>this.readyToRun=!0,0),e}setup(t,r){if(!this.done)return;this.done=!1;const s=this.renderingContext,{cameraDimensions:{width:h,height:o},localOriginRenderSpace:n}=t,a=this._maxTextureSize,u=o/h,l=h>o?a:a/u,c=h>o?a*u:a;this._width=e(l),this._height=e(c);const d=[this._width,this._height];this._orthographicCamera=this._createCamera(t,d),this._targetVao=i(this._targetVao),this._targetVao=z(s,r),this._localOrigin=n,this._reductionPasses=Math.ceil(Math.log2(Math.min(this._width,this._height))),this._reducedWidth=Math.ceil(this._width/2**this._reductionPasses),this._reducedHeight=Math.ceil(this._height/2**this._reductionPasses),this._perReductionPixelBufferSize=this._reducedWidth*this._reducedHeight*this._numChannels*4,this._pixelBufferSize=this._perReductionPixelBufferSize*this._numReductions,this._pixelBufferOffset=0}runTask(){if(!this._sync)return void(this.readyToRun=!1);try{if(!this._sync.poll())return q}catch(e){return this.readyToRun=!1,void(this._sync=r(this._sync))}this.readyToRun=!1,this._sync=r(this._sync);const t=this.gl;this._cpuBuffer=new Float32Array(this._pixelBufferSize/4),t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pixelBuffer),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._cpuBuffer),t.bindBuffer(t.PIXEL_PACK_BUFFER,null),this._updateResults(this._cpuBuffer),this.done=!0}start(){0!==this._width&&0!==this._height&&(this.needsRender=!0,this.requestRender(1))}getResults(){return this._results}get width(){return this._width}get height(){return this._height}get updating(){return this.readyToRun||!this.done||this._frameTask.updating}_runPyramidReduction(t,e,i){const r=this.renderingContext,s=this.gl;let h=this._width,o=this._height;for(let n=0;n<this._reductionPasses;n++)h=Math.ceil(h/2),o=Math.ceil(o/2),this._cutFillReductionParameters.depthTexture=t.getTexture(),this._prepareFBO(e,h,o),r.bindTechnique(i,this.bindParameters,this._cutFillReductionParameters),r.screen.draw(),[t,e]=[e,t];s.readPixels(0,0,h,o,33319,E.FLOAT,this._pixelBufferOffset),this._pixelBufferOffset+=this._perReductionPixelBufferSize}_updateResults(t){const e=new U(0,1,a()),i=new U(0,0,a());for(let r=0;r<this._reducedWidth;r++)for(let s=0;s<this._reducedHeight;s++){let h=(r+s*this._reducedWidth)*this._numChannels;const o=this._reducedWidth*this._reducedHeight*this._numChannels;e.totalDepth+=t[h],i.totalDepth+=t[h+1],h+=o;const n=t[h];n<e.labelDepth&&(e.labelDepth=n,L(e.labelCoords,t[h+1],this._width)),h+=o;const a=t[h];a>i.labelDepth&&(i.labelDepth=a,L(i.labelCoords,t[h+1],this._width))}this._results=new k(this._width,this._height,e,i)}_prepareFBO(t,e,i,r=c){const s=this.renderingContext;s.bindFramebuffer(t.fbo),s.setViewport(0,0,e,i),s.setClearColor(r[0],r[1],r[2],r[3]),s.clear(16384)}_createCamera(t,e){const{cameraPositionRenderSpace:i,localOriginRenderSpace:r,northVector:s,cameraDimensions:{width:h,height:n},cameraNearFar:{near:a,far:u}}=t,l=new m({eye:i,center:r,up:s,near:a,far:u});return l.viewport=[0,0,e[0],e[1]],o(l.projectionMatrix,-h/2,h/2,-n/2,n/2,a,u),l}};t([s()],V.prototype,"consumes",void 0),t([s()],V.prototype,"produces",void 0),t([s()],V.prototype,"needsRender",void 0),t([s()],V.prototype,"readyToRun",void 0),t([s()],V.prototype,"done",void 0),t([s()],V.prototype,"updating",null),t([s()],V.prototype,"_frameTask",void 0),V=t([h("esri.views.3d.webgl-engine.lib.CutFillDepth")],V);const A=f().vec3f("position").freeze();function z(t,e){const{positions:i,indices:r}=e,s=A.createBuffer(r.length),h=s.position;for(let n=0;n<r.length;++n){const t=3*r[n];h.set(n,0,i[t]),h.set(n,1,i[t+1]),h.set(n,2,i[t+2])}const o=new O(t,_(A),s.buffer);return new C(t,o)}function L(t,e,i){const r=e%i,s=Math.floor(e/i);n(t,r,s)}class M{constructor(t,e){this.positions=t,this.indices=e}}class U{constructor(t,e,i){this.totalDepth=t,this.labelDepth=e,this.labelCoords=i}}class k{constructor(t=0,e=0,i=new U(0,1,a()),r=new U(0,0,a())){this.width=t,this.height=e,this.cut=i,this.fill=r}}export{V as CutFillDepth,U as DepthResult,k as RenderResult,M as TargetGeometryRenderInfo};
|
|
5
|
+
import{__decorate as t}from"tslib";import has from"../../../../core/has.js";import{nextPowerOfTwo as e}from"../../../../core/mathUtils.js";import{disposeMaybe as i,destroyMaybe as r}from"../../../../core/maybe.js";import{property as s,subclass as h}from"../../../../core/accessorSupport/decorators.js";import{ortho as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{set as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UNIT_X as l,ZEROS as c}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{RenderNodeOutput as d,InternalRenderCategory as p}from"../../webgl.js";import{glLayout as _}from"../../support/buffer/glUtil.js";import{newLayout as f}from"../../support/buffer/InterleavedLayout.js";import m from"../../webgl/RenderCamera.js";import g from"../../webgl/RenderNode.js";import{ShaderOutputConfiguration as F}from"../core/shaderLibrary/ShaderOutputConfiguration.js";import{VertexArrayObject as C}from"./VertexArrayObject.js";import{C as w}from"../../../../chunks/CutFillDepth.glsl.js";import{CutFillDepthTechnique as R}from"../shaders/CutFillDepthTechnique.js";import{CutFillDepthTechniqueConfiguration as P}from"../shaders/CutFillDepthTechniqueConfiguration.js";import{C as b}from"../../../../chunks/CutFillReduction.glsl.js";import{CutFillReductionTechnique as T}from"../shaders/CutFillReductionTechnique.js";import{CutFillReductionTechniqueConfiguration as x}from"../shaders/CutFillReductionTechniqueConfiguration.js";import{C as D}from"../../../../chunks/CutFillTargetDepth.glsl.js";import{CutFillTargetDepthTechnique as B}from"../shaders/CutFillTargetDepthTechnique.js";import{ImmediateTask as y,TaskPriority as j}from"../../../support/Scheduler.js";import{Yield as q}from"../../../support/Yield.js";import{PrimitiveType as S,DataType as E}from"../../../webgl/enums.js";import{Sync as v}from"../../../webgl/Sync.js";import{VertexBuffer as O}from"../../../webgl/VertexBuffer.js";let V=class extends g{constructor(t){super(t),this.consumes={required:[d.TRANSPARENT]},this.produces=p.CUTFILL_DEPTH,this._cutFillTargetDepthConfiguration=new F,this._cutFillDepthConfiguration=new P,this._cutFillReductionConfiguration=new x,this._cutFillTargetDepthParameters=new D,this._cutFillDepthParameters=new w,this._cutFillReductionParameters=new b,this.needsRender=!1,this.readyToRun=!1,this.done=!0,this._frameTask=y,this._results=new k,this._localOrigin=u(),this._maxTextureSize=4096,this._width=0,this._height=0,this._reducedWidth=0,this._reducedHeight=0,this._depthFormat=14,this._colorFormat=11,this._numChannels=2,this._targetVao=null,this._numReductions=3,this._reductionPasses=0,this._pixelBufferSize=0,this._pixelBufferOffset=0,this._perReductionPixelBufferSize=0}initialize(){this._frameTask=this.view.resourceController.scheduler.registerTask(j.VOLUME_MEASUREMENT,this),this.addHandles(this._frameTask),this._maxTextureSize=Math.min(has("esri-mobile")?1024:this._maxTextureSize,this.fboCache.rctx.parameters.maxTextureSize),this._cutFillTargetDepthConfiguration.output=7}destroy(){this._targetVao=i(this._targetVao);const t=this.gl;this._sync=r(this._sync),this._pixelBuffer&&(t.deleteBuffer(this._pixelBuffer),this._pixelBuffer=null,this._pixelBufferSize=0)}precompile(){this.techniques.precompile(B,this._cutFillTargetDepthConfiguration),this._cutFillDepthConfiguration.preparePass=0,this.techniques.precompile(R,this._cutFillDepthConfiguration),this._cutFillDepthConfiguration.preparePass=1,this.techniques.precompile(R,this._cutFillDepthConfiguration),this._cutFillReductionConfiguration.reductionPass=0,this.techniques.precompile(T,this._cutFillReductionConfiguration),this._cutFillReductionConfiguration.reductionPass=1,this.techniques.precompile(T,this._cutFillReductionConfiguration),this._cutFillReductionConfiguration.reductionPass=2,this.techniques.precompile(T,this._cutFillReductionConfiguration),this.view.stage.renderer.precompileCutFill()}render(t){const e=t.find(({name:t})=>t===p.CUTFILL_DEPTH);if(!this._orthographicCamera||!this._targetVao||!this.needsRender||this._sync)return e;const i=this.techniques.get(B,this._cutFillTargetDepthConfiguration);this._cutFillDepthConfiguration.preparePass=0;const r=this.techniques.get(R,this._cutFillDepthConfiguration);this._cutFillDepthConfiguration.preparePass=1;const s=this.techniques.get(R,this._cutFillDepthConfiguration);this._cutFillReductionConfiguration.reductionPass=0;const h=this.techniques.get(T,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=1;const o=this.techniques.get(T,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=2;const n=this.techniques.get(T,this._cutFillReductionConfiguration);if(!(i.compiled&&r.compiled&&s.compiled&&h.compiled&&o.compiled&&n.compiled))return this.requestRender(1),e;this.needsRender=!1;const a=this.renderingContext,u=this.fboCache,d=this.gl,_=a.getViewport(),f=u.acquire(this._width,this._height,"cutfill reference depth",this._depthFormat);a.bindFramebuffer(f.fbo),a.setViewport(0,0,this._width,this._height),a.clear(1280),this.view.stage.renderer.renderCutFillReferenceDepth(this._orthographicCamera);const m=u.acquire(this._width,this._height,"cutfill target depth",this._depthFormat);a.bindFramebuffer(m.fbo),a.setViewport(0,0,this._width,this._height),a.setClearDepth(1),a.clear(256),this._cutFillTargetDepthParameters.origin=this._localOrigin,this._cutFillTargetDepthParameters.cutFillCamera=this._orthographicCamera,a.bindTechnique(i,this.bindParameters,this._cutFillTargetDepthParameters),a.bindVAO(this._targetVao),a.drawArrays(S.TRIANGLES,0,this._targetVao.vertexCount("geometry"));const g=u.acquire(this._width,this._height,"cutfill reduction even",this._colorFormat),F=u.acquire(this._width,this._height,"cutfill reduction odd",this._colorFormat);return this._cutFillDepthParameters.referenceDepthTexture=f.depthTexture,this._cutFillDepthParameters.targetDepthTexture=m.depthTexture,this._pixelBuffer||(this._pixelBuffer=d.createBuffer()),d.bindBuffer(d.PIXEL_PACK_BUFFER,this._pixelBuffer),d.bufferData(d.PIXEL_PACK_BUFFER,this._pixelBufferSize,d.STREAM_READ),this._prepareFBO(g,this.width,this.height),a.bindTechnique(r,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(g,F,h),this._prepareFBO(g,this.width,this.height,l),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(g,F,o),this._prepareFBO(g,this.width,this.height,c),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(g,F,n),f.release(),m.release(),g.release(),F.release(),d.bindBuffer(d.PIXEL_PACK_BUFFER,null),a.setViewport(_.x,_.y,_.width,_.height),this._sync=new v(d),setTimeout(()=>this.readyToRun=!0,0),e}setup(t,r){if(!this.done)return;this.done=!1;const s=this.renderingContext,{cameraDimensions:{width:h,height:o},localOriginRenderSpace:n}=t,a=this._maxTextureSize,u=o/h,l=h>o?a:a/u,c=h>o?a*u:a;this._width=e(l),this._height=e(c);const d=[this._width,this._height];this._orthographicCamera=this._createCamera(t,d),this._targetVao=i(this._targetVao),this._targetVao=z(s,r),this._localOrigin=n,this._reductionPasses=Math.ceil(Math.log2(Math.min(this._width,this._height))),this._reducedWidth=Math.ceil(this._width/2**this._reductionPasses),this._reducedHeight=Math.ceil(this._height/2**this._reductionPasses),this._perReductionPixelBufferSize=this._reducedWidth*this._reducedHeight*this._numChannels*4,this._pixelBufferSize=this._perReductionPixelBufferSize*this._numReductions,this._pixelBufferOffset=0}runTask(){if(!this._sync)return void(this.readyToRun=!1);try{if(!this._sync.poll())return q}catch(e){return this.readyToRun=!1,void(this._sync=r(this._sync))}this.readyToRun=!1,this._sync=r(this._sync);const t=this.gl;this._cpuBuffer=new Float32Array(this._pixelBufferSize/4),t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pixelBuffer),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._cpuBuffer),t.bindBuffer(t.PIXEL_PACK_BUFFER,null),this._updateResults(this._cpuBuffer),this.done=!0}start(){0!==this._width&&0!==this._height&&(this.needsRender=!0,this.requestRender(1))}getResults(){return this._results}get width(){return this._width}get height(){return this._height}get updating(){return this.readyToRun||!this.done||this._frameTask.updating}_runPyramidReduction(t,e,i){const r=this.renderingContext,s=this.gl;let h=this._width,o=this._height;for(let n=0;n<this._reductionPasses;n++)h=Math.ceil(h/2),o=Math.ceil(o/2),this._cutFillReductionParameters.depthTexture=t.getTexture(),this._prepareFBO(e,h,o),r.bindTechnique(i,this.bindParameters,this._cutFillReductionParameters),r.screen.draw(),[t,e]=[e,t];s.readPixels(0,0,h,o,33319,E.FLOAT,this._pixelBufferOffset),this._pixelBufferOffset+=this._perReductionPixelBufferSize}_updateResults(t){const e=new U(0,1,a()),i=new U(0,0,a());for(let r=0;r<this._reducedWidth;r++)for(let s=0;s<this._reducedHeight;s++){let h=(r+s*this._reducedWidth)*this._numChannels;const o=this._reducedWidth*this._reducedHeight*this._numChannels;e.totalDepth+=t[h],i.totalDepth+=t[h+1],h+=o;const n=t[h];n<e.labelDepth&&(e.labelDepth=n,L(e.labelCoords,t[h+1],this._width)),h+=o;const a=t[h];a>i.labelDepth&&(i.labelDepth=a,L(i.labelCoords,t[h+1],this._width))}this._results=new k(this._width,this._height,e,i)}_prepareFBO(t,e,i,r=c){const s=this.renderingContext;s.bindFramebuffer(t.fbo),s.setViewport(0,0,e,i),s.setClearColor(r[0],r[1],r[2],r[3]),s.clear(16384)}_createCamera(t,e){const{cameraPositionRenderSpace:i,localOriginRenderSpace:r,northVector:s,cameraDimensions:{width:h,height:n},cameraNearFar:{near:a,far:u}}=t,l=new m({eye:i,center:r,up:s,near:a,far:u});return l.viewport=[0,0,e[0],e[1]],o(l.projectionMatrix,-h/2,h/2,-n/2,n/2,a,u),l}};t([s()],V.prototype,"consumes",void 0),t([s()],V.prototype,"produces",void 0),t([s()],V.prototype,"needsRender",void 0),t([s()],V.prototype,"readyToRun",void 0),t([s()],V.prototype,"done",void 0),t([s()],V.prototype,"updating",null),t([s()],V.prototype,"_frameTask",void 0),V=t([h("esri.views.3d.webgl-engine.lib.CutFillDepth")],V);const A=f().vec3f("position").freeze();function z(t,e){const{positions:i,indices:r}=e,s=A.createBuffer(r.length),h=s.position;for(let n=0;n<r.length;++n){const t=3*r[n];h.set(n,0,i[t]),h.set(n,1,i[t+1]),h.set(n,2,i[t+2])}const o=new O(t,_(A),s.buffer);return new C(t,o)}function L(t,e,i){const r=e%i,s=Math.floor(e/i);n(t,r,s)}class M{constructor(t,e){this.positions=t,this.indices=e}}class U{constructor(t,e,i){this.totalDepth=t,this.labelDepth=e,this.labelCoords=i}}class k{constructor(t=0,e=0,i=new U(0,1,a()),r=new U(0,0,a())){this.width=t,this.height=e,this.cut=i,this.fill=r}}export{V as CutFillDepth,U as DepthResult,k as RenderResult,M as TargetGeometryRenderInfo};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as t}from"tslib";import"../../../../core/has.js";import{disposeMaybe as e,destroyMaybe as i}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{multiply as s,fromTranslation as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as u,sub as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{
|
|
5
|
+
import{__decorate as t}from"tslib";import"../../../../core/has.js";import{disposeMaybe as e,destroyMaybe as i}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{multiply as s,fromTranslation as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as u,sub as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{RenderNodeOutput as c}from"../../webgl.js";import{debugFlags as f}from"../../support/debugFlags.js";import{glLayout as d}from"../../support/buffer/glUtil.js";import{newLayout as _}from"../../support/buffer/InterleavedLayout.js";import l from"../../webgl/RenderNode.js";import{Pos2Locations as m}from"./DefaultVertexBufferLayouts.js";import{VertexArrayObject as g}from"./VertexArrayObject.js";import{TaskPriority as x}from"../../../support/Scheduler.js";import{Yield as v}from"../../../support/Yield.js";import{BufferObject as b}from"../../../webgl/BufferObject.js";import{DataType as w,PixelType as y}from"../../../webgl/enums.js";import{makePipelineState as T,defaultColorWrite as j}from"../../../webgl/renderState.js";import{Sync as P}from"../../../webgl/Sync.js";import C from"../../../webgl/Texture.js";import{TextureDescriptor as B}from"../../../webgl/TextureDescriptor.js";import{fromLayout as O}from"../../../webgl/VertexAttributeLocations.js";import{VertexBuffer as D}from"../../../webgl/VertexBuffer.js";let M=class extends l{constructor(t){super(t),this.category=c.COMPOSITE,this._debugVao=null,this._debugVaoLength=0,this.readyToRun=!1,this.done=!0,this._start=!1,this._origin=p(),this._textureWidth=256,this._uploadBuffer=new Float32Array(3*this._textureWidth),this._counter=0,this._width=0,this._height=0,this._pipeline=T({colorWrite:j}),this._format=0}initialize(){const t=this.view.resourceController.scheduler.registerTask(x.GRAPHICS_CORE,this);this.addHandles(t),this.produces="disabled",this.consumes.required=[this.category],this.formatOverride&&(this._format=this.formatOverride)}destroy(){this._program=e(this._program),this._debugProgram=e(this._debugProgram),this._debugVao=e(this._debugVao),this._sync=i(this._sync),this._pixelBuffer=e(this._pixelBuffer),this._texture=e(this._texture)}precompile(){this._ensureProgram(this.renderingContext)}render(t){const e=t.find(({name:t})=>t===this.category),i=this.renderingContext,r=this.gl,o=e.getTexture(r.DEPTH_STENCIL_ATTACHMENT),s=this.view.stage?.renderer.fboCache;if(!o||!s||this._sync||!this._start)return e;this._start=!1,this.produces=f.OCCLUSION_QUERY_DEBUG_PIXEL?this.category:"disabled";const n=s.acquire(this._width,this._height,"hud visibility",10);i.bindFramebuffer(n.fbo),i.setPipelineState(this._pipeline);const h=this._ensureProgram(i);return i.useProgram(h),F(h,this.camera,this._origin),i.bindTexture(o,0),h.setUniform1i("depthTex",0),i.bindTexture(this._texture,1),h.setUniform1i("positionTex",1),h.setUniform1i("count",this._counter),i.screen.draw(),0===this._format&&(this._format=6403===r.getParameter(r.IMPLEMENTATION_COLOR_READ_FORMAT)&&r.getParameter(r.IMPLEMENTATION_COLOR_READ_TYPE)===w.FLOAT?6403:6408),this._pixelBuffer??=b.createPixelPack(i,r.STREAM_READ),this._pixelBuffer.setSize(this._width*this._height*(6403===this._format?4:16)),i.bindBuffer(this._pixelBuffer),r.readPixels(0,0,this._width,this._height,this._format,w.FLOAT,0),i.unbindBuffer(35051),i.bindFramebuffer(null),n.release(),this._sync=new P(r),setTimeout(()=>this.readyToRun=!0,0),e}runTask(){if(this._sync&&this._pixelBuffer){try{if(!this._sync.poll())return v}catch(t){return this.readyToRun=!1,void(this._sync=i(this._sync))}this.readyToRun=!1,this._sync=i(this._sync),this._cpuBuffer=new Float32Array(this._width*this._height*(6403===this._format?1:4)),this._pixelBuffer.getSubData(this._cpuBuffer),this.done=!0}else this.readyToRun=!1}cancel(){this._start=!1,this._sync=i(this._sync)}init(t,e){this.cancel();const i=this._textureWidth;if(this._width=i,this._height=Math.ceil(t/i),this._counter=0,this._texture?.dispose(),0===this._height)return;const r=new B(this._width,this._height);r.pixelFormat=6407,r.dataType=y.FLOAT,r.samplingMode=9728,this._texture=new C(this.renderingContext,r),this.done=!1,u(this._origin,Math.fround(e[0]),Math.fround(e[1]),Math.fround(e[2]))}addPosition(t){const e=this._width;if(this._counter>=e*this._height)return-1;const i=this._counter%e;return a(L,t,this._origin),this._uploadBuffer[3*i+0]=L[0],this._uploadBuffer[3*i+1]=L[1],this._uploadBuffer[3*i+2]=L[2],i===e-1&&this._flush(),this._counter++}start(){if(0===this._width||0===this._height)return void(this.done=!0);const t=this._width;this._counter%t>0&&this._flush(),this.produces=this.category,this._start=!0,this.requestRender(1)}getOcclusion(t){return this._cpuBuffer?.[6403===this._format?t:4*t]??-1}get usedMemory(){return(this._texture?.usedMemory??0)+(this._pixelBuffer?.usedMemory??0)+4*(this._uploadBuffer?.length??0)+4*(this._cpuBuffer?.length??0)}_flush(){const t=this._width,e=Math.floor(this._counter/t);this._texture?.updateData(0,0,e,t,1,this._uploadBuffer)}_ensureProgram(t){return this._program??=t.programCache.acquire(R,E,m),this._program}_ensureDebugProgram(t){return this._debugProgram??=t.programCache.acquire(V,A,z),this._debugProgram}_ensureDebugVao(t,i){if(!this._debugVao||this._debugVaoLength<i){const r=new Float32Array(i);for(let t=0;t<i;t++)r[t]=t;this._debugVao=e(this._debugVao),this._debugVao=new g(t,new D(t,I,r))}return this._debugVao}};t([r()],M.prototype,"category",void 0),t([r()],M.prototype,"formatOverride",void 0),t([r()],M.prototype,"readyToRun",void 0),t([r()],M.prototype,"done",void 0),M=t([o("esri.views.3d.webgl-engine.lib.GPUPointOcclusionQuery")],M);const V="#version 300 es\nprecision highp float;\nprecision highp int;\n\nin highp float componentIndex;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp sampler2D positionTex;\n\nvoid main() {\n int width = textureSize(positionTex, 0).x;\n int u = int(componentIndex) % width;\n int v = int(componentIndex) / width;\n\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n gl_Position = projected;\n gl_PointSize = 1.0;\n}",A="#version 300 es\nout highp vec4 fragColor;\nuniform lowp vec4 color;\nvoid main() {\n fragColor = color;\n}\n",R="#version 300 es\nprecision highp float;\nin vec2 position;\n\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}",E="#version 300 es\nprecision highp float;\nout highp vec4 fragColor;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp int count;\n\nuniform highp sampler2D depthTex;\nuniform highp sampler2D positionTex;\n\nfloat linearizeDepth(float depth) {\n float depthNdc = depth * 2.0 - 1.0;\n float c1 = proj[3][2];\n float c2 = proj[2][2];\n return -c1 / (depthNdc + c2 + 1e-7);\n}\n\nvoid main() {\n int u = int(floor(gl_FragCoord.x));\n int v = int(floor(gl_FragCoord.y));\n if (u + v * textureSize(positionTex, 0).x >= count) {\n fragColor = vec4(-1);\n return;\n }\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n vec3 clipPos = projected.xyz / projected.w;\n\n if (clipPos.x < -1.0 || clipPos.x > 1.0 || clipPos.y < -1.0 || clipPos.y > 1.0) {\n fragColor = vec4(-1);\n return;\n }\n\n vec3 uvDepth = 0.5 * clipPos + vec3(0.5);\n\n float depth = texture(depthTex, uvDepth.xy).r;\n\n if (uvDepth.z <= depth) {\n fragColor = vec4(0);\n return;\n }\n\n fragColor = vec4(linearizeDepth(depth) - linearizeDepth(uvDepth.z));\n}\n";function F(t,e,i){s(S,e.viewMatrix,n(S,i)),t.setUniformMatrix4fv("view",S),t.setUniformMatrix4fv("proj",e.projectionMatrix)}const L=p(),S=h(),I=d(_().f32("componentIndex")),z=O(I);export{M as GPUPointOcclusionQuery};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as t}from"tslib";import{watch as e}from"../../../../core/reactiveUtils.js";import{property as s,subclass as i}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{subtract as r,length as n,scale as o,negate as l,dot as h,squaredLength as m,copy as p,floor as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as c,clone as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as _}from"../../../../geometry/support/plane.js";import{fromPoints as g}from"../../../../geometry/support/ray.js";import{Sphere as P}from"../../../../geometry/support/sphere.js";import{
|
|
5
|
+
import{__decorate as t}from"tslib";import{watch as e}from"../../../../core/reactiveUtils.js";import{property as s,subclass as i}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{subtract as r,length as n,scale as o,negate as l,dot as h,squaredLength as m,copy as p,floor as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as c,clone as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as _}from"../../../../geometry/support/plane.js";import{fromPoints as g}from"../../../../geometry/support/ray.js";import{Sphere as P}from"../../../../geometry/support/sphere.js";import{RenderNodeOutput as b}from"../../webgl.js";import{GaussianSplatTarget as C}from"../../layers/i3s/Intersector.js";import{GaussianSplatDataStore as v}from"../../support/gaussianSplatting/GaussianSplatDataStore.js";import w from"../../webgl/RenderNode.js";import{IntersectorResult as x}from"./IntersectorResult.js";import{G as y}from"../../../../chunks/GaussianSplat.glsl.js";import{G as S}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as q}from"../shaders/GaussianSplatCompositionTechnique.js";import{G as j}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as D}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as T}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as G}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{DepthStencilAttachment as A,ColorAttachment1 as F,PrimitiveType as R}from"../../../webgl/enums.js";var E;let H=class extends w{static{E=this}constructor(t){super(t),this.gaussianPosition=c(),this.intersectionRayDir=c(),this.intersectionPlane=_(),this._slicePlaneEnabled=!1,this._data=null,this.produces=b.OPAQUE,this.type=0,this.isGround=!1,this.layerViewUid="",this._passParameters=new y,this._compositionPassParameters=new S,this._depthCompositionPassParameters=new j,this._previousCameraPosition=c(),this._previousCameraDirection=c(),this.fadeHelper=null,this._configuration=new G(t.view.state.isGlobal)}async initialize(){this._data=new v(this),this.view.sceneIntersectionHelper.addIntersectionHandler(this),this.addHandles([e(()=>this.view.state.camera,()=>this._onCameraChange())])}precompile(){this._configuration.alphaCutoff=this.view.qualitySettings.gaussianSplat.minimumOpacity,this._configuration.terrainDepthTest=this.bindParameters.terrainDepthTest,this._configuration.fadingEnabled=this.fadeHelper.fadingEnabled,this.techniques.precompile(T,this._configuration),this.techniques.precompile(q),this.techniques.precompile(D)}render(t){const e=t.find(({name:t})=>t===b.OPAQUE);if(this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return e;const s=this.techniques.get(T,this._configuration),i=this.techniques.get(q),a=this.techniques.get(D);if(!s.compiled||!a.compiled||!i.compiled)return this.requestRender(1),e;const{fullWidth:r,fullHeight:n}=this.bindParameters.camera;this._prepareParameters(n,r);const o=this.renderingContext,l=this.fboCache,h=l.acquire(r,n,"gaussian color output"),m=e.getAttachment(A);h.attachDepth(m),this._renderGaussianColorAndDepth(h,s);const p=l.acquire(r,n,this.produces);return this._depthCompositionPassParameters.splatDepth=h.getTexture(F),p.attachDepth(e.getAttachment(A)),o.bindFramebuffer(p.fbo),o.bindTechnique(a,this.bindParameters,this._depthCompositionPassParameters),o.screen.draw(),this._compositionPassParameters.color=e.getTexture(),this._compositionPassParameters.splatColor=h.getTexture(),o.bindFramebuffer(p.fbo),o.bindTechnique(i,this.bindParameters,this._compositionPassParameters),o.screen.draw(),h.release(),p}intersect(t,e,s,i){const{gaussianPosition:a,intersectionRayDir:p,intersectionPlane:u,layerViewUid:_}=this,b=g(s,i);r(p,i,s);const v=1/n(p);o(p,p,v);const w=c();l(w,p),f(u,p[0],p[1],p[2],-h(p,s));const y=new I,S=new I,q=new Array;this._data.visibleGaussianTiles.forEach(r=>{const{maxScale:n}=r,o=r.obb.minimumDistancePlane(u),l=r.obb.maximumDistancePlane(u),c=l<0,f=null!=y.dist&&null!=S.dist&&y.dist<o*v&&S.dist>l*v;if(c||f)return;if(!new P(r.obb.center,r.obb.radius+n).intersectRay(b,null))return;if(!r.obb.intersectRay(s,p,n))return;const{positions:g,squaredScales:C,gaussianAtlasIndices:x}=r,j=x.length;for(let u=0;u<j;u++){const r=3*u;a[0]=g[r]-s[0],a[1]=g[r+1]-s[1],a[2]=g[r+2]-s[2];const n=C[u],o=h(a,p),l=o*o;if(m(a)-l>n)continue;const c=o*v,f=t=>(t.point=t.point?t.point.fill(a[0],a[1],a[2]):d(a),t.dist=c,t.normal=w,t.layerViewUid=_,t);if((null==y.dist||c<y.dist)&&(null==e||e(s,i,c))&&f(y),0!==t.options.store&&(null==S.dist||c>S.dist)&&(null==e||e(s,i,c))&&f(S),2===t.options.store&&(null==e||e(s,i,c))){const t=new I;q.push(f(t))}}});const j=(t,e)=>{const{layerViewUid:s}=e,i=new C(e.point,s);t.set(0,i,e.dist,e.normal)};if(M(y)){const e=t.results.min;(null==e.distance||y.dist<e.distance)&&j(e,y)}if(M(S)&&0!==t.options.store){const e=t.results.max;(null==e.distance||S.dist>e.distance)&&j(e,S)}if(2===t.options.store)for(const r of q){const e=new x(b);j(e,r),t.results.all.push(e)}}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(t){this._slicePlaneEnabled!==t&&(this._slicePlaneEnabled=t,this.requestRender(1))}get data(){return this._data}destroy(){this._data.destroy(),super.destroy()}_onCameraChange(){const t=this.view.state.camera.eye,e=this.view.state.camera.ray.direction,s=.001;(Math.abs(t[0]-this._previousCameraPosition[0])>s||Math.abs(t[1]-this._previousCameraPosition[1])>s||Math.abs(t[2]-this._previousCameraPosition[2])>s||Math.abs(e[0]-this._previousCameraDirection[0])>s||Math.abs(e[1]-this._previousCameraDirection[1])>s||Math.abs(e[2]-this._previousCameraDirection[2])>s)&&(p(this._previousCameraPosition,t),p(this._previousCameraDirection,e),this._data.requestSort())}_prepareParameters(t,e){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const s=Math.tan(.5*this.camera.fovY),i=s/t*e;a(this._passParameters.tanFov,i,s),this._passParameters.focalLength=t/(2*s);const r=this.view.qualitySettings.gaussianSplat.minimumSplatPixelRadius;this._passParameters.minSplatRadius=r*Math.sqrt(e*t)/Math.sqrt(2073600),this._prepareHighPrecisionCameraPosition()}_renderGaussianColorAndDepth(t,e){const s=this.renderingContext;t.acquireColor(F,8,"gaussian depth output"),s.bindFramebuffer(t.fbo),s.setClearColor(0,0,0,0),s.clear(16384),this.renderingContext.bindTechnique(e,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(R.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){o(this._passParameters.tileCameraPosition,this.camera.eye,1/E.tileSize),u(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),o(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,E.tileSize),r(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this.fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const t=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this.fadeHelper.updateAllTileFading(t),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};function M(t){return null!=t.dist&&null!=t.point}t([s({constructOnly:!0})],H.prototype,"fadeHelper",void 0),H=E=t([i("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],H);class I{constructor(){this.point=null,this.dist=null,this.normal=null,this.layerViewUid=""}}export{H as GaussianSplatRenderNode};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{clamp as i,lerp as s}from"../../../../core/mathUtils.js";import{removeMaybe as a,abortMaybe as n,destroyMaybe as h,releaseMaybe as o}from"../../../../core/maybe.js";import{throwIfAborted as d}from"../../../../core/promiseUtils.js";import{watch as _,syncAndInitial as l,initial as u,sync as p}from"../../../../core/reactiveUtils.js";import{signal as m}from"../../../../core/signal.js";import{Milliseconds as c}from"../../../../core/time.js";import{property as f,subclass as g}from"../../../../core/accessorSupport/decorators.js";import{equals as b,invert as P,multiply as C}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as w,create as T}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as S}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ZEROS as E}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{fromValues as x,ZEROS as A}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as D}from"../../../../geometry/support/Indices.js";import{RenderCategory as I,InternalRenderCategory as R}from"../../webgl.js";import{innerAtmosphereFadeStart as y}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as O}from"../../state/NearFarHeuristic.js";import{debugFlags as F}from"../../support/debugFlags.js";import{FBOCache as H,defaultWebGLFBO as v}from"../core/FBOCache.js";import{RenderPassManager as M}from"../core/renderPasses/RenderPassManager.js";import{isColor as N}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as q}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as G}from"../effects/RenderNodes.js";import{RenderPluginManager as L}from"../effects/RenderPluginManager.js";import{Blit as U}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as V,renderHighlightBuffer as j}from"../effects/highlight/Highlight.js";import{OITBlend as B}from"../effects/transparency/OITBlend.js";import{AnimationTimer as k}from"./AnimationTimer.js";import{AnimationTimeStep as z}from"./AnimationTimeStep.js";import{BoundingInfo as W}from"./BoundingInfo.js";import{DepthRange as Q}from"./DepthRange.js";import{depthRangeFromScene as Y}from"./depthRangeUtils.js";import{hudFragmentOpacityParameters as Z}from"./hudFragmentOpacityParameters.js";import{MainFramebuffer as J}from"./MainFramebuffer.js";import{RenderContext as K,defaultRenderOccludedMask as X}from"./RenderContext.js";import{RendererBase as $}from"./RendererBase.js";import{setupFeatureDefaults as ee}from"./RenderFeature.js";import{RenderPluginInput as te}from"./RenderPluginInput.js";import{ShadowAccumulator as re}from"./ShadowAccumulator.js";import{ShadowMap as ie}from"./ShadowMap.js";import se from"./SliceHelper.js";import{MergedRenderer as ae}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as ne}from"../parts/renderUtils.js";import{RendererPerformanceInfo as he,PerformanceCategory as oe}from"../statistics/RendererPerformanceInfo.js";import{PixelType as de,ColorAttachment1 as _e,ColorAttachment2 as le}from"../../../webgl/enums.js";let ue=class extends ${constructor(e,t,r,i,s,a){super({stage:e}),this._techniques=r,this._rctx=i,this._compositingHelper=s,this._requestRender=a,this._pluginsHas={hudElements:!1,water:!1},this.renderPassManager=new M,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=x(0,0,0,1),this._sliceHelper=new se,this.sceneDepthRange=m(Q.Infinite),this._state=m(2),this._hasAnimations=!1,this._animationTimestep=new z,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=m(0),this._lastFrameTime=c(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new te,this._releaseNormals=e=>{e.some(({name:e})=>"normals"===e)&&this._pluginInput.release("normals")},this._debugNeedsDepth=!1,this._fboCache=new H(i),this._renderStateFeatures=m(ee(e.view.qualityProfile)),this._framebuffer=new J(this.fboCache),this._performanceInfo=new he(this._rctx),this._shadowMap=new ie(this.fboCache,e.viewingMode),this._shadowAccumulator=new re(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,i)=>{const s=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,i,!0,s),this._renderShadowCascades(3,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},a),this._renderContext=new K(this._rctx,this._shadowMap,r),this._nodes=new G(this._renderContext),this._plugins=new L({renderContext:this._renderContext,techniques:r,materials:t,requestRender:a,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([_(()=>e.view.state.camera,()=>a(),l),_(()=>F.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},a()},u),_(()=>e.view.environment.background?.color,e=>{const t=e?e.toUnitRGBA():A;S(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),a()},l),_(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=q,l),_(()=>this._bindParameters.clouds.fadeFactor,()=>{this._bindParameters.fadeLighting(),this._requestRender(2)},p),_(()=>this._bindParameters.clouds.data?.state,()=>a(),p),_(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,a()},u)])}destroy(){this._gpuTimerHandle=a(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.destroy(),this._shadowAccumulator=null,this._loadEdgeViewTask=n(this._loadEdgeViewTask),this._edgeView=h(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._blit=null,this._oitBlend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,W.prune(),ae.prune(),D()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _framebufferSize(){return this._framebuffer.size}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e){this._renderStateFeatures.value=ee(e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(i=>i.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&this.isFeatureEnabled(6)}get _hasHighlights(){return this._plugins.produces(8,2,4,19,14,15)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,14,15)}get hasSSAO(){return this.isFeatureEnabled(5)&&!this._inGlobeView}get hasSMAA(){return this.isFeatureEnabled(0)}get hasEmitters(){return this._plugins.hasEmitters&&this._hasFloatBufferBlendSupport}get highResolutionAtmosphere(){return this.isFeatureEnabled(4)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=o(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeOffscreenBuffers(),this._bindParameters.depth=o(this._bindParameters.depth),this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");d(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:xe(this.stage.view.resourceController)});return this.addHandles(_(()=>r.updating,()=>this._requestRender(),p)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&b(this._bindParameters.ssr.reprojectionMatrix,w)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),e.environment){void 0!==e.environment.weather&&(this._bindParameters.weather=e.environment.weather);const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasFloatBufferBlendSupport(){return this._rctx.driverTest.floatBufferBlend.result}get _oitEnabled(){return this.isFeatureEnabled(2)&&this._hasFloatBufferBlendSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,10)}updateHasFlags(){const has=this._pluginsHas;has.hudElements=this._plugins.produces(0,...Pe),has.water=this._plugins.produces(2,20),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new k(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?a(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r,i=!1){try{return this._isRendering=!0,this._render(e,t,r,i)}catch(s){console.error(`Exception during rendering: ${s}`)}finally{this._isRendering=!1}return new ne(this._pluginInput.get(I.FINAL),null)}_render(e,t,r,i){const s=0===r;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=s,this._disposeBindBuffers();const{camera:a,contentCamera:n,mode:h,alignPixelEnabled:o}=e;this._state.value=h;const d=this._nodes.produces("magnifier-color"),_=this._nodes.produces(I.FINAL);this._renderContext.time=t,this._renderContext.output=0,this._bindParameters.hasEmission=this.hasEmitters,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!i,this._bindParameters.mainDepth=null;const l=!i||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=l?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(R.VIEWSHED),this._bindParameters.cutFillEnabled=this._nodes.produces(R.CUTFILL_DEPTH),this._renderOverlay(),a.setGLViewport(this._rctx);const u=this._framebuffer,p=u.initialize(a.fullWidth,a.fullHeight,this._backgroundColor,this._bindParameters.hasEmission);this.hasReflections?(p?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=p):p?.release(),this._ensureBindParametersCamera(a,n),this._updateHUDOccludedFragmentOpacity(h,t),this._plugins.sortTestsTransparentOrderedSlots(we),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!i;const m=this._plugins.produces(0,...me);this._precompilePrepasses(),this.performanceInfo.advance(oe.PREPARE);const c=this._computeShadowDepthRange(a);this._renderShadowMap(a,this._bindParameters.lighting.mainLight.direction,c),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(c,a,n,!s),this._ensureBindParametersSSR(t),this._precompileShaders(m),this._renderContext.output=0,u.bind(),this._bindParameters.mainDepth=u.depth.attachment,this._renderOpaque(),this._renderTransparent(m),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(R.FOCUSAREA,this._renderFocusAreaGeometry()),this._pluginInput.set(R.CUTFILL_DEPTH,this._renderCutFillDepth()),u.update(e=>this._renderNodes(R.TRANSPARENT_ENVIRONMENT,e)),u.update(e=>this._renderNodes(R.VIEWSHED,e)),u.update(e=>this._renderNodes(R.LASERLINES,e)),u.update(e=>this._renderNodes(R.FOCUSAREA_COLOR,e)),this._pluginInput.release(R.FOCUSAREA),this._pluginInput.release(R.CUTFILL_DEPTH),u.update(e=>this._renderNodes(R.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(a,this._bindParameters.lighting.mainLight.direction,c);const f=2===r?this._renderObjectAndLayerIdColor():null;u.update(e=>this._renderNodes(I.COMPOSITE,e)),this._shadowMap.disposeOffscreenBuffers();const g=s&&!_&&!(d&&!i),b=this._pluginInput.get(I.COMPOSITE),P=g?v:this.fboCache.acquire(b.fbo.width,b.fbo.height,R.ANTIALIASING),C=this._nodes.produces(R.ANTIALIASING)?this._renderNodes(R.ANTIALIASING,P):this.blitFBO(b,P,!1);let w;this._pluginInput.set(R.ANTIALIASING,C),this._hasHUDHighlights?(this._renderHUD(1,C),w=this._renderNodes(R.HIGHLIGHTS,C)):(w=this._renderNodes(R.HIGHLIGHTS,C),this._renderHUD(1,w));const T=this._renderNodes(R.MAGNIFIER,w);return s&&d&&!i&&!_&&this.blitFBO(T),_?(T.attachDepth(u.depth),this.blitFBO(this._renderNodes(I.FINAL,T)),T.detachDepth()):this._pluginInput.set(I.FINAL,T),this._pluginInput.release("highlights"),this.onPostRender&&this.onPostRender(),this._releaseFBOs(),u.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),this.performanceInfo.finishFrame(),s||(this._releaseFBOs(),this._disposeOffscreenBuffers()),new ne(this._pluginInput.get(I.FINAL),f)}_precompileShaders(e){++this._plugins.context.techniques.precompiling,this._renderContext.output=0,this._precompileOpaqueGeometry(),this._nodes.precompile(R.OPAQUE_ENVIRONMENT),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,this._renderContext.output=1,this._plugins.precompile(...ce),this._needsTerrainDepth&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=0,this._plugins.precompile(...ce),e&&(this._precompileTransparentGeometry(),this._hasPhotoshopTerrain&&(this._bindParameters.cullAboveTerrain=!1,this._precompileTransparentGeometry(),this._bindParameters.cullAboveTerrain=this._needsTerrainDepth)),this._nodes.precompile(R.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(13),this._plugins.precompile(16),this._precompileHUD(0),this._bindParameters.terrainDepthTest=!1,this._bindParameters.cullAboveTerrain=!1,this._nodes.precompile(R.VIEWSHED,R.CUTFILL_DEPTH,R.CUTFILL_COLOR,R.LASERLINES,R.FOCUSAREA_COLOR,R.OCCLUDED,R.ANTIALIASING,R.HIGHLIGHTS);const t=this._bindParameters;t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null,this._precompileHUD(1),this._hasHighlights&&(t.highlights.forEach((e,r)=>{t.highlightLevel=r,this._precompileAllGeometry(8)}),t.highlightLevel=null),t.highlightMixTexture=null,this._nodes.precompile(I.COMPOSITE,R.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(9),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(R.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(oe.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const t=this._framebufferSize;let r=this.fboCache.acquire(t.width,t.height,"olid");return r.acquireDepth(14),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(oe.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let i=0;t?i=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const s=Math.max(e,i);this._animationTimestep.frame(s,r)}}readMainDepth(e,t){const{mainDepth:r,camera:i}=this._bindParameters;if(!r)return;const s=this.fboCache.acquire(this._framebufferSize.width,this._framebufferSize.height,"linear depth");this._rctx.bindFramebuffer(s.fbo),i.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(A),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),s.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,de.UNSIGNED_BYTE,t),s.release()}readHUDVisibility(e,t,r,i,s){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,i,6408,de.UNSIGNED_BYTE,s)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"edges"),s=this._bindParameters.geometryDepth,a=()=>t.render(this._bindParameters,e);this.renderToTargets(a,i,s??this._framebuffer.depth,A),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?oe.OPAQUE_EDGES:oe.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(this._renderContext.time),this._bindParameters.overlay&&this.performanceInfo.advance(oe.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(5,this._shadowMap),i.copySnapshot(1),this._renderShadowCascades(4,this._shadowMap)):this._renderShadowCascades(3),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(4,this._shadowMap),i.moveSnapshot(0),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderCutFillDepth(){return this._nodes.produce(R.CUTFILL_DEPTH,this._pluginInput)}_precompileShadowCascades(e){0!==this._shadowMap.cascades.length&&this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(1)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(R.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(1),this._bindParameters.depth?.release(),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(oe.DEPTH)):(e.detachDepth(),this._bindParameters.depth=o(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(this._bindParameters.depth=o(this._bindParameters.depth),!this._needsDepth)return;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"geometry depth",14);this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(1280),this.renderAllGeometry(1),this._bindParameters.depth=t.obtainDepthTexture(),t.release(),this.performanceInfo.advance(oe.DEPTH)}_renderTerrainDepth(){if(this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,!this._needsTerrainDepth)return;const e=this._renderContext.output;this._renderContext.output=1;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"terrain depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this._renderTransparentGround(),this._bindParameters.terrainDepth=r.obtainDepthTexture(),r.release(),this._renderContext.output=e}_renderGeometryDepth(){if(this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth),!this._needsTerrainDepth)return;const e=this._renderContext.output,{width:t,height:r}=this._framebufferSize,i=this.fboCache.acquire(t,r,"geometry depth",14);this._rctx.bindFramebuffer(i.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(1),this._renderContext.output=e,this._bindParameters.geometryDepth=i.obtainDepthTexture(),i.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return Q.Zero;const t=Y(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=Q.Infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<y)return void(this.sceneDepthRange.value=Q.Infinite);const t=e.clone();t.near=O,t.far=1e10;const r=Y(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.equals(r)||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED,R.LASERLINES);return(this.hasSSAO?1:0)+e}_updateHUDOccludedFragmentOpacity(e,t){const{idleOpacity:r,navigatingOpacity:a,maxDelta:n,tiltFadeStart:h,tiltFadeEnd:o,altitudeStart:d,altitudeEnd:_}=Z,l=this.stage.view,u=l.stateManager.camera,p=l.qualitySettings.fadeDuration,m=2===e?r:a,c=i((u.tilt-h)/(o-h),0,1),f=i(((u.position.z??0)-d)/(_-d),0,1),g=s(s(1,m,c),1,f),b=this._bindParameters.hudOccludedFragmentOpacity;if(p<=0||b===g||0===this._lastFrameTime||this._lastFrameTime>t)return this._bindParameters.hudOccludedFragmentOpacity=g,void(this._lastFrameTime=t);const P=t-this._lastFrameTime;this._lastFrameTime=t;const C=Math.max(1-r,Math.abs(r-a)),w=Math.min(C*P/p,n);w>=Math.abs(g-b)?this._bindParameters.hudOccludedFragmentOpacity=g:(this._bindParameters.hudOccludedFragmentOpacity=b+Math.sign(g-b)*w,this._requestRender())}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(2),this._needsDepth&&this._precompileAllGeometry(1),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(4),this._precompileShadowCascades(5)):this._precompileShadowCascades(3)),this._shadowAccumulator.active&&this._precompileAllGeometry(3)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"normals",5);r.acquireDepth(14),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(A,!0,!0),this._renderContext.output=2,this._plugins.render(...fe);const i=this._nodes.optional("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(oe.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(!this.hasSSAO||!e)return;const t=this._nodes.produce(R.SSAO,this._pluginInput);return this._bindParameters.ssao=t,t&&this.performanceInfo.advance(oe.SSAO),t}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(...ce),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentGround()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...be);this._renderContext.renderOccludedMask=X}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(10),this.renderSlots(e,...be),this._renderContext.renderOccludedMask=X}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(14)}precompileViewshedShadowMap(){this._precompileAllGeometry(6)}precompileCutFill(){const e=7,t=this._renderContext.output;this._renderContext.output=e,this._plugins.precompile(0,1,...ce),this._renderContext.output=t}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(6),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=i}renderCutFillReferenceDepth(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this._renderContext.output=7,this._plugins.render(0,1,...ce),this._ensureBindParametersCamera(t,r),t.setGLViewport(this._rctx),this._renderContext.output=i}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ge)}_precompileOpaqueGeometry(){this._plugins.precompile(...pe),this._nodes.precompile("opaque-color")}_renderOpaqueGeometry(){this._plugins.render(...pe)}_renderTransparentGeometry(){this._plugins.render(...me)}get _hasPhotoshopTerrain(){return this._plugins.produces(0,6)}get _needsTerrainDepth(){return this._highQualityTransparency&&this._hasPhotoshopTerrain}_renderPhotoshopTerrain(){if(!this._hasPhotoshopTerrain)return null;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"transparent terrain");return this.renderToTargets(()=>this._plugins.render(6),t,this._framebuffer.depth,A),this.performanceInfo.advance(oe.TRANSPARENT_TERRAIN),t}_renderTransparentGround(){this._plugins.render(...ce)}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,13)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebufferSize;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const i=this._bindParameters.geometryDepth;r.attachDepth(i||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(13),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(oe.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(16),t=this._framebufferSize,r=this.fboCache.acquireDepth(13,t.width,t.height,"line callouts");this.renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(16)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...Pe),this._bindParameters.oitPass=2,this._plugins.precompile(...Pe),this._bindParameters.oitPass=0):this._plugins.precompile(...Pe),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t){if(this._pluginsHas.hudElements){if(this._oitEnabled){const r=this._renderOIT(1,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,r.getTexture(),!1),r.release()}else if(this._renderContext.output=0,0===e){const t=()=>this._renderHUDElements(e),r=this._framebufferSize,i=this.fboCache.acquireDepth(13,r.width,r.height,"hud");this.renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(13),this._rctx.bindFramebuffer(t.fbo),this._renderHUDElements(e),t.detachDepth();this.performanceInfo.advance(0===e?oe.HUD_OCCLUDED:oe.HUD)}}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Pe)}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(4,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,i=this._framebufferSize,{highlights:s}=r,a=e.acquire(i.width,i.height,"highlights",s.length>V?3:1);a.acquireDepth(14);const n=this._plugins.produces(8,0);return n&&this._framebuffer.color.fbo&&a.fbo&&t.blitFramebuffer(this._framebuffer.color.fbo,a.fbo,1024),t.bindFramebuffer(a.fbo),t.gl.clearBufferuiv(6144,0,[0,0,0,0]),n||t.clear(1024),this._renderContext.output=8,t.bindFramebuffer(a.fbo),j(t,e,i,r,()=>this._renderHighlightGeometries()),a.detachDepth(),this.performanceInfo.advance(oe.HIGHLIGHTS),a}_renderHighlightGeometries(){this._plugins.render(...Ce),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,i){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,i)&&this.performanceInfo.advance(oe.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...me),this._bindParameters.oitPass=2,this._plugins.precompile(...me),this._bindParameters.oitPass=0):this._plugins.precompile(...me)}_renderOIT(e,t=2){const r=1===e,i=this._framebufferSize,s=r?()=>this._renderHUDElements(t):()=>this._renderTransparentGeometry(),a=this._bindParameters,n=this._renderContext.output;this._renderContext.output=0,a.oitPass=1;const h=r?"oit hud":"oit",o=this.fboCache.acquire(i.width,i.height,h,8),d=this._bindParameters.hasEmission&&!(1===e&&1===t);d&&o.acquireColor(_e,8,"oit emissive"),o.acquireColor(d?le:_e,7,"oit alpha"),r||o.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(o.fbo),this._rctx.clearFramebuffer([0,0,0,1]),d&&this._rctx.clearBuffer(1,E),s(),o.detachDepth(),a.oitPass=2;const _=this.fboCache.acquire(i.width,i.height,r?"oit hud front":"oit front");let l;return d&&_.acquireColor(_e,8,"oit emissive front"),r?_.acquireDepth(13):_.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(_.fbo),this._rctx.clearFramebuffer(A,r),s(),_.detachDepth(),a.oitPass=0,r?(l=this.fboCache.acquire(i.width,i.height,"oit hud composite"),this._rctx.bindFramebuffer(l.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):this._framebuffer.bind(),this._oitBlend??=new B(this._techniques),this._oitBlend.blend(this._rctx,o,_,a,d,!r),l?.detachDepth(),_.release(),o.release(),this._renderContext.output=n,l}_renderOpaque(){const e=this.plugins.produces(0,...pe);if(e){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(R.CUTFILL_COLOR,e)),e.update(e=>this._renderNodes(R.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const t=this._framebuffer;this._renderTerrainDepth(),t.update(t=>this._renderNodes(I.OPAQUE,t,e)),this.fboCache.debugCallback?.(I.OPAQUE,t.color.fbo),t.update(e=>this._renderNodes(R.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(R.OPAQUE_ENVIRONMENT,t.color.fbo),this._renderEdges(1)}_renderTransparent(e){const t=this._framebuffer;t.bind(),this._renderPlugins(21,oe.VOXEL),this._renderHiddenTransparentEdges(),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry()),t.update(t=>this._renderNodes(I.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(I.TRANSPARENT,t.color.fbo),this._renderGeometryDepth(),this._renderHUDVisibility(),this._needsTerrainDepth||this._plugins.render(16),this._renderEdges(0);const r=this._renderPhotoshopTerrain(),i=r?.getTexture();i&&this._bindParameters.hudVisibility&&(this._needsTerrainDepth?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,i)),this._renderHUD(0,t.color)),this._bindParameters.cullAboveTerrain=!1,i&&(t.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,i),r?.release(),this._needsTerrainDepth&&(this._renderEdges(1),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry(),this.performanceInfo.advance(oe.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=o(this._bindParameters.ssao),this._needsTerrainDepth&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(oe.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(9),this.performanceInfo.advance(oe.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;const i=this._nodes.render(t,this._pluginInput,this._releaseNormals);return this.performanceInfo.advance(e),i}blitFBO(e,t=v,r=!0){return this._blit??=new U(this._techniques),this._blit.blit(this._rctx,e,t,this._bindParameters),this._pluginInput.set(e.name,t),r&&e.release(),t}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=w:(P(Se,this._bindParameters.camera.viewMatrix),P(Te,this._bindParameters.camera.projectionMatrix),C(Ee,Se,Te),C(Ee,this._renderContext.lastFrameCamera.viewMatrix,Ee),C(Ee,this._renderContext.lastFrameCamera.projectionMatrix,Ee),this._reprojectionMatrix=Ee);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=w,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,i){this._bindParameters.updateLighting(e,t,r,i),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}renderToTargets(e,t,r,i,s=!1,a=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(i,s,a),e(),t.detachDepth()}get test(){}};e([f({readOnly:!0})],ue.prototype,"highResolutionAtmosphere",null),e([f()],ue.prototype,"_edgeView",void 0),e([f()],ue.prototype,"updating",null),ue=e([g("esri.views.3d.webgl-engine.lib.Renderer")],ue);const pe=[0,1,2,3],me=[7,8,4,5],ce=[6,7,8],fe=[0,1,2,4,...ce],ge=[3,5],be=[2,4,9],Pe=[17,14,15],Ce=[4,5,2,3,0,1,...ce],we=[4,9,5,12],Te=T(),Se=T(),Ee=T();function xe(e){return t=>e.immediate.schedule(t)}export{ue as Renderer};
|
|
5
|
+
import{__decorate as e}from"tslib";import{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{clamp as i,lerp as s}from"../../../../core/mathUtils.js";import{removeMaybe as a,abortMaybe as n,destroyMaybe as h,releaseMaybe as o}from"../../../../core/maybe.js";import{throwIfAborted as d}from"../../../../core/promiseUtils.js";import{watch as _,syncAndInitial as l,initial as u,sync as p}from"../../../../core/reactiveUtils.js";import{signal as m}from"../../../../core/signal.js";import{Milliseconds as c}from"../../../../core/time.js";import{property as f,subclass as g}from"../../../../core/accessorSupport/decorators.js";import{equals as b,invert as P,multiply as C}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as w,create as T}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as S}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ZEROS as E}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{fromValues as x,ZEROS as A}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as D}from"../../../../geometry/support/Indices.js";import{RenderNodeOutput as I,InternalRenderCategory as R}from"../../webgl.js";import{innerAtmosphereFadeStart as y}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as O}from"../../state/NearFarHeuristic.js";import{debugFlags as F}from"../../support/debugFlags.js";import{FBOCache as H,defaultWebGLFBO as v}from"../core/FBOCache.js";import{RenderPassManager as M}from"../core/renderPasses/RenderPassManager.js";import{isColor as N}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as q}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as G}from"../effects/RenderNodes.js";import{RenderPluginManager as L}from"../effects/RenderPluginManager.js";import{Blit as U}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as V,renderHighlightBuffer as j}from"../effects/highlight/Highlight.js";import{OITBlend as B}from"../effects/transparency/OITBlend.js";import{AnimationTimer as k}from"./AnimationTimer.js";import{AnimationTimeStep as z}from"./AnimationTimeStep.js";import{BoundingInfo as W}from"./BoundingInfo.js";import{DepthRange as Q}from"./DepthRange.js";import{depthRangeFromScene as Y}from"./depthRangeUtils.js";import{hudFragmentOpacityParameters as Z}from"./hudFragmentOpacityParameters.js";import{MainFramebuffer as J}from"./MainFramebuffer.js";import{RenderContext as K,defaultRenderOccludedMask as X}from"./RenderContext.js";import{RendererBase as $}from"./RendererBase.js";import{setupFeatureDefaults as ee}from"./RenderFeature.js";import{RenderPluginInput as te}from"./RenderPluginInput.js";import{ShadowAccumulator as re}from"./ShadowAccumulator.js";import{ShadowMap as ie}from"./ShadowMap.js";import se from"./SliceHelper.js";import{MergedRenderer as ae}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as ne}from"../parts/renderUtils.js";import{RendererPerformanceInfo as he,PerformanceCategory as oe}from"../statistics/RendererPerformanceInfo.js";import{PixelType as de,ColorAttachment1 as _e,ColorAttachment2 as le}from"../../../webgl/enums.js";let ue=class extends ${constructor(e,t,r,i,s,a){super({stage:e}),this._techniques=r,this._rctx=i,this._compositingHelper=s,this._requestRender=a,this._pluginsHas={hudElements:!1,water:!1},this.renderPassManager=new M,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=x(0,0,0,1),this._sliceHelper=new se,this.sceneDepthRange=m(Q.Infinite),this._state=m(2),this._hasAnimations=!1,this._animationTimestep=new z,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=m(0),this._lastFrameTime=c(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new te,this._releaseNormals=e=>{e.some(({name:e})=>"normals"===e)&&this._pluginInput.release("normals")},this._debugNeedsDepth=!1,this._fboCache=new H(i),this._renderStateFeatures=m(ee(e.view.qualityProfile)),this._framebuffer=new J(this.fboCache),this._performanceInfo=new he(this._rctx),this._shadowMap=new ie(this.fboCache,e.viewingMode),this._shadowAccumulator=new re(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,i)=>{const s=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,i,!0,s),this._renderShadowCascades(3,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},a),this._renderContext=new K(this._rctx,this._shadowMap,r),this._nodes=new G(this._renderContext),this._plugins=new L({renderContext:this._renderContext,techniques:r,materials:t,requestRender:a,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([_(()=>e.view.state.camera,()=>a(),l),_(()=>F.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},a()},u),_(()=>e.view.environment.background?.color,e=>{const t=e?e.toUnitRGBA():A;S(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),a()},l),_(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=q,l),_(()=>this._bindParameters.clouds.fadeFactor,()=>{this._bindParameters.fadeLighting(),this._requestRender(2)},p),_(()=>this._bindParameters.clouds.data?.state,()=>a(),p),_(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,a()},u)])}destroy(){this._gpuTimerHandle=a(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.destroy(),this._shadowAccumulator=null,this._loadEdgeViewTask=n(this._loadEdgeViewTask),this._edgeView=h(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._blit=null,this._oitBlend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,W.prune(),ae.prune(),D()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _framebufferSize(){return this._framebuffer.size}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e){this._renderStateFeatures.value=ee(e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(i=>i.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&this.isFeatureEnabled(6)}get _hasHighlights(){return this._plugins.produces(8,2,4,19,14,15)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,14,15)}get hasSSAO(){return this.isFeatureEnabled(5)&&!this._inGlobeView}get hasSMAA(){return this.isFeatureEnabled(0)}get hasEmitters(){return this._plugins.hasEmitters&&this._hasFloatBufferBlendSupport}get highResolutionAtmosphere(){return this.isFeatureEnabled(4)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=o(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeOffscreenBuffers(),this._bindParameters.depth=o(this._bindParameters.depth),this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");d(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:xe(this.stage.view.resourceController)});return this.addHandles(_(()=>r.updating,()=>this._requestRender(),p)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&b(this._bindParameters.ssr.reprojectionMatrix,w)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),e.environment){void 0!==e.environment.weather&&(this._bindParameters.weather=e.environment.weather);const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasFloatBufferBlendSupport(){return this._rctx.driverTest.floatBufferBlend.result}get _oitEnabled(){return this.isFeatureEnabled(2)&&this._hasFloatBufferBlendSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,10)}updateHasFlags(){const has=this._pluginsHas;has.hudElements=this._plugins.produces(0,...Pe),has.water=this._plugins.produces(2,20),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new k(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?a(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r,i=!1){try{return this._isRendering=!0,this._render(e,t,r,i)}catch(s){console.error(`Exception during rendering: ${s}`)}finally{this._isRendering=!1}return new ne(this._pluginInput.get(I.FINAL),null)}_render(e,t,r,i){const s=0===r;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=s,this._disposeBindBuffers();const{camera:a,contentCamera:n,mode:h,alignPixelEnabled:o}=e;this._state.value=h;const d=this._nodes.produces("magnifier-color"),_=this._nodes.produces(I.FINAL);this._renderContext.time=t,this._renderContext.output=0,this._bindParameters.hasEmission=this.hasEmitters,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!i,this._bindParameters.mainDepth=null;const l=!i||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=l?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(R.VIEWSHED),this._bindParameters.cutFillEnabled=this._nodes.produces(R.CUTFILL_DEPTH),this._renderOverlay(),a.setGLViewport(this._rctx);const u=this._framebuffer,p=u.initialize(a.fullWidth,a.fullHeight,this._backgroundColor,this._bindParameters.hasEmission);this.hasReflections?(p?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=p):p?.release(),this._ensureBindParametersCamera(a,n),this._updateHUDOccludedFragmentOpacity(h,t),this._plugins.sortTestsTransparentOrderedSlots(we),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!i;const m=this._plugins.produces(0,...me);this._precompilePrepasses(),this.performanceInfo.advance(oe.PREPARE);const c=this._computeShadowDepthRange(a);this._renderShadowMap(a,this._bindParameters.lighting.mainLight.direction,c),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(c,a,n,!s),this._ensureBindParametersSSR(t),this._precompileShaders(m),this._renderContext.output=0,u.bind(),this._bindParameters.mainDepth=u.depth.attachment,this._renderOpaque(),this._renderTransparent(m),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(R.FOCUSAREA,this._renderFocusAreaGeometry()),this._pluginInput.set(R.CUTFILL_DEPTH,this._renderCutFillDepth()),u.update(e=>this._renderNodes(R.TRANSPARENT_ENVIRONMENT,e)),u.update(e=>this._renderNodes(R.VIEWSHED,e)),u.update(e=>this._renderNodes(R.LASERLINES,e)),u.update(e=>this._renderNodes(R.FOCUSAREA_COLOR,e)),this._pluginInput.release(R.FOCUSAREA),this._pluginInput.release(R.CUTFILL_DEPTH),u.update(e=>this._renderNodes(R.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(a,this._bindParameters.lighting.mainLight.direction,c);const f=2===r?this._renderObjectAndLayerIdColor():null;u.update(e=>this._renderNodes(I.COMPOSITE,e)),this._shadowMap.disposeOffscreenBuffers();const g=s&&!_&&!(d&&!i),b=this._pluginInput.get(I.COMPOSITE),P=g?v:this.fboCache.acquire(b.fbo.width,b.fbo.height,R.ANTIALIASING),C=this._nodes.produces(R.ANTIALIASING)?this._renderNodes(R.ANTIALIASING,P):this.blitFBO(b,P,!1);let w;this._pluginInput.set(R.ANTIALIASING,C),this._hasHUDHighlights?(this._renderHUD(1,C),w=this._renderNodes(R.HIGHLIGHTS,C)):(w=this._renderNodes(R.HIGHLIGHTS,C),this._renderHUD(1,w));const T=this._renderNodes(R.MAGNIFIER,w);return s&&d&&!i&&!_&&this.blitFBO(T),_?(T.attachDepth(u.depth),this.blitFBO(this._renderNodes(I.FINAL,T)),T.detachDepth()):this._pluginInput.set(I.FINAL,T),this._pluginInput.release("highlights"),this.onPostRender&&this.onPostRender(),this._releaseFBOs(),u.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),this.performanceInfo.finishFrame(),s||(this._releaseFBOs(),this._disposeOffscreenBuffers()),new ne(this._pluginInput.get(I.FINAL),f)}_precompileShaders(e){++this._plugins.context.techniques.precompiling,this._renderContext.output=0,this._precompileOpaqueGeometry(),this._nodes.precompile(R.OPAQUE_ENVIRONMENT),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,this._renderContext.output=1,this._plugins.precompile(...ce),this._needsTerrainDepth&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=0,this._plugins.precompile(...ce),e&&(this._precompileTransparentGeometry(),this._hasPhotoshopTerrain&&(this._bindParameters.cullAboveTerrain=!1,this._precompileTransparentGeometry(),this._bindParameters.cullAboveTerrain=this._needsTerrainDepth)),this._nodes.precompile(R.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(13),this._plugins.precompile(16),this._precompileHUD(0),this._bindParameters.terrainDepthTest=!1,this._bindParameters.cullAboveTerrain=!1,this._nodes.precompile(R.VIEWSHED,R.CUTFILL_DEPTH,R.CUTFILL_COLOR,R.LASERLINES,R.FOCUSAREA_COLOR,R.OCCLUDED,R.ANTIALIASING,R.HIGHLIGHTS);const t=this._bindParameters;t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null,this._precompileHUD(1),this._hasHighlights&&(t.highlights.forEach((e,r)=>{t.highlightLevel=r,this._precompileAllGeometry(8)}),t.highlightLevel=null),t.highlightMixTexture=null,this._nodes.precompile(I.COMPOSITE,R.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(9),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(R.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(oe.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const t=this._framebufferSize;let r=this.fboCache.acquire(t.width,t.height,"olid");return r.acquireDepth(14),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(oe.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let i=0;t?i=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const s=Math.max(e,i);this._animationTimestep.frame(s,r)}}readMainDepth(e,t){const{mainDepth:r,camera:i}=this._bindParameters;if(!r)return;const s=this.fboCache.acquire(this._framebufferSize.width,this._framebufferSize.height,"linear depth");this._rctx.bindFramebuffer(s.fbo),i.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(A),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),s.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,de.UNSIGNED_BYTE,t),s.release()}readHUDVisibility(e,t,r,i,s){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,i,6408,de.UNSIGNED_BYTE,s)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"edges"),s=this._bindParameters.geometryDepth,a=()=>t.render(this._bindParameters,e);this.renderToTargets(a,i,s??this._framebuffer.depth,A),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?oe.OPAQUE_EDGES:oe.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(this._renderContext.time),this._bindParameters.overlay&&this.performanceInfo.advance(oe.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(5,this._shadowMap),i.copySnapshot(1),this._renderShadowCascades(4,this._shadowMap)):this._renderShadowCascades(3),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(4,this._shadowMap),i.moveSnapshot(0),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderCutFillDepth(){return this._nodes.produce(R.CUTFILL_DEPTH,this._pluginInput)}_precompileShadowCascades(e){0!==this._shadowMap.cascades.length&&this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(1)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(R.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(1),this._bindParameters.depth?.release(),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(oe.DEPTH)):(e.detachDepth(),this._bindParameters.depth=o(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(this._bindParameters.depth=o(this._bindParameters.depth),!this._needsDepth)return;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"geometry depth",14);this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(1280),this.renderAllGeometry(1),this._bindParameters.depth=t.obtainDepthTexture(),t.release(),this.performanceInfo.advance(oe.DEPTH)}_renderTerrainDepth(){if(this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,!this._needsTerrainDepth)return;const e=this._renderContext.output;this._renderContext.output=1;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"terrain depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this._renderTransparentGround(),this._bindParameters.terrainDepth=r.obtainDepthTexture(),r.release(),this._renderContext.output=e}_renderGeometryDepth(){if(this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth),!this._needsTerrainDepth)return;const e=this._renderContext.output,{width:t,height:r}=this._framebufferSize,i=this.fboCache.acquire(t,r,"geometry depth",14);this._rctx.bindFramebuffer(i.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(1),this._renderContext.output=e,this._bindParameters.geometryDepth=i.obtainDepthTexture(),i.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return Q.Zero;const t=Y(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=Q.Infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<y)return void(this.sceneDepthRange.value=Q.Infinite);const t=e.clone();t.near=O,t.far=1e10;const r=Y(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.equals(r)||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED,R.LASERLINES);return(this.hasSSAO?1:0)+e}_updateHUDOccludedFragmentOpacity(e,t){const{idleOpacity:r,navigatingOpacity:a,maxDelta:n,tiltFadeStart:h,tiltFadeEnd:o,altitudeStart:d,altitudeEnd:_}=Z,l=this.stage.view,u=l.stateManager.camera,p=l.qualitySettings.fadeDuration,m=2===e?r:a,c=i((u.tilt-h)/(o-h),0,1),f=i(((u.position.z??0)-d)/(_-d),0,1),g=s(s(1,m,c),1,f),b=this._bindParameters.hudOccludedFragmentOpacity;if(p<=0||b===g||0===this._lastFrameTime||this._lastFrameTime>t)return this._bindParameters.hudOccludedFragmentOpacity=g,void(this._lastFrameTime=t);const P=t-this._lastFrameTime;this._lastFrameTime=t;const C=Math.max(1-r,Math.abs(r-a)),w=Math.min(C*P/p,n);w>=Math.abs(g-b)?this._bindParameters.hudOccludedFragmentOpacity=g:(this._bindParameters.hudOccludedFragmentOpacity=b+Math.sign(g-b)*w,this._requestRender())}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(2),this._needsDepth&&this._precompileAllGeometry(1),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(4),this._precompileShadowCascades(5)):this._precompileShadowCascades(3)),this._shadowAccumulator.active&&this._precompileAllGeometry(3)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"normals",5);r.acquireDepth(14),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(A,!0,!0),this._renderContext.output=2,this._plugins.render(...fe);const i=this._nodes.optional("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(oe.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(!this.hasSSAO||!e)return;const t=this._nodes.produce(R.SSAO,this._pluginInput);return this._bindParameters.ssao=t,t&&this.performanceInfo.advance(oe.SSAO),t}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(...ce),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentGround()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...be);this._renderContext.renderOccludedMask=X}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(10),this.renderSlots(e,...be),this._renderContext.renderOccludedMask=X}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(14)}precompileViewshedShadowMap(){this._precompileAllGeometry(6)}precompileCutFill(){const e=7,t=this._renderContext.output;this._renderContext.output=e,this._plugins.precompile(0,1,...ce),this._renderContext.output=t}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(6),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=i}renderCutFillReferenceDepth(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this._renderContext.output=7,this._plugins.render(0,1,...ce),this._ensureBindParametersCamera(t,r),t.setGLViewport(this._rctx),this._renderContext.output=i}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ge)}_precompileOpaqueGeometry(){this._plugins.precompile(...pe),this._nodes.precompile("opaque-color")}_renderOpaqueGeometry(){this._plugins.render(...pe)}_renderTransparentGeometry(){this._plugins.render(...me)}get _hasPhotoshopTerrain(){return this._plugins.produces(0,6)}get _needsTerrainDepth(){return this._highQualityTransparency&&this._hasPhotoshopTerrain}_renderPhotoshopTerrain(){if(!this._hasPhotoshopTerrain)return null;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"transparent terrain");return this.renderToTargets(()=>this._plugins.render(6),t,this._framebuffer.depth,A),this.performanceInfo.advance(oe.TRANSPARENT_TERRAIN),t}_renderTransparentGround(){this._plugins.render(...ce)}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,13)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebufferSize;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const i=this._bindParameters.geometryDepth;r.attachDepth(i||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(13),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(oe.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(16),t=this._framebufferSize,r=this.fboCache.acquireDepth(13,t.width,t.height,"line callouts");this.renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(16)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...Pe),this._bindParameters.oitPass=2,this._plugins.precompile(...Pe),this._bindParameters.oitPass=0):this._plugins.precompile(...Pe),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t){if(this._pluginsHas.hudElements){if(this._oitEnabled){const r=this._renderOIT(1,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,r.getTexture(),!1),r.release()}else if(this._renderContext.output=0,0===e){const t=()=>this._renderHUDElements(e),r=this._framebufferSize,i=this.fboCache.acquireDepth(13,r.width,r.height,"hud");this.renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(13),this._rctx.bindFramebuffer(t.fbo),this._renderHUDElements(e),t.detachDepth();this.performanceInfo.advance(0===e?oe.HUD_OCCLUDED:oe.HUD)}}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Pe)}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(4,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,i=this._framebufferSize,{highlights:s}=r,a=e.acquire(i.width,i.height,"highlights",s.length>V?3:1);a.acquireDepth(14);const n=this._plugins.produces(8,0);return n&&this._framebuffer.color.fbo&&a.fbo&&t.blitFramebuffer(this._framebuffer.color.fbo,a.fbo,1024),t.bindFramebuffer(a.fbo),t.gl.clearBufferuiv(6144,0,[0,0,0,0]),n||t.clear(1024),this._renderContext.output=8,t.bindFramebuffer(a.fbo),j(t,e,i,r,()=>this._renderHighlightGeometries()),a.detachDepth(),this.performanceInfo.advance(oe.HIGHLIGHTS),a}_renderHighlightGeometries(){this._plugins.render(...Ce),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,i){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,i)&&this.performanceInfo.advance(oe.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...me),this._bindParameters.oitPass=2,this._plugins.precompile(...me),this._bindParameters.oitPass=0):this._plugins.precompile(...me)}_renderOIT(e,t=2){const r=1===e,i=this._framebufferSize,s=r?()=>this._renderHUDElements(t):()=>this._renderTransparentGeometry(),a=this._bindParameters,n=this._renderContext.output;this._renderContext.output=0,a.oitPass=1;const h=r?"oit hud":"oit",o=this.fboCache.acquire(i.width,i.height,h,8),d=this._bindParameters.hasEmission&&!(1===e&&1===t);d&&o.acquireColor(_e,8,"oit emissive"),o.acquireColor(d?le:_e,7,"oit alpha"),r||o.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(o.fbo),this._rctx.clearFramebuffer([0,0,0,1]),d&&this._rctx.clearBuffer(1,E),s(),o.detachDepth(),a.oitPass=2;const _=this.fboCache.acquire(i.width,i.height,r?"oit hud front":"oit front");let l;return d&&_.acquireColor(_e,8,"oit emissive front"),r?_.acquireDepth(13):_.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(_.fbo),this._rctx.clearFramebuffer(A,r),s(),_.detachDepth(),a.oitPass=0,r?(l=this.fboCache.acquire(i.width,i.height,"oit hud composite"),this._rctx.bindFramebuffer(l.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):this._framebuffer.bind(),this._oitBlend??=new B(this._techniques),this._oitBlend.blend(this._rctx,o,_,a,d,!r),l?.detachDepth(),_.release(),o.release(),this._renderContext.output=n,l}_renderOpaque(){const e=this.plugins.produces(0,...pe);if(e){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(R.CUTFILL_COLOR,e)),e.update(e=>this._renderNodes(R.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const t=this._framebuffer;this._renderTerrainDepth(),t.update(t=>this._renderNodes(I.OPAQUE,t,e)),this.fboCache.debugCallback?.(I.OPAQUE,t.color.fbo),t.update(e=>this._renderNodes(R.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(R.OPAQUE_ENVIRONMENT,t.color.fbo),this._renderEdges(1)}_renderTransparent(e){const t=this._framebuffer;t.bind(),this._renderPlugins(21,oe.VOXEL),this._renderHiddenTransparentEdges(),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry()),t.update(t=>this._renderNodes(I.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(I.TRANSPARENT,t.color.fbo),this._renderGeometryDepth(),this._renderHUDVisibility(),this._needsTerrainDepth||this._plugins.render(16),this._renderEdges(0);const r=this._renderPhotoshopTerrain(),i=r?.getTexture();i&&this._bindParameters.hudVisibility&&(this._needsTerrainDepth?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,i)),this._renderHUD(0,t.color)),this._bindParameters.cullAboveTerrain=!1,i&&(t.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,i),r?.release(),this._needsTerrainDepth&&(this._renderEdges(1),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry(),this.performanceInfo.advance(oe.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=o(this._bindParameters.ssao),this._needsTerrainDepth&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(oe.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(9),this.performanceInfo.advance(oe.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;const i=this._nodes.render(t,this._pluginInput,this._releaseNormals);return this.performanceInfo.advance(e),i}blitFBO(e,t=v,r=!0){return this._blit??=new U(this._techniques),this._blit.blit(this._rctx,e,t,this._bindParameters),this._pluginInput.set(e.name,t),r&&e.release(),t}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=w:(P(Se,this._bindParameters.camera.viewMatrix),P(Te,this._bindParameters.camera.projectionMatrix),C(Ee,Se,Te),C(Ee,this._renderContext.lastFrameCamera.viewMatrix,Ee),C(Ee,this._renderContext.lastFrameCamera.projectionMatrix,Ee),this._reprojectionMatrix=Ee);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=w,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,i){this._bindParameters.updateLighting(e,t,r,i),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}renderToTargets(e,t,r,i,s=!1,a=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(i,s,a),e(),t.detachDepth()}get test(){}};e([f({readOnly:!0})],ue.prototype,"highResolutionAtmosphere",null),e([f()],ue.prototype,"_edgeView",void 0),e([f()],ue.prototype,"updating",null),ue=e([g("esri.views.3d.webgl-engine.lib.Renderer")],ue);const pe=[0,1,2,3],me=[7,8,4,5],ce=[6,7,8],fe=[0,1,2,4,...ce],ge=[3,5],be=[2,4,9],Pe=[17,14,15],Ce=[4,5,2,3,0,1,...ce],we=[4,9,5,12],Te=T(),Se=T(),Ee=T();function xe(e){return t=>e.immediate.schedule(t)}export{ue 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/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{disposeMaybe as t}from"../../../../core/maybe.js";import{recordPerformance as e}from"../../../../core/performance.js";import r from"../../../../core/PerformanceSampler.js";import{Milliseconds as i}from"../../../../core/time.js";import{
|
|
5
|
+
import{disposeMaybe as t}from"../../../../core/maybe.js";import{recordPerformance as e}from"../../../../core/performance.js";import r from"../../../../core/PerformanceSampler.js";import{Milliseconds as i}from"../../../../core/time.js";import{RenderNodeOutput as s,InternalRenderCategory as a}from"../../webgl.js";import{createElapsedTimerPool as m}from"../../../webgl/TimerPool.js";const o={OVERLAY:"overlay",PREPARE:"prepare",SHADOW_MAP:"shadow map",DEPTH:"depth",ACCUMULATED_SHADOWS:"accumulated shadows",APPLY_ACCUMULATED_SHADOWS:"apply accumulated shadows",OBJECT_AND_LAYER_ID_COLOR:"object/layer id color",NORMALS:"normals",SSAO:"SSAO",HIGHLIGHTS:"highlights",OPAQUE_EDGES:"opaque edges",VOXEL:"voxel",TRANSPARENT:"transparent",TRANSPARENT_EDGES:"transparent edges",HUD_VISIBILITY:"HUD visibility",TRANSPARENT_TERRAIN:"transparent terrain",TRANSPARENT_MATERIAL_WITHOUT_DEPTH:"transparent material without depth",OPAQUE_ENVIRONMENT:"opaque environment",TRANSPARENT_ENVIRONMENT:"transparent environment",OCCLUDED:"occluded",HUD:"HUD",HUD_OCCLUDED:"HUD occluded",FINISH:"finish",FOCUS_AREA_MASK:"focus area mask"},l=Object.values(s).concat(Object.values(a)).concat(Object.values(o)),p="Total";class T{constructor(t){this._rctx=t,this._startTimeStampCPU=i(0),this._lastTimeStampCPU=i(0),this._totalCPUTime=new r(p),this._cpuTimeSamplers=new Map(l.map(t=>[t,new r(t)])),this._enableGPUTimer=0,this._totalGPUTime=new r("GPU"),this._gpuTimeSamplers=new Map(l.map(t=>[t,new r(t)])),this._totalTime=i(0),this._totalFrameCount=0}get totalCPUTimeSampler(){return this._totalCPUTime}get cpuTimeSamplers(){return Array.from(this._cpuTimeSamplers.values())}get totalGPUTimeSampler(){return this._totalGPUTime}get gpuTimeSamplers(){return Array.from(this._gpuTimeSamplers.values())}get gpuSamplingEnabled(){return null!=this._gpuTimerPool}get totalTime(){return this._totalTime}get totalFrameCount(){return this._totalFrameCount}get elapsedTime(){return i(performance.now()-this._startTimeStampCPU)}enableGPUPerformanceInfo(){if(null==this._gpuTimerPool){const t=[...l,p];this._gpuTimerPool=m(this._rctx,t)}if(null==this._gpuTimerPool)return{hasGPUTimerSupport:!1,remove:()=>{}};++this._enableGPUTimer;let e=!1;return{hasGPUTimerSupport:!0,remove:()=>{e||(e=!0,--this._enableGPUTimer,0===this._enableGPUTimer&&(this._gpuTimerPool=t(this._gpuTimerPool)))}}}startFrame(){this._startTimeStampCPU=this._lastTimeStampCPU=i(performance.now()),this._gpuTimerPool&&(this._gpuTimeSamplers.forEach(t=>t.push(0)),this._gpuTimerPool.start())}advance(t){const r=i(performance.now());if(this._cpuTimeSamplers.get(t).push(r-this._lastTimeStampCPU),e(t,this._lastTimeStampCPU,r,"Maps SDK","Scheduling"),this._lastTimeStampCPU=r,this._gpuTimerPool){const e=this._gpuTimerPool.stop(t);this._gpuTimeSamplers.get(t).set(e),this._gpuTimerPool.start()}}finishFrame(){if(this._gpuTimerPool){const t=this._gpuTimerPool.stop(o.FINISH);this._gpuTimeSamplers.get(o.FINISH).set(t),this._rctx.gl.flush()}const t=i(performance.now()-this._startTimeStampCPU);this._totalTime=i(this._totalTime+t),this._totalCPUTime.push(t),this._gpuTimerPool&&this._totalGPUTime.push(this.gpuTimeSamplers.reduce((t,e)=>t+(e.last||0),0)),++this._totalFrameCount}}export{l as PerformanceCategories,o as PerformanceCategory,T as RendererPerformanceInfo};
|
package/views/3d/webgl.d.ts
CHANGED
|
@@ -9,8 +9,6 @@ import type SpatialReference from "../../geometry/SpatialReference.js";
|
|
|
9
9
|
import type SceneView from "../SceneView.js";
|
|
10
10
|
import type RenderCamera from "./webgl/RenderCamera.js";
|
|
11
11
|
|
|
12
|
-
export type RenderCategory = "opaque-color" | "transparent-color" | "composite-color" | "final-color";
|
|
13
|
-
|
|
14
12
|
/**
|
|
15
13
|
* Describes a specific RenderNodeOutput.
|
|
16
14
|
*
|
|
@@ -20,8 +18,10 @@ export type RenderCategory = "opaque-color" | "transparent-color" | "composite-c
|
|
|
20
18
|
* transparent-color| Contains the rendered image after all opaque and transparent geometries have been drawn. | transparent-color, normals | color0, depth
|
|
21
19
|
* composite-color | Contains the rendered image without any post processes applied. | composite-color, normals, highlights (if scene has highlights) | color0, depth
|
|
22
20
|
* final-color | Contains the rendered image including post processes. | final-color, normals, highlights (if scene has highlights) | color0, depth
|
|
21
|
+
*
|
|
22
|
+
* @since 5.0
|
|
23
23
|
*/
|
|
24
|
-
export type RenderNodeOutput =
|
|
24
|
+
export type RenderNodeOutput = "opaque-color" | "transparent-color" | "composite-color" | "final-color";
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Describes a specific RenderNodeInput.
|
|
@@ -58,19 +58,27 @@ export type RenderNodeOutput = RenderCategory;
|
|
|
58
58
|
* bool isHighlit = (bits & 1u) == 1u;
|
|
59
59
|
* bool isOccluded = (bits & 3u) == 3u;
|
|
60
60
|
* ```
|
|
61
|
+
*
|
|
62
|
+
* @since 5.0
|
|
61
63
|
*/
|
|
62
64
|
export type RenderNodeInput = RenderNodeOutput | "normals" | "highlights";
|
|
63
65
|
|
|
64
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* Describes the input framebuffer objects of a custom RenderNode.
|
|
68
|
+
*
|
|
69
|
+
* @since 5.0
|
|
70
|
+
*/
|
|
65
71
|
export interface ConsumedNodes {
|
|
66
72
|
/**
|
|
67
|
-
* One or more optional inputs. You can use an optional
|
|
68
|
-
*
|
|
73
|
+
* One or more optional inputs. You can use an optional input if you want the render function to be called even if this input is not available.
|
|
74
|
+
*
|
|
75
|
+
* @since 5.0
|
|
69
76
|
*/
|
|
70
77
|
optional?: RenderNodeInput[];
|
|
71
78
|
/**
|
|
72
|
-
* One or more required inputs. If a required input
|
|
73
|
-
*
|
|
79
|
+
* One or more required inputs. If a required input is not available, the render function will not be called.
|
|
80
|
+
*
|
|
81
|
+
* @since 5.0
|
|
74
82
|
*/
|
|
75
83
|
required: RenderNodeInput[];
|
|
76
84
|
}
|
package/views/3d/webgl.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{scale as i,add as n}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import c from"../../geometry/Point.js";import a from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as m}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as p}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as d,viewModeDependentUtil as R}from"./support/viewingModeUtils.js";const g={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},j={SSAO:"ssao",LASERLINES:"laserline-color",ANTIALIASING:"aa-color",HIGHLIGHTS:"highlight-color",MAGNIFIER:"magnifier-color",OCCLUDED:"occluded-color",VIEWSHED:"viewshed-color",CUTFILL_DEPTH:"cutfill-depth",CUTFILL_COLOR:"cutfill-color",OPAQUE_TERRAIN:"opaque-terrain-color",OPAQUE_ENVIRONMENT:"opaque-environment-color",TRANSPARENT_ENVIRONMENT:"transparent-environment-color",FOCUSAREA:"focusarea",FOCUSAREA_COLOR:"focusarea-color"};function A(o,e,r,t,i,n,l){return t=t||o.spatialReference,m(e,t,r,i,o.renderCoordsHelper.spatialReference,n,l)?i:null}function E(o,e,r,t,i,n,l){return n=n||o.spatialReference,m(e,o.renderCoordsHelper.spatialReference,r,t,n,i,l)?t:null}function T(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function y(r,t,i){const n=r.renderSpatialReference,l=d(r,t.eye,t.viewForward,t.up,O);let s=r.spatialReference;return f(t.eye,n,N,s)||(s=a.WGS84,f(t.eye,n,N,s)),null==i?i=new o(new c(N,s),l.heading,l.tilt,e(t.fov)):(i.position.x=N[0],i.position.y=N[1],i.position.z=N[2],i.position.spatialReference=s,i.heading=l.heading,i.tilt=l.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function I(o,e){if(!e)return null;const t=o.renderSpatialReference,c=R(o).headingTiltToDirectionUp,a=l();if(!p(e.position,a,t))return null;const s=c(a,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,a);const m=u(o,a,s.direction,s.up);return m.fov=r(e.fov),m.row=e.layout.row,m.rows=e.layout.rows,m.column=e.layout.column,m.columns=e.layout.columns,m}const N=l(),O={heading:0,tilt:0};export{j as InternalRenderCategory,g as
|
|
5
|
+
import o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{scale as i,add as n}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import c from"../../geometry/Point.js";import a from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as m}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as p}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as d,viewModeDependentUtil as R}from"./support/viewingModeUtils.js";const g={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},j={SSAO:"ssao",LASERLINES:"laserline-color",ANTIALIASING:"aa-color",HIGHLIGHTS:"highlight-color",MAGNIFIER:"magnifier-color",OCCLUDED:"occluded-color",VIEWSHED:"viewshed-color",CUTFILL_DEPTH:"cutfill-depth",CUTFILL_COLOR:"cutfill-color",OPAQUE_TERRAIN:"opaque-terrain-color",OPAQUE_ENVIRONMENT:"opaque-environment-color",TRANSPARENT_ENVIRONMENT:"transparent-environment-color",FOCUSAREA:"focusarea",FOCUSAREA_COLOR:"focusarea-color"};function A(o,e,r,t,i,n,l){return t=t||o.spatialReference,m(e,t,r,i,o.renderCoordsHelper.spatialReference,n,l)?i:null}function E(o,e,r,t,i,n,l){return n=n||o.spatialReference,m(e,o.renderCoordsHelper.spatialReference,r,t,n,i,l)?t:null}function T(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function y(r,t,i){const n=r.renderSpatialReference,l=d(r,t.eye,t.viewForward,t.up,O);let s=r.spatialReference;return f(t.eye,n,N,s)||(s=a.WGS84,f(t.eye,n,N,s)),null==i?i=new o(new c(N,s),l.heading,l.tilt,e(t.fov)):(i.position.x=N[0],i.position.y=N[1],i.position.z=N[2],i.position.spatialReference=s,i.heading=l.heading,i.tilt=l.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function I(o,e){if(!e)return null;const t=o.renderSpatialReference,c=R(o).headingTiltToDirectionUp,a=l();if(!p(e.position,a,t))return null;const s=c(a,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,a);const m=u(o,a,s.direction,s.up);return m.fov=r(e.fov),m.row=e.layout.row,m.rows=e.layout.rows,m.column=e.layout.column,m.columns=e.layout.columns,m}const N=l(),O={heading:0,tilt:0};export{j as InternalRenderCategory,g as RenderNodeOutput,y as fromRenderCamera,E as fromRenderCoordinates,T as renderCoordinateTransformAt,I as toRenderCamera,A as toRenderCoordinates};
|
package/views/Theme.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type Color from "../Color.js";
|
|
2
2
|
import type Accessor from "../core/Accessor.js";
|
|
3
|
-
import type { ClonableMixin
|
|
3
|
+
import type { ClonableMixin } from "../core/Clonable.js";
|
|
4
4
|
import type { ColorLike } from "../Color.js";
|
|
5
5
|
|
|
6
|
-
export interface ThemeProperties
|
|
6
|
+
export interface ThemeProperties {
|
|
7
7
|
/** The base color used to render temporary graphics in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html). */
|
|
8
8
|
accentColor?: ColorLike;
|
|
9
9
|
/** The base color used to render temporary labels in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html). */
|
package/views/VideoView.d.ts
CHANGED
|
@@ -3,13 +3,13 @@ import type WebMap from "../WebMap.js";
|
|
|
3
3
|
import type Accessor from "../core/Accessor.js";
|
|
4
4
|
import type VideoLayer from "../layers/VideoLayer.js";
|
|
5
5
|
import type Navigation from "./navigation/Navigation.js";
|
|
6
|
-
import type { EventedMixin
|
|
7
|
-
import type { EsriPromiseMixin
|
|
6
|
+
import type { EventedMixin } from "../core/Evented.js";
|
|
7
|
+
import type { EsriPromiseMixin } from "../core/Promise.js";
|
|
8
8
|
import type { DOMContainer, DOMContainerProperties } from "./DOMContainer.js";
|
|
9
|
-
import type { Viewport2DMixin
|
|
9
|
+
import type { Viewport2DMixin } from "./Viewport2DMixin.js";
|
|
10
10
|
import type { NavigationProperties } from "./navigation/Navigation.js";
|
|
11
11
|
|
|
12
|
-
export interface VideoViewProperties extends
|
|
12
|
+
export interface VideoViewProperties extends DOMContainerProperties, Partial<Pick<VideoView, "layer" | "map" | "scale">> {
|
|
13
13
|
/**
|
|
14
14
|
* Options to configure the navigation behavior of the View.
|
|
15
15
|
*
|
package/views/View.d.ts
CHANGED
|
@@ -15,8 +15,8 @@ import type Navigation from "./navigation/Navigation.js";
|
|
|
15
15
|
import type AttributionItem from "./support/AttributionItem.js";
|
|
16
16
|
import type HighlightOptions from "./support/HighlightOptions.js";
|
|
17
17
|
import type { ReadonlyArrayOrCollection, ReadonlyCollection } from "../core/Collection.js";
|
|
18
|
-
import type { EventedMixin
|
|
19
|
-
import type { EsriPromise
|
|
18
|
+
import type { EventedMixin } from "../core/Evented.js";
|
|
19
|
+
import type { EsriPromise } from "../core/Promise.js";
|
|
20
20
|
import type { SpatialReferenceProperties } from "../geometry/SpatialReference.js";
|
|
21
21
|
import type { SceneViewEventTypes } from "./types.js";
|
|
22
22
|
import type { ViewPadding } from "./ui/types.js";
|
|
@@ -27,7 +27,7 @@ import type { TimeExtentProperties } from "../time/TimeExtent.js";
|
|
|
27
27
|
import type { NavigationProperties } from "./navigation/Navigation.js";
|
|
28
28
|
import type { ThemeProperties } from "./Theme.js";
|
|
29
29
|
|
|
30
|
-
export interface ViewProperties<TLayerView extends LayerView = LayerView> extends
|
|
30
|
+
export interface ViewProperties<TLayerView extends LayerView = LayerView> extends Partial<Pick<View<TLayerView>, "animation" | "animationsEnabled" | "attributionVisible" | "basemapView" | "displayFilterEnabled" | "fatalError" | "padding">> {
|
|
31
31
|
/**
|
|
32
32
|
* Allows for adding [graphics](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) directly to the default graphics in the View.
|
|
33
33
|
*
|
package/views/View2D.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ import type { BreakpointsOwner, BreakpointsOwnerProperties } from "./Breakpoints
|
|
|
25
25
|
import type { DOMContainer, DOMContainerProperties } from "./DOMContainer.js";
|
|
26
26
|
import type { PopupView, PopupViewProperties } from "./PopupView.js";
|
|
27
27
|
import type { GoToOptions2D, GoToTarget2D, ToScreenOptions2D } from "./types.js";
|
|
28
|
-
import type { Viewport2DMixin
|
|
28
|
+
import type { Viewport2DMixin } from "./Viewport2DMixin.js";
|
|
29
29
|
import type { MapViewConstraintsProperties } from "./2d/MapViewConstraints.js";
|
|
30
30
|
import type { LayerView2DFor, ResizeAlign } from "./2d/types.js";
|
|
31
31
|
import type { AnalysisView2DUnion } from "./2d/analysis/types.js";
|
|
@@ -34,7 +34,7 @@ import type { PointProperties } from "../geometry/Point.js";
|
|
|
34
34
|
import type { HighlightOptionsProperties } from "./support/HighlightOptions.js";
|
|
35
35
|
import type { ViewProperties } from "./View.js";
|
|
36
36
|
|
|
37
|
-
export interface View2DProperties extends ViewProperties, DOMContainerProperties, PopupViewProperties, BreakpointsOwnerProperties,
|
|
37
|
+
export interface View2DProperties extends ViewProperties, DOMContainerProperties, PopupViewProperties, BreakpointsOwnerProperties, Partial<Pick<View2D, "resizeAlign" | "rotation" | "scale" | "spatialReferenceLocked" | "timeZone" | "zoom">> {
|
|
38
38
|
/**
|
|
39
39
|
* A collection of analyses associated with the view.
|
|
40
40
|
*
|
package/views/ViewAnimation.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type Viewpoint from "../Viewpoint.js";
|
|
2
|
-
import type { EsriPromise
|
|
2
|
+
import type { EsriPromise } from "../core/Promise.js";
|
|
3
3
|
import type { ViewAnimationStateType } from "./animation/types.js";
|
|
4
4
|
|
|
5
|
-
export interface ViewAnimationProperties extends
|
|
5
|
+
export interface ViewAnimationProperties extends Partial<Pick<ViewAnimation, "target">> {}
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Contains a [state](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-ViewAnimation.html#state) property used for checking the state of the animation.
|
|
@@ -2,8 +2,6 @@ import type { EventNames } from "../core/Evented.js";
|
|
|
2
2
|
import type { ResourceHandle } from "../core/Handles.js";
|
|
3
3
|
import type { SceneViewEventTypes } from "./types.js";
|
|
4
4
|
|
|
5
|
-
export interface Viewport2DMixinProperties {}
|
|
6
|
-
|
|
7
5
|
/** @since 5.0 */
|
|
8
6
|
export type Viewport2DMixinEvents = SceneViewEventTypes;
|
|
9
7
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ElevationProfileLineUnion } from "../../../analysis/ElevationProfile/types.js";
|
|
2
|
-
import type { Clonable
|
|
2
|
+
import type { Clonable } from "../../../core/Clonable.js";
|
|
3
3
|
import type { ElevationProfileSample, ElevationProfileStatistics } from "./types.js";
|
|
4
4
|
|
|
5
|
-
export interface ElevationProfileResultProperties
|
|
5
|
+
export interface ElevationProfileResultProperties {}
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Represents the result for each [profile line](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-ElevationProfile-ElevationProfileLine.html)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type Point from "../../geometry/Point.js";
|
|
2
|
-
import type { EventedAccessor
|
|
3
|
-
import type { EsriPromiseMixin
|
|
2
|
+
import type { EventedAccessor } from "../../core/Evented.js";
|
|
3
|
+
import type { EsriPromiseMixin } from "../../core/Promise.js";
|
|
4
4
|
import type { ScreenPoint } from "../../core/types.js";
|
|
5
5
|
import type { MapViewOrSceneView } from "../MapViewOrSceneView.js";
|
|
6
6
|
|
|
7
|
-
export interface DrawActionProperties extends
|
|
7
|
+
export interface DrawActionProperties extends Partial<Pick<DrawAction, "hasZ" | "view">> {}
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* DrawAction is the base class for all draw actions. DrawActions use the view events to generate a set
|