diff --git a/src/app/App.tsx b/src/app/App.tsx index 628c6a1a..b69c6e0c 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1897,6 +1897,20 @@ export function App({ store, initialStatusMessage }: AppProps) { ] = useState( String(editorState.document.world.advancedRendering.depthOfField.bokehScale) ); + const [ + advancedRenderingWhiteboxBevelEdgeWidthDraft, + setAdvancedRenderingWhiteboxBevelEdgeWidthDraft + ] = useState( + String(editorState.document.world.advancedRendering.whiteboxBevel.edgeWidth) + ); + const [ + advancedRenderingWhiteboxBevelNormalStrengthDraft, + setAdvancedRenderingWhiteboxBevelNormalStrengthDraft + ] = useState( + String( + editorState.document.world.advancedRendering.whiteboxBevel.normalStrength + ) + ); const [statusMessage, setStatusMessage] = useState( initialStatusMessage ?? "Slice 3.5 advanced rendering ready." ); @@ -2376,6 +2390,12 @@ export function App({ store, initialStatusMessage }: AppProps) { setAdvancedRenderingDepthOfFieldBokehScaleDraft( String(advancedRendering.depthOfField.bokehScale) ); + setAdvancedRenderingWhiteboxBevelEdgeWidthDraft( + String(advancedRendering.whiteboxBevel.edgeWidth) + ); + setAdvancedRenderingWhiteboxBevelNormalStrengthDraft( + String(advancedRendering.whiteboxBevel.normalStrength) + ); }, [editorState.document.world.advancedRendering]); useEffect(() => { @@ -6567,6 +6587,53 @@ export function App({ store, initialStatusMessage }: AppProps) { } }; + const applyAdvancedRenderingWhiteboxBevelEnabled = (enabled: boolean) => { + applyAdvancedRenderingSettings( + "Set whitebox bevel", + enabled + ? "Whitebox bevel enabled." + : "Whitebox bevel disabled.", + (advancedRendering) => { + advancedRendering.whiteboxBevel.enabled = enabled; + } + ); + }; + + const applyAdvancedRenderingWhiteboxBevelEdgeWidth = () => { + try { + applyAdvancedRenderingSettings( + "Set whitebox bevel edge width", + "Updated the whitebox bevel edge width.", + (advancedRendering) => { + advancedRendering.whiteboxBevel.edgeWidth = readNonNegativeNumberDraft( + advancedRenderingWhiteboxBevelEdgeWidthDraft, + "Whitebox bevel edge width" + ); + } + ); + } catch (error) { + setStatusMessage(getErrorMessage(error)); + } + }; + + const applyAdvancedRenderingWhiteboxBevelNormalStrength = () => { + try { + applyAdvancedRenderingSettings( + "Set whitebox bevel normal strength", + "Updated the whitebox bevel normal strength.", + (advancedRendering) => { + advancedRendering.whiteboxBevel.normalStrength = + readNonNegativeNumberDraft( + advancedRenderingWhiteboxBevelNormalStrengthDraft, + "Whitebox bevel normal strength" + ); + } + ); + } catch (error) { + setStatusMessage(getErrorMessage(error)); + } + }; + const applyAdvancedRenderingFogPath = (path: BoxVolumeRenderPath) => { applyAdvancedRenderingSettings( "Set fog render path", @@ -9169,6 +9236,98 @@ export function App({ store, initialStatusMessage }: AppProps) { +
+
Whitebox Bevel
+ +
+ + +
+
+
Volume Rendering Paths