@itwin/map-layers 3.0.0-dev.121 → 3.0.0-dev.125
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/lib/cjs/ui/widget/MapManagerSettings.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapManagerSettings.js +15 -10
- package/lib/cjs/ui/widget/MapManagerSettings.js.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.js +17 -12
- package/lib/esm/ui/widget/MapManagerSettings.js.map +1 -1
- package/package.json +29 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":";AAWA,OAAO,2BAA2B,CAAC;AAuCnC,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":";AAWA,OAAO,2BAA2B,CAAC;AAuCnC,wBAAgB,kBAAkB,gBAiNjC"}
|
|
@@ -87,13 +87,15 @@ function MapManagerSettings() {
|
|
|
87
87
|
activeViewport.invalidateRenderPlan();
|
|
88
88
|
}, [activeViewport, maskTransparency]);
|
|
89
89
|
const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));
|
|
90
|
-
const onMaskingToggle = React.useCallback((
|
|
90
|
+
const onMaskingToggle = React.useCallback((e) => {
|
|
91
|
+
const checked = e.target.checked;
|
|
91
92
|
const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;
|
|
92
93
|
updateMaskingSettings(maskingOption);
|
|
93
94
|
setMasking(maskingOption);
|
|
94
95
|
}, [updateMaskingSettings]);
|
|
95
96
|
const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);
|
|
96
|
-
const onOverrideMaskTransparencyToggle = React.useCallback((
|
|
97
|
+
const onOverrideMaskTransparencyToggle = React.useCallback((e) => {
|
|
98
|
+
const checked = e.target.checked;
|
|
97
99
|
const trans = checked ? getNormalizedMaskTransparency() : undefined;
|
|
98
100
|
activeViewport.changeBackgroundMapProps({ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: trans } });
|
|
99
101
|
setOverrideMaskTransparency(checked);
|
|
@@ -117,7 +119,8 @@ function MapManagerSettings() {
|
|
|
117
119
|
setMaskTransparency(newTransparency);
|
|
118
120
|
}, [activeViewport]);
|
|
119
121
|
const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);
|
|
120
|
-
const onToggleTerrain = React.useCallback((
|
|
122
|
+
const onToggleTerrain = React.useCallback((e) => {
|
|
123
|
+
const checked = e.target.checked;
|
|
121
124
|
updateBackgroundMap({ applyTerrain: checked });
|
|
122
125
|
setApplyTerrain(checked);
|
|
123
126
|
}, [updateBackgroundMap]);
|
|
@@ -136,7 +139,8 @@ function MapManagerSettings() {
|
|
|
136
139
|
}
|
|
137
140
|
}, [updateTerrainSettings]);
|
|
138
141
|
const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);
|
|
139
|
-
const onToggleUseDepthBuffer = React.useCallback((
|
|
142
|
+
const onToggleUseDepthBuffer = React.useCallback((e) => {
|
|
143
|
+
const checked = e.target.checked;
|
|
140
144
|
updateBackgroundMap({ useDepthBuffer: checked });
|
|
141
145
|
setUseDepthBuffer(checked);
|
|
142
146
|
}, [updateBackgroundMap]);
|
|
@@ -146,7 +150,8 @@ function MapManagerSettings() {
|
|
|
146
150
|
event.preventDefault();
|
|
147
151
|
}, []);
|
|
148
152
|
const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);
|
|
149
|
-
const onLocatableToggle = React.useCallback((
|
|
153
|
+
const onLocatableToggle = React.useCallback((e) => {
|
|
154
|
+
const checked = e.target.checked;
|
|
150
155
|
updateBackgroundMap({ nonLocatable: !checked });
|
|
151
156
|
setIsLocatable(checked);
|
|
152
157
|
}, [updateBackgroundMap]);
|
|
@@ -167,24 +172,24 @@ function MapManagerSettings() {
|
|
|
167
172
|
React.createElement("span", { className: "map-manager-settings-label" }, transparencyLabel),
|
|
168
173
|
React.createElement(itwinui_react_1.Slider, { min: 0, max: 100, values: [transparency * 100], onChange: handleAlphaChange, step: 1 }),
|
|
169
174
|
React.createElement("span", { className: "map-manager-settings-label" }, locatableLabel),
|
|
170
|
-
React.createElement(
|
|
175
|
+
React.createElement(itwinui_react_1.ToggleSwitch, { onChange: onLocatableToggle, checked: isLocatable }),
|
|
171
176
|
React.createElement("span", { className: "map-manager-settings-label" }, maskingLabel),
|
|
172
|
-
React.createElement(
|
|
177
|
+
React.createElement(itwinui_react_1.ToggleSwitch, { onChange: onMaskingToggle, checked: masking !== MapMaskingOption.None }),
|
|
173
178
|
React.createElement("span", { className: "map-manager-settings-label" }, overrideMaskTransparencyLabel),
|
|
174
|
-
React.createElement(
|
|
179
|
+
React.createElement(itwinui_react_1.ToggleSwitch, { disabled: masking === MapMaskingOption.None, onChange: onOverrideMaskTransparencyToggle, checked: overrideMaskTransparency }),
|
|
175
180
|
React.createElement("span", { className: "map-manager-settings-label" }, maskTransparencyLabel),
|
|
176
181
|
React.createElement(itwinui_react_1.Slider, { disabled: masking === MapMaskingOption.None || !overrideMaskTransparency, min: 0, max: 100, values: [getNormalizedMaskTransparency() * 100], onChange: handleMaskTransparencyChange, step: 1 }),
|
|
177
182
|
React.createElement(React.Fragment, null,
|
|
178
183
|
React.createElement("span", { className: "map-manager-settings-label" }, elevationOffsetLabel),
|
|
179
184
|
React.createElement(imodel_components_react_1.QuantityNumberInput, { disabled: applyTerrain, persistenceValue: groundBias, step: 1, snap: true, quantityType: core_frontend_1.QuantityType.LengthEngineering, onChange: handleElevationChange, onKeyDown: onKeyDown }),
|
|
180
185
|
React.createElement("span", { className: "map-manager-settings-label" }, useDepthBufferLabel),
|
|
181
|
-
React.createElement(
|
|
186
|
+
React.createElement(itwinui_react_1.ToggleSwitch, { disabled: applyTerrain, onChange: onToggleUseDepthBuffer, checked: useDepthBuffer }))),
|
|
182
187
|
React.createElement("div", { className: "map-manager-settings-terrain-container" },
|
|
183
188
|
React.createElement("fieldset", null,
|
|
184
189
|
React.createElement("legend", null, terrainLabel),
|
|
185
190
|
React.createElement("div", { className: "maplayers-settings-container" },
|
|
186
191
|
React.createElement("span", { className: "map-manager-settings-label" }, enableLabel),
|
|
187
|
-
React.createElement(
|
|
192
|
+
React.createElement(itwinui_react_1.ToggleSwitch, { onChange: onToggleTerrain, checked: applyTerrain }),
|
|
188
193
|
React.createElement("span", { className: "map-manager-settings-label" }, modelHeightLabel),
|
|
189
194
|
React.createElement(imodel_components_react_1.QuantityNumberInput, { disabled: !applyTerrain, persistenceValue: terrainOrigin, snap: true, quantityType: core_frontend_1.QuantityType.LengthEngineering, onChange: handleHeightOriginChange, onKeyDown: onKeyDown }),
|
|
190
195
|
React.createElement("span", { className: "map-manager-settings-label" }, heightOriginLabel),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapManagerSettings.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"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// cSpell:ignore droppable Sublayer Basemap\r\n\r\nimport * as React from \"react\";\r\nimport { NumberInput, Toggle } from \"@itwin/core-react\";\r\nimport { QuantityType, ViewState3d } from \"@itwin/core-frontend\";\r\nimport { BackgroundMapProps, BackgroundMapSettings, PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode, TerrainProps } from \"@itwin/core-common\";\r\nimport { useSourceMapContext } from \"./MapLayerManager\";\r\nimport \"./MapManagerSettings.scss\";\r\nimport { MapLayersUiItemsProvider } from \"../MapLayersUiItemsProvider\";\r\nimport { Select, SelectOption, Slider } from \"@itwin/itwinui-react\";\r\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nenum MapMaskingOption {\r\n None,\r\n AllModels\r\n}\r\n\r\nfunction getMapMaskingFromBackgroundMapSetting(backgroundMapSettings: BackgroundMapSettings): MapMaskingOption {\r\n if (backgroundMapSettings.planarClipMask.mode === PlanarClipMaskMode.Priority && backgroundMapSettings.planarClipMask.priority) {\r\n if (backgroundMapSettings.planarClipMask.priority >= PlanarClipMaskPriority.BackgroundMap) {\r\n return MapMaskingOption.AllModels;\r\n }\r\n\r\n }\r\n return MapMaskingOption.None;\r\n}\r\n\r\nfunction getHeightOriginModeKey(mode: TerrainHeightOriginMode): string {\r\n if (TerrainHeightOriginMode.Geodetic === mode)\r\n return \"geodetic\";\r\n if (TerrainHeightOriginMode.Geoid === mode)\r\n return \"geoid\";\r\n return \"ground\";\r\n}\r\n\r\nfunction getHeightOriginModeFromKey(mode: string): TerrainHeightOriginMode {\r\n if (\"geodetic\" === mode)\r\n return TerrainHeightOriginMode.Geodetic;\r\n if (\"geoid\" === mode)\r\n return TerrainHeightOriginMode.Geoid;\r\n return TerrainHeightOriginMode.Ground;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function MapManagerSettings() {\r\n const { activeViewport } = useSourceMapContext();\r\n const backgroundMapSettings = (activeViewport!.view as ViewState3d).getDisplayStyle3d().settings.backgroundMap;\r\n\r\n const [transparency, setTransparency] = React.useState(() =>\r\n typeof backgroundMapSettings.transparency === \"boolean\"\r\n ? 0\r\n : Math.round((backgroundMapSettings.transparency) * 100) / 100);\r\n\r\n const terrainSettings = backgroundMapSettings.terrainSettings;\r\n const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);\r\n\r\n const terrainHeightOptions = React.useRef<SelectOption<string>[]>([\r\n { value: \"geodetic\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeodetic\") },\r\n { value: \"geoid\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeoid\") },\r\n { value: \"ground\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGround\") },\r\n ]);\r\n\r\n const updateTerrainSettings = React.useCallback((props: TerrainProps) => {\r\n activeViewport!.changeBackgroundMapProps({ terrainSettings: props });\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const updateBackgroundMap = React.useCallback((props: BackgroundMapProps) => {\r\n activeViewport!.changeBackgroundMapProps(props);\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const [heightOriginMode, setHeightOriginMode] = React.useState(() => getHeightOriginModeKey(terrainSettings.heightOriginMode));\r\n const handleElevationTypeSelected = React.useCallback((newValue: string): void => {\r\n if (newValue) {\r\n const newHeightOriginMode = getHeightOriginModeFromKey(newValue);\r\n updateTerrainSettings({ heightOriginMode: newHeightOriginMode });\r\n setHeightOriginMode(newValue);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [maskTransparency, setMaskTransparency] = React.useState(() =>\r\n backgroundMapSettings.planarClipMask.transparency === undefined\r\n ? undefined\r\n : Math.round((backgroundMapSettings.planarClipMask.transparency) * 100) / 100);\r\n\r\n const getNormalizedMaskTransparency = React.useCallback(() => { return (maskTransparency === undefined ? 0 : maskTransparency); }, [maskTransparency]);\r\n\r\n const updateMaskingSettings = React.useCallback((option: MapMaskingOption) => {\r\n if (option === MapMaskingOption.AllModels) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency } });\r\n }\r\n if (option === MapMaskingOption.None) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.None } });\r\n }\r\n\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport, maskTransparency]);\r\n\r\n const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));\r\n\r\n const onMaskingToggle = React.useCallback((checked: boolean) => {\r\n const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;\r\n updateMaskingSettings(maskingOption);\r\n setMasking(maskingOption);\r\n }, [updateMaskingSettings]);\r\n\r\n const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);\r\n\r\n const onOverrideMaskTransparencyToggle = React.useCallback((checked: boolean) => {\r\n const trans = checked ? getNormalizedMaskTransparency() : undefined;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans } });\r\n\r\n setOverrideMaskTransparency(checked);\r\n }, [activeViewport, getNormalizedMaskTransparency]);\r\n\r\n const handleElevationChange = React.useCallback((value: number) => {\r\n if (value !== undefined) {\r\n updateBackgroundMap({ groundBias: value });\r\n setGroundBias(value);\r\n }\r\n }, [updateBackgroundMap]);\r\n\r\n const handleAlphaChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ transparency: newTransparency });\r\n activeViewport!.invalidateRenderPlan();\r\n setTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const handleMaskTransparencyChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency } });\r\n activeViewport!.invalidateRenderPlan();\r\n setMaskTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);\r\n\r\n const onToggleTerrain = React.useCallback((checked: boolean) => {\r\n updateBackgroundMap({ applyTerrain: checked });\r\n setApplyTerrain(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [exaggeration, setExaggeration] = React.useState(() => terrainSettings.exaggeration);\r\n\r\n const handleExaggerationChange = React.useCallback((value: number | undefined, _stringValue: string) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ exaggeration: value });\r\n setExaggeration(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [terrainOrigin, setTerrainOrigin] = React.useState(() => terrainSettings.heightOrigin);\r\n\r\n const handleHeightOriginChange = React.useCallback((value: number) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ heightOrigin: value });\r\n setTerrainOrigin(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);\r\n const onToggleUseDepthBuffer = React.useCallback((checked: boolean) => {\r\n updateBackgroundMap({ useDepthBuffer: checked });\r\n setUseDepthBuffer(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n /** Disable commas and letters */\r\n const onKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90))\r\n event.preventDefault();\r\n }, []);\r\n\r\n const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);\r\n const onLocatableToggle = React.useCallback((checked: boolean) => {\r\n updateBackgroundMap({ nonLocatable: !checked });\r\n setIsLocatable(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [transparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Transparency\"));\r\n const [terrainLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Terrain\"));\r\n const [enableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Enable\"));\r\n const [elevationOffsetLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationOffset\"));\r\n const [useDepthBufferLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.UseDepthBuffer\"));\r\n const [modelHeightLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ModelHeight\"));\r\n const [heightOriginLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.HeightOrigin\"));\r\n const [exaggerationLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Exaggeration\"));\r\n const [locatableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Locatable\"));\r\n const [maskingLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Mask\"));\r\n const [overrideMaskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.OverrideMaskTransparency\"));\r\n const [maskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.MaskTransparency\"));\r\n\r\n return (\r\n <>\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{transparencyLabel}</span>\r\n <Slider min={0} max={100} values={[transparency * 100]} onChange={handleAlphaChange} step={1} />\r\n\r\n <span className=\"map-manager-settings-label\">{locatableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle onChange={onLocatableToggle} isOn={isLocatable} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle onChange={onMaskingToggle} isOn={masking !== MapMaskingOption.None} />\r\n\r\n <span className=\"map-manager-settings-label\">{overrideMaskTransparencyLabel}</span>\r\n <Toggle disabled={masking === MapMaskingOption.None} onChange={onOverrideMaskTransparencyToggle} isOn={overrideMaskTransparency} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskTransparencyLabel}</span>\r\n <Slider disabled={masking === MapMaskingOption.None || !overrideMaskTransparency} min={0} max={100} values={[getNormalizedMaskTransparency() * 100]} onChange={handleMaskTransparencyChange} step={1} />\r\n\r\n <>\r\n <span className=\"map-manager-settings-label\">{elevationOffsetLabel}</span>\r\n <QuantityNumberInput disabled={applyTerrain} persistenceValue={groundBias} step={1} snap quantityType={QuantityType.LengthEngineering} onChange={handleElevationChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{useDepthBufferLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle disabled={applyTerrain} onChange={onToggleUseDepthBuffer} isOn={useDepthBuffer} />\r\n </>\r\n\r\n </div>\r\n <div className=\"map-manager-settings-terrain-container\">\r\n <fieldset>\r\n <legend>{terrainLabel}</legend>\r\n\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{enableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle onChange={onToggleTerrain} isOn={applyTerrain} />\r\n\r\n <span className=\"map-manager-settings-label\">{modelHeightLabel}</span>\r\n <QuantityNumberInput disabled={!applyTerrain} persistenceValue={terrainOrigin} snap quantityType={QuantityType.LengthEngineering} onChange={handleHeightOriginChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{heightOriginLabel}</span>\r\n <Select options={terrainHeightOptions.current} disabled={!applyTerrain} value={heightOriginMode} onChange={handleElevationTypeSelected} size=\"small\" />\r\n\r\n <span className=\"map-manager-settings-label\">{exaggerationLabel}</span>\r\n <NumberInput value={exaggeration} disabled={!applyTerrain} onChange={handleExaggerationChange} onKeyDown={onKeyDown} />\r\n </div>\r\n\r\n </fieldset>\r\n </div>\r\n </>\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"MapManagerSettings.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"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// cSpell:ignore droppable Sublayer Basemap\r\n\r\nimport * as React from \"react\";\r\nimport { NumberInput } from \"@itwin/core-react\";\r\nimport { QuantityType, ViewState3d } from \"@itwin/core-frontend\";\r\nimport { BackgroundMapProps, BackgroundMapSettings, PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode, TerrainProps } from \"@itwin/core-common\";\r\nimport { useSourceMapContext } from \"./MapLayerManager\";\r\nimport \"./MapManagerSettings.scss\";\r\nimport { MapLayersUiItemsProvider } from \"../MapLayersUiItemsProvider\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nenum MapMaskingOption {\r\n None,\r\n AllModels\r\n}\r\n\r\nfunction getMapMaskingFromBackgroundMapSetting(backgroundMapSettings: BackgroundMapSettings): MapMaskingOption {\r\n if (backgroundMapSettings.planarClipMask.mode === PlanarClipMaskMode.Priority && backgroundMapSettings.planarClipMask.priority) {\r\n if (backgroundMapSettings.planarClipMask.priority >= PlanarClipMaskPriority.BackgroundMap) {\r\n return MapMaskingOption.AllModels;\r\n }\r\n\r\n }\r\n return MapMaskingOption.None;\r\n}\r\n\r\nfunction getHeightOriginModeKey(mode: TerrainHeightOriginMode): string {\r\n if (TerrainHeightOriginMode.Geodetic === mode)\r\n return \"geodetic\";\r\n if (TerrainHeightOriginMode.Geoid === mode)\r\n return \"geoid\";\r\n return \"ground\";\r\n}\r\n\r\nfunction getHeightOriginModeFromKey(mode: string): TerrainHeightOriginMode {\r\n if (\"geodetic\" === mode)\r\n return TerrainHeightOriginMode.Geodetic;\r\n if (\"geoid\" === mode)\r\n return TerrainHeightOriginMode.Geoid;\r\n return TerrainHeightOriginMode.Ground;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function MapManagerSettings() {\r\n const { activeViewport } = useSourceMapContext();\r\n const backgroundMapSettings = (activeViewport!.view as ViewState3d).getDisplayStyle3d().settings.backgroundMap;\r\n\r\n const [transparency, setTransparency] = React.useState(() =>\r\n typeof backgroundMapSettings.transparency === \"boolean\"\r\n ? 0\r\n : Math.round((backgroundMapSettings.transparency) * 100) / 100);\r\n\r\n const terrainSettings = backgroundMapSettings.terrainSettings;\r\n const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);\r\n\r\n const terrainHeightOptions = React.useRef<SelectOption<string>[]>([\r\n { value: \"geodetic\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeodetic\") },\r\n { value: \"geoid\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeoid\") },\r\n { value: \"ground\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGround\") },\r\n ]);\r\n\r\n const updateTerrainSettings = React.useCallback((props: TerrainProps) => {\r\n activeViewport!.changeBackgroundMapProps({ terrainSettings: props });\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const updateBackgroundMap = React.useCallback((props: BackgroundMapProps) => {\r\n activeViewport!.changeBackgroundMapProps(props);\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const [heightOriginMode, setHeightOriginMode] = React.useState(() => getHeightOriginModeKey(terrainSettings.heightOriginMode));\r\n const handleElevationTypeSelected = React.useCallback((newValue: string): void => {\r\n if (newValue) {\r\n const newHeightOriginMode = getHeightOriginModeFromKey(newValue);\r\n updateTerrainSettings({ heightOriginMode: newHeightOriginMode });\r\n setHeightOriginMode(newValue);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [maskTransparency, setMaskTransparency] = React.useState(() =>\r\n backgroundMapSettings.planarClipMask.transparency === undefined\r\n ? undefined\r\n : Math.round((backgroundMapSettings.planarClipMask.transparency) * 100) / 100);\r\n\r\n const getNormalizedMaskTransparency = React.useCallback(() => { return (maskTransparency === undefined ? 0 : maskTransparency); }, [maskTransparency]);\r\n\r\n const updateMaskingSettings = React.useCallback((option: MapMaskingOption) => {\r\n if (option === MapMaskingOption.AllModels) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency } });\r\n }\r\n if (option === MapMaskingOption.None) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.None } });\r\n }\r\n\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport, maskTransparency]);\r\n\r\n const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));\r\n\r\n const onMaskingToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;\r\n updateMaskingSettings(maskingOption);\r\n setMasking(maskingOption);\r\n }, [updateMaskingSettings]);\r\n\r\n const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);\r\n\r\n const onOverrideMaskTransparencyToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n const trans = checked ? getNormalizedMaskTransparency() : undefined;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans } });\r\n\r\n setOverrideMaskTransparency(checked);\r\n }, [activeViewport, getNormalizedMaskTransparency]);\r\n\r\n const handleElevationChange = React.useCallback((value: number) => {\r\n if (value !== undefined) {\r\n updateBackgroundMap({ groundBias: value });\r\n setGroundBias(value);\r\n }\r\n }, [updateBackgroundMap]);\r\n\r\n const handleAlphaChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ transparency: newTransparency });\r\n activeViewport!.invalidateRenderPlan();\r\n setTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const handleMaskTransparencyChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency } });\r\n activeViewport!.invalidateRenderPlan();\r\n setMaskTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);\r\n\r\n const onToggleTerrain = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n updateBackgroundMap({ applyTerrain: checked });\r\n setApplyTerrain(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [exaggeration, setExaggeration] = React.useState(() => terrainSettings.exaggeration);\r\n\r\n const handleExaggerationChange = React.useCallback((value: number | undefined, _stringValue: string) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ exaggeration: value });\r\n setExaggeration(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [terrainOrigin, setTerrainOrigin] = React.useState(() => terrainSettings.heightOrigin);\r\n\r\n const handleHeightOriginChange = React.useCallback((value: number) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ heightOrigin: value });\r\n setTerrainOrigin(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);\r\n const onToggleUseDepthBuffer = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n updateBackgroundMap({ useDepthBuffer: checked });\r\n setUseDepthBuffer(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n /** Disable commas and letters */\r\n const onKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90))\r\n event.preventDefault();\r\n }, []);\r\n\r\n const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);\r\n const onLocatableToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n updateBackgroundMap({ nonLocatable: !checked });\r\n setIsLocatable(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [transparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Transparency\"));\r\n const [terrainLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Terrain\"));\r\n const [enableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Enable\"));\r\n const [elevationOffsetLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationOffset\"));\r\n const [useDepthBufferLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.UseDepthBuffer\"));\r\n const [modelHeightLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ModelHeight\"));\r\n const [heightOriginLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.HeightOrigin\"));\r\n const [exaggerationLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Exaggeration\"));\r\n const [locatableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Locatable\"));\r\n const [maskingLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Mask\"));\r\n const [overrideMaskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.OverrideMaskTransparency\"));\r\n const [maskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.MaskTransparency\"));\r\n\r\n return (\r\n <>\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{transparencyLabel}</span>\r\n <Slider min={0} max={100} values={[transparency * 100]} onChange={handleAlphaChange} step={1} />\r\n\r\n <span className=\"map-manager-settings-label\">{locatableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch onChange={onLocatableToggle} checked={isLocatable} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch onChange={onMaskingToggle} checked={masking !== MapMaskingOption.None} />\r\n\r\n <span className=\"map-manager-settings-label\">{overrideMaskTransparencyLabel}</span>\r\n <ToggleSwitch disabled={masking === MapMaskingOption.None} onChange={onOverrideMaskTransparencyToggle} checked={overrideMaskTransparency} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskTransparencyLabel}</span>\r\n <Slider disabled={masking === MapMaskingOption.None || !overrideMaskTransparency} min={0} max={100} values={[getNormalizedMaskTransparency() * 100]} onChange={handleMaskTransparencyChange} step={1} />\r\n\r\n <>\r\n <span className=\"map-manager-settings-label\">{elevationOffsetLabel}</span>\r\n <QuantityNumberInput disabled={applyTerrain} persistenceValue={groundBias} step={1} snap quantityType={QuantityType.LengthEngineering} onChange={handleElevationChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{useDepthBufferLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch disabled={applyTerrain} onChange={onToggleUseDepthBuffer} checked={useDepthBuffer} />\r\n </>\r\n\r\n </div>\r\n <div className=\"map-manager-settings-terrain-container\">\r\n <fieldset>\r\n <legend>{terrainLabel}</legend>\r\n\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{enableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch onChange={onToggleTerrain} checked={applyTerrain} />\r\n\r\n <span className=\"map-manager-settings-label\">{modelHeightLabel}</span>\r\n <QuantityNumberInput disabled={!applyTerrain} persistenceValue={terrainOrigin} snap quantityType={QuantityType.LengthEngineering} onChange={handleHeightOriginChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{heightOriginLabel}</span>\r\n <Select options={terrainHeightOptions.current} disabled={!applyTerrain} value={heightOriginMode} onChange={handleElevationTypeSelected} size=\"small\" />\r\n\r\n <span className=\"map-manager-settings-label\">{exaggerationLabel}</span>\r\n <NumberInput value={exaggeration} disabled={!applyTerrain} onChange={handleExaggerationChange} onKeyDown={onKeyDown} />\r\n </div>\r\n\r\n </fieldset>\r\n </div>\r\n </>\r\n );\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":";AAWA,OAAO,2BAA2B,CAAC;AAuCnC,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":";AAWA,OAAO,2BAA2B,CAAC;AAuCnC,wBAAgB,kBAAkB,gBAiNjC"}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
// cSpell:ignore droppable Sublayer Basemap
|
|
6
6
|
import * as React from "react";
|
|
7
|
-
import { NumberInput
|
|
7
|
+
import { NumberInput } from "@itwin/core-react";
|
|
8
8
|
import { QuantityType } from "@itwin/core-frontend";
|
|
9
9
|
import { PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode } from "@itwin/core-common";
|
|
10
10
|
import { useSourceMapContext } from "./MapLayerManager";
|
|
11
11
|
import "./MapManagerSettings.scss";
|
|
12
12
|
import { MapLayersUiItemsProvider } from "../MapLayersUiItemsProvider";
|
|
13
|
-
import { Select, Slider } from "@itwin/itwinui-react";
|
|
13
|
+
import { Select, Slider, ToggleSwitch } from "@itwin/itwinui-react";
|
|
14
14
|
import { QuantityNumberInput } from "@itwin/imodel-components-react";
|
|
15
15
|
/* eslint-disable deprecation/deprecation */
|
|
16
16
|
var MapMaskingOption;
|
|
@@ -84,13 +84,15 @@ export function MapManagerSettings() {
|
|
|
84
84
|
activeViewport.invalidateRenderPlan();
|
|
85
85
|
}, [activeViewport, maskTransparency]);
|
|
86
86
|
const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));
|
|
87
|
-
const onMaskingToggle = React.useCallback((
|
|
87
|
+
const onMaskingToggle = React.useCallback((e) => {
|
|
88
|
+
const checked = e.target.checked;
|
|
88
89
|
const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;
|
|
89
90
|
updateMaskingSettings(maskingOption);
|
|
90
91
|
setMasking(maskingOption);
|
|
91
92
|
}, [updateMaskingSettings]);
|
|
92
93
|
const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);
|
|
93
|
-
const onOverrideMaskTransparencyToggle = React.useCallback((
|
|
94
|
+
const onOverrideMaskTransparencyToggle = React.useCallback((e) => {
|
|
95
|
+
const checked = e.target.checked;
|
|
94
96
|
const trans = checked ? getNormalizedMaskTransparency() : undefined;
|
|
95
97
|
activeViewport.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans } });
|
|
96
98
|
setOverrideMaskTransparency(checked);
|
|
@@ -114,7 +116,8 @@ export function MapManagerSettings() {
|
|
|
114
116
|
setMaskTransparency(newTransparency);
|
|
115
117
|
}, [activeViewport]);
|
|
116
118
|
const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);
|
|
117
|
-
const onToggleTerrain = React.useCallback((
|
|
119
|
+
const onToggleTerrain = React.useCallback((e) => {
|
|
120
|
+
const checked = e.target.checked;
|
|
118
121
|
updateBackgroundMap({ applyTerrain: checked });
|
|
119
122
|
setApplyTerrain(checked);
|
|
120
123
|
}, [updateBackgroundMap]);
|
|
@@ -133,7 +136,8 @@ export function MapManagerSettings() {
|
|
|
133
136
|
}
|
|
134
137
|
}, [updateTerrainSettings]);
|
|
135
138
|
const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);
|
|
136
|
-
const onToggleUseDepthBuffer = React.useCallback((
|
|
139
|
+
const onToggleUseDepthBuffer = React.useCallback((e) => {
|
|
140
|
+
const checked = e.target.checked;
|
|
137
141
|
updateBackgroundMap({ useDepthBuffer: checked });
|
|
138
142
|
setUseDepthBuffer(checked);
|
|
139
143
|
}, [updateBackgroundMap]);
|
|
@@ -143,7 +147,8 @@ export function MapManagerSettings() {
|
|
|
143
147
|
event.preventDefault();
|
|
144
148
|
}, []);
|
|
145
149
|
const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);
|
|
146
|
-
const onLocatableToggle = React.useCallback((
|
|
150
|
+
const onLocatableToggle = React.useCallback((e) => {
|
|
151
|
+
const checked = e.target.checked;
|
|
147
152
|
updateBackgroundMap({ nonLocatable: !checked });
|
|
148
153
|
setIsLocatable(checked);
|
|
149
154
|
}, [updateBackgroundMap]);
|
|
@@ -164,24 +169,24 @@ export function MapManagerSettings() {
|
|
|
164
169
|
React.createElement("span", { className: "map-manager-settings-label" }, transparencyLabel),
|
|
165
170
|
React.createElement(Slider, { min: 0, max: 100, values: [transparency * 100], onChange: handleAlphaChange, step: 1 }),
|
|
166
171
|
React.createElement("span", { className: "map-manager-settings-label" }, locatableLabel),
|
|
167
|
-
React.createElement(
|
|
172
|
+
React.createElement(ToggleSwitch, { onChange: onLocatableToggle, checked: isLocatable }),
|
|
168
173
|
React.createElement("span", { className: "map-manager-settings-label" }, maskingLabel),
|
|
169
|
-
React.createElement(
|
|
174
|
+
React.createElement(ToggleSwitch, { onChange: onMaskingToggle, checked: masking !== MapMaskingOption.None }),
|
|
170
175
|
React.createElement("span", { className: "map-manager-settings-label" }, overrideMaskTransparencyLabel),
|
|
171
|
-
React.createElement(
|
|
176
|
+
React.createElement(ToggleSwitch, { disabled: masking === MapMaskingOption.None, onChange: onOverrideMaskTransparencyToggle, checked: overrideMaskTransparency }),
|
|
172
177
|
React.createElement("span", { className: "map-manager-settings-label" }, maskTransparencyLabel),
|
|
173
178
|
React.createElement(Slider, { disabled: masking === MapMaskingOption.None || !overrideMaskTransparency, min: 0, max: 100, values: [getNormalizedMaskTransparency() * 100], onChange: handleMaskTransparencyChange, step: 1 }),
|
|
174
179
|
React.createElement(React.Fragment, null,
|
|
175
180
|
React.createElement("span", { className: "map-manager-settings-label" }, elevationOffsetLabel),
|
|
176
181
|
React.createElement(QuantityNumberInput, { disabled: applyTerrain, persistenceValue: groundBias, step: 1, snap: true, quantityType: QuantityType.LengthEngineering, onChange: handleElevationChange, onKeyDown: onKeyDown }),
|
|
177
182
|
React.createElement("span", { className: "map-manager-settings-label" }, useDepthBufferLabel),
|
|
178
|
-
React.createElement(
|
|
183
|
+
React.createElement(ToggleSwitch, { disabled: applyTerrain, onChange: onToggleUseDepthBuffer, checked: useDepthBuffer }))),
|
|
179
184
|
React.createElement("div", { className: "map-manager-settings-terrain-container" },
|
|
180
185
|
React.createElement("fieldset", null,
|
|
181
186
|
React.createElement("legend", null, terrainLabel),
|
|
182
187
|
React.createElement("div", { className: "maplayers-settings-container" },
|
|
183
188
|
React.createElement("span", { className: "map-manager-settings-label" }, enableLabel),
|
|
184
|
-
React.createElement(
|
|
189
|
+
React.createElement(ToggleSwitch, { onChange: onToggleTerrain, checked: applyTerrain }),
|
|
185
190
|
React.createElement("span", { className: "map-manager-settings-label" }, modelHeightLabel),
|
|
186
191
|
React.createElement(QuantityNumberInput, { disabled: !applyTerrain, persistenceValue: terrainOrigin, snap: true, quantityType: QuantityType.LengthEngineering, onChange: handleHeightOriginChange, onKeyDown: onKeyDown }),
|
|
187
192
|
React.createElement("span", { className: "map-manager-settings-label" }, heightOriginLabel),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapManagerSettings.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"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// cSpell:ignore droppable Sublayer Basemap\r\n\r\nimport * as React from \"react\";\r\nimport { NumberInput, Toggle } from \"@itwin/core-react\";\r\nimport { QuantityType, ViewState3d } from \"@itwin/core-frontend\";\r\nimport { BackgroundMapProps, BackgroundMapSettings, PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode, TerrainProps } from \"@itwin/core-common\";\r\nimport { useSourceMapContext } from \"./MapLayerManager\";\r\nimport \"./MapManagerSettings.scss\";\r\nimport { MapLayersUiItemsProvider } from \"../MapLayersUiItemsProvider\";\r\nimport { Select, SelectOption, Slider } from \"@itwin/itwinui-react\";\r\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nenum MapMaskingOption {\r\n None,\r\n AllModels\r\n}\r\n\r\nfunction getMapMaskingFromBackgroundMapSetting(backgroundMapSettings: BackgroundMapSettings): MapMaskingOption {\r\n if (backgroundMapSettings.planarClipMask.mode === PlanarClipMaskMode.Priority && backgroundMapSettings.planarClipMask.priority) {\r\n if (backgroundMapSettings.planarClipMask.priority >= PlanarClipMaskPriority.BackgroundMap) {\r\n return MapMaskingOption.AllModels;\r\n }\r\n\r\n }\r\n return MapMaskingOption.None;\r\n}\r\n\r\nfunction getHeightOriginModeKey(mode: TerrainHeightOriginMode): string {\r\n if (TerrainHeightOriginMode.Geodetic === mode)\r\n return \"geodetic\";\r\n if (TerrainHeightOriginMode.Geoid === mode)\r\n return \"geoid\";\r\n return \"ground\";\r\n}\r\n\r\nfunction getHeightOriginModeFromKey(mode: string): TerrainHeightOriginMode {\r\n if (\"geodetic\" === mode)\r\n return TerrainHeightOriginMode.Geodetic;\r\n if (\"geoid\" === mode)\r\n return TerrainHeightOriginMode.Geoid;\r\n return TerrainHeightOriginMode.Ground;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function MapManagerSettings() {\r\n const { activeViewport } = useSourceMapContext();\r\n const backgroundMapSettings = (activeViewport!.view as ViewState3d).getDisplayStyle3d().settings.backgroundMap;\r\n\r\n const [transparency, setTransparency] = React.useState(() =>\r\n typeof backgroundMapSettings.transparency === \"boolean\"\r\n ? 0\r\n : Math.round((backgroundMapSettings.transparency) * 100) / 100);\r\n\r\n const terrainSettings = backgroundMapSettings.terrainSettings;\r\n const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);\r\n\r\n const terrainHeightOptions = React.useRef<SelectOption<string>[]>([\r\n { value: \"geodetic\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeodetic\") },\r\n { value: \"geoid\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeoid\") },\r\n { value: \"ground\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGround\") },\r\n ]);\r\n\r\n const updateTerrainSettings = React.useCallback((props: TerrainProps) => {\r\n activeViewport!.changeBackgroundMapProps({ terrainSettings: props });\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const updateBackgroundMap = React.useCallback((props: BackgroundMapProps) => {\r\n activeViewport!.changeBackgroundMapProps(props);\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const [heightOriginMode, setHeightOriginMode] = React.useState(() => getHeightOriginModeKey(terrainSettings.heightOriginMode));\r\n const handleElevationTypeSelected = React.useCallback((newValue: string): void => {\r\n if (newValue) {\r\n const newHeightOriginMode = getHeightOriginModeFromKey(newValue);\r\n updateTerrainSettings({ heightOriginMode: newHeightOriginMode });\r\n setHeightOriginMode(newValue);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [maskTransparency, setMaskTransparency] = React.useState(() =>\r\n backgroundMapSettings.planarClipMask.transparency === undefined\r\n ? undefined\r\n : Math.round((backgroundMapSettings.planarClipMask.transparency) * 100) / 100);\r\n\r\n const getNormalizedMaskTransparency = React.useCallback(() => { return (maskTransparency === undefined ? 0 : maskTransparency); }, [maskTransparency]);\r\n\r\n const updateMaskingSettings = React.useCallback((option: MapMaskingOption) => {\r\n if (option === MapMaskingOption.AllModels) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency } });\r\n }\r\n if (option === MapMaskingOption.None) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.None } });\r\n }\r\n\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport, maskTransparency]);\r\n\r\n const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));\r\n\r\n const onMaskingToggle = React.useCallback((checked: boolean) => {\r\n const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;\r\n updateMaskingSettings(maskingOption);\r\n setMasking(maskingOption);\r\n }, [updateMaskingSettings]);\r\n\r\n const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);\r\n\r\n const onOverrideMaskTransparencyToggle = React.useCallback((checked: boolean) => {\r\n const trans = checked ? getNormalizedMaskTransparency() : undefined;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans } });\r\n\r\n setOverrideMaskTransparency(checked);\r\n }, [activeViewport, getNormalizedMaskTransparency]);\r\n\r\n const handleElevationChange = React.useCallback((value: number) => {\r\n if (value !== undefined) {\r\n updateBackgroundMap({ groundBias: value });\r\n setGroundBias(value);\r\n }\r\n }, [updateBackgroundMap]);\r\n\r\n const handleAlphaChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ transparency: newTransparency });\r\n activeViewport!.invalidateRenderPlan();\r\n setTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const handleMaskTransparencyChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency } });\r\n activeViewport!.invalidateRenderPlan();\r\n setMaskTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);\r\n\r\n const onToggleTerrain = React.useCallback((checked: boolean) => {\r\n updateBackgroundMap({ applyTerrain: checked });\r\n setApplyTerrain(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [exaggeration, setExaggeration] = React.useState(() => terrainSettings.exaggeration);\r\n\r\n const handleExaggerationChange = React.useCallback((value: number | undefined, _stringValue: string) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ exaggeration: value });\r\n setExaggeration(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [terrainOrigin, setTerrainOrigin] = React.useState(() => terrainSettings.heightOrigin);\r\n\r\n const handleHeightOriginChange = React.useCallback((value: number) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ heightOrigin: value });\r\n setTerrainOrigin(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);\r\n const onToggleUseDepthBuffer = React.useCallback((checked: boolean) => {\r\n updateBackgroundMap({ useDepthBuffer: checked });\r\n setUseDepthBuffer(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n /** Disable commas and letters */\r\n const onKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90))\r\n event.preventDefault();\r\n }, []);\r\n\r\n const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);\r\n const onLocatableToggle = React.useCallback((checked: boolean) => {\r\n updateBackgroundMap({ nonLocatable: !checked });\r\n setIsLocatable(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [transparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Transparency\"));\r\n const [terrainLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Terrain\"));\r\n const [enableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Enable\"));\r\n const [elevationOffsetLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationOffset\"));\r\n const [useDepthBufferLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.UseDepthBuffer\"));\r\n const [modelHeightLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ModelHeight\"));\r\n const [heightOriginLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.HeightOrigin\"));\r\n const [exaggerationLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Exaggeration\"));\r\n const [locatableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Locatable\"));\r\n const [maskingLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Mask\"));\r\n const [overrideMaskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.OverrideMaskTransparency\"));\r\n const [maskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.MaskTransparency\"));\r\n\r\n return (\r\n <>\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{transparencyLabel}</span>\r\n <Slider min={0} max={100} values={[transparency * 100]} onChange={handleAlphaChange} step={1} />\r\n\r\n <span className=\"map-manager-settings-label\">{locatableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle onChange={onLocatableToggle} isOn={isLocatable} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle onChange={onMaskingToggle} isOn={masking !== MapMaskingOption.None} />\r\n\r\n <span className=\"map-manager-settings-label\">{overrideMaskTransparencyLabel}</span>\r\n <Toggle disabled={masking === MapMaskingOption.None} onChange={onOverrideMaskTransparencyToggle} isOn={overrideMaskTransparency} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskTransparencyLabel}</span>\r\n <Slider disabled={masking === MapMaskingOption.None || !overrideMaskTransparency} min={0} max={100} values={[getNormalizedMaskTransparency() * 100]} onChange={handleMaskTransparencyChange} step={1} />\r\n\r\n <>\r\n <span className=\"map-manager-settings-label\">{elevationOffsetLabel}</span>\r\n <QuantityNumberInput disabled={applyTerrain} persistenceValue={groundBias} step={1} snap quantityType={QuantityType.LengthEngineering} onChange={handleElevationChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{useDepthBufferLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle disabled={applyTerrain} onChange={onToggleUseDepthBuffer} isOn={useDepthBuffer} />\r\n </>\r\n\r\n </div>\r\n <div className=\"map-manager-settings-terrain-container\">\r\n <fieldset>\r\n <legend>{terrainLabel}</legend>\r\n\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{enableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <Toggle onChange={onToggleTerrain} isOn={applyTerrain} />\r\n\r\n <span className=\"map-manager-settings-label\">{modelHeightLabel}</span>\r\n <QuantityNumberInput disabled={!applyTerrain} persistenceValue={terrainOrigin} snap quantityType={QuantityType.LengthEngineering} onChange={handleHeightOriginChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{heightOriginLabel}</span>\r\n <Select options={terrainHeightOptions.current} disabled={!applyTerrain} value={heightOriginMode} onChange={handleElevationTypeSelected} size=\"small\" />\r\n\r\n <span className=\"map-manager-settings-label\">{exaggerationLabel}</span>\r\n <NumberInput value={exaggeration} disabled={!applyTerrain} onChange={handleExaggerationChange} onKeyDown={onKeyDown} />\r\n </div>\r\n\r\n </fieldset>\r\n </div>\r\n </>\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"MapManagerSettings.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"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// cSpell:ignore droppable Sublayer Basemap\r\n\r\nimport * as React from \"react\";\r\nimport { NumberInput } from \"@itwin/core-react\";\r\nimport { QuantityType, ViewState3d } from \"@itwin/core-frontend\";\r\nimport { BackgroundMapProps, BackgroundMapSettings, PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode, TerrainProps } from \"@itwin/core-common\";\r\nimport { useSourceMapContext } from \"./MapLayerManager\";\r\nimport \"./MapManagerSettings.scss\";\r\nimport { MapLayersUiItemsProvider } from \"../MapLayersUiItemsProvider\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nenum MapMaskingOption {\r\n None,\r\n AllModels\r\n}\r\n\r\nfunction getMapMaskingFromBackgroundMapSetting(backgroundMapSettings: BackgroundMapSettings): MapMaskingOption {\r\n if (backgroundMapSettings.planarClipMask.mode === PlanarClipMaskMode.Priority && backgroundMapSettings.planarClipMask.priority) {\r\n if (backgroundMapSettings.planarClipMask.priority >= PlanarClipMaskPriority.BackgroundMap) {\r\n return MapMaskingOption.AllModels;\r\n }\r\n\r\n }\r\n return MapMaskingOption.None;\r\n}\r\n\r\nfunction getHeightOriginModeKey(mode: TerrainHeightOriginMode): string {\r\n if (TerrainHeightOriginMode.Geodetic === mode)\r\n return \"geodetic\";\r\n if (TerrainHeightOriginMode.Geoid === mode)\r\n return \"geoid\";\r\n return \"ground\";\r\n}\r\n\r\nfunction getHeightOriginModeFromKey(mode: string): TerrainHeightOriginMode {\r\n if (\"geodetic\" === mode)\r\n return TerrainHeightOriginMode.Geodetic;\r\n if (\"geoid\" === mode)\r\n return TerrainHeightOriginMode.Geoid;\r\n return TerrainHeightOriginMode.Ground;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function MapManagerSettings() {\r\n const { activeViewport } = useSourceMapContext();\r\n const backgroundMapSettings = (activeViewport!.view as ViewState3d).getDisplayStyle3d().settings.backgroundMap;\r\n\r\n const [transparency, setTransparency] = React.useState(() =>\r\n typeof backgroundMapSettings.transparency === \"boolean\"\r\n ? 0\r\n : Math.round((backgroundMapSettings.transparency) * 100) / 100);\r\n\r\n const terrainSettings = backgroundMapSettings.terrainSettings;\r\n const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);\r\n\r\n const terrainHeightOptions = React.useRef<SelectOption<string>[]>([\r\n { value: \"geodetic\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeodetic\") },\r\n { value: \"geoid\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeoid\") },\r\n { value: \"ground\", label: MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGround\") },\r\n ]);\r\n\r\n const updateTerrainSettings = React.useCallback((props: TerrainProps) => {\r\n activeViewport!.changeBackgroundMapProps({ terrainSettings: props });\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const updateBackgroundMap = React.useCallback((props: BackgroundMapProps) => {\r\n activeViewport!.changeBackgroundMapProps(props);\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport]);\r\n\r\n const [heightOriginMode, setHeightOriginMode] = React.useState(() => getHeightOriginModeKey(terrainSettings.heightOriginMode));\r\n const handleElevationTypeSelected = React.useCallback((newValue: string): void => {\r\n if (newValue) {\r\n const newHeightOriginMode = getHeightOriginModeFromKey(newValue);\r\n updateTerrainSettings({ heightOriginMode: newHeightOriginMode });\r\n setHeightOriginMode(newValue);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [maskTransparency, setMaskTransparency] = React.useState(() =>\r\n backgroundMapSettings.planarClipMask.transparency === undefined\r\n ? undefined\r\n : Math.round((backgroundMapSettings.planarClipMask.transparency) * 100) / 100);\r\n\r\n const getNormalizedMaskTransparency = React.useCallback(() => { return (maskTransparency === undefined ? 0 : maskTransparency); }, [maskTransparency]);\r\n\r\n const updateMaskingSettings = React.useCallback((option: MapMaskingOption) => {\r\n if (option === MapMaskingOption.AllModels) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency } });\r\n }\r\n if (option === MapMaskingOption.None) {\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.None } });\r\n }\r\n\r\n activeViewport!.invalidateRenderPlan();\r\n }, [activeViewport, maskTransparency]);\r\n\r\n const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));\r\n\r\n const onMaskingToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;\r\n updateMaskingSettings(maskingOption);\r\n setMasking(maskingOption);\r\n }, [updateMaskingSettings]);\r\n\r\n const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);\r\n\r\n const onOverrideMaskTransparencyToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n const trans = checked ? getNormalizedMaskTransparency() : undefined;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans } });\r\n\r\n setOverrideMaskTransparency(checked);\r\n }, [activeViewport, getNormalizedMaskTransparency]);\r\n\r\n const handleElevationChange = React.useCallback((value: number) => {\r\n if (value !== undefined) {\r\n updateBackgroundMap({ groundBias: value });\r\n setGroundBias(value);\r\n }\r\n }, [updateBackgroundMap]);\r\n\r\n const handleAlphaChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ transparency: newTransparency });\r\n activeViewport!.invalidateRenderPlan();\r\n setTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const handleMaskTransparencyChange = React.useCallback((values: readonly number[]) => {\r\n const newTransparency = values[0] / 100;\r\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency } });\r\n activeViewport!.invalidateRenderPlan();\r\n setMaskTransparency(newTransparency);\r\n }, [activeViewport]);\r\n\r\n const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);\r\n\r\n const onToggleTerrain = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n updateBackgroundMap({ applyTerrain: checked });\r\n setApplyTerrain(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [exaggeration, setExaggeration] = React.useState(() => terrainSettings.exaggeration);\r\n\r\n const handleExaggerationChange = React.useCallback((value: number | undefined, _stringValue: string) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ exaggeration: value });\r\n setExaggeration(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [terrainOrigin, setTerrainOrigin] = React.useState(() => terrainSettings.heightOrigin);\r\n\r\n const handleHeightOriginChange = React.useCallback((value: number) => {\r\n if (undefined !== value) {\r\n updateTerrainSettings({ heightOrigin: value });\r\n setTerrainOrigin(value);\r\n }\r\n }, [updateTerrainSettings]);\r\n\r\n const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);\r\n const onToggleUseDepthBuffer = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n updateBackgroundMap({ useDepthBuffer: checked });\r\n setUseDepthBuffer(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n /** Disable commas and letters */\r\n const onKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90))\r\n event.preventDefault();\r\n }, []);\r\n\r\n const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);\r\n const onLocatableToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = e.target.checked;\r\n updateBackgroundMap({ nonLocatable: !checked });\r\n setIsLocatable(checked);\r\n }, [updateBackgroundMap]);\r\n\r\n const [transparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Transparency\"));\r\n const [terrainLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Terrain\"));\r\n const [enableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Enable\"));\r\n const [elevationOffsetLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ElevationOffset\"));\r\n const [useDepthBufferLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.UseDepthBuffer\"));\r\n const [modelHeightLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.ModelHeight\"));\r\n const [heightOriginLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.HeightOrigin\"));\r\n const [exaggerationLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Exaggeration\"));\r\n const [locatableLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Locatable\"));\r\n const [maskingLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.Mask\"));\r\n const [overrideMaskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.OverrideMaskTransparency\"));\r\n const [maskTransparencyLabel] = React.useState(MapLayersUiItemsProvider.localization.getLocalizedString(\"mapLayers:Settings.MaskTransparency\"));\r\n\r\n return (\r\n <>\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{transparencyLabel}</span>\r\n <Slider min={0} max={100} values={[transparency * 100]} onChange={handleAlphaChange} step={1} />\r\n\r\n <span className=\"map-manager-settings-label\">{locatableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch onChange={onLocatableToggle} checked={isLocatable} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch onChange={onMaskingToggle} checked={masking !== MapMaskingOption.None} />\r\n\r\n <span className=\"map-manager-settings-label\">{overrideMaskTransparencyLabel}</span>\r\n <ToggleSwitch disabled={masking === MapMaskingOption.None} onChange={onOverrideMaskTransparencyToggle} checked={overrideMaskTransparency} />\r\n\r\n <span className=\"map-manager-settings-label\">{maskTransparencyLabel}</span>\r\n <Slider disabled={masking === MapMaskingOption.None || !overrideMaskTransparency} min={0} max={100} values={[getNormalizedMaskTransparency() * 100]} onChange={handleMaskTransparencyChange} step={1} />\r\n\r\n <>\r\n <span className=\"map-manager-settings-label\">{elevationOffsetLabel}</span>\r\n <QuantityNumberInput disabled={applyTerrain} persistenceValue={groundBias} step={1} snap quantityType={QuantityType.LengthEngineering} onChange={handleElevationChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{useDepthBufferLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch disabled={applyTerrain} onChange={onToggleUseDepthBuffer} checked={useDepthBuffer} />\r\n </>\r\n\r\n </div>\r\n <div className=\"map-manager-settings-terrain-container\">\r\n <fieldset>\r\n <legend>{terrainLabel}</legend>\r\n\r\n <div className=\"maplayers-settings-container\">\r\n\r\n <span className=\"map-manager-settings-label\">{enableLabel}</span>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToggleSwitch onChange={onToggleTerrain} checked={applyTerrain} />\r\n\r\n <span className=\"map-manager-settings-label\">{modelHeightLabel}</span>\r\n <QuantityNumberInput disabled={!applyTerrain} persistenceValue={terrainOrigin} snap quantityType={QuantityType.LengthEngineering} onChange={handleHeightOriginChange} onKeyDown={onKeyDown}/>\r\n\r\n <span className=\"map-manager-settings-label\">{heightOriginLabel}</span>\r\n <Select options={terrainHeightOptions.current} disabled={!applyTerrain} value={heightOriginMode} onChange={handleElevationTypeSelected} size=\"small\" />\r\n\r\n <span className=\"map-manager-settings-label\">{exaggerationLabel}</span>\r\n <NumberInput value={exaggeration} disabled={!applyTerrain} onChange={handleExaggerationChange} onKeyDown={onKeyDown} />\r\n </div>\r\n\r\n </fieldset>\r\n </div>\r\n </>\r\n );\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/map-layers",
|
|
3
|
-
"version": "3.0.0-dev.
|
|
3
|
+
"version": "3.0.0-dev.125",
|
|
4
4
|
"description": "Extension that adds a Map Layers Widget",
|
|
5
5
|
"main": "lib/cjs/map-layers.js",
|
|
6
6
|
"module": "lib/esm/map-layers.js",
|
|
@@ -21,22 +21,22 @@
|
|
|
21
21
|
"url": "http://www.bentley.com"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@itwin/core-bentley": "3.0.0-dev.
|
|
25
|
-
"@itwin/build-tools": "3.0.0-dev.
|
|
26
|
-
"@itwin/eslint-plugin": "3.0.0-dev.
|
|
27
|
-
"@itwin/core-geometry": "3.0.0-dev.
|
|
28
|
-
"@itwin/core-common": "3.0.0-dev.
|
|
29
|
-
"@itwin/core-frontend": "3.0.0-dev.
|
|
30
|
-
"@itwin/core-quantity": "3.0.0-dev.
|
|
31
|
-
"@bentley/itwin-client": "3.0.0-dev.
|
|
32
|
-
"@itwin/presentation-common": "3.0.0-dev.
|
|
24
|
+
"@itwin/core-bentley": "3.0.0-dev.125",
|
|
25
|
+
"@itwin/build-tools": "3.0.0-dev.125",
|
|
26
|
+
"@itwin/eslint-plugin": "3.0.0-dev.125",
|
|
27
|
+
"@itwin/core-geometry": "3.0.0-dev.125",
|
|
28
|
+
"@itwin/core-common": "3.0.0-dev.125",
|
|
29
|
+
"@itwin/core-frontend": "3.0.0-dev.125",
|
|
30
|
+
"@itwin/core-quantity": "3.0.0-dev.125",
|
|
31
|
+
"@bentley/itwin-client": "3.0.0-dev.125",
|
|
32
|
+
"@itwin/presentation-common": "3.0.0-dev.125",
|
|
33
33
|
"@bentley/react-scripts": "4.0.3",
|
|
34
|
-
"@itwin/appui-abstract": "3.0.0-dev.
|
|
35
|
-
"@itwin/components-react": "3.0.0-dev.
|
|
36
|
-
"@itwin/core-react": "3.0.0-dev.
|
|
37
|
-
"@itwin/imodel-components-react": "3.0.0-dev.
|
|
38
|
-
"@itwin/appui-react": "3.0.0-dev.
|
|
39
|
-
"@itwin/appui-layout-react": "3.0.0-dev.
|
|
34
|
+
"@itwin/appui-abstract": "3.0.0-dev.125",
|
|
35
|
+
"@itwin/components-react": "3.0.0-dev.125",
|
|
36
|
+
"@itwin/core-react": "3.0.0-dev.125",
|
|
37
|
+
"@itwin/imodel-components-react": "3.0.0-dev.125",
|
|
38
|
+
"@itwin/appui-react": "3.0.0-dev.125",
|
|
39
|
+
"@itwin/appui-layout-react": "3.0.0-dev.125",
|
|
40
40
|
"@itwin/itwinui-css": "^0.37.0",
|
|
41
41
|
"@itwin/itwinui-react": "^1.23.0",
|
|
42
42
|
"@testing-library/react": "^12.0.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"chai-as-promised": "^7",
|
|
56
56
|
"chai-jest-snapshot": "^2.0.0",
|
|
57
57
|
"chai-spies": "1.0.0",
|
|
58
|
-
"
|
|
58
|
+
"cpx2": "^3.0.0",
|
|
59
59
|
"enzyme": "^3.4.0",
|
|
60
60
|
"enzyme-to-json": "^3.3.4",
|
|
61
61
|
"eslint": "^7.11.0",
|
|
@@ -77,18 +77,18 @@
|
|
|
77
77
|
"react-resize-detector": "^6.7.6"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
|
-
"@itwin/core-bentley": "3.0.0-dev.
|
|
81
|
-
"@itwin/core-geometry": "3.0.0-dev.
|
|
82
|
-
"@itwin/core-common": "3.0.0-dev.
|
|
83
|
-
"@itwin/core-frontend": "3.0.0-dev.
|
|
84
|
-
"@itwin/core-quantity": "3.0.0-dev.
|
|
85
|
-
"@bentley/itwin-client": "3.0.0-dev.
|
|
86
|
-
"@itwin/appui-abstract": "3.0.0-dev.
|
|
87
|
-
"@itwin/components-react": "3.0.0-dev.
|
|
88
|
-
"@itwin/core-react": "3.0.0-dev.
|
|
89
|
-
"@itwin/appui-react": "3.0.0-dev.
|
|
90
|
-
"@itwin/imodel-components-react": "3.0.0-dev.
|
|
91
|
-
"@itwin/appui-layout-react": "3.0.0-dev.
|
|
80
|
+
"@itwin/core-bentley": "3.0.0-dev.125",
|
|
81
|
+
"@itwin/core-geometry": "3.0.0-dev.125",
|
|
82
|
+
"@itwin/core-common": "3.0.0-dev.125",
|
|
83
|
+
"@itwin/core-frontend": "3.0.0-dev.125",
|
|
84
|
+
"@itwin/core-quantity": "3.0.0-dev.125",
|
|
85
|
+
"@bentley/itwin-client": "3.0.0-dev.125",
|
|
86
|
+
"@itwin/appui-abstract": "3.0.0-dev.125",
|
|
87
|
+
"@itwin/components-react": "3.0.0-dev.125",
|
|
88
|
+
"@itwin/core-react": "3.0.0-dev.125",
|
|
89
|
+
"@itwin/appui-react": "3.0.0-dev.125",
|
|
90
|
+
"@itwin/imodel-components-react": "3.0.0-dev.125",
|
|
91
|
+
"@itwin/appui-layout-react": "3.0.0-dev.125",
|
|
92
92
|
"react": "^17.0.0",
|
|
93
93
|
"react-dom": "^17.0.0"
|
|
94
94
|
},
|