Skip to content
Snippets Groups Projects
Commit 343b71cb authored by Alexander Rose's avatar Alexander Rose
Browse files

added pickingAlphaThreshold to Canvas3DParams

parent 10c9cb27
Branches
Tags
No related merge requests found
...@@ -34,6 +34,7 @@ export const Canvas3DParams = { ...@@ -34,6 +34,7 @@ export const Canvas3DParams = {
cameraPosition: PD.Vec3(Vec3.create(0, 0, 50)), // TODO or should it be in a seperate 'state' property? cameraPosition: PD.Vec3(Vec3.create(0, 0, 50)), // TODO or should it be in a seperate 'state' property?
cameraMode: PD.Select('perspective', [['perspective', 'Perspective'], ['orthographic', 'Orthographic']]), cameraMode: PD.Select('perspective', [['perspective', 'Perspective'], ['orthographic', 'Orthographic']]),
backgroundColor: PD.Color(Color(0x000000)), backgroundColor: PD.Color(Color(0x000000)),
pickingAlphaThreshold: PD.Numeric(0.5, { min: 0.0, max: 1.0, step: 0.01 }, { description: 'The minimum opacity value needed for an object to be pickable.' }),
} }
export type Canvas3DParams = typeof Canvas3DParams export type Canvas3DParams = typeof Canvas3DParams
...@@ -361,6 +362,9 @@ namespace Canvas3D { ...@@ -361,6 +362,9 @@ namespace Canvas3D {
if (props.backgroundColor !== undefined && props.backgroundColor !== renderer.props.clearColor) { if (props.backgroundColor !== undefined && props.backgroundColor !== renderer.props.clearColor) {
renderer.setClearColor(props.backgroundColor) renderer.setClearColor(props.backgroundColor)
} }
if (props.pickingAlphaThreshold !== undefined && props.pickingAlphaThreshold !== renderer.props.pickingAlphaThreshold) {
renderer.setPickingAlphaThreshold(props.pickingAlphaThreshold)
}
requestDraw(true) requestDraw(true)
}, },
...@@ -368,7 +372,8 @@ namespace Canvas3D { ...@@ -368,7 +372,8 @@ namespace Canvas3D {
return { return {
cameraPosition: Vec3.clone(camera.position), cameraPosition: Vec3.clone(camera.position),
cameraMode: camera.state.mode, cameraMode: camera.state.mode,
backgroundColor: renderer.props.clearColor backgroundColor: renderer.props.clearColor,
pickingAlphaThreshold: renderer.props.pickingAlphaThreshold,
} }
}, },
get input() { get input() {
......
...@@ -39,6 +39,7 @@ interface Renderer { ...@@ -39,6 +39,7 @@ interface Renderer {
render: (scene: Scene, variant: RenderVariant) => void render: (scene: Scene, variant: RenderVariant) => void
setViewport: (x: number, y: number, width: number, height: number) => void setViewport: (x: number, y: number, width: number, height: number) => void
setClearColor: (color: Color) => void setClearColor: (color: Color) => void
setPickingAlphaThreshold: (value: number) => void
getImageData: () => ImageData getImageData: () => ImageData
dispose: () => void dispose: () => void
} }
...@@ -178,6 +179,10 @@ namespace Renderer { ...@@ -178,6 +179,10 @@ namespace Renderer {
render, render,
setClearColor, setClearColor,
setPickingAlphaThreshold: (value: number) => {
pickingAlphaThreshold = value
ValueCell.update(globalUniforms.uPickingAlphaThreshold, pickingAlphaThreshold)
},
setViewport: (x: number, y: number, width: number, height: number) => { setViewport: (x: number, y: number, width: number, height: number) => {
Viewport.set(viewport, x, y, width, height) Viewport.set(viewport, x, y, width, height)
gl.viewport(x, y, width, height) gl.viewport(x, y, width, height)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment