Add a trackball camera setting (#4764)
* Add a setting that does nothing * Make the setting actually change the interaction type * fmt * Bump `@kittycad/lib` to get the proper camera drag interaction types * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Fix camera orientation bugs to support proper camera resetting on "camera orbit" setting change (#5031) * Add a setting that does nothing * Make the setting actually change the interaction type * fmt * fix: up vector bug fix and camera reset fix. Pushing code to cleanup after debugging * fix: deleting debugging code * fix: removing debugging code * fix: removing debugging console log * fix: removing console log debugs * fix: adding comment, restoring code from debugging * fix: removed lookAt when the orientation is already set from the engine.. I do not think we should be recomputing it? * fix: this fixes the bug because I was pointing to the getter not the value * Remove unused imports * Fix lint for unawaited Promise * Remove pointless change --------- Co-authored-by: Frank Noirot <frank@kittycad.io> Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com> * Re-run CI * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Re-run CI * Add display attributes to try to fix cargo test * Remove backwards compat test case it's failing because I didn't add cameraOrbit to that type and I don't want to * Fix test value (prev user value would have been Spherical before Trackball) --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Kevin Nadro <nadr0@users.noreply.github.com> Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
This commit is contained in:
@ -119,6 +119,7 @@ export const ModelingMachineProvider = ({
|
||||
cameraProjection,
|
||||
highlightEdges,
|
||||
showScaleGrid,
|
||||
cameraOrbit,
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -1154,6 +1155,7 @@ export const ModelingMachineProvider = ({
|
||||
enableSSAO: enableSSAO.current,
|
||||
showScaleGrid: showScaleGrid.current,
|
||||
cameraProjection: cameraProjection.current,
|
||||
cameraOrbit: cameraOrbit.current,
|
||||
},
|
||||
token
|
||||
)
|
||||
@ -1183,6 +1185,13 @@ export const ModelingMachineProvider = ({
|
||||
editorManager.selectionRanges = modelingState.context.selectionRanges
|
||||
}, [modelingState.context.selectionRanges])
|
||||
|
||||
// When changing camera modes reset the camera to the default orientation to correct
|
||||
// the up vector otherwise the conconical orientation for the camera modes will be
|
||||
// wrong
|
||||
useEffect(() => {
|
||||
sceneInfra.camControls.resetCameraPosition().catch(reportRejection)
|
||||
}, [cameraOrbit.current])
|
||||
|
||||
useEffect(() => {
|
||||
const onConnectionStateChanged = ({ detail }: CustomEvent) => {
|
||||
// If we are in sketch mode we need to exit it.
|
||||
|
Reference in New Issue
Block a user