@itwin/core-common 3.2.0-dev.9 → 3.2.2
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/CHANGELOG.md +61 -1
- package/lib/cjs/AnalysisStyle.d.ts +3 -0
- package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
- package/lib/cjs/AnalysisStyle.js.map +1 -1
- package/lib/cjs/BackgroundMapProvider.d.ts +6 -0
- package/lib/cjs/BackgroundMapProvider.d.ts.map +1 -1
- package/lib/cjs/BackgroundMapProvider.js +10 -0
- package/lib/cjs/BackgroundMapProvider.js.map +1 -1
- package/lib/cjs/BackgroundMapSettings.d.ts +4 -0
- package/lib/cjs/BackgroundMapSettings.d.ts.map +1 -1
- package/lib/cjs/BackgroundMapSettings.js +1 -0
- package/lib/cjs/BackgroundMapSettings.js.map +1 -1
- package/lib/cjs/Base64EncodedString.d.ts +1 -0
- package/lib/cjs/Base64EncodedString.d.ts.map +1 -1
- package/lib/cjs/Base64EncodedString.js.map +1 -1
- package/lib/cjs/BriefcaseTypes.d.ts +5 -0
- package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
- package/lib/cjs/BriefcaseTypes.js +2 -0
- package/lib/cjs/BriefcaseTypes.js.map +1 -1
- package/lib/cjs/Camera.d.ts +1 -0
- package/lib/cjs/Camera.d.ts.map +1 -1
- package/lib/cjs/Camera.js.map +1 -1
- package/lib/cjs/ChangedElements.d.ts +2 -0
- package/lib/cjs/ChangedElements.d.ts.map +1 -1
- package/lib/cjs/ChangedElements.js +1 -0
- package/lib/cjs/ChangedElements.js.map +1 -1
- package/lib/cjs/ChangedEntities.d.ts +3 -0
- package/lib/cjs/ChangedEntities.d.ts.map +1 -1
- package/lib/cjs/ChangedEntities.js.map +1 -1
- package/lib/cjs/ChangesetProps.d.ts +9 -1
- package/lib/cjs/ChangesetProps.d.ts.map +1 -1
- package/lib/cjs/ChangesetProps.js +3 -1
- package/lib/cjs/ChangesetProps.js.map +1 -1
- package/lib/cjs/ClipStyle.d.ts +2 -0
- package/lib/cjs/ClipStyle.d.ts.map +1 -1
- package/lib/cjs/ClipStyle.js.map +1 -1
- package/lib/cjs/CloudStorage.d.ts.map +1 -1
- package/lib/cjs/CloudStorage.js +14 -20
- package/lib/cjs/CloudStorage.js.map +1 -1
- package/lib/cjs/Code.d.ts +3 -0
- package/lib/cjs/Code.d.ts.map +1 -1
- package/lib/cjs/Code.js +1 -0
- package/lib/cjs/Code.js.map +1 -1
- package/lib/cjs/ColorByName.d.ts +153 -152
- package/lib/cjs/ColorByName.d.ts.map +1 -1
- package/lib/cjs/ColorByName.js +153 -153
- package/lib/cjs/ColorByName.js.map +1 -1
- package/lib/cjs/ColorDef.d.ts +55 -46
- package/lib/cjs/ColorDef.d.ts.map +1 -1
- package/lib/cjs/ColorDef.js +49 -31
- package/lib/cjs/ColorDef.js.map +1 -1
- package/lib/cjs/CommonLoggerCategory.d.ts +1 -0
- package/lib/cjs/CommonLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/CommonLoggerCategory.js +1 -0
- package/lib/cjs/CommonLoggerCategory.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.d.ts +6 -1
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +3 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/ContextRealityModel.d.ts +2 -0
- package/lib/cjs/ContextRealityModel.d.ts.map +1 -1
- package/lib/cjs/ContextRealityModel.js.map +1 -1
- package/lib/cjs/DisplayStyleSettings.d.ts +10 -0
- package/lib/cjs/DisplayStyleSettings.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleSettings.js +1 -0
- package/lib/cjs/DisplayStyleSettings.js.map +1 -1
- package/lib/cjs/ECSqlTypes.d.ts +6 -0
- package/lib/cjs/ECSqlTypes.d.ts.map +1 -1
- package/lib/cjs/ECSqlTypes.js +4 -0
- package/lib/cjs/ECSqlTypes.js.map +1 -1
- package/lib/cjs/ElementProps.d.ts +37 -1
- package/lib/cjs/ElementProps.d.ts.map +1 -1
- package/lib/cjs/ElementProps.js +2 -0
- package/lib/cjs/ElementProps.js.map +1 -1
- package/lib/cjs/EmphasizeElementsProps.d.ts +3 -0
- package/lib/cjs/EmphasizeElementsProps.d.ts.map +1 -1
- package/lib/cjs/EmphasizeElementsProps.js +1 -0
- package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
- package/lib/cjs/EntityProps.d.ts +4 -0
- package/lib/cjs/EntityProps.d.ts.map +1 -1
- package/lib/cjs/EntityProps.js.map +1 -1
- package/lib/cjs/Environment.d.ts +1 -0
- package/lib/cjs/Environment.d.ts.map +1 -1
- package/lib/cjs/Environment.js.map +1 -1
- package/lib/cjs/FeatureSymbology.d.ts +3 -0
- package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/FeatureSymbology.js.map +1 -1
- package/lib/cjs/FeatureTable.d.ts +1 -0
- package/lib/cjs/FeatureTable.d.ts.map +1 -1
- package/lib/cjs/FeatureTable.js +1 -0
- package/lib/cjs/FeatureTable.js.map +1 -1
- package/lib/cjs/Fonts.d.ts +3 -0
- package/lib/cjs/Fonts.d.ts.map +1 -1
- package/lib/cjs/Fonts.js +1 -0
- package/lib/cjs/Fonts.js.map +1 -1
- package/lib/cjs/Frustum.d.ts +1 -0
- package/lib/cjs/Frustum.d.ts.map +1 -1
- package/lib/cjs/Frustum.js +1 -0
- package/lib/cjs/Frustum.js.map +1 -1
- package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
- package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
- package/lib/cjs/GeoCoordinateServices.js +1 -0
- package/lib/cjs/GeoCoordinateServices.js.map +1 -1
- package/lib/cjs/GeometryContainment.d.ts +2 -0
- package/lib/cjs/GeometryContainment.d.ts.map +1 -1
- package/lib/cjs/GeometryContainment.js.map +1 -1
- package/lib/cjs/GeometryParams.d.ts +3 -0
- package/lib/cjs/GeometryParams.d.ts.map +1 -1
- package/lib/cjs/GeometryParams.js +3 -0
- package/lib/cjs/GeometryParams.js.map +1 -1
- package/lib/cjs/GeometrySummary.d.ts +3 -0
- package/lib/cjs/GeometrySummary.d.ts.map +1 -1
- package/lib/cjs/GeometrySummary.js +1 -0
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/GraphicParams.d.ts +1 -0
- package/lib/cjs/GraphicParams.d.ts.map +1 -1
- package/lib/cjs/GraphicParams.js +1 -0
- package/lib/cjs/GraphicParams.js.map +1 -1
- package/lib/cjs/GroundPlane.d.ts +1 -0
- package/lib/cjs/GroundPlane.d.ts.map +1 -1
- package/lib/cjs/GroundPlane.js.map +1 -1
- package/lib/cjs/HSVColor.d.ts +4 -1
- package/lib/cjs/HSVColor.d.ts.map +1 -1
- package/lib/cjs/HSVColor.js +4 -1
- package/lib/cjs/HSVColor.js.map +1 -1
- package/lib/cjs/HiddenLine.d.ts +12 -17
- package/lib/cjs/HiddenLine.d.ts.map +1 -1
- package/lib/cjs/HiddenLine.js +6 -2
- package/lib/cjs/HiddenLine.js.map +1 -1
- package/lib/cjs/IModel.d.ts +6 -1
- package/lib/cjs/IModel.d.ts.map +1 -1
- package/lib/cjs/IModel.js.map +1 -1
- package/lib/cjs/Image.d.ts +2 -0
- package/lib/cjs/Image.d.ts.map +1 -1
- package/lib/cjs/Image.js +2 -0
- package/lib/cjs/Image.js.map +1 -1
- package/lib/cjs/IpcAppProps.d.ts +1 -0
- package/lib/cjs/IpcAppProps.d.ts.map +1 -1
- package/lib/cjs/IpcAppProps.js.map +1 -1
- package/lib/cjs/LightSettings.d.ts +5 -0
- package/lib/cjs/LightSettings.d.ts.map +1 -1
- package/lib/cjs/LightSettings.js.map +1 -1
- package/lib/cjs/LinePixels.d.ts +1 -0
- package/lib/cjs/LinePixels.d.ts.map +1 -1
- package/lib/cjs/LinePixels.js +1 -0
- package/lib/cjs/LinePixels.js.map +1 -1
- package/lib/cjs/Localization.d.ts +1 -0
- package/lib/cjs/Localization.d.ts.map +1 -1
- package/lib/cjs/Localization.js.map +1 -1
- package/lib/cjs/MassProperties.d.ts +27 -1
- package/lib/cjs/MassProperties.d.ts.map +1 -1
- package/lib/cjs/MassProperties.js +1 -0
- package/lib/cjs/MassProperties.js.map +1 -1
- package/lib/cjs/MaterialProps.d.ts +6 -0
- package/lib/cjs/MaterialProps.d.ts.map +1 -1
- package/lib/cjs/MaterialProps.js +1 -0
- package/lib/cjs/MaterialProps.js.map +1 -1
- package/lib/cjs/ModelClipGroup.d.ts +1 -0
- package/lib/cjs/ModelClipGroup.d.ts.map +1 -1
- package/lib/cjs/ModelClipGroup.js.map +1 -1
- package/lib/cjs/ModelGeometryChanges.d.ts +9 -1
- package/lib/cjs/ModelGeometryChanges.d.ts.map +1 -1
- package/lib/cjs/ModelGeometryChanges.js.map +1 -1
- package/lib/cjs/ModelProps.d.ts +6 -0
- package/lib/cjs/ModelProps.d.ts.map +1 -1
- package/lib/cjs/ModelProps.js.map +1 -1
- package/lib/cjs/PlanProjectionSettings.d.ts +1 -0
- package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
- package/lib/cjs/PlanProjectionSettings.js.map +1 -1
- package/lib/cjs/PlanarClipMask.d.ts +3 -0
- package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
- package/lib/cjs/PlanarClipMask.js +2 -0
- package/lib/cjs/PlanarClipMask.js.map +1 -1
- package/lib/cjs/RgbColor.d.ts +1 -0
- package/lib/cjs/RgbColor.d.ts.map +1 -1
- package/lib/cjs/RgbColor.js.map +1 -1
- package/lib/cjs/SessionProps.d.ts +1 -0
- package/lib/cjs/SessionProps.d.ts.map +1 -1
- package/lib/cjs/SessionProps.js.map +1 -1
- package/lib/cjs/SkyBox.d.ts +4 -0
- package/lib/cjs/SkyBox.d.ts.map +1 -1
- package/lib/cjs/SkyBox.js +1 -0
- package/lib/cjs/SkyBox.js.map +1 -1
- package/lib/cjs/SolarShadows.d.ts +1 -0
- package/lib/cjs/SolarShadows.d.ts.map +1 -1
- package/lib/cjs/SolarShadows.js.map +1 -1
- package/lib/cjs/SpatialClassification.d.ts +5 -0
- package/lib/cjs/SpatialClassification.d.ts.map +1 -1
- package/lib/cjs/SpatialClassification.js +2 -0
- package/lib/cjs/SpatialClassification.js.map +1 -1
- package/lib/cjs/TerrainSettings.d.ts +3 -0
- package/lib/cjs/TerrainSettings.d.ts.map +1 -1
- package/lib/cjs/TerrainSettings.js +1 -0
- package/lib/cjs/TerrainSettings.js.map +1 -1
- package/lib/cjs/TextureProps.d.ts +3 -0
- package/lib/cjs/TextureProps.d.ts.map +1 -1
- package/lib/cjs/TextureProps.js.map +1 -1
- package/lib/cjs/ThematicDisplay.d.ts +9 -1
- package/lib/cjs/ThematicDisplay.d.ts.map +1 -1
- package/lib/cjs/ThematicDisplay.js +5 -1
- package/lib/cjs/ThematicDisplay.js.map +1 -1
- package/lib/cjs/Thumbnail.d.ts +2 -0
- package/lib/cjs/Thumbnail.d.ts.map +1 -1
- package/lib/cjs/Thumbnail.js.map +1 -1
- package/lib/cjs/TileProps.d.ts +1 -0
- package/lib/cjs/TileProps.d.ts.map +1 -1
- package/lib/cjs/TileProps.js.map +1 -1
- package/lib/cjs/Tween.d.ts +16 -4
- package/lib/cjs/Tween.d.ts.map +1 -1
- package/lib/cjs/Tween.js.map +1 -1
- package/lib/cjs/TxnAction.d.ts +1 -0
- package/lib/cjs/TxnAction.d.ts.map +1 -1
- package/lib/cjs/TxnAction.js +1 -0
- package/lib/cjs/TxnAction.js.map +1 -1
- package/lib/cjs/ViewDetails.d.ts +3 -0
- package/lib/cjs/ViewDetails.d.ts.map +1 -1
- package/lib/cjs/ViewDetails.js +1 -0
- package/lib/cjs/ViewDetails.js.map +1 -1
- package/lib/cjs/ViewFlags.d.ts +4 -0
- package/lib/cjs/ViewFlags.d.ts.map +1 -1
- package/lib/cjs/ViewFlags.js +1 -0
- package/lib/cjs/ViewFlags.js.map +1 -1
- package/lib/cjs/ViewProps.d.ts +69 -3
- package/lib/cjs/ViewProps.d.ts.map +1 -1
- package/lib/cjs/ViewProps.js.map +1 -1
- package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +1 -0
- package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts.map +1 -1
- package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/cjs/domains/FunctionalElementProps.d.ts +4 -1
- package/lib/cjs/domains/FunctionalElementProps.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
- package/lib/cjs/domains/GenericElementProps.d.ts +8 -2
- package/lib/cjs/domains/GenericElementProps.d.ts.map +1 -1
- package/lib/cjs/domains/GenericElementProps.js.map +1 -1
- package/lib/cjs/geometry/AdditionalTransform.d.ts +2 -0
- package/lib/cjs/geometry/AdditionalTransform.d.ts.map +1 -1
- package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
- package/lib/cjs/geometry/Cartographic.d.ts +1 -0
- package/lib/cjs/geometry/Cartographic.d.ts.map +1 -1
- package/lib/cjs/geometry/Cartographic.js.map +1 -1
- package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +5 -0
- package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts.map +1 -1
- package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometry.d.ts +2 -0
- package/lib/cjs/geometry/ElementGeometry.d.ts.map +1 -1
- package/lib/cjs/geometry/ElementGeometry.js +1 -0
- package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
- package/lib/cjs/geometry/GeodeticDatum.d.ts +80 -1
- package/lib/cjs/geometry/GeodeticDatum.d.ts.map +1 -1
- package/lib/cjs/geometry/GeodeticDatum.js +79 -1
- package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
- package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +1 -0
- package/lib/cjs/geometry/GeodeticEllipsoid.d.ts.map +1 -1
- package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/cjs/geometry/GeometryStream.d.ts +15 -0
- package/lib/cjs/geometry/GeometryStream.d.ts.map +1 -1
- package/lib/cjs/geometry/GeometryStream.js +11 -7
- package/lib/cjs/geometry/GeometryStream.js.map +1 -1
- package/lib/cjs/geometry/ImageGraphic.d.ts +2 -0
- package/lib/cjs/geometry/ImageGraphic.d.ts.map +1 -1
- package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
- package/lib/cjs/geometry/Placement.d.ts +6 -0
- package/lib/cjs/geometry/Placement.d.ts.map +1 -1
- package/lib/cjs/geometry/Placement.js.map +1 -1
- package/lib/cjs/geometry/Projection.d.ts +6 -0
- package/lib/cjs/geometry/Projection.d.ts.map +1 -1
- package/lib/cjs/geometry/Projection.js.map +1 -1
- package/lib/cjs/geometry/TextString.d.ts +1 -0
- package/lib/cjs/geometry/TextString.d.ts.map +1 -1
- package/lib/cjs/geometry/TextString.js.map +1 -1
- package/lib/cjs/ipc/IpcSocket.d.ts +1 -0
- package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
- package/lib/cjs/ipc/IpcSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocketTransport.d.ts.map +1 -1
- package/lib/cjs/ipc/IpcWebSocketTransport.js +3 -2
- package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +5 -2
- package/lib/cjs/rpc/IModelReadRpcInterface.d.ts.map +1 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.js +4 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +4 -2
- package/lib/cjs/rpc/IModelTileRpcInterface.d.ts.map +1 -1
- package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -2
- package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/core/RpcControl.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcControl.js +3 -2
- package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
- package/lib/cjs/rpc/core/RpcInvocation.d.ts +3 -0
- package/lib/cjs/rpc/core/RpcInvocation.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcInvocation.js +32 -1
- package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.js +2 -1
- package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/cjs/rpc/core/RpcOperation.d.ts +2 -0
- package/lib/cjs/rpc/core/RpcOperation.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcOperation.js +2 -0
- package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcProtocol.d.ts +24 -1
- package/lib/cjs/rpc/core/RpcProtocol.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcProtocol.js +15 -2
- package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.d.ts +3 -0
- package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.js +36 -1
- package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +1 -2
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.d.ts +1 -0
- package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.js +2 -1
- package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.js +14 -10
- package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +3 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js +8 -7
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +5 -6
- package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.js +49 -30
- package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +1 -0
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +4 -3
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/cjs/tile/ElementGraphics.d.ts +20 -2
- package/lib/cjs/tile/ElementGraphics.d.ts.map +1 -1
- package/lib/cjs/tile/ElementGraphics.js.map +1 -1
- package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
- package/lib/cjs/tile/IModelTileIO.js +2 -2
- package/lib/cjs/tile/IModelTileIO.js.map +1 -1
- package/lib/cjs/tile/TileMetadata.d.ts +18 -13
- package/lib/cjs/tile/TileMetadata.d.ts.map +1 -1
- package/lib/cjs/tile/TileMetadata.js +164 -134
- package/lib/cjs/tile/TileMetadata.js.map +1 -1
- package/lib/esm/AnalysisStyle.d.ts +3 -0
- package/lib/esm/AnalysisStyle.d.ts.map +1 -1
- package/lib/esm/AnalysisStyle.js.map +1 -1
- package/lib/esm/BackgroundMapProvider.d.ts +6 -0
- package/lib/esm/BackgroundMapProvider.d.ts.map +1 -1
- package/lib/esm/BackgroundMapProvider.js +10 -0
- package/lib/esm/BackgroundMapProvider.js.map +1 -1
- package/lib/esm/BackgroundMapSettings.d.ts +4 -0
- package/lib/esm/BackgroundMapSettings.d.ts.map +1 -1
- package/lib/esm/BackgroundMapSettings.js +1 -0
- package/lib/esm/BackgroundMapSettings.js.map +1 -1
- package/lib/esm/Base64EncodedString.d.ts +1 -0
- package/lib/esm/Base64EncodedString.d.ts.map +1 -1
- package/lib/esm/Base64EncodedString.js.map +1 -1
- package/lib/esm/BriefcaseTypes.d.ts +5 -0
- package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
- package/lib/esm/BriefcaseTypes.js +2 -0
- package/lib/esm/BriefcaseTypes.js.map +1 -1
- package/lib/esm/Camera.d.ts +1 -0
- package/lib/esm/Camera.d.ts.map +1 -1
- package/lib/esm/Camera.js.map +1 -1
- package/lib/esm/ChangedElements.d.ts +2 -0
- package/lib/esm/ChangedElements.d.ts.map +1 -1
- package/lib/esm/ChangedElements.js +1 -0
- package/lib/esm/ChangedElements.js.map +1 -1
- package/lib/esm/ChangedEntities.d.ts +3 -0
- package/lib/esm/ChangedEntities.d.ts.map +1 -1
- package/lib/esm/ChangedEntities.js.map +1 -1
- package/lib/esm/ChangesetProps.d.ts +9 -1
- package/lib/esm/ChangesetProps.d.ts.map +1 -1
- package/lib/esm/ChangesetProps.js +3 -1
- package/lib/esm/ChangesetProps.js.map +1 -1
- package/lib/esm/ClipStyle.d.ts +2 -0
- package/lib/esm/ClipStyle.d.ts.map +1 -1
- package/lib/esm/ClipStyle.js.map +1 -1
- package/lib/esm/CloudStorage.d.ts.map +1 -1
- package/lib/esm/CloudStorage.js +14 -20
- package/lib/esm/CloudStorage.js.map +1 -1
- package/lib/esm/Code.d.ts +3 -0
- package/lib/esm/Code.d.ts.map +1 -1
- package/lib/esm/Code.js +1 -0
- package/lib/esm/Code.js.map +1 -1
- package/lib/esm/ColorByName.d.ts +153 -152
- package/lib/esm/ColorByName.d.ts.map +1 -1
- package/lib/esm/ColorByName.js +153 -153
- package/lib/esm/ColorByName.js.map +1 -1
- package/lib/esm/ColorDef.d.ts +55 -46
- package/lib/esm/ColorDef.d.ts.map +1 -1
- package/lib/esm/ColorDef.js +49 -31
- package/lib/esm/ColorDef.js.map +1 -1
- package/lib/esm/CommonLoggerCategory.d.ts +1 -0
- package/lib/esm/CommonLoggerCategory.d.ts.map +1 -1
- package/lib/esm/CommonLoggerCategory.js +1 -0
- package/lib/esm/CommonLoggerCategory.js.map +1 -1
- package/lib/esm/ConcurrentQuery.d.ts +6 -1
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
- package/lib/esm/ConcurrentQuery.js +2 -0
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/ContextRealityModel.d.ts +2 -0
- package/lib/esm/ContextRealityModel.d.ts.map +1 -1
- package/lib/esm/ContextRealityModel.js.map +1 -1
- package/lib/esm/DisplayStyleSettings.d.ts +10 -0
- package/lib/esm/DisplayStyleSettings.d.ts.map +1 -1
- package/lib/esm/DisplayStyleSettings.js +1 -0
- package/lib/esm/DisplayStyleSettings.js.map +1 -1
- package/lib/esm/ECSqlTypes.d.ts +6 -0
- package/lib/esm/ECSqlTypes.d.ts.map +1 -1
- package/lib/esm/ECSqlTypes.js +4 -0
- package/lib/esm/ECSqlTypes.js.map +1 -1
- package/lib/esm/ElementProps.d.ts +37 -1
- package/lib/esm/ElementProps.d.ts.map +1 -1
- package/lib/esm/ElementProps.js +2 -0
- package/lib/esm/ElementProps.js.map +1 -1
- package/lib/esm/EmphasizeElementsProps.d.ts +3 -0
- package/lib/esm/EmphasizeElementsProps.d.ts.map +1 -1
- package/lib/esm/EmphasizeElementsProps.js +1 -0
- package/lib/esm/EmphasizeElementsProps.js.map +1 -1
- package/lib/esm/EntityProps.d.ts +4 -0
- package/lib/esm/EntityProps.d.ts.map +1 -1
- package/lib/esm/EntityProps.js.map +1 -1
- package/lib/esm/Environment.d.ts +1 -0
- package/lib/esm/Environment.d.ts.map +1 -1
- package/lib/esm/Environment.js.map +1 -1
- package/lib/esm/FeatureSymbology.d.ts +3 -0
- package/lib/esm/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/FeatureSymbology.js.map +1 -1
- package/lib/esm/FeatureTable.d.ts +1 -0
- package/lib/esm/FeatureTable.d.ts.map +1 -1
- package/lib/esm/FeatureTable.js +1 -0
- package/lib/esm/FeatureTable.js.map +1 -1
- package/lib/esm/Fonts.d.ts +3 -0
- package/lib/esm/Fonts.d.ts.map +1 -1
- package/lib/esm/Fonts.js +1 -0
- package/lib/esm/Fonts.js.map +1 -1
- package/lib/esm/Frustum.d.ts +1 -0
- package/lib/esm/Frustum.d.ts.map +1 -1
- package/lib/esm/Frustum.js +1 -0
- package/lib/esm/Frustum.js.map +1 -1
- package/lib/esm/GeoCoordinateServices.d.ts +1 -0
- package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
- package/lib/esm/GeoCoordinateServices.js +1 -0
- package/lib/esm/GeoCoordinateServices.js.map +1 -1
- package/lib/esm/GeometryContainment.d.ts +2 -0
- package/lib/esm/GeometryContainment.d.ts.map +1 -1
- package/lib/esm/GeometryContainment.js.map +1 -1
- package/lib/esm/GeometryParams.d.ts +3 -0
- package/lib/esm/GeometryParams.d.ts.map +1 -1
- package/lib/esm/GeometryParams.js +3 -0
- package/lib/esm/GeometryParams.js.map +1 -1
- package/lib/esm/GeometrySummary.d.ts +3 -0
- package/lib/esm/GeometrySummary.d.ts.map +1 -1
- package/lib/esm/GeometrySummary.js +1 -0
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/GraphicParams.d.ts +1 -0
- package/lib/esm/GraphicParams.d.ts.map +1 -1
- package/lib/esm/GraphicParams.js +1 -0
- package/lib/esm/GraphicParams.js.map +1 -1
- package/lib/esm/GroundPlane.d.ts +1 -0
- package/lib/esm/GroundPlane.d.ts.map +1 -1
- package/lib/esm/GroundPlane.js.map +1 -1
- package/lib/esm/HSVColor.d.ts +4 -1
- package/lib/esm/HSVColor.d.ts.map +1 -1
- package/lib/esm/HSVColor.js +4 -1
- package/lib/esm/HSVColor.js.map +1 -1
- package/lib/esm/HiddenLine.d.ts +12 -17
- package/lib/esm/HiddenLine.d.ts.map +1 -1
- package/lib/esm/HiddenLine.js +6 -2
- package/lib/esm/HiddenLine.js.map +1 -1
- package/lib/esm/IModel.d.ts +6 -1
- package/lib/esm/IModel.d.ts.map +1 -1
- package/lib/esm/IModel.js.map +1 -1
- package/lib/esm/Image.d.ts +2 -0
- package/lib/esm/Image.d.ts.map +1 -1
- package/lib/esm/Image.js +2 -0
- package/lib/esm/Image.js.map +1 -1
- package/lib/esm/IpcAppProps.d.ts +1 -0
- package/lib/esm/IpcAppProps.d.ts.map +1 -1
- package/lib/esm/IpcAppProps.js.map +1 -1
- package/lib/esm/LightSettings.d.ts +5 -0
- package/lib/esm/LightSettings.d.ts.map +1 -1
- package/lib/esm/LightSettings.js.map +1 -1
- package/lib/esm/LinePixels.d.ts +1 -0
- package/lib/esm/LinePixels.d.ts.map +1 -1
- package/lib/esm/LinePixels.js +1 -0
- package/lib/esm/LinePixels.js.map +1 -1
- package/lib/esm/Localization.d.ts +1 -0
- package/lib/esm/Localization.d.ts.map +1 -1
- package/lib/esm/Localization.js.map +1 -1
- package/lib/esm/MassProperties.d.ts +27 -1
- package/lib/esm/MassProperties.d.ts.map +1 -1
- package/lib/esm/MassProperties.js +1 -0
- package/lib/esm/MassProperties.js.map +1 -1
- package/lib/esm/MaterialProps.d.ts +6 -0
- package/lib/esm/MaterialProps.d.ts.map +1 -1
- package/lib/esm/MaterialProps.js +1 -0
- package/lib/esm/MaterialProps.js.map +1 -1
- package/lib/esm/ModelClipGroup.d.ts +1 -0
- package/lib/esm/ModelClipGroup.d.ts.map +1 -1
- package/lib/esm/ModelClipGroup.js.map +1 -1
- package/lib/esm/ModelGeometryChanges.d.ts +9 -1
- package/lib/esm/ModelGeometryChanges.d.ts.map +1 -1
- package/lib/esm/ModelGeometryChanges.js.map +1 -1
- package/lib/esm/ModelProps.d.ts +6 -0
- package/lib/esm/ModelProps.d.ts.map +1 -1
- package/lib/esm/ModelProps.js.map +1 -1
- package/lib/esm/PlanProjectionSettings.d.ts +1 -0
- package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
- package/lib/esm/PlanProjectionSettings.js.map +1 -1
- package/lib/esm/PlanarClipMask.d.ts +3 -0
- package/lib/esm/PlanarClipMask.d.ts.map +1 -1
- package/lib/esm/PlanarClipMask.js +2 -0
- package/lib/esm/PlanarClipMask.js.map +1 -1
- package/lib/esm/RgbColor.d.ts +1 -0
- package/lib/esm/RgbColor.d.ts.map +1 -1
- package/lib/esm/RgbColor.js.map +1 -1
- package/lib/esm/SessionProps.d.ts +1 -0
- package/lib/esm/SessionProps.d.ts.map +1 -1
- package/lib/esm/SessionProps.js.map +1 -1
- package/lib/esm/SkyBox.d.ts +4 -0
- package/lib/esm/SkyBox.d.ts.map +1 -1
- package/lib/esm/SkyBox.js +1 -0
- package/lib/esm/SkyBox.js.map +1 -1
- package/lib/esm/SolarShadows.d.ts +1 -0
- package/lib/esm/SolarShadows.d.ts.map +1 -1
- package/lib/esm/SolarShadows.js.map +1 -1
- package/lib/esm/SpatialClassification.d.ts +5 -0
- package/lib/esm/SpatialClassification.d.ts.map +1 -1
- package/lib/esm/SpatialClassification.js +2 -0
- package/lib/esm/SpatialClassification.js.map +1 -1
- package/lib/esm/TerrainSettings.d.ts +3 -0
- package/lib/esm/TerrainSettings.d.ts.map +1 -1
- package/lib/esm/TerrainSettings.js +1 -0
- package/lib/esm/TerrainSettings.js.map +1 -1
- package/lib/esm/TextureProps.d.ts +3 -0
- package/lib/esm/TextureProps.d.ts.map +1 -1
- package/lib/esm/TextureProps.js.map +1 -1
- package/lib/esm/ThematicDisplay.d.ts +9 -1
- package/lib/esm/ThematicDisplay.d.ts.map +1 -1
- package/lib/esm/ThematicDisplay.js +5 -1
- package/lib/esm/ThematicDisplay.js.map +1 -1
- package/lib/esm/Thumbnail.d.ts +2 -0
- package/lib/esm/Thumbnail.d.ts.map +1 -1
- package/lib/esm/Thumbnail.js.map +1 -1
- package/lib/esm/TileProps.d.ts +1 -0
- package/lib/esm/TileProps.d.ts.map +1 -1
- package/lib/esm/TileProps.js.map +1 -1
- package/lib/esm/Tween.d.ts +16 -4
- package/lib/esm/Tween.d.ts.map +1 -1
- package/lib/esm/Tween.js.map +1 -1
- package/lib/esm/TxnAction.d.ts +1 -0
- package/lib/esm/TxnAction.d.ts.map +1 -1
- package/lib/esm/TxnAction.js +1 -0
- package/lib/esm/TxnAction.js.map +1 -1
- package/lib/esm/ViewDetails.d.ts +3 -0
- package/lib/esm/ViewDetails.d.ts.map +1 -1
- package/lib/esm/ViewDetails.js +1 -0
- package/lib/esm/ViewDetails.js.map +1 -1
- package/lib/esm/ViewFlags.d.ts +4 -0
- package/lib/esm/ViewFlags.d.ts.map +1 -1
- package/lib/esm/ViewFlags.js +1 -0
- package/lib/esm/ViewFlags.js.map +1 -1
- package/lib/esm/ViewProps.d.ts +69 -3
- package/lib/esm/ViewProps.d.ts.map +1 -1
- package/lib/esm/ViewProps.js.map +1 -1
- package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +1 -0
- package/lib/esm/WhiteOnWhiteReversalSettings.d.ts.map +1 -1
- package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/esm/domains/FunctionalElementProps.d.ts +4 -1
- package/lib/esm/domains/FunctionalElementProps.d.ts.map +1 -1
- package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
- package/lib/esm/domains/GenericElementProps.d.ts +8 -2
- package/lib/esm/domains/GenericElementProps.d.ts.map +1 -1
- package/lib/esm/domains/GenericElementProps.js.map +1 -1
- package/lib/esm/geometry/AdditionalTransform.d.ts +2 -0
- package/lib/esm/geometry/AdditionalTransform.d.ts.map +1 -1
- package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
- package/lib/esm/geometry/Cartographic.d.ts +1 -0
- package/lib/esm/geometry/Cartographic.d.ts.map +1 -1
- package/lib/esm/geometry/Cartographic.js.map +1 -1
- package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +5 -0
- package/lib/esm/geometry/CoordinateReferenceSystem.d.ts.map +1 -1
- package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/esm/geometry/ElementGeometry.d.ts +2 -0
- package/lib/esm/geometry/ElementGeometry.d.ts.map +1 -1
- package/lib/esm/geometry/ElementGeometry.js +1 -0
- package/lib/esm/geometry/ElementGeometry.js.map +1 -1
- package/lib/esm/geometry/GeodeticDatum.d.ts +80 -1
- package/lib/esm/geometry/GeodeticDatum.d.ts.map +1 -1
- package/lib/esm/geometry/GeodeticDatum.js +77 -0
- package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
- package/lib/esm/geometry/GeodeticEllipsoid.d.ts +1 -0
- package/lib/esm/geometry/GeodeticEllipsoid.d.ts.map +1 -1
- package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/esm/geometry/GeometryStream.d.ts +15 -0
- package/lib/esm/geometry/GeometryStream.d.ts.map +1 -1
- package/lib/esm/geometry/GeometryStream.js +11 -7
- package/lib/esm/geometry/GeometryStream.js.map +1 -1
- package/lib/esm/geometry/ImageGraphic.d.ts +2 -0
- package/lib/esm/geometry/ImageGraphic.d.ts.map +1 -1
- package/lib/esm/geometry/ImageGraphic.js.map +1 -1
- package/lib/esm/geometry/Placement.d.ts +6 -0
- package/lib/esm/geometry/Placement.d.ts.map +1 -1
- package/lib/esm/geometry/Placement.js.map +1 -1
- package/lib/esm/geometry/Projection.d.ts +6 -0
- package/lib/esm/geometry/Projection.d.ts.map +1 -1
- package/lib/esm/geometry/Projection.js.map +1 -1
- package/lib/esm/geometry/TextString.d.ts +1 -0
- package/lib/esm/geometry/TextString.d.ts.map +1 -1
- package/lib/esm/geometry/TextString.js.map +1 -1
- package/lib/esm/ipc/IpcSocket.d.ts +1 -0
- package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
- package/lib/esm/ipc/IpcSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocketTransport.d.ts.map +1 -1
- package/lib/esm/ipc/IpcWebSocketTransport.js +1 -0
- package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/esm/rpc/IModelReadRpcInterface.d.ts +5 -2
- package/lib/esm/rpc/IModelReadRpcInterface.d.ts.map +1 -1
- package/lib/esm/rpc/IModelReadRpcInterface.js +4 -1
- package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelTileRpcInterface.d.ts +4 -2
- package/lib/esm/rpc/IModelTileRpcInterface.d.ts.map +1 -1
- package/lib/esm/rpc/IModelTileRpcInterface.js +4 -2
- package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/esm/rpc/core/RpcControl.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcControl.js +1 -0
- package/lib/esm/rpc/core/RpcControl.js.map +1 -1
- package/lib/esm/rpc/core/RpcInvocation.d.ts +3 -0
- package/lib/esm/rpc/core/RpcInvocation.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcInvocation.js +34 -3
- package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.js +1 -0
- package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/esm/rpc/core/RpcOperation.d.ts +2 -0
- package/lib/esm/rpc/core/RpcOperation.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcOperation.js +2 -0
- package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
- package/lib/esm/rpc/core/RpcProtocol.d.ts +24 -1
- package/lib/esm/rpc/core/RpcProtocol.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcProtocol.js +14 -1
- package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.d.ts +3 -0
- package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.js +37 -2
- package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +0 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.d.ts +1 -0
- package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.js +1 -0
- package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.js +14 -10
- package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +3 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.js +8 -7
- package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +5 -6
- package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.js +47 -28
- package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +1 -0
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +1 -0
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/esm/tile/ElementGraphics.d.ts +20 -2
- package/lib/esm/tile/ElementGraphics.d.ts.map +1 -1
- package/lib/esm/tile/ElementGraphics.js.map +1 -1
- package/lib/esm/tile/IModelTileIO.d.ts +2 -2
- package/lib/esm/tile/IModelTileIO.js +2 -2
- package/lib/esm/tile/IModelTileIO.js.map +1 -1
- package/lib/esm/tile/TileMetadata.d.ts +18 -13
- package/lib/esm/tile/TileMetadata.d.ts.map +1 -1
- package/lib/esm/tile/TileMetadata.js +163 -133
- package/lib/esm/tile/TileMetadata.js.map +1 -1
- package/package.json +25 -12
package/lib/cjs/SkyBox.js
CHANGED
package/lib/cjs/SkyBox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkyBox.js","sourceRoot":"","sources":["../../src/SkyBox.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { Id64, Id64String, NonFunctionPropertiesOf } from \"@itwin/core-bentley\";\r\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\r\nimport { TextureImageSpec } from \"./RenderTexture\";\r\n\r\n/** Supported types of [[SkyBox]] images.\r\n * @see [[SkyBoxImageProps]].\r\n * @public\r\n */\r\nexport enum SkyBoxImageType {\r\n /** No image, indicating a [[SkyGradient]] should be displayed. */\r\n None = 0,\r\n /** A single image mapped to the surface of a sphere.\r\n * @see [[SkySphere]].\r\n */\r\n Spherical = 1,\r\n /** @internal not yet supported */\r\n Cylindrical = 2,\r\n /** Six images mapped to the faces of a cube.\r\n * @see [[SkyCube]].\r\n */\r\n Cube = 3,\r\n}\r\n\r\n/** JSON representation of the six images used by a [[SkyCube]].\r\n * Each property specifies the image for a face of the cube as either an image URL, or the Id of a [Texture]($backend) element.\r\n * Each image must be square and have the same dimensions as all the other images.\r\n * @public\r\n */\r\nexport interface SkyCubeProps {\r\n front: TextureImageSpec;\r\n back: TextureImageSpec;\r\n top: TextureImageSpec;\r\n bottom: TextureImageSpec;\r\n right: TextureImageSpec;\r\n left: TextureImageSpec;\r\n}\r\n\r\n/** JSON representation of the image used for a [[SkySphere]].\r\n * @see [[SkyBoxProps.image]].\r\n * @public\r\n */\r\nexport interface SkySphereImageProps {\r\n type: SkyBoxImageType.Spherical;\r\n texture: TextureImageSpec;\r\n /** @internal */\r\n textures?: never;\r\n}\r\n\r\n/** JSON representation of the images used for a [[SkyCube]].\r\n * @see [[SkyBoxProps.image]].\r\n * @public\r\n */\r\nexport interface SkyCubeImageProps {\r\n type: SkyBoxImageType.Cube;\r\n textures: SkyCubeProps;\r\n /** @internal */\r\n texture?: never;\r\n}\r\n\r\n/** JSON representation of the image(s) to be mapped to the surfaces of a [[SkyBox]].\r\n * @see [[SkyBoxProps.image]].\r\n * @public\r\n */\r\nexport type SkyBoxImageProps = SkySphereImageProps | SkyCubeImageProps | { type?: SkyBoxImageType, texture?: never, textures?: never };\r\n\r\n/** JSON representation of a [[SkyBox]] that can be drawn as the background of a [ViewState3d]($frontend).\r\n * An object of this type can describe one of several types of sky box:\r\n * - A cube with a texture image mapped to each face; or\r\n * - A sphere with a single texture image mapped to its surface; or\r\n * - A sphere with a two- or four-color vertical [[Gradient]] mapped to its surface.\r\n *\r\n * Whether cuboid or spherical, the skybox is drawn as if the viewer and the contents of the view are contained within its interior.\r\n *\r\n * For a two-color gradient, the gradient transitions smoothly from the nadir color at the bottom of the sphere to the zenith color at the top of the sphere.\r\n * The sky and ground colors are unused, as are the sky and ground exponents.\r\n *\r\n * For a four-color gradient, a \"horizon\" is produced on the equator of the sphere, where the ground color and sky color meet. The lower half of the sphere transitions\r\n * smoothly from the ground color at the equator to the nadir color at the bottom, and the upper half transitions from the sky color at the equator to the zenith color at\r\n * the top of the sphere.\r\n *\r\n * The color and exponent properties are unused if one or more texture images are supplied.\r\n *\r\n * @see [[DisplayStyle3dSettings.environment]] to define the skybox for a display style.\r\n * @public\r\n */\r\nexport interface SkyBoxProps {\r\n /** Whether or not the skybox should be displayed.\r\n * Default: false.\r\n */\r\n display?: boolean;\r\n /** For a [[SkyGradient]], if true, a 2-color gradient skybox is used instead of a 4-color.\r\n * Default: false.\r\n */\r\n twoColor?: boolean;\r\n /** The color of the sky at the horizon. Unused unless this is a four-color [[SkyGradient]].\r\n * Default: (143, 205, 255).\r\n */\r\n skyColor?: ColorDefProps;\r\n /** The color of the ground at the horizon. Unused unless this is a four-color [[SkyGradient]].\r\n * Default: (120, 143, 125).\r\n */\r\n groundColor?: ColorDefProps;\r\n /** The color of the top of the sphere.\r\n * Default: (54, 117, 255).\r\n */\r\n zenithColor?: ColorDefProps;\r\n /** The color of the bottom of the sphere.\r\n * Default: (40, 15, 0).\r\n */\r\n nadirColor?: ColorDefProps;\r\n /** For a 4-color [[SkyGradient]], controls speed of change from sky color to zenith color; otherwise unused.\r\n * Default: 4.0.\r\n */\r\n skyExponent?: number;\r\n /** For a 4-color [[SkyGradient]], controls speed of change from ground color to nadir color; otherwise unused.\r\n * Default: 4.0.\r\n */\r\n groundExponent?: number;\r\n /** The image(s), if any, to be mapped to the surfaces of the sphere or cube. If undefined, the skybox will be displayed as a gradient instead.\r\n * Default: undefined.\r\n */\r\n image?: SkyBoxImageProps;\r\n}\r\n\r\nconst defaultGroundColor = ColorDef.from(143, 205, 125);\r\nconst defaultZenithColor = ColorDef.from(54, 117, 255);\r\nconst defaultNadirColor = ColorDef.from(40, 125, 0);\r\nconst defaultSkyColor = ColorDef.from(142, 205, 255);\r\nconst defaultExponent = 4.0;\r\n\r\nfunction colorDefFromJson(props?: ColorDefProps): ColorDef | undefined {\r\n return undefined !== props ? ColorDef.fromJSON(props) : undefined;\r\n}\r\n\r\n/** A type containing all of the properties and none of the methods of [[SkyGradient]] with `readonly` modifiers removed.\r\n * @see [[SkyGradient.create]] and [[SkyGradient.clone]].\r\n * @public\r\n */\r\nexport type SkyGradientProperties = NonFunctionPropertiesOf<SkyGradient>;\r\n\r\n/** Describes how to map a two- or four-color [[Gradient]] to the interior of a sphere to produce a [[SkyBox]].\r\n * @see [[SkyBox.gradient]].\r\n * @public\r\n */\r\nexport class SkyGradient {\r\n public readonly twoColor: boolean;\r\n public readonly skyColor: ColorDef;\r\n public readonly groundColor: ColorDef;\r\n public readonly zenithColor: ColorDef;\r\n public readonly nadirColor: ColorDef;\r\n public readonly skyExponent: number;\r\n public readonly groundExponent: number;\r\n\r\n private constructor(args: Partial<SkyGradientProperties>) {\r\n this.twoColor = args.twoColor ?? false;\r\n this.skyColor = args.skyColor ?? defaultSkyColor;\r\n this.groundColor = args.groundColor ?? defaultGroundColor;\r\n this.nadirColor = args.nadirColor ?? defaultNadirColor;\r\n this.zenithColor = args.zenithColor ?? defaultZenithColor;\r\n this.skyExponent = args.skyExponent ?? defaultExponent;\r\n this.groundExponent = args.groundExponent ?? defaultExponent;\r\n }\r\n\r\n /** Default settings for a four-color gradient. */\r\n public static readonly defaults = new SkyGradient({});\r\n\r\n /** Create a new gradient. Any properties not specified by `props` are initialized to their default values. */\r\n public static create(props?: Partial<SkyGradientProperties>): SkyGradient {\r\n return props ? new this(props) : this.defaults;\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props?: SkyBoxProps): SkyGradient {\r\n if (!props)\r\n return this.defaults;\r\n\r\n return new this({\r\n twoColor: props.twoColor,\r\n skyExponent: props.skyExponent,\r\n groundExponent: props.groundExponent,\r\n skyColor: colorDefFromJson(props.skyColor),\r\n groundColor: colorDefFromJson(props.groundColor),\r\n nadirColor: colorDefFromJson(props.nadirColor),\r\n zenithColor: colorDefFromJson(props.zenithColor),\r\n });\r\n }\r\n\r\n /** Create ea copy of this gradient, identical except for any properties explicitly specified by `changedProps`.\r\n * Any properties of `changedProps` explicitly set to `undefined` will be reset to their default values.\r\n */\r\n public clone(changedProps: SkyGradientProperties): SkyGradient {\r\n return new SkyGradient({ ...this, ...changedProps });\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): SkyBoxProps {\r\n const props: SkyBoxProps = {\r\n skyColor: this.skyColor.toJSON(),\r\n groundColor: this.groundColor.toJSON(),\r\n nadirColor: this.nadirColor.toJSON(),\r\n zenithColor: this.zenithColor.toJSON(),\r\n };\r\n\r\n if (this.groundExponent !== defaultExponent)\r\n props.groundExponent = this.groundExponent;\r\n\r\n if (this.skyExponent !== defaultExponent)\r\n props.skyExponent = this.skyExponent;\r\n\r\n if (this.twoColor)\r\n props.twoColor = this.twoColor;\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if this gradient is equivalent to the supplied gradient. */\r\n public equals(other: SkyGradient): boolean {\r\n if (this === other)\r\n return true;\r\n\r\n return this.twoColor === other.twoColor && this.skyColor.equals(other.skyColor) && this.groundColor.equals(other.groundColor) &&\r\n this.zenithColor.equals(other.zenithColor) && this.nadirColor.equals(other.nadirColor);\r\n }\r\n}\r\n\r\n/** Describes how to draw a representation of a sky, as part of an [[Environment]].\r\n * @see [[SkyBoxProps]].\r\n * @public\r\n */\r\nexport class SkyBox {\r\n /** The gradient settings, used if no cube or sphere images are supplied, or if the images cannot be loaded. */\r\n public readonly gradient: SkyGradient;\r\n\r\n protected constructor(gradient: SkyGradient) {\r\n this.gradient = gradient;\r\n }\r\n\r\n /** Default settings for a four-color gradient. */\r\n public static readonly defaults = new SkyBox(SkyGradient.defaults);\r\n\r\n /** Create a skybox that displays the specified gradient, or the default gradient if none is supplied. */\r\n public static createGradient(gradient?: SkyGradient): SkyBox {\r\n return gradient ? new this(gradient) : this.defaults;\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props?: SkyBoxProps): SkyBox {\r\n const gradient = SkyGradient.fromJSON(props);\r\n\r\n if (props?.image) {\r\n switch (props.image.type) {\r\n case SkyBoxImageType.Spherical:\r\n if (undefined !== props.image.texture)\r\n return new SkySphere(props.image.texture, gradient);\r\n\r\n break;\r\n case SkyBoxImageType.Cube: {\r\n const tx = props.image.textures;\r\n if (tx && undefined !== tx.top && undefined !== tx.bottom && undefined !== tx.right && undefined !== tx.left && undefined !== tx.front && undefined !== tx.back)\r\n return new SkyCube(tx, gradient);\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return this.createGradient(gradient);\r\n }\r\n\r\n /** Convert to JSON representation.\r\n * @param display If defined, the value to use for [[SkyBoxProps.display]]; otherwise, that property will be left undefined.\r\n */\r\n public toJSON(display?: boolean): SkyBoxProps {\r\n const props = this.gradient.toJSON();\r\n if (undefined !== display)\r\n props.display = display;\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public get textureIds(): Iterable<Id64String> {\r\n return [];\r\n }\r\n}\r\n\r\n/** Describes how to draw a representation of a sky by mapping a single image to the interior of a sphere.\r\n * @public\r\n */\r\nexport class SkySphere extends SkyBox {\r\n /** The image to map to the interior of the sphere. */\r\n public readonly image: TextureImageSpec;\r\n\r\n /** Create a new sky sphere using the specified image.\r\n * @param image The image to map to the interior of the sphere.\r\n * @param gradient Optionally overrides the default gradient settings used if the image cannot be obtained.\r\n */\r\n public constructor(image: TextureImageSpec, gradient?: SkyGradient) {\r\n super(gradient ?? SkyGradient.defaults);\r\n this.image = image;\r\n }\r\n\r\n /** @internal override */\r\n public override toJSON(display?: boolean): SkyBoxProps {\r\n const props = super.toJSON(display);\r\n props.image = {\r\n type: SkyBoxImageType.Spherical,\r\n texture: this.image,\r\n };\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override get textureIds(): Iterable<Id64String> {\r\n return Id64.isValidId64(this.image) ? [this.image] : [];\r\n }\r\n}\r\n\r\n/** Describes how to draw a representation of a sky by mapping images to the interior faces of a cube.\r\n * The images are required to be *square*, and each image must have the same dimensions as the other images.\r\n * @public\r\n */\r\nexport class SkyCube extends SkyBox {\r\n /** The images to map to each face of the cube. */\r\n public readonly images: SkyCubeProps;\r\n\r\n /** Create a new sky cube using the specified images.\r\n * @param images The images to map to each face of the cube.\r\n * @param Optionally overrides the default gradient settings used if the images cannot be obtained.\r\n */\r\n public constructor(images: SkyCubeProps, gradient?: SkyGradient) {\r\n super(gradient ?? SkyGradient.defaults);\r\n this.images = { ...images };\r\n }\r\n\r\n /** @internal override */\r\n public override toJSON(display?: boolean): SkyBoxProps {\r\n const props = super.toJSON(display);\r\n props.image = {\r\n type: SkyBoxImageType.Cube,\r\n textures: { ...this.images },\r\n };\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override get textureIds(): Iterable<Id64String> {\r\n const imgs = this.images;\r\n return [imgs.front, imgs.back, imgs.top, imgs.bottom, imgs.left, imgs.right].filter((x) => Id64.isValidId64(x));\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SkyBox.js","sourceRoot":"","sources":["../../src/SkyBox.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { Id64, Id64String, NonFunctionPropertiesOf } from \"@itwin/core-bentley\";\r\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\r\nimport { TextureImageSpec } from \"./RenderTexture\";\r\n\r\n/** Supported types of [[SkyBox]] images.\r\n * @see [[SkyBoxImageProps]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SkyBoxImageType {\r\n /** No image, indicating a [[SkyGradient]] should be displayed. */\r\n None = 0,\r\n /** A single image mapped to the surface of a sphere.\r\n * @see [[SkySphere]].\r\n */\r\n Spherical = 1,\r\n /** @internal not yet supported */\r\n Cylindrical = 2,\r\n /** Six images mapped to the faces of a cube.\r\n * @see [[SkyCube]].\r\n */\r\n Cube = 3,\r\n}\r\n\r\n/** JSON representation of the six images used by a [[SkyCube]].\r\n * Each property specifies the image for a face of the cube as either an image URL, or the Id of a [Texture]($backend) element.\r\n * Each image must be square and have the same dimensions as all the other images.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SkyCubeProps {\r\n front: TextureImageSpec;\r\n back: TextureImageSpec;\r\n top: TextureImageSpec;\r\n bottom: TextureImageSpec;\r\n right: TextureImageSpec;\r\n left: TextureImageSpec;\r\n}\r\n\r\n/** JSON representation of the image used for a [[SkySphere]].\r\n * @see [[SkyBoxProps.image]].\r\n * @public\r\n */\r\nexport interface SkySphereImageProps {\r\n type: SkyBoxImageType.Spherical;\r\n texture: TextureImageSpec;\r\n /** @internal */\r\n textures?: never;\r\n}\r\n\r\n/** JSON representation of the images used for a [[SkyCube]].\r\n * @see [[SkyBoxProps.image]].\r\n * @public\r\n */\r\nexport interface SkyCubeImageProps {\r\n type: SkyBoxImageType.Cube;\r\n textures: SkyCubeProps;\r\n /** @internal */\r\n texture?: never;\r\n}\r\n\r\n/** JSON representation of the image(s) to be mapped to the surfaces of a [[SkyBox]].\r\n * @see [[SkyBoxProps.image]].\r\n * @public\r\n * @extensions\r\n */\r\nexport type SkyBoxImageProps = SkySphereImageProps | SkyCubeImageProps | { type?: SkyBoxImageType, texture?: never, textures?: never };\r\n\r\n/** JSON representation of a [[SkyBox]] that can be drawn as the background of a [ViewState3d]($frontend).\r\n * An object of this type can describe one of several types of sky box:\r\n * - A cube with a texture image mapped to each face; or\r\n * - A sphere with a single texture image mapped to its surface; or\r\n * - A sphere with a two- or four-color vertical [[Gradient]] mapped to its surface.\r\n *\r\n * Whether cuboid or spherical, the skybox is drawn as if the viewer and the contents of the view are contained within its interior.\r\n *\r\n * For a two-color gradient, the gradient transitions smoothly from the nadir color at the bottom of the sphere to the zenith color at the top of the sphere.\r\n * The sky and ground colors are unused, as are the sky and ground exponents.\r\n *\r\n * For a four-color gradient, a \"horizon\" is produced on the equator of the sphere, where the ground color and sky color meet. The lower half of the sphere transitions\r\n * smoothly from the ground color at the equator to the nadir color at the bottom, and the upper half transitions from the sky color at the equator to the zenith color at\r\n * the top of the sphere.\r\n *\r\n * The color and exponent properties are unused if one or more texture images are supplied.\r\n *\r\n * @see [[DisplayStyle3dSettings.environment]] to define the skybox for a display style.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SkyBoxProps {\r\n /** Whether or not the skybox should be displayed.\r\n * Default: false.\r\n */\r\n display?: boolean;\r\n /** For a [[SkyGradient]], if true, a 2-color gradient skybox is used instead of a 4-color.\r\n * Default: false.\r\n */\r\n twoColor?: boolean;\r\n /** The color of the sky at the horizon. Unused unless this is a four-color [[SkyGradient]].\r\n * Default: (143, 205, 255).\r\n */\r\n skyColor?: ColorDefProps;\r\n /** The color of the ground at the horizon. Unused unless this is a four-color [[SkyGradient]].\r\n * Default: (120, 143, 125).\r\n */\r\n groundColor?: ColorDefProps;\r\n /** The color of the top of the sphere.\r\n * Default: (54, 117, 255).\r\n */\r\n zenithColor?: ColorDefProps;\r\n /** The color of the bottom of the sphere.\r\n * Default: (40, 15, 0).\r\n */\r\n nadirColor?: ColorDefProps;\r\n /** For a 4-color [[SkyGradient]], controls speed of change from sky color to zenith color; otherwise unused.\r\n * Default: 4.0.\r\n */\r\n skyExponent?: number;\r\n /** For a 4-color [[SkyGradient]], controls speed of change from ground color to nadir color; otherwise unused.\r\n * Default: 4.0.\r\n */\r\n groundExponent?: number;\r\n /** The image(s), if any, to be mapped to the surfaces of the sphere or cube. If undefined, the skybox will be displayed as a gradient instead.\r\n * Default: undefined.\r\n */\r\n image?: SkyBoxImageProps;\r\n}\r\n\r\nconst defaultGroundColor = ColorDef.from(143, 205, 125);\r\nconst defaultZenithColor = ColorDef.from(54, 117, 255);\r\nconst defaultNadirColor = ColorDef.from(40, 125, 0);\r\nconst defaultSkyColor = ColorDef.from(142, 205, 255);\r\nconst defaultExponent = 4.0;\r\n\r\nfunction colorDefFromJson(props?: ColorDefProps): ColorDef | undefined {\r\n return undefined !== props ? ColorDef.fromJSON(props) : undefined;\r\n}\r\n\r\n/** A type containing all of the properties and none of the methods of [[SkyGradient]] with `readonly` modifiers removed.\r\n * @see [[SkyGradient.create]] and [[SkyGradient.clone]].\r\n * @public\r\n */\r\nexport type SkyGradientProperties = NonFunctionPropertiesOf<SkyGradient>;\r\n\r\n/** Describes how to map a two- or four-color [[Gradient]] to the interior of a sphere to produce a [[SkyBox]].\r\n * @see [[SkyBox.gradient]].\r\n * @public\r\n */\r\nexport class SkyGradient {\r\n public readonly twoColor: boolean;\r\n public readonly skyColor: ColorDef;\r\n public readonly groundColor: ColorDef;\r\n public readonly zenithColor: ColorDef;\r\n public readonly nadirColor: ColorDef;\r\n public readonly skyExponent: number;\r\n public readonly groundExponent: number;\r\n\r\n private constructor(args: Partial<SkyGradientProperties>) {\r\n this.twoColor = args.twoColor ?? false;\r\n this.skyColor = args.skyColor ?? defaultSkyColor;\r\n this.groundColor = args.groundColor ?? defaultGroundColor;\r\n this.nadirColor = args.nadirColor ?? defaultNadirColor;\r\n this.zenithColor = args.zenithColor ?? defaultZenithColor;\r\n this.skyExponent = args.skyExponent ?? defaultExponent;\r\n this.groundExponent = args.groundExponent ?? defaultExponent;\r\n }\r\n\r\n /** Default settings for a four-color gradient. */\r\n public static readonly defaults = new SkyGradient({});\r\n\r\n /** Create a new gradient. Any properties not specified by `props` are initialized to their default values. */\r\n public static create(props?: Partial<SkyGradientProperties>): SkyGradient {\r\n return props ? new this(props) : this.defaults;\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props?: SkyBoxProps): SkyGradient {\r\n if (!props)\r\n return this.defaults;\r\n\r\n return new this({\r\n twoColor: props.twoColor,\r\n skyExponent: props.skyExponent,\r\n groundExponent: props.groundExponent,\r\n skyColor: colorDefFromJson(props.skyColor),\r\n groundColor: colorDefFromJson(props.groundColor),\r\n nadirColor: colorDefFromJson(props.nadirColor),\r\n zenithColor: colorDefFromJson(props.zenithColor),\r\n });\r\n }\r\n\r\n /** Create ea copy of this gradient, identical except for any properties explicitly specified by `changedProps`.\r\n * Any properties of `changedProps` explicitly set to `undefined` will be reset to their default values.\r\n */\r\n public clone(changedProps: SkyGradientProperties): SkyGradient {\r\n return new SkyGradient({ ...this, ...changedProps });\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): SkyBoxProps {\r\n const props: SkyBoxProps = {\r\n skyColor: this.skyColor.toJSON(),\r\n groundColor: this.groundColor.toJSON(),\r\n nadirColor: this.nadirColor.toJSON(),\r\n zenithColor: this.zenithColor.toJSON(),\r\n };\r\n\r\n if (this.groundExponent !== defaultExponent)\r\n props.groundExponent = this.groundExponent;\r\n\r\n if (this.skyExponent !== defaultExponent)\r\n props.skyExponent = this.skyExponent;\r\n\r\n if (this.twoColor)\r\n props.twoColor = this.twoColor;\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if this gradient is equivalent to the supplied gradient. */\r\n public equals(other: SkyGradient): boolean {\r\n if (this === other)\r\n return true;\r\n\r\n return this.twoColor === other.twoColor && this.skyColor.equals(other.skyColor) && this.groundColor.equals(other.groundColor) &&\r\n this.zenithColor.equals(other.zenithColor) && this.nadirColor.equals(other.nadirColor);\r\n }\r\n}\r\n\r\n/** Describes how to draw a representation of a sky, as part of an [[Environment]].\r\n * @see [[SkyBoxProps]].\r\n * @public\r\n */\r\nexport class SkyBox {\r\n /** The gradient settings, used if no cube or sphere images are supplied, or if the images cannot be loaded. */\r\n public readonly gradient: SkyGradient;\r\n\r\n protected constructor(gradient: SkyGradient) {\r\n this.gradient = gradient;\r\n }\r\n\r\n /** Default settings for a four-color gradient. */\r\n public static readonly defaults = new SkyBox(SkyGradient.defaults);\r\n\r\n /** Create a skybox that displays the specified gradient, or the default gradient if none is supplied. */\r\n public static createGradient(gradient?: SkyGradient): SkyBox {\r\n return gradient ? new this(gradient) : this.defaults;\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props?: SkyBoxProps): SkyBox {\r\n const gradient = SkyGradient.fromJSON(props);\r\n\r\n if (props?.image) {\r\n switch (props.image.type) {\r\n case SkyBoxImageType.Spherical:\r\n if (undefined !== props.image.texture)\r\n return new SkySphere(props.image.texture, gradient);\r\n\r\n break;\r\n case SkyBoxImageType.Cube: {\r\n const tx = props.image.textures;\r\n if (tx && undefined !== tx.top && undefined !== tx.bottom && undefined !== tx.right && undefined !== tx.left && undefined !== tx.front && undefined !== tx.back)\r\n return new SkyCube(tx, gradient);\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return this.createGradient(gradient);\r\n }\r\n\r\n /** Convert to JSON representation.\r\n * @param display If defined, the value to use for [[SkyBoxProps.display]]; otherwise, that property will be left undefined.\r\n */\r\n public toJSON(display?: boolean): SkyBoxProps {\r\n const props = this.gradient.toJSON();\r\n if (undefined !== display)\r\n props.display = display;\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public get textureIds(): Iterable<Id64String> {\r\n return [];\r\n }\r\n}\r\n\r\n/** Describes how to draw a representation of a sky by mapping a single image to the interior of a sphere.\r\n * @public\r\n */\r\nexport class SkySphere extends SkyBox {\r\n /** The image to map to the interior of the sphere. */\r\n public readonly image: TextureImageSpec;\r\n\r\n /** Create a new sky sphere using the specified image.\r\n * @param image The image to map to the interior of the sphere.\r\n * @param gradient Optionally overrides the default gradient settings used if the image cannot be obtained.\r\n */\r\n public constructor(image: TextureImageSpec, gradient?: SkyGradient) {\r\n super(gradient ?? SkyGradient.defaults);\r\n this.image = image;\r\n }\r\n\r\n /** @internal override */\r\n public override toJSON(display?: boolean): SkyBoxProps {\r\n const props = super.toJSON(display);\r\n props.image = {\r\n type: SkyBoxImageType.Spherical,\r\n texture: this.image,\r\n };\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override get textureIds(): Iterable<Id64String> {\r\n return Id64.isValidId64(this.image) ? [this.image] : [];\r\n }\r\n}\r\n\r\n/** Describes how to draw a representation of a sky by mapping images to the interior faces of a cube.\r\n * The images are required to be *square*, and each image must have the same dimensions as the other images.\r\n * @public\r\n */\r\nexport class SkyCube extends SkyBox {\r\n /** The images to map to each face of the cube. */\r\n public readonly images: SkyCubeProps;\r\n\r\n /** Create a new sky cube using the specified images.\r\n * @param images The images to map to each face of the cube.\r\n * @param Optionally overrides the default gradient settings used if the images cannot be obtained.\r\n */\r\n public constructor(images: SkyCubeProps, gradient?: SkyGradient) {\r\n super(gradient ?? SkyGradient.defaults);\r\n this.images = { ...images };\r\n }\r\n\r\n /** @internal override */\r\n public override toJSON(display?: boolean): SkyBoxProps {\r\n const props = super.toJSON(display);\r\n props.image = {\r\n type: SkyBoxImageType.Cube,\r\n textures: { ...this.images },\r\n };\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override get textureIds(): Iterable<Id64String> {\r\n const imgs = this.images;\r\n return [imgs.front, imgs.back, imgs.top, imgs.bottom, imgs.left, imgs.right].filter((x) => Id64.isValidId64(x));\r\n }\r\n}\r\n"]}
|
|
@@ -5,6 +5,7 @@ import { ColorDefProps } from "./ColorDef";
|
|
|
5
5
|
import { RgbColor } from "./RgbColor";
|
|
6
6
|
/** JSON representation of [[SolarShadowSettings]].
|
|
7
7
|
* @public
|
|
8
|
+
* @extensions
|
|
8
9
|
*/
|
|
9
10
|
export interface SolarShadowSettingsProps {
|
|
10
11
|
/** Shadow color. Default: [[ColorByName.grey]]. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolarShadows.d.ts","sourceRoot":"","sources":["../../src/SolarShadows.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"SolarShadows.d.ts","sourceRoot":"","sources":["../../src/SolarShadows.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,oBAAoB;IACpB,SAAgB,KAAK,EAAE,QAAQ,CAAC;IAChC,gBAAgB;IAChB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,OAAO;IAQP,OAAc,QAAQ,sBAA+B;WAEvC,QAAQ,CAAC,KAAK,CAAC,EAAE,wBAAwB,GAAG,mBAAmB;IAItE,MAAM,IAAI,wBAAwB,GAAG,SAAS;IAe9C,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO;IAIhD;;;OAGG;IACI,KAAK,CAAC,YAAY,CAAC,EAAE,wBAAwB,GAAG,mBAAmB;CAa3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolarShadows.js","sourceRoot":"","sources":["../../src/SolarShadows.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAgD;AAChD,+CAA4C;AAC5C,yCAAqD;AACrD,yCAAsC;
|
|
1
|
+
{"version":3,"file":"SolarShadows.js","sourceRoot":"","sources":["../../src/SolarShadows.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAgD;AAChD,+CAA4C;AAC5C,yCAAqD;AACrD,yCAAsC;AAatC,MAAM,YAAY,GAAG,mBAAQ,CAAC,YAAY,CAAC,mBAAQ,CAAC,QAAQ,CAAC,yBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhF;;;GAGG;AACH,MAAa,mBAAmB;IAM9B,YAAoB,KAA+B;QACjD,IAAI,CAAC,IAAI,GAAG,wBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK;YACnD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;;YAE1B,IAAI,CAAC,KAAK,GAAG,mBAAQ,CAAC,YAAY,CAAC,mBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAIM,MAAM,CAAC,QAAQ,CAAC,KAAgC;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChE,CAAC;IAEM,MAAM;QACX,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvB,OAAO,SAAS,CAAC;QAEnB,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC;QAEjD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YAC7B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,GAAwB;QACpC,OAAO,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAAuC;;QAClD,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC;QAEd,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,MAAM,EAAE,mCAAI,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,KAAK;YACpB,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAEnC,IAAI,SAAS,KAAK,YAAY,CAAC,IAAI;YACjC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAEjC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;;AAvDH,kDAwDC;AA1Ce,4BAAQ,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ColorByName } from \"./ColorByName\";\r\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\r\nimport { RgbColor } from \"./RgbColor\";\r\n\r\n/** JSON representation of [[SolarShadowSettings]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SolarShadowSettingsProps {\r\n /** Shadow color. Default: [[ColorByName.grey]]. */\r\n color?: ColorDefProps;\r\n /** @internal */\r\n bias?: number;\r\n}\r\n\r\nconst defaultColor = RgbColor.fromColorDef(ColorDef.fromTbgr(ColorByName.grey));\r\n\r\n/** Settings controlling display of solar shadows for a [[DisplayStyle3dSettings]].\r\n * Solar shadows are imposed as a color scaling on geometry occluded from solar lighting.\r\n * @public\r\n */\r\nexport class SolarShadowSettings {\r\n /** Shadow color. */\r\n public readonly color: RgbColor;\r\n /** @internal */\r\n public readonly bias: number;\r\n\r\n private constructor(props: SolarShadowSettingsProps) {\r\n this.bias = JsonUtils.asDouble(props.bias, 0.001);\r\n if (undefined === props.color || null === props.color)\r\n this.color = defaultColor;\r\n else\r\n this.color = RgbColor.fromColorDef(ColorDef.fromJSON(props.color));\r\n }\r\n\r\n public static defaults = new SolarShadowSettings({});\r\n\r\n public static fromJSON(props?: SolarShadowSettingsProps): SolarShadowSettings {\r\n return props ? new SolarShadowSettings(props) : this.defaults;\r\n }\r\n\r\n public toJSON(): SolarShadowSettingsProps | undefined {\r\n const defaults = SolarShadowSettings.defaults;\r\n if (this.equals(defaults))\r\n return undefined;\r\n\r\n const props: SolarShadowSettingsProps = {};\r\n if (!this.color.equals(defaults.color))\r\n props.color = this.color.toColorDef().toJSON();\r\n\r\n if (this.bias !== defaults.bias)\r\n props.bias = this.bias;\r\n\r\n return props;\r\n }\r\n\r\n public equals(rhs: SolarShadowSettings): boolean {\r\n return this.bias === rhs.bias && this.color.equals(rhs.color);\r\n }\r\n\r\n /** Create a copy of these settings.\r\n * @param changedProps Any property explicitly defined will be overridden in the copy.\r\n * @returns A settings object equivalent to this one except for any properties explicitly overridden by `changedProps`.\r\n */\r\n public clone(changedProps?: SolarShadowSettingsProps): SolarShadowSettings {\r\n if (!changedProps)\r\n return this;\r\n\r\n const props = this.toJSON() ?? {};\r\n if (changedProps.color)\r\n props.color = changedProps.color;\r\n\r\n if (undefined !== changedProps.bias)\r\n props.bias = changedProps.bias;\r\n\r\n return SolarShadowSettings.fromJSON(props);\r\n }\r\n}\r\n"]}
|
|
@@ -6,6 +6,7 @@ import { ModelMapLayerSettings } from "./MapLayerSettings";
|
|
|
6
6
|
/** Describes how a [[SpatialClassifier]] affects the display of classified geometry - that is, geometry intersecting
|
|
7
7
|
* the classifier.
|
|
8
8
|
* @public
|
|
9
|
+
* @extensions
|
|
9
10
|
*/
|
|
10
11
|
export declare enum SpatialClassifierInsideDisplay {
|
|
11
12
|
/** The geometry is not displayed. */
|
|
@@ -22,6 +23,7 @@ export declare enum SpatialClassifierInsideDisplay {
|
|
|
22
23
|
/** Describes how a [[SpatialClassifier]] affects the display of unclassified geometry - that is, geometry not intersecting
|
|
23
24
|
* the classifier.
|
|
24
25
|
* @public
|
|
26
|
+
* @extensions
|
|
25
27
|
*/
|
|
26
28
|
export declare enum SpatialClassifierOutsideDisplay {
|
|
27
29
|
/** The geometry is not displayed. */
|
|
@@ -33,6 +35,7 @@ export declare enum SpatialClassifierOutsideDisplay {
|
|
|
33
35
|
}
|
|
34
36
|
/** JSON representation of a [[SpatialClassifierFlags]].
|
|
35
37
|
* @public
|
|
38
|
+
* @extensions
|
|
36
39
|
*/
|
|
37
40
|
export interface SpatialClassifierFlagsProps {
|
|
38
41
|
/** @see [[SpatialClassifierFlags.inside]]. */
|
|
@@ -67,6 +70,7 @@ export declare class SpatialClassifierFlags {
|
|
|
67
70
|
}
|
|
68
71
|
/** JSON representation of a [[SpatialClassifier]].
|
|
69
72
|
* @public
|
|
73
|
+
* @extensions
|
|
70
74
|
*/
|
|
71
75
|
export interface SpatialClassifierProps {
|
|
72
76
|
/** @see [[SpatialClassifier.modelId]]. */
|
|
@@ -133,6 +137,7 @@ export declare class SpatialClassifier {
|
|
|
133
137
|
/** An object that can store the JSON representation of a list of [[SpatialClassifier]]s.
|
|
134
138
|
* @see [[SpatialClassifiers]].
|
|
135
139
|
* @public
|
|
140
|
+
* @extensions
|
|
136
141
|
*/
|
|
137
142
|
export interface SpatialClassifiersContainer {
|
|
138
143
|
/** The list of classifiers. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialClassification.d.ts","sourceRoot":"","sources":["../../src/SpatialClassification.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D
|
|
1
|
+
{"version":3,"file":"SpatialClassification.d.ts","sourceRoot":"","sources":["../../src/SpatialClassification.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const core_bentley_1 = require("@itwin/core-bentley");
|
|
|
12
12
|
/** Describes how a [[SpatialClassifier]] affects the display of classified geometry - that is, geometry intersecting
|
|
13
13
|
* the classifier.
|
|
14
14
|
* @public
|
|
15
|
+
* @extensions
|
|
15
16
|
*/
|
|
16
17
|
var SpatialClassifierInsideDisplay;
|
|
17
18
|
(function (SpatialClassifierInsideDisplay) {
|
|
@@ -29,6 +30,7 @@ var SpatialClassifierInsideDisplay;
|
|
|
29
30
|
/** Describes how a [[SpatialClassifier]] affects the display of unclassified geometry - that is, geometry not intersecting
|
|
30
31
|
* the classifier.
|
|
31
32
|
* @public
|
|
33
|
+
* @extensions
|
|
32
34
|
*/
|
|
33
35
|
var SpatialClassifierOutsideDisplay;
|
|
34
36
|
(function (SpatialClassifierOutsideDisplay) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialClassification.js","sourceRoot":"","sources":["../../src/SpatialClassification.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { ModelMapLayerSettings } from \"./MapLayerSettings\";\r\n\r\n/** Describes how a [[SpatialClassifier]] affects the display of classified geometry - that is, geometry intersecting\r\n * the classifier.\r\n * @public\r\n */\r\nexport enum SpatialClassifierInsideDisplay {\r\n /** The geometry is not displayed. */\r\n Off = 0,\r\n /** The geometry is displayed without alteration. */\r\n On = 1,\r\n /** The geometry is darkened. */\r\n Dimmed = 2,\r\n /** The geometry is tinted by the [Viewport.hilite]($frontend) color. */\r\n Hilite = 3,\r\n /** The geometry is tinted with the colors of the classifier elements. */\r\n ElementColor = 4,\r\n}\r\n\r\n/** Describes how a [[SpatialClassifier]] affects the display of unclassified geometry - that is, geometry not intersecting\r\n * the classifier.\r\n * @public\r\n */\r\nexport enum SpatialClassifierOutsideDisplay {\r\n /** The geometry is not displayed. */\r\n Off = 0,\r\n /** The geometry is displayed without alteration. */\r\n On = 1,\r\n /** The geometry is darkened. */\r\n Dimmed = 2,\r\n}\r\n\r\n/** JSON representation of a [[SpatialClassifierFlags]].\r\n * @public\r\n */\r\nexport interface SpatialClassifierFlagsProps {\r\n /** @see [[SpatialClassifierFlags.inside]]. */\r\n inside: SpatialClassifierInsideDisplay;\r\n /** @see [[SpatialClassifierFlags.outside]]. */\r\n outside: SpatialClassifierOutsideDisplay;\r\n /** @see [[SpatialClassifierFlags.isVolumeClassifier]]. */\r\n isVolumeClassifier?: boolean;\r\n}\r\n\r\n/** Flags affecting how a [[SpatialClassifier]] is applied.\r\n * @public\r\n */\r\nexport class SpatialClassifierFlags {\r\n /** How geometry intersecting the classifier should be displayed. */\r\n public readonly inside: SpatialClassifierInsideDisplay;\r\n /** How geometry not intersecting the classifier should be displayed. */\r\n public readonly outside: SpatialClassifierOutsideDisplay;\r\n /** True for volume classification; false for planar classification. */\r\n public readonly isVolumeClassifier: boolean;\r\n\r\n /** Construct new flags. */\r\n public constructor(inside = SpatialClassifierInsideDisplay.ElementColor, outside = SpatialClassifierOutsideDisplay.Dimmed, isVolumeClassifier = false) {\r\n this.inside = insideDisplay(inside);\r\n this.outside = outsideDisplay(outside);\r\n this.isVolumeClassifier = isVolumeClassifier;\r\n }\r\n\r\n /** Construct from JSON representation. */\r\n public static fromJSON(props: SpatialClassifierFlagsProps): SpatialClassifierFlags {\r\n return new SpatialClassifierFlags(props.inside, props.outside, true === props.isVolumeClassifier);\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): SpatialClassifierFlagsProps {\r\n const props: SpatialClassifierFlagsProps = {\r\n inside: this.inside,\r\n outside: this.outside,\r\n };\r\n\r\n if (this.isVolumeClassifier)\r\n props.isVolumeClassifier = true;\r\n\r\n return props;\r\n }\r\n\r\n /** Create flags indentical to these ones except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps?: Partial<SpatialClassifierFlagsProps>): SpatialClassifierFlags {\r\n if (!changedProps)\r\n return this;\r\n\r\n return SpatialClassifierFlags.fromJSON({ ...this.toJSON(), ...changedProps });\r\n }\r\n\r\n /** Return true if these flags are equivalent to `other`. */\r\n public equals(other: SpatialClassifierFlags): boolean {\r\n if (other === this)\r\n return true;\r\n\r\n return other.inside === this.inside && other.outside === this.outside && other.isVolumeClassifier === this.isVolumeClassifier;\r\n }\r\n\r\n /** Return true if these flags are equivalent to `props`. */\r\n public equalsProps(props: SpatialClassifierFlagsProps): boolean {\r\n return this.inside === props.inside && this.outside === props.outside && this.isVolumeClassifier === (true === props.isVolumeClassifier);\r\n }\r\n}\r\n\r\n/** JSON representation of a [[SpatialClassifier]].\r\n * @public\r\n */\r\nexport interface SpatialClassifierProps {\r\n /** @see [[SpatialClassifier.modelId]]. */\r\n modelId: Id64String;\r\n /** @see [[SpatialClassifier.expand]]. */\r\n expand: number;\r\n /** @see [[SpatialClassifier.flags]]. */\r\n flags: SpatialClassifierFlagsProps;\r\n /** @see [[SpatialClassifier.name]]. */\r\n name: string;\r\n /** Records whether this is the active classifier.\r\n * @see [[SpatialClassifier.active]].\r\n */\r\n isActive?: boolean;\r\n}\r\n\r\n/** Describes how to use the geometry of one [GeometricModel]($backend) to classify the contents of other models - most typically, reality models.\r\n * Applying a classifier divides the geometry of the classified model into two groups:\r\n * - Classified (intersecting the classifier); and\r\n * - Unclassified (not intersecting the classifier).\r\n * For example, a model containing the building footprints for a city block could be used to classify a reality mesh captured from photographs of the\r\n * real-world block. Then, buildings within the reality mesh can be selected individually, and present the properties of the classifier geometry (e.g.,\r\n * the address of the building). The appearance of the geometry can also be customized based using [[SpatialClassifierInsideDisplay]] and [[SpatialClassifierOutsideDisplay]].\r\n * Two types of classification are supported:\r\n * - Planar classification, in which the geometry of the classifier model is projected onto a plane to classify geometry within a region extruded perpendicular\r\n * the plane (e.g., the building footprints example); and\r\n * - Volume classification, in which closed volumes within the classifier classify geometry that intersects those same volumes (e.g., imagine using boxes instead\r\n * of footprints to classify buildings, or floors of buildings).\r\n * @see this (interactive example)[https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=classifier-sample].\r\n * @see [[SpatialClassifiers]] to define a set of classifiers.\r\n * @see [[ContextRealityModel.classifiers]] to classify a context reality model.\r\n * @see [SpatialModelState.classifiers]($frontend) to classify a persistent reality model.\r\n * @public\r\n */\r\nexport class SpatialClassifier {\r\n /** The Id of the [GeometricModel]($backend) whose geometry is used to produce the classifier. */\r\n public readonly modelId: Id64String;\r\n /** A distance in meters by which to expand the classifier geometry. For example, if line strings are used to represent streets,\r\n * you might expand them to the average width of a street.\r\n */\r\n public readonly expand: number;\r\n /** Flags controlling how to apply the classifier. */\r\n public readonly flags: SpatialClassifierFlags;\r\n /** A user-friendly name, useful for identifying individual classifiers within a [[SpatialClassifiers]]. */\r\n public readonly name: string;\r\n\r\n /** Construct a new classifier. */\r\n public constructor(modelId: Id64String, name: string, flags = new SpatialClassifierFlags(), expand = 0) {\r\n this.modelId = modelId;\r\n this.expand = expand;\r\n this.flags = flags;\r\n this.name = name;\r\n }\r\n\r\n /** Construct from JSON representation. */\r\n public static fromJSON(props: SpatialClassifierProps): SpatialClassifier {\r\n return new SpatialClassifier(props.modelId, props.name, SpatialClassifierFlags.fromJSON(props.flags), props.expand);\r\n }\r\n\r\n /** Convert to JSON representation.\r\n * @note This method always sets the [[SpatialClassifierProps.isActive]] property to `false`.\r\n */\r\n public toJSON(): SpatialClassifierProps {\r\n return {\r\n modelId: this.modelId,\r\n expand: this.expand,\r\n flags: this.flags.toJSON(),\r\n name: this.name,\r\n isActive: false,\r\n };\r\n }\r\n\r\n /** Construct from Model Map Layer.\r\n * @beta\r\n */\r\n public static fromModelMapLayer(mapLayer: ModelMapLayerSettings): SpatialClassifier {\r\n const flags = SpatialClassifierFlags.fromJSON({ inside: SpatialClassifierInsideDisplay.Off, outside: SpatialClassifierOutsideDisplay.Off });\r\n\r\n return new SpatialClassifier(mapLayer.modelId, mapLayer.name, flags);\r\n }\r\n\r\n /** Create a classifier identical to this one except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps?: Partial<SpatialClassifierProps>): SpatialClassifier {\r\n if (!changedProps)\r\n return this;\r\n\r\n return SpatialClassifier.fromJSON({ ...this.toJSON(), ...changedProps });\r\n }\r\n\r\n /** Return true if this classifier is equivalent to `other`. */\r\n public equals(other: SpatialClassifier): boolean {\r\n if (other === this)\r\n return true;\r\n\r\n return this.modelId === other.modelId && this.expand === other.expand && this.name === other.name && this.flags.equals(other.flags);\r\n }\r\n\r\n /** Return true if this classifier is equivalent to `props`. */\r\n public equalsProps(props: SpatialClassifierProps): boolean {\r\n return this.modelId === props.modelId && this.expand === props.expand && this.name === props.name && this.flags.equalsProps(props.flags);\r\n }\r\n}\r\n\r\n/** An object that can store the JSON representation of a list of [[SpatialClassifier]]s.\r\n * @see [[SpatialClassifiers]].\r\n * @public\r\n */\r\nexport interface SpatialClassifiersContainer {\r\n /** The list of classifiers. */\r\n classifiers?: SpatialClassifierProps[];\r\n}\r\n\r\n/** A set of [[SpatialClassifier]]s for a given reality model. At most one of the classifiers can be actively classifying the model at any given time.\r\n * The set of classifiers can be presented to the user, listed by name, so that the active classifier can be changed.\r\n * The set of classifiers is populated from its JSON representation and that representation is kept in sync as the set of classifiers is modified.\r\n * @see this (interactive example)[https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=classifier-sample].\r\n * @see [[SpatialClassifier]] for details on how spatial classification works.\r\n * @see [[ContextRealityModel.classifiers]] to define classifiers for a context reality model.\r\n * @see [SpatialModelState.classifiers]($frontend) to define classifiers for a persistent reality model.\r\n * @public\r\n */\r\nexport class SpatialClassifiers implements Iterable<SpatialClassifier> {\r\n private readonly _json: SpatialClassifiersContainer;\r\n private readonly _classifiers: SpatialClassifier[] = [];\r\n private _active?: SpatialClassifier;\r\n\r\n /** Construct a new set of classifiers from the JSON representation. The set will be initialized from `container.classifiers` and that JSON representation\r\n * will be kept in sync with changes made to the set. The caller should not directly modify `container.classifiers` or its contents as that will cause the set to become out\r\n * of sync with the JSON representation.\r\n * The [[active]] classifier will be determined by the first [[SpatialClassifierProps]] whose `isActive` property is set to `true`, if any.\r\n */\r\n public constructor(container: SpatialClassifiersContainer) {\r\n this._json = container;\r\n\r\n const json = this._array;\r\n if (!json)\r\n return;\r\n\r\n for (const props of json) {\r\n const classifier = SpatialClassifier.fromJSON(props);\r\n this._classifiers.push(classifier);\r\n if (props.isActive) {\r\n if (!this._active)\r\n this._active = classifier;\r\n else\r\n props.isActive = false;\r\n }\r\n }\r\n }\r\n\r\n /** The classifier currently classifying the target reality model. The classifier passed to the setter must be one obtained from this set, or one equivalent to\r\n * one contained in this set; in the latter case, the equivalent classifier contained in this set becomes active.\r\n */\r\n /** The classifier currently classifying the target reality model, if any.\r\n * @see [[setActive]] to change the active classifier.\r\n */\r\n public get active(): SpatialClassifier | undefined {\r\n return this._active;\r\n }\r\n\r\n /** Change the [[active]] classifier. The input must be a classifier belonging to this set, or equivalent to one in the set.\r\n * If no equivalent classifier exists in the set, the active classifier remains unchanged.\r\n * @param The classifier to set as active, or `undefined` to clear the active classifier.\r\n * @returns the active classifier.\r\n */\r\n public setActive(active: SpatialClassifier | undefined): SpatialClassifier | undefined {\r\n const array = this._array;\r\n if (!array)\r\n return this.active;\r\n\r\n if (active) {\r\n active = this.findEquivalent(active);\r\n if (!active)\r\n return this.active;\r\n }\r\n\r\n if (active === this.active)\r\n return this.active;\r\n\r\n let propsIndex = -1;\r\n if (active) {\r\n propsIndex = array.findIndex((x) => active!.equalsProps(x));\r\n if (-1 === propsIndex)\r\n return this.active;\r\n }\r\n\r\n this._active = active;\r\n for (let i = 0; i < array.length; i++)\r\n array[i].isActive = (i === propsIndex);\r\n\r\n return this.active;\r\n }\r\n\r\n /** Obtain an iterator over the classifiers contained in this set. */\r\n public [Symbol.iterator](): Iterator<SpatialClassifier> {\r\n return this._classifiers[Symbol.iterator]();\r\n }\r\n\r\n /** The number of classifiers in this set. */\r\n public get size(): number {\r\n return this._array?.length ?? 0;\r\n }\r\n\r\n /** Returns the first classifier that satisfies `criterion`, or `undefined` if no classifier satisfies it. */\r\n public find(criterion: (classifier: SpatialClassifier) => boolean): SpatialClassifier | undefined {\r\n return this._classifiers.find(criterion);\r\n }\r\n\r\n /** Find the first classifier that is equivalent to the supplied classifier, or `undefined` if no equivalent classifier exists in this set. */\r\n public findEquivalent(classifier: SpatialClassifier): SpatialClassifier | undefined {\r\n return this.find((x) => x.equals(classifier));\r\n }\r\n\r\n /** Return true if the specified classifier or one equivalent to it exists in this set. */\r\n public has(classifier: SpatialClassifier): boolean {\r\n return undefined !== this.findEquivalent(classifier);\r\n }\r\n\r\n /** Add a classifier to this set. If an equivalent classifier already exists, the supplied classifier is not added.\r\n * @param classifier The classifier to add.\r\n * @returns The equivalent pre-existing classifier, if one existed; or the supplied classifier, if it was added to the set.\r\n */\r\n public add(classifier: SpatialClassifier): SpatialClassifier {\r\n const existing = this.findEquivalent(classifier);\r\n if (existing)\r\n return existing;\r\n\r\n let array = this._array;\r\n if (!array)\r\n array = this._json.classifiers = [];\r\n\r\n this._classifiers.push(classifier);\r\n array.push(classifier.toJSON());\r\n return classifier;\r\n }\r\n\r\n /** Replace an existing classifier with a different one.\r\n * @param toReplace The classifier to be replaced.\r\n * @param replacement The classifier to replace `toReplace`.\r\n * @returns true if a classifier equivalent to `toReplace` existed in the set and was replaced by `replacement`.\r\n * @note If `toReplace` was the [[active]] classifier, `replacement` will become active.\r\n */\r\n public replace(toReplace: SpatialClassifier, replacement: SpatialClassifier): boolean {\r\n const list = this._array;\r\n if (!list)\r\n return false;\r\n\r\n const classifierIndex = this._classifiers.findIndex((x) => x.equals(toReplace));\r\n if (-1 === classifierIndex)\r\n return false;\r\n\r\n const propsIndex = list.findIndex((x) => toReplace.equalsProps(x));\r\n assert(propsIndex === classifierIndex);\r\n if (-1 === propsIndex)\r\n return false;\r\n\r\n toReplace = this._classifiers[classifierIndex];\r\n const wasActive = this.active === toReplace;\r\n\r\n this._classifiers[classifierIndex] = replacement;\r\n const props = list[propsIndex] = replacement.toJSON();\r\n\r\n if (wasActive) {\r\n props.isActive = true;\r\n this._active = replacement;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Remove the first classifier equivalent to `classifier` from this set.\r\n * @param classifier The classifier to remove.\r\n * @returns The classifier that was actually removed, or `undefined` if none was removed.\r\n */\r\n public delete(classifier: SpatialClassifier): SpatialClassifier | undefined {\r\n const list = this._array;\r\n if (!list)\r\n return undefined;\r\n\r\n const classifierIndex = this._classifiers.findIndex((x) => x.equals(classifier));\r\n if (-1 === classifierIndex)\r\n return undefined;\r\n\r\n classifier = this._classifiers[classifierIndex];\r\n const propsIndex = list.findIndex((x) => classifier.equalsProps(x));\r\n assert(propsIndex === classifierIndex);\r\n if (-1 === propsIndex)\r\n return undefined;\r\n\r\n list.splice(propsIndex, 1);\r\n this._classifiers.splice(classifierIndex, 1);\r\n if (list.length === 0)\r\n this._json.classifiers = undefined;\r\n\r\n if (classifier === this.active)\r\n this._active = undefined;\r\n\r\n return classifier;\r\n }\r\n\r\n /** Remove all classifiers from this set. */\r\n public clear(): void {\r\n this._classifiers.length = 0;\r\n this._json.classifiers = undefined;\r\n this._active = undefined;\r\n }\r\n\r\n private get _array(): SpatialClassifierProps[] | undefined {\r\n return Array.isArray(this._json.classifiers) ? this._json.classifiers : undefined;\r\n }\r\n}\r\n\r\nfunction insideDisplay(display: number): SpatialClassifierInsideDisplay {\r\n switch (display) {\r\n case SpatialClassifierInsideDisplay.Off:\r\n case SpatialClassifierInsideDisplay.On:\r\n case SpatialClassifierInsideDisplay.Dimmed:\r\n case SpatialClassifierInsideDisplay.Hilite:\r\n case SpatialClassifierInsideDisplay.ElementColor:\r\n return display;\r\n default:\r\n return SpatialClassifierInsideDisplay.ElementColor;\r\n }\r\n}\r\n\r\nfunction outsideDisplay(display: number): SpatialClassifierOutsideDisplay {\r\n switch (display) {\r\n case SpatialClassifierOutsideDisplay.Off:\r\n case SpatialClassifierOutsideDisplay.On:\r\n case SpatialClassifierOutsideDisplay.Dimmed:\r\n return display;\r\n default:\r\n return SpatialClassifierOutsideDisplay.Dimmed;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SpatialClassification.js","sourceRoot":"","sources":["../../src/SpatialClassification.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { ModelMapLayerSettings } from \"./MapLayerSettings\";\r\n\r\n/** Describes how a [[SpatialClassifier]] affects the display of classified geometry - that is, geometry intersecting\r\n * the classifier.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SpatialClassifierInsideDisplay {\r\n /** The geometry is not displayed. */\r\n Off = 0,\r\n /** The geometry is displayed without alteration. */\r\n On = 1,\r\n /** The geometry is darkened. */\r\n Dimmed = 2,\r\n /** The geometry is tinted by the [Viewport.hilite]($frontend) color. */\r\n Hilite = 3,\r\n /** The geometry is tinted with the colors of the classifier elements. */\r\n ElementColor = 4,\r\n}\r\n\r\n/** Describes how a [[SpatialClassifier]] affects the display of unclassified geometry - that is, geometry not intersecting\r\n * the classifier.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SpatialClassifierOutsideDisplay {\r\n /** The geometry is not displayed. */\r\n Off = 0,\r\n /** The geometry is displayed without alteration. */\r\n On = 1,\r\n /** The geometry is darkened. */\r\n Dimmed = 2,\r\n}\r\n\r\n/** JSON representation of a [[SpatialClassifierFlags]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SpatialClassifierFlagsProps {\r\n /** @see [[SpatialClassifierFlags.inside]]. */\r\n inside: SpatialClassifierInsideDisplay;\r\n /** @see [[SpatialClassifierFlags.outside]]. */\r\n outside: SpatialClassifierOutsideDisplay;\r\n /** @see [[SpatialClassifierFlags.isVolumeClassifier]]. */\r\n isVolumeClassifier?: boolean;\r\n}\r\n\r\n/** Flags affecting how a [[SpatialClassifier]] is applied.\r\n * @public\r\n */\r\nexport class SpatialClassifierFlags {\r\n /** How geometry intersecting the classifier should be displayed. */\r\n public readonly inside: SpatialClassifierInsideDisplay;\r\n /** How geometry not intersecting the classifier should be displayed. */\r\n public readonly outside: SpatialClassifierOutsideDisplay;\r\n /** True for volume classification; false for planar classification. */\r\n public readonly isVolumeClassifier: boolean;\r\n\r\n /** Construct new flags. */\r\n public constructor(inside = SpatialClassifierInsideDisplay.ElementColor, outside = SpatialClassifierOutsideDisplay.Dimmed, isVolumeClassifier = false) {\r\n this.inside = insideDisplay(inside);\r\n this.outside = outsideDisplay(outside);\r\n this.isVolumeClassifier = isVolumeClassifier;\r\n }\r\n\r\n /** Construct from JSON representation. */\r\n public static fromJSON(props: SpatialClassifierFlagsProps): SpatialClassifierFlags {\r\n return new SpatialClassifierFlags(props.inside, props.outside, true === props.isVolumeClassifier);\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): SpatialClassifierFlagsProps {\r\n const props: SpatialClassifierFlagsProps = {\r\n inside: this.inside,\r\n outside: this.outside,\r\n };\r\n\r\n if (this.isVolumeClassifier)\r\n props.isVolumeClassifier = true;\r\n\r\n return props;\r\n }\r\n\r\n /** Create flags indentical to these ones except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps?: Partial<SpatialClassifierFlagsProps>): SpatialClassifierFlags {\r\n if (!changedProps)\r\n return this;\r\n\r\n return SpatialClassifierFlags.fromJSON({ ...this.toJSON(), ...changedProps });\r\n }\r\n\r\n /** Return true if these flags are equivalent to `other`. */\r\n public equals(other: SpatialClassifierFlags): boolean {\r\n if (other === this)\r\n return true;\r\n\r\n return other.inside === this.inside && other.outside === this.outside && other.isVolumeClassifier === this.isVolumeClassifier;\r\n }\r\n\r\n /** Return true if these flags are equivalent to `props`. */\r\n public equalsProps(props: SpatialClassifierFlagsProps): boolean {\r\n return this.inside === props.inside && this.outside === props.outside && this.isVolumeClassifier === (true === props.isVolumeClassifier);\r\n }\r\n}\r\n\r\n/** JSON representation of a [[SpatialClassifier]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SpatialClassifierProps {\r\n /** @see [[SpatialClassifier.modelId]]. */\r\n modelId: Id64String;\r\n /** @see [[SpatialClassifier.expand]]. */\r\n expand: number;\r\n /** @see [[SpatialClassifier.flags]]. */\r\n flags: SpatialClassifierFlagsProps;\r\n /** @see [[SpatialClassifier.name]]. */\r\n name: string;\r\n /** Records whether this is the active classifier.\r\n * @see [[SpatialClassifier.active]].\r\n */\r\n isActive?: boolean;\r\n}\r\n\r\n/** Describes how to use the geometry of one [GeometricModel]($backend) to classify the contents of other models - most typically, reality models.\r\n * Applying a classifier divides the geometry of the classified model into two groups:\r\n * - Classified (intersecting the classifier); and\r\n * - Unclassified (not intersecting the classifier).\r\n * For example, a model containing the building footprints for a city block could be used to classify a reality mesh captured from photographs of the\r\n * real-world block. Then, buildings within the reality mesh can be selected individually, and present the properties of the classifier geometry (e.g.,\r\n * the address of the building). The appearance of the geometry can also be customized based using [[SpatialClassifierInsideDisplay]] and [[SpatialClassifierOutsideDisplay]].\r\n * Two types of classification are supported:\r\n * - Planar classification, in which the geometry of the classifier model is projected onto a plane to classify geometry within a region extruded perpendicular\r\n * the plane (e.g., the building footprints example); and\r\n * - Volume classification, in which closed volumes within the classifier classify geometry that intersects those same volumes (e.g., imagine using boxes instead\r\n * of footprints to classify buildings, or floors of buildings).\r\n * @see this (interactive example)[https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=classifier-sample].\r\n * @see [[SpatialClassifiers]] to define a set of classifiers.\r\n * @see [[ContextRealityModel.classifiers]] to classify a context reality model.\r\n * @see [SpatialModelState.classifiers]($frontend) to classify a persistent reality model.\r\n * @public\r\n */\r\nexport class SpatialClassifier {\r\n /** The Id of the [GeometricModel]($backend) whose geometry is used to produce the classifier. */\r\n public readonly modelId: Id64String;\r\n /** A distance in meters by which to expand the classifier geometry. For example, if line strings are used to represent streets,\r\n * you might expand them to the average width of a street.\r\n */\r\n public readonly expand: number;\r\n /** Flags controlling how to apply the classifier. */\r\n public readonly flags: SpatialClassifierFlags;\r\n /** A user-friendly name, useful for identifying individual classifiers within a [[SpatialClassifiers]]. */\r\n public readonly name: string;\r\n\r\n /** Construct a new classifier. */\r\n public constructor(modelId: Id64String, name: string, flags = new SpatialClassifierFlags(), expand = 0) {\r\n this.modelId = modelId;\r\n this.expand = expand;\r\n this.flags = flags;\r\n this.name = name;\r\n }\r\n\r\n /** Construct from JSON representation. */\r\n public static fromJSON(props: SpatialClassifierProps): SpatialClassifier {\r\n return new SpatialClassifier(props.modelId, props.name, SpatialClassifierFlags.fromJSON(props.flags), props.expand);\r\n }\r\n\r\n /** Convert to JSON representation.\r\n * @note This method always sets the [[SpatialClassifierProps.isActive]] property to `false`.\r\n */\r\n public toJSON(): SpatialClassifierProps {\r\n return {\r\n modelId: this.modelId,\r\n expand: this.expand,\r\n flags: this.flags.toJSON(),\r\n name: this.name,\r\n isActive: false,\r\n };\r\n }\r\n\r\n /** Construct from Model Map Layer.\r\n * @beta\r\n */\r\n public static fromModelMapLayer(mapLayer: ModelMapLayerSettings): SpatialClassifier {\r\n const flags = SpatialClassifierFlags.fromJSON({ inside: SpatialClassifierInsideDisplay.Off, outside: SpatialClassifierOutsideDisplay.Off });\r\n\r\n return new SpatialClassifier(mapLayer.modelId, mapLayer.name, flags);\r\n }\r\n\r\n /** Create a classifier identical to this one except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps?: Partial<SpatialClassifierProps>): SpatialClassifier {\r\n if (!changedProps)\r\n return this;\r\n\r\n return SpatialClassifier.fromJSON({ ...this.toJSON(), ...changedProps });\r\n }\r\n\r\n /** Return true if this classifier is equivalent to `other`. */\r\n public equals(other: SpatialClassifier): boolean {\r\n if (other === this)\r\n return true;\r\n\r\n return this.modelId === other.modelId && this.expand === other.expand && this.name === other.name && this.flags.equals(other.flags);\r\n }\r\n\r\n /** Return true if this classifier is equivalent to `props`. */\r\n public equalsProps(props: SpatialClassifierProps): boolean {\r\n return this.modelId === props.modelId && this.expand === props.expand && this.name === props.name && this.flags.equalsProps(props.flags);\r\n }\r\n}\r\n\r\n/** An object that can store the JSON representation of a list of [[SpatialClassifier]]s.\r\n * @see [[SpatialClassifiers]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SpatialClassifiersContainer {\r\n /** The list of classifiers. */\r\n classifiers?: SpatialClassifierProps[];\r\n}\r\n\r\n/** A set of [[SpatialClassifier]]s for a given reality model. At most one of the classifiers can be actively classifying the model at any given time.\r\n * The set of classifiers can be presented to the user, listed by name, so that the active classifier can be changed.\r\n * The set of classifiers is populated from its JSON representation and that representation is kept in sync as the set of classifiers is modified.\r\n * @see this (interactive example)[https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=classifier-sample].\r\n * @see [[SpatialClassifier]] for details on how spatial classification works.\r\n * @see [[ContextRealityModel.classifiers]] to define classifiers for a context reality model.\r\n * @see [SpatialModelState.classifiers]($frontend) to define classifiers for a persistent reality model.\r\n * @public\r\n */\r\nexport class SpatialClassifiers implements Iterable<SpatialClassifier> {\r\n private readonly _json: SpatialClassifiersContainer;\r\n private readonly _classifiers: SpatialClassifier[] = [];\r\n private _active?: SpatialClassifier;\r\n\r\n /** Construct a new set of classifiers from the JSON representation. The set will be initialized from `container.classifiers` and that JSON representation\r\n * will be kept in sync with changes made to the set. The caller should not directly modify `container.classifiers` or its contents as that will cause the set to become out\r\n * of sync with the JSON representation.\r\n * The [[active]] classifier will be determined by the first [[SpatialClassifierProps]] whose `isActive` property is set to `true`, if any.\r\n */\r\n public constructor(container: SpatialClassifiersContainer) {\r\n this._json = container;\r\n\r\n const json = this._array;\r\n if (!json)\r\n return;\r\n\r\n for (const props of json) {\r\n const classifier = SpatialClassifier.fromJSON(props);\r\n this._classifiers.push(classifier);\r\n if (props.isActive) {\r\n if (!this._active)\r\n this._active = classifier;\r\n else\r\n props.isActive = false;\r\n }\r\n }\r\n }\r\n\r\n /** The classifier currently classifying the target reality model. The classifier passed to the setter must be one obtained from this set, or one equivalent to\r\n * one contained in this set; in the latter case, the equivalent classifier contained in this set becomes active.\r\n */\r\n /** The classifier currently classifying the target reality model, if any.\r\n * @see [[setActive]] to change the active classifier.\r\n */\r\n public get active(): SpatialClassifier | undefined {\r\n return this._active;\r\n }\r\n\r\n /** Change the [[active]] classifier. The input must be a classifier belonging to this set, or equivalent to one in the set.\r\n * If no equivalent classifier exists in the set, the active classifier remains unchanged.\r\n * @param The classifier to set as active, or `undefined` to clear the active classifier.\r\n * @returns the active classifier.\r\n */\r\n public setActive(active: SpatialClassifier | undefined): SpatialClassifier | undefined {\r\n const array = this._array;\r\n if (!array)\r\n return this.active;\r\n\r\n if (active) {\r\n active = this.findEquivalent(active);\r\n if (!active)\r\n return this.active;\r\n }\r\n\r\n if (active === this.active)\r\n return this.active;\r\n\r\n let propsIndex = -1;\r\n if (active) {\r\n propsIndex = array.findIndex((x) => active!.equalsProps(x));\r\n if (-1 === propsIndex)\r\n return this.active;\r\n }\r\n\r\n this._active = active;\r\n for (let i = 0; i < array.length; i++)\r\n array[i].isActive = (i === propsIndex);\r\n\r\n return this.active;\r\n }\r\n\r\n /** Obtain an iterator over the classifiers contained in this set. */\r\n public [Symbol.iterator](): Iterator<SpatialClassifier> {\r\n return this._classifiers[Symbol.iterator]();\r\n }\r\n\r\n /** The number of classifiers in this set. */\r\n public get size(): number {\r\n return this._array?.length ?? 0;\r\n }\r\n\r\n /** Returns the first classifier that satisfies `criterion`, or `undefined` if no classifier satisfies it. */\r\n public find(criterion: (classifier: SpatialClassifier) => boolean): SpatialClassifier | undefined {\r\n return this._classifiers.find(criterion);\r\n }\r\n\r\n /** Find the first classifier that is equivalent to the supplied classifier, or `undefined` if no equivalent classifier exists in this set. */\r\n public findEquivalent(classifier: SpatialClassifier): SpatialClassifier | undefined {\r\n return this.find((x) => x.equals(classifier));\r\n }\r\n\r\n /** Return true if the specified classifier or one equivalent to it exists in this set. */\r\n public has(classifier: SpatialClassifier): boolean {\r\n return undefined !== this.findEquivalent(classifier);\r\n }\r\n\r\n /** Add a classifier to this set. If an equivalent classifier already exists, the supplied classifier is not added.\r\n * @param classifier The classifier to add.\r\n * @returns The equivalent pre-existing classifier, if one existed; or the supplied classifier, if it was added to the set.\r\n */\r\n public add(classifier: SpatialClassifier): SpatialClassifier {\r\n const existing = this.findEquivalent(classifier);\r\n if (existing)\r\n return existing;\r\n\r\n let array = this._array;\r\n if (!array)\r\n array = this._json.classifiers = [];\r\n\r\n this._classifiers.push(classifier);\r\n array.push(classifier.toJSON());\r\n return classifier;\r\n }\r\n\r\n /** Replace an existing classifier with a different one.\r\n * @param toReplace The classifier to be replaced.\r\n * @param replacement The classifier to replace `toReplace`.\r\n * @returns true if a classifier equivalent to `toReplace` existed in the set and was replaced by `replacement`.\r\n * @note If `toReplace` was the [[active]] classifier, `replacement` will become active.\r\n */\r\n public replace(toReplace: SpatialClassifier, replacement: SpatialClassifier): boolean {\r\n const list = this._array;\r\n if (!list)\r\n return false;\r\n\r\n const classifierIndex = this._classifiers.findIndex((x) => x.equals(toReplace));\r\n if (-1 === classifierIndex)\r\n return false;\r\n\r\n const propsIndex = list.findIndex((x) => toReplace.equalsProps(x));\r\n assert(propsIndex === classifierIndex);\r\n if (-1 === propsIndex)\r\n return false;\r\n\r\n toReplace = this._classifiers[classifierIndex];\r\n const wasActive = this.active === toReplace;\r\n\r\n this._classifiers[classifierIndex] = replacement;\r\n const props = list[propsIndex] = replacement.toJSON();\r\n\r\n if (wasActive) {\r\n props.isActive = true;\r\n this._active = replacement;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Remove the first classifier equivalent to `classifier` from this set.\r\n * @param classifier The classifier to remove.\r\n * @returns The classifier that was actually removed, or `undefined` if none was removed.\r\n */\r\n public delete(classifier: SpatialClassifier): SpatialClassifier | undefined {\r\n const list = this._array;\r\n if (!list)\r\n return undefined;\r\n\r\n const classifierIndex = this._classifiers.findIndex((x) => x.equals(classifier));\r\n if (-1 === classifierIndex)\r\n return undefined;\r\n\r\n classifier = this._classifiers[classifierIndex];\r\n const propsIndex = list.findIndex((x) => classifier.equalsProps(x));\r\n assert(propsIndex === classifierIndex);\r\n if (-1 === propsIndex)\r\n return undefined;\r\n\r\n list.splice(propsIndex, 1);\r\n this._classifiers.splice(classifierIndex, 1);\r\n if (list.length === 0)\r\n this._json.classifiers = undefined;\r\n\r\n if (classifier === this.active)\r\n this._active = undefined;\r\n\r\n return classifier;\r\n }\r\n\r\n /** Remove all classifiers from this set. */\r\n public clear(): void {\r\n this._classifiers.length = 0;\r\n this._json.classifiers = undefined;\r\n this._active = undefined;\r\n }\r\n\r\n private get _array(): SpatialClassifierProps[] | undefined {\r\n return Array.isArray(this._json.classifiers) ? this._json.classifiers : undefined;\r\n }\r\n}\r\n\r\nfunction insideDisplay(display: number): SpatialClassifierInsideDisplay {\r\n switch (display) {\r\n case SpatialClassifierInsideDisplay.Off:\r\n case SpatialClassifierInsideDisplay.On:\r\n case SpatialClassifierInsideDisplay.Dimmed:\r\n case SpatialClassifierInsideDisplay.Hilite:\r\n case SpatialClassifierInsideDisplay.ElementColor:\r\n return display;\r\n default:\r\n return SpatialClassifierInsideDisplay.ElementColor;\r\n }\r\n}\r\n\r\nfunction outsideDisplay(display: number): SpatialClassifierOutsideDisplay {\r\n switch (display) {\r\n case SpatialClassifierOutsideDisplay.Off:\r\n case SpatialClassifierOutsideDisplay.On:\r\n case SpatialClassifierOutsideDisplay.Dimmed:\r\n return display;\r\n default:\r\n return SpatialClassifierOutsideDisplay.Dimmed;\r\n }\r\n}\r\n"]}
|
|
@@ -5,12 +5,14 @@ import { BackgroundMapProps } from "./BackgroundMapSettings";
|
|
|
5
5
|
/** The current set of supported terrain providers. Currently only CesiumWorldTerrain.
|
|
6
6
|
* @see [[TerrainProps]]
|
|
7
7
|
* @public
|
|
8
|
+
* @extensions
|
|
8
9
|
*/
|
|
9
10
|
export declare type TerrainProviderName = "CesiumWorldTerrain";
|
|
10
11
|
/** JSON representation of the settings of the terrain applied to background map display by a [[DisplayStyle]].
|
|
11
12
|
* @see [[DisplayStyleSettingsProps]]
|
|
12
13
|
* @see [[BackgroundMapProps]]
|
|
13
14
|
* @public
|
|
15
|
+
* @extensions
|
|
14
16
|
*/
|
|
15
17
|
export interface TerrainProps {
|
|
16
18
|
/** Identifies the provider currently only CesiumWorldTerrain is supported. */
|
|
@@ -31,6 +33,7 @@ export interface TerrainProps {
|
|
|
31
33
|
/** Correction modes for terrain height
|
|
32
34
|
* @see [[TerrainProps]]
|
|
33
35
|
* @public
|
|
36
|
+
* @extensions
|
|
34
37
|
*/
|
|
35
38
|
export declare enum TerrainHeightOriginMode {
|
|
36
39
|
/** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainSettings.d.ts","sourceRoot":"","sources":["../../src/TerrainSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"TerrainSettings.d.ts","sourceRoot":"","sources":["../../src/TerrainSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;GAIG;AACH,oBAAY,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8IAA8I;IAC9I,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0HAA0H;IAC1H,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mGAAmG;IACnG,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,oBAAY,uBAAuB;IACjC,sHAAsH;IACtH,QAAQ,IAAI;IACZ,0GAA0G;IAC1G,KAAK,IAAI;IACT,yGAAyG;IACzG,MAAM,IAAI;CACX;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAmB;IACxC,2EAA2E;IAC3E,SAAgB,YAAY,EAAE,mBAAmB,CAAC;IAClD,qIAAqI;IACrI,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,+FAA+F;IAC/F,SAAgB,aAAa,EAAE,OAAO,CAAC;IACvC,yHAAyH;IACzH,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,mGAAmG;IACnG,SAAgB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1D;;;OAGG;IACH,IAAW,YAAY,IAAI,IAAI,GAAG,SAAS,CAE1C;gBAEW,YAAY,GAAE,mBAA0C,EAAE,YAAY,GAAE,MAAY,EAAE,aAAa,UAAQ,EAAE,YAAY,SAAM,EAAE,gBAAgB,0BAAmC;WAgBlL,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY;IAYnC,MAAM,IAAI,YAAY;IAgBtB,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAK9C,mFAAmF;IAC5E,UAAU,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO;IAIrD;;;OAGG;IACI,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,eAAe;CAe3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainSettings.js","sourceRoot":"","sources":["../../src/TerrainSettings.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAgCH;;;GAGG;AACH,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,sHAAsH;IACtH,6EAAY,CAAA;IACZ,0GAA0G;IAC1G,uEAAS,CAAA;IACT,yGAAyG;IACzG,yEAAU,CAAA;AACZ,CAAC,EAPW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAOlC;AAED;;GAEG;AACH,MAAa,eAAe;IAoB1B,YAAY,eAAoC,oBAAoB,EAAE,eAAuB,GAAG,EAAE,aAAa,GAAG,KAAK,EAAE,YAAY,GAAG,GAAG,EAAE,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ;QAC9L,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,QAAQ,gBAAgB,EAAE;YACxB,KAAK,uBAAuB,CAAC,MAAM,CAAC;YACpC,KAAK,uBAAuB,CAAC,KAAK;gBAChC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;gBACzC,MAAM;YACR;gBACE,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,CAAC;gBACzD,MAAM;SACT;IACH,CAAC;IAtBD;;;OAGG;IACH,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAkBM,MAAM,CAAC,QAAQ,CAAC,IAAmB;QACxC,IAAI,SAAS,KAAK,IAAI;YACpB,OAAO,IAAI,eAAe,EAAE,CAAC;QAE/B,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAI,qDAAqD;QACnG,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpI,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY;YAC5B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;QAEhC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM;QACX,MAAM,KAAK,GAAiB,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxE,IAAI,oBAAoB,KAAK,IAAI,CAAC,YAAY;YAC5C,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY;YACzB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,IAAI,IAAI,CAAC,YAAY;YACnB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,aAAa;YACpB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY;YACzB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAsB;QAClC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;eACpI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;IAChJ,CAAC;IAED,mFAAmF;IAC5E,UAAU,CAAC,IAAyB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAA2B;;QACtC,IAAI,SAAS,KAAK,YAAY;YAC5B,OAAO,IAAI,CAAC;QAEd,MAAM,KAAK,GAAG;YACZ,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,aAAa,EAAE,MAAA,YAAY,CAAC,aAAa,mCAAI,IAAI,CAAC,aAAa;YAC/D,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,gBAAgB,EAAE,MAAA,YAAY,CAAC,gBAAgB,mCAAI,IAAI,CAAC,gBAAgB;SACzE,CAAC;QAEF,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF;AA7FD,0CA6FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { BackgroundMapProps } from \"./BackgroundMapSettings\";\r\n\r\n/** The current set of supported terrain providers. Currently only CesiumWorldTerrain.\r\n * @see [[TerrainProps]]\r\n * @public\r\n */\r\nexport type TerrainProviderName = \"CesiumWorldTerrain\";\r\n\r\n/** JSON representation of the settings of the terrain applied to background map display by a [[DisplayStyle]].\r\n * @see [[DisplayStyleSettingsProps]]\r\n * @see [[BackgroundMapProps]]\r\n * @public\r\n */\r\nexport interface TerrainProps {\r\n /** Identifies the provider currently only CesiumWorldTerrain is supported. */\r\n providerName?: string;\r\n /** A value greater than one will cause terrain height to be exaggerated/scaled.false (or 1.0) indicate no exaggeration. Default value: 1.0 */\r\n exaggeration?: number;\r\n /** Applying lighting can help to visualize subtle terrain variation. Default value: true */\r\n applyLighting?: boolean;\r\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value: 0.0 */\r\n heightOrigin?: number;\r\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\r\n heightOriginMode?: TerrainHeightOriginMode;\r\n /** If true, the terrain will not be locatable. Otherwise, [[BackgroundMapProps.nonLocatable]] will determine whether terrain is locatable.\r\n * @internal use [[BackgroundMapProps.nonLocatable]]. Retained for backwards compatibility only.\r\n */\r\n nonLocatable?: boolean;\r\n}\r\n\r\n/** Correction modes for terrain height\r\n * @see [[TerrainProps]]\r\n * @public\r\n */\r\nexport enum TerrainHeightOriginMode {\r\n /** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */\r\n Geodetic = 0,\r\n /** Height value indicates the geoidal height of the IModel origin (commonly referred to as sea level). */\r\n Geoid = 1,\r\n /** Height value indicates the height of the IModel origin relative to ground level at project center. */\r\n Ground = 2,\r\n}\r\n\r\n/** Normalized version of [[TerrainProps]] for which provider has been validated and default values of all members are used.\r\n * @public\r\n */\r\nexport class TerrainSettings {\r\n private _nonLocatable: true | undefined;\r\n /** Identifies the provider currently only CesiumWorldTerrain supported. */\r\n public readonly providerName: TerrainProviderName;\r\n /** A value greater than one will cause terrain height to be exaggerated/scaled. 1.0 indicates no exaggeration. Default value: 1.0 */\r\n public readonly exaggeration: number;\r\n /** Applying lighting can help to visualize subtle terrain variations. Default value: false */\r\n public readonly applyLighting: boolean;\r\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value 0.0 */\r\n public readonly heightOrigin: number;\r\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\r\n public readonly heightOriginMode: TerrainHeightOriginMode;\r\n /** Optionally overrides [[BackgroundMapSettings.locatable]]. For backwards compatibility only.\r\n * @see [[TerrainProps.nonLocatable]].\r\n * @internal\r\n */\r\n public get nonLocatable(): true | undefined {\r\n return this._nonLocatable;\r\n }\r\n\r\n constructor(providerName: TerrainProviderName = \"CesiumWorldTerrain\", exaggeration: number = 1.0, applyLighting = false, heightOrigin = 0.0, heightOriginMode = TerrainHeightOriginMode.Geodetic) {\r\n this.providerName = providerName;\r\n this.exaggeration = Math.min(100, Math.max(0.1, exaggeration));\r\n this.applyLighting = applyLighting;\r\n this.heightOrigin = heightOrigin;\r\n switch (heightOriginMode) {\r\n case TerrainHeightOriginMode.Ground:\r\n case TerrainHeightOriginMode.Geoid:\r\n this.heightOriginMode = heightOriginMode;\r\n break;\r\n default:\r\n this.heightOriginMode = TerrainHeightOriginMode.Geodetic;\r\n break;\r\n }\r\n }\r\n\r\n public static fromJSON(json?: TerrainProps) {\r\n if (undefined === json)\r\n return new TerrainSettings();\r\n\r\n const providerName = \"CesiumWorldTerrain\"; // This is only terrain provider currently supported.\r\n const settings = new TerrainSettings(providerName, json.exaggeration, json.applyLighting, json.heightOrigin, json.heightOriginMode);\r\n if (true === json.nonLocatable)\r\n settings._nonLocatable = true;\r\n\r\n return settings;\r\n }\r\n\r\n public toJSON(): TerrainProps {\r\n const props: TerrainProps = { heightOriginMode: this.heightOriginMode };\r\n if (\"CesiumWorldTerrain\" !== this.providerName)\r\n props.providerName = this.providerName;\r\n if (1 !== this.exaggeration)\r\n props.exaggeration = this.exaggeration;\r\n if (this.nonLocatable)\r\n props.nonLocatable = true;\r\n if (this.applyLighting)\r\n props.applyLighting = true;\r\n if (0 !== this.heightOrigin)\r\n props.heightOrigin = this.heightOrigin;\r\n\r\n return props;\r\n }\r\n\r\n public equals(other: TerrainSettings): boolean {\r\n return this.providerName === other.providerName && this.exaggeration === other.exaggeration && this.applyLighting === other.applyLighting\r\n && this.heightOrigin === other.heightOrigin && this.heightOriginMode === other.heightOriginMode && this.nonLocatable === other.nonLocatable;\r\n }\r\n\r\n /** Returns true if these settings are equivalent to the supplied JSON settings. */\r\n public equalsJSON(json?: BackgroundMapProps): boolean {\r\n return this.equals(TerrainSettings.fromJSON(json));\r\n }\r\n\r\n /** Create a copy of this TerrainSettings, optionally modifying some of its properties.\r\n * @param changedProps JSON representation of the properties to change.\r\n * @returns A TerrainSettings with all of its properties set to match those of`this`, except those explicitly defined in `changedProps`.\r\n */\r\n public clone(changedProps?: TerrainProps): TerrainSettings {\r\n if (undefined === changedProps)\r\n return this;\r\n\r\n const props = {\r\n providerName: changedProps.providerName ?? this.providerName,\r\n exaggeration: changedProps.exaggeration ?? this.exaggeration,\r\n nonLocatable: changedProps.nonLocatable ?? this.nonLocatable,\r\n applyLighting: changedProps.applyLighting ?? this.applyLighting,\r\n heightOrigin: changedProps.heightOrigin ?? this.heightOrigin,\r\n heightOriginMode: changedProps.heightOriginMode ?? this.heightOriginMode,\r\n };\r\n\r\n return TerrainSettings.fromJSON(props);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"TerrainSettings.js","sourceRoot":"","sources":["../../src/TerrainSettings.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAkCH;;;;GAIG;AACH,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,sHAAsH;IACtH,6EAAY,CAAA;IACZ,0GAA0G;IAC1G,uEAAS,CAAA;IACT,yGAAyG;IACzG,yEAAU,CAAA;AACZ,CAAC,EAPW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAOlC;AAED;;GAEG;AACH,MAAa,eAAe;IAoB1B,YAAY,eAAoC,oBAAoB,EAAE,eAAuB,GAAG,EAAE,aAAa,GAAG,KAAK,EAAE,YAAY,GAAG,GAAG,EAAE,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ;QAC9L,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,QAAQ,gBAAgB,EAAE;YACxB,KAAK,uBAAuB,CAAC,MAAM,CAAC;YACpC,KAAK,uBAAuB,CAAC,KAAK;gBAChC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;gBACzC,MAAM;YACR;gBACE,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,CAAC;gBACzD,MAAM;SACT;IACH,CAAC;IAtBD;;;OAGG;IACH,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAkBM,MAAM,CAAC,QAAQ,CAAC,IAAmB;QACxC,IAAI,SAAS,KAAK,IAAI;YACpB,OAAO,IAAI,eAAe,EAAE,CAAC;QAE/B,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAI,qDAAqD;QACnG,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpI,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY;YAC5B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;QAEhC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM;QACX,MAAM,KAAK,GAAiB,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxE,IAAI,oBAAoB,KAAK,IAAI,CAAC,YAAY;YAC5C,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY;YACzB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,IAAI,IAAI,CAAC,YAAY;YACnB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,aAAa;YACpB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY;YACzB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,KAAsB;QAClC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;eACpI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;IAChJ,CAAC;IAED,mFAAmF;IAC5E,UAAU,CAAC,IAAyB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAA2B;;QACtC,IAAI,SAAS,KAAK,YAAY;YAC5B,OAAO,IAAI,CAAC;QAEd,MAAM,KAAK,GAAG;YACZ,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,aAAa,EAAE,MAAA,YAAY,CAAC,aAAa,mCAAI,IAAI,CAAC,aAAa;YAC/D,YAAY,EAAE,MAAA,YAAY,CAAC,YAAY,mCAAI,IAAI,CAAC,YAAY;YAC5D,gBAAgB,EAAE,MAAA,YAAY,CAAC,gBAAgB,mCAAI,IAAI,CAAC,gBAAgB;SACzE,CAAC;QAEF,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF;AA7FD,0CA6FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { BackgroundMapProps } from \"./BackgroundMapSettings\";\r\n\r\n/** The current set of supported terrain providers. Currently only CesiumWorldTerrain.\r\n * @see [[TerrainProps]]\r\n * @public\r\n * @extensions\r\n */\r\nexport type TerrainProviderName = \"CesiumWorldTerrain\";\r\n\r\n/** JSON representation of the settings of the terrain applied to background map display by a [[DisplayStyle]].\r\n * @see [[DisplayStyleSettingsProps]]\r\n * @see [[BackgroundMapProps]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TerrainProps {\r\n /** Identifies the provider currently only CesiumWorldTerrain is supported. */\r\n providerName?: string;\r\n /** A value greater than one will cause terrain height to be exaggerated/scaled.false (or 1.0) indicate no exaggeration. Default value: 1.0 */\r\n exaggeration?: number;\r\n /** Applying lighting can help to visualize subtle terrain variation. Default value: true */\r\n applyLighting?: boolean;\r\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value: 0.0 */\r\n heightOrigin?: number;\r\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\r\n heightOriginMode?: TerrainHeightOriginMode;\r\n /** If true, the terrain will not be locatable. Otherwise, [[BackgroundMapProps.nonLocatable]] will determine whether terrain is locatable.\r\n * @internal use [[BackgroundMapProps.nonLocatable]]. Retained for backwards compatibility only.\r\n */\r\n nonLocatable?: boolean;\r\n}\r\n\r\n/** Correction modes for terrain height\r\n * @see [[TerrainProps]]\r\n * @public\r\n * @extensions\r\n */\r\nexport enum TerrainHeightOriginMode {\r\n /** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */\r\n Geodetic = 0,\r\n /** Height value indicates the geoidal height of the IModel origin (commonly referred to as sea level). */\r\n Geoid = 1,\r\n /** Height value indicates the height of the IModel origin relative to ground level at project center. */\r\n Ground = 2,\r\n}\r\n\r\n/** Normalized version of [[TerrainProps]] for which provider has been validated and default values of all members are used.\r\n * @public\r\n */\r\nexport class TerrainSettings {\r\n private _nonLocatable: true | undefined;\r\n /** Identifies the provider currently only CesiumWorldTerrain supported. */\r\n public readonly providerName: TerrainProviderName;\r\n /** A value greater than one will cause terrain height to be exaggerated/scaled. 1.0 indicates no exaggeration. Default value: 1.0 */\r\n public readonly exaggeration: number;\r\n /** Applying lighting can help to visualize subtle terrain variations. Default value: false */\r\n public readonly applyLighting: boolean;\r\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value 0.0 */\r\n public readonly heightOrigin: number;\r\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\r\n public readonly heightOriginMode: TerrainHeightOriginMode;\r\n /** Optionally overrides [[BackgroundMapSettings.locatable]]. For backwards compatibility only.\r\n * @see [[TerrainProps.nonLocatable]].\r\n * @internal\r\n */\r\n public get nonLocatable(): true | undefined {\r\n return this._nonLocatable;\r\n }\r\n\r\n constructor(providerName: TerrainProviderName = \"CesiumWorldTerrain\", exaggeration: number = 1.0, applyLighting = false, heightOrigin = 0.0, heightOriginMode = TerrainHeightOriginMode.Geodetic) {\r\n this.providerName = providerName;\r\n this.exaggeration = Math.min(100, Math.max(0.1, exaggeration));\r\n this.applyLighting = applyLighting;\r\n this.heightOrigin = heightOrigin;\r\n switch (heightOriginMode) {\r\n case TerrainHeightOriginMode.Ground:\r\n case TerrainHeightOriginMode.Geoid:\r\n this.heightOriginMode = heightOriginMode;\r\n break;\r\n default:\r\n this.heightOriginMode = TerrainHeightOriginMode.Geodetic;\r\n break;\r\n }\r\n }\r\n\r\n public static fromJSON(json?: TerrainProps) {\r\n if (undefined === json)\r\n return new TerrainSettings();\r\n\r\n const providerName = \"CesiumWorldTerrain\"; // This is only terrain provider currently supported.\r\n const settings = new TerrainSettings(providerName, json.exaggeration, json.applyLighting, json.heightOrigin, json.heightOriginMode);\r\n if (true === json.nonLocatable)\r\n settings._nonLocatable = true;\r\n\r\n return settings;\r\n }\r\n\r\n public toJSON(): TerrainProps {\r\n const props: TerrainProps = { heightOriginMode: this.heightOriginMode };\r\n if (\"CesiumWorldTerrain\" !== this.providerName)\r\n props.providerName = this.providerName;\r\n if (1 !== this.exaggeration)\r\n props.exaggeration = this.exaggeration;\r\n if (this.nonLocatable)\r\n props.nonLocatable = true;\r\n if (this.applyLighting)\r\n props.applyLighting = true;\r\n if (0 !== this.heightOrigin)\r\n props.heightOrigin = this.heightOrigin;\r\n\r\n return props;\r\n }\r\n\r\n public equals(other: TerrainSettings): boolean {\r\n return this.providerName === other.providerName && this.exaggeration === other.exaggeration && this.applyLighting === other.applyLighting\r\n && this.heightOrigin === other.heightOrigin && this.heightOriginMode === other.heightOriginMode && this.nonLocatable === other.nonLocatable;\r\n }\r\n\r\n /** Returns true if these settings are equivalent to the supplied JSON settings. */\r\n public equalsJSON(json?: BackgroundMapProps): boolean {\r\n return this.equals(TerrainSettings.fromJSON(json));\r\n }\r\n\r\n /** Create a copy of this TerrainSettings, optionally modifying some of its properties.\r\n * @param changedProps JSON representation of the properties to change.\r\n * @returns A TerrainSettings with all of its properties set to match those of`this`, except those explicitly defined in `changedProps`.\r\n */\r\n public clone(changedProps?: TerrainProps): TerrainSettings {\r\n if (undefined === changedProps)\r\n return this;\r\n\r\n const props = {\r\n providerName: changedProps.providerName ?? this.providerName,\r\n exaggeration: changedProps.exaggeration ?? this.exaggeration,\r\n nonLocatable: changedProps.nonLocatable ?? this.nonLocatable,\r\n applyLighting: changedProps.applyLighting ?? this.applyLighting,\r\n heightOrigin: changedProps.heightOrigin ?? this.heightOrigin,\r\n heightOriginMode: changedProps.heightOriginMode ?? this.heightOriginMode,\r\n };\r\n\r\n return TerrainSettings.fromJSON(props);\r\n }\r\n}\r\n"]}
|
|
@@ -7,6 +7,7 @@ import { ImageSourceFormat } from "./Image";
|
|
|
7
7
|
import { Base64EncodedString } from "./Base64EncodedString";
|
|
8
8
|
/** Properties that define a [Texture]($backend) element.
|
|
9
9
|
* @public
|
|
10
|
+
* @extensions
|
|
10
11
|
*/
|
|
11
12
|
export interface TextureProps extends DefinitionElementProps {
|
|
12
13
|
/** Format of the image data. */
|
|
@@ -21,6 +22,7 @@ export interface TextureProps extends DefinitionElementProps {
|
|
|
21
22
|
}
|
|
22
23
|
/** Properties that specify what texture should be loaded and how it should be loaded.
|
|
23
24
|
* @public
|
|
25
|
+
* @extensions
|
|
24
26
|
*/
|
|
25
27
|
export interface TextureLoadProps {
|
|
26
28
|
/** A valid Id64 string identifying the texture */
|
|
@@ -47,6 +49,7 @@ export declare enum TextureTransparency {
|
|
|
47
49
|
}
|
|
48
50
|
/** Information about [Texture]($backend) data returned by [[IModelReadRpcInterface.queryTextureData]].
|
|
49
51
|
* @public
|
|
52
|
+
* @extensions
|
|
50
53
|
*/
|
|
51
54
|
export interface TextureData {
|
|
52
55
|
/** The width of the image, possibly reduced from the original width based on [[TextureLoadProps.maxTextureSize]]. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureProps.d.ts","sourceRoot":"","sources":["../../src/TextureProps.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D
|
|
1
|
+
{"version":3,"file":"TextureProps.d.ts","sourceRoot":"","sources":["../../src/TextureProps.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,sBAAsB;IAC1D,gCAAgC;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;;OAGG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAC1B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,IAAI,EAAE,UAAU,CAAC;IACjB,iJAAiJ;IACjJ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,oBAAY,mBAAmB;IAC7B,kGAAkG;IAClG,MAAM,IAAA;IACN,mGAAmG;IACnG,WAAW,IAAA;IACX;;OAEG;IACH,KAAK,IAAA;CACN;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qHAAqH;IACrH,KAAK,EAAE,MAAM,CAAC;IACd,uHAAuH;IACvH,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,uGAAuG;IACvG,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureProps.js","sourceRoot":"","sources":["../../src/TextureProps.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"TextureProps.js","sourceRoot":"","sources":["../../src/TextureProps.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAkCH;;;;;;GAMG;AACH,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC7B,kGAAkG;IAClG,iEAAM,CAAA;IACN,mGAAmG;IACnG,2EAAW,CAAA;IACX;;OAEG;IACH,+DAAK,CAAA;AACP,CAAC,EATW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAS9B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Entities\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { DefinitionElementProps } from \"./ElementProps\";\r\nimport { ImageSourceFormat } from \"./Image\";\r\nimport { Base64EncodedString } from \"./Base64EncodedString\";\r\n\r\n/** Properties that define a [Texture]($backend) element.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureProps extends DefinitionElementProps {\r\n /** Format of the image data. */\r\n format: ImageSourceFormat;\r\n /** The image data stored in a Base64-encoded string according to the specified format.\r\n * @see [[Base64EncodedString.fromUint8Array]] to produce a well-formed base-64-encoded string.\r\n * @see [[Base64EncodedString.toUint8Array]] to decode the bytes.\r\n */\r\n data: Base64EncodedString;\r\n /** An optional description of the texture. */\r\n description?: string;\r\n}\r\n\r\n/** Properties that specify what texture should be loaded and how it should be loaded.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureLoadProps {\r\n /** A valid Id64 string identifying the texture */\r\n name: Id64String;\r\n /** Maximum texture size supported by the client. If specified, the texture will be downsampled so both of its dimensions adhere to this size. */\r\n maxTextureSize?: number;\r\n}\r\n\r\n/** Describes the type of transparency in the pixels of a [TextureImage]($frontend).\r\n * Each pixel can be classified as either opaque or translucent.\r\n * The transparency of the image as a whole is based on the combination of pixel transparencies.\r\n * If this information is known, it should be supplied when creating a texture for more efficient rendering.\r\n * @see [TextureImage.transparency]($frontend).\r\n * @public\r\n */\r\nexport enum TextureTransparency {\r\n /** The image contains only opaque pixels. It should not blend with other objects in the scene. */\r\n Opaque,\r\n /** The image contains only translucent pixels. It should blend with other objects in the scene. */\r\n Translucent,\r\n /** The image contains both opaque and translucent pixels. The translucent pixels should blend with other objects in the scene, while\r\n * the opaque pixels should not. Rendering this type of transparency is somewhat more expensive.\r\n */\r\n Mixed,\r\n}\r\n\r\n/** Information about [Texture]($backend) data returned by [[IModelReadRpcInterface.queryTextureData]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureData {\r\n /** The width of the image, possibly reduced from the original width based on [[TextureLoadProps.maxTextureSize]]. */\r\n width: number;\r\n /** The height of the image, possibly reduced from the original height based on [[TextureLoadProps.maxTextureSize]]. */\r\n height: number;\r\n /** The format of the image (Jpeg or Png). */\r\n format: ImageSourceFormat;\r\n /** The encoded image bytes. */\r\n bytes: Uint8Array;\r\n /** Information about the transparency of the texture image. Default: [[TextureTransparency.Mixed]]. */\r\n transparency?: TextureTransparency;\r\n}\r\n"]}
|
|
@@ -7,6 +7,7 @@ import { Gradient } from "./Gradient";
|
|
|
7
7
|
/** A thematic gradient mode used to generate and apply a thematic effect to a scene.
|
|
8
8
|
* @see [[ThematicGradientSettings.mode]]
|
|
9
9
|
* @public
|
|
10
|
+
* @extensions
|
|
10
11
|
*/
|
|
11
12
|
export declare enum ThematicGradientMode {
|
|
12
13
|
/** Apply a smooth color gradient to the scene. */
|
|
@@ -21,7 +22,9 @@ export declare enum ThematicGradientMode {
|
|
|
21
22
|
/** A color scheme used to generate the colors of a thematic gradient within an applied range.
|
|
22
23
|
* @see [[ThematicGradientSettings.colorScheme]]
|
|
23
24
|
* @see [[ThematicDisplay.range]]
|
|
24
|
-
* @public
|
|
25
|
+
* @public
|
|
26
|
+
* @extensions
|
|
27
|
+
*/
|
|
25
28
|
export declare enum ThematicGradientColorScheme {
|
|
26
29
|
/** A color gradient scheme that represents a blue-to-red gradation. */
|
|
27
30
|
BlueRed = 0,
|
|
@@ -40,6 +43,7 @@ export declare enum ThematicGradientColorScheme {
|
|
|
40
43
|
}
|
|
41
44
|
/** JSON representation of a [[ThematicGradientSettings]].
|
|
42
45
|
* @public
|
|
46
|
+
* @extensions
|
|
43
47
|
**/
|
|
44
48
|
export interface ThematicGradientSettingsProps {
|
|
45
49
|
/** The thematic image mode used to generate and apply the thematic gradient. Defaults to [[ThematicGradientMode.Smooth]]. */
|
|
@@ -102,6 +106,7 @@ export declare class ThematicGradientSettings {
|
|
|
102
106
|
}
|
|
103
107
|
/** JSON representation of a [[ThematicDisplaySensor]].
|
|
104
108
|
* @public
|
|
109
|
+
* @extensions
|
|
105
110
|
*/
|
|
106
111
|
export interface ThematicDisplaySensorProps {
|
|
107
112
|
/** The world position of the sensor in X, Y, and Z. Defaults to {0,0,0}. */
|
|
@@ -124,6 +129,7 @@ export declare class ThematicDisplaySensor {
|
|
|
124
129
|
}
|
|
125
130
|
/** JSON representation of a [[ThematicDisplaySensorSettings]] for [[ThematicDisplayMode.InverseDistanceWeightedSensors]].
|
|
126
131
|
* @public
|
|
132
|
+
* @extensions
|
|
127
133
|
*/
|
|
128
134
|
export interface ThematicDisplaySensorSettingsProps {
|
|
129
135
|
/** This is the list of sensors. Defaults to an empty array. */
|
|
@@ -154,6 +160,7 @@ export declare class ThematicDisplaySensorSettings {
|
|
|
154
160
|
}
|
|
155
161
|
/** The thematic display mode. This determines how to apply the thematic color gradient to the geometry.
|
|
156
162
|
* @public
|
|
163
|
+
* @extensions
|
|
157
164
|
*/
|
|
158
165
|
export declare enum ThematicDisplayMode {
|
|
159
166
|
/** The color gradient will be mapped to surface geometry and point clouds based on world height in meters. */
|
|
@@ -173,6 +180,7 @@ export declare enum ThematicDisplayMode {
|
|
|
173
180
|
}
|
|
174
181
|
/** JSON representation of the thematic display setup of a [[DisplayStyle3d]].
|
|
175
182
|
* @public
|
|
183
|
+
* @extensions
|
|
176
184
|
*/
|
|
177
185
|
export interface ThematicDisplayProps {
|
|
178
186
|
/** The thematic display mode. This determines how to apply the thematic color gradient to the geometry. Defaults to [[ThematicDisplayMode.Height]]. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThematicDisplay.d.ts","sourceRoot":"","sources":["../../src/ThematicDisplay.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"ThematicDisplay.d.ts","sourceRoot":"","sources":["../../src/ThematicDisplay.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ const Gradient_1 = require("./Gradient");
|
|
|
15
15
|
/** A thematic gradient mode used to generate and apply a thematic effect to a scene.
|
|
16
16
|
* @see [[ThematicGradientSettings.mode]]
|
|
17
17
|
* @public
|
|
18
|
+
* @extensions
|
|
18
19
|
*/
|
|
19
20
|
var ThematicGradientMode;
|
|
20
21
|
(function (ThematicGradientMode) {
|
|
@@ -30,7 +31,9 @@ var ThematicGradientMode;
|
|
|
30
31
|
/** A color scheme used to generate the colors of a thematic gradient within an applied range.
|
|
31
32
|
* @see [[ThematicGradientSettings.colorScheme]]
|
|
32
33
|
* @see [[ThematicDisplay.range]]
|
|
33
|
-
* @public
|
|
34
|
+
* @public
|
|
35
|
+
* @extensions
|
|
36
|
+
*/
|
|
34
37
|
var ThematicGradientColorScheme;
|
|
35
38
|
(function (ThematicGradientColorScheme) {
|
|
36
39
|
/** A color gradient scheme that represents a blue-to-red gradation. */
|
|
@@ -247,6 +250,7 @@ class ThematicDisplaySensorSettings {
|
|
|
247
250
|
exports.ThematicDisplaySensorSettings = ThematicDisplaySensorSettings;
|
|
248
251
|
/** The thematic display mode. This determines how to apply the thematic color gradient to the geometry.
|
|
249
252
|
* @public
|
|
253
|
+
* @extensions
|
|
250
254
|
*/
|
|
251
255
|
var ThematicDisplayMode;
|
|
252
256
|
(function (ThematicDisplayMode) {
|