diff --git a/.github/workflows/winget-release.yml b/.github/workflows/winget-release.yml new file mode 100644 index 0000000000..6cc8147165 --- /dev/null +++ b/.github/workflows/winget-release.yml @@ -0,0 +1,27 @@ +name: Submit Winget Package to Windows Package Manager Community Repository +on: + release: + types: [released] + workflow_dispatch: + inputs: + tag_name: + description: "Specific tag name" + required: true + type: string +jobs: + winget-publish: + name: Publish winget package + runs-on: ubuntu-latest + steps: + - name: Set winget version env + env: + TAG_NAME: ${{ inputs.tag_name || github.event.release.tag_name }} + run: echo "WINGET_TAG_NAME=$(echo ${TAG_NAME#v})" >> $GITHUB_ENV + - name: Submit package to Windows Package Manager Community Repository + uses: vedantmgoyal2009/winget-releaser@v2 + with: + identifier: f3d-app.f3d + installers-regex: '^F3D-[\d\.]+-Windows-x86_64\.exe$' + version: ${{ env.WINGET_TAG_NAME }} + release-tag: ${{ inputs.tag_name || github.event.release.tag_name }} + token: ${{ secrets.WINGET_ACC_TOKEN }} diff --git a/application/F3DStarter.cxx b/application/F3DStarter.cxx index 0380626810..3afb2b5eba 100644 --- a/application/F3DStarter.cxx +++ b/application/F3DStarter.cxx @@ -1095,7 +1095,7 @@ void F3DStarter::LoadFile(int index, bool relativeIndex) f3d::log::error("Could not load file: ", ex.what()); } - if (!this->Internals->AppOptions.NoRender) + if (!dynamicOptions.scene.camera.index.has_value() && !this->Internals->AppOptions.NoRender) { // Setup the camera according to options this->Internals->SetupCamera(this->Internals->AppOptions.CamConf); diff --git a/application/testing/CMakeLists.txt b/application/testing/CMakeLists.txt index 5d82675494..afbeab1185 100644 --- a/application/testing/CMakeLists.txt +++ b/application/testing/CMakeLists.txt @@ -754,6 +754,8 @@ f3d_test(NAME TestInteractionCameraHotkeys DATA cow.vtp INTERACTION) f3d_test(NAME TestInteractionZoomToMouse DATA cow.vtp INTERACTION) f3d_test(NAME TestInteractionOrthographicProjection DATA cow.vtp INTERACTION) #5;5 f3d_test(NAME TestInteractionZoomToggleOrthographicProjection DATA cow.vtp INTERACTION) #MouseWheel;5;Mousewheelx6;5 +f3d_test(NAME TestInteractionRotateCameraMinus90 DATA f3d.glb INTERACTION) +f3d_test(NAME TestInteractionRotateCamera90 DATA f3d.glb INTERACTION) # Progress test f3d_test(NAME TestProgress DATA cow.vtp ARGS --progress NO_BASELINE) diff --git a/doc/user/INTERACTIONS.md b/doc/user/INTERACTIONS.md index 4634b623b7..18a5cd5fa2 100644 --- a/doc/user/INTERACTIONS.md +++ b/doc/user/INTERACTIONS.md @@ -57,7 +57,9 @@ Note that some hotkeys can be available or not depending on the file being loade Camera Hotkeys: * 1: front view camera. * 3: right view camera. +* 4: roll the camera left by 90 degrees. * 5: toggle orthographic projection. +* 6: roll the camera right by 90 degrees. * 7: top view camera. * 9: isometric view camera. * Enter: reset the camera to its initial parameters. diff --git a/library/src/interactor_impl.cxx b/library/src/interactor_impl.cxx index 34a4fa6fb8..2157086605 100644 --- a/library/src/interactor_impl.cxx +++ b/library/src/interactor_impl.cxx @@ -327,10 +327,18 @@ class interactor_impl::internals self->SetViewOrbit(ViewType::VT_RIGHT, self); render = true; break; + case '4': + self->Window.getCamera().roll(-90); + render = true; + break; case '5': self->Options.scene.camera.orthographic = !self->Options.scene.camera.orthographic; render = true; break; + case '6': + self->Window.getCamera().roll(90); + render = true; + break; case '7': self->SetViewOrbit(ViewType::VT_TOP, self); render = true; diff --git a/testing/baselines/TestCameraIndexConfiguration.png b/testing/baselines/TestCameraIndexConfiguration.png index 3654a6c6dd..3a97f51228 100644 --- a/testing/baselines/TestCameraIndexConfiguration.png +++ b/testing/baselines/TestCameraIndexConfiguration.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b7a2526caa6d4dfa9e222874b7429136c0da986c747a9ccc2d50c72846c6be4f -size 1060 +oid sha256:0b05c80a105f945a3ed357c12bd5897e2650e02aaf7031c8d77867b53fa5c386 +size 1034 diff --git a/testing/baselines/TestInteractionCheatsheet.png b/testing/baselines/TestInteractionCheatsheet.png index d242f2553b..600df8c0b5 100644 --- a/testing/baselines/TestInteractionCheatsheet.png +++ b/testing/baselines/TestInteractionCheatsheet.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83e8ce228be5a993b3550eee35734b31341e11bc3e77941567ed5d9bfbcb6d29 -size 40404 +oid sha256:50ed962c423e75685be6511b0aeffba19ae5c711a4ed9de61662b57b9dabaf04 +size 41064 diff --git a/testing/baselines/TestInteractionCheatsheetBlackBG.png b/testing/baselines/TestInteractionCheatsheetBlackBG.png index 2edadc2f9f..372d2d48f0 100644 --- a/testing/baselines/TestInteractionCheatsheetBlackBG.png +++ b/testing/baselines/TestInteractionCheatsheetBlackBG.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9f2692ce2255443110a69a74476cfd4adb87a03e6e447f516fcd06d369666c5c -size 40841 +oid sha256:3532eb19cee7a2edf27f50053f35e389ceda0c5414d02f8762c91dacadf848e0 +size 41594 diff --git a/testing/baselines/TestInteractionCheatsheetBlackBGRaytracing.png b/testing/baselines/TestInteractionCheatsheetBlackBGRaytracing.png index f1aa615ab4..b7473f9197 100644 --- a/testing/baselines/TestInteractionCheatsheetBlackBGRaytracing.png +++ b/testing/baselines/TestInteractionCheatsheetBlackBGRaytracing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:273b23b5a118ce9d7e30fd4b976e6b22146bfb5847e514a6449d9c60abe660be -size 40990 +oid sha256:5f2a1ebb00c8e2929ceaf5233c4e72b5f8590af324b9052e8273dfc3332ab16f +size 41400 diff --git a/testing/baselines/TestInteractionCheatsheetRaytracing.png b/testing/baselines/TestInteractionCheatsheetRaytracing.png index 3cae6dcc31..c932284142 100644 --- a/testing/baselines/TestInteractionCheatsheetRaytracing.png +++ b/testing/baselines/TestInteractionCheatsheetRaytracing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00944039b3da34b09c5a3d7903b55c6c29614d096900f9359e8dd39e31df3e88 -size 40371 +oid sha256:d5303a4ab0fc36d1d65c4faca792508c0a6daa10f033b64f2c7cc20c0190bb97 +size 40729 diff --git a/testing/baselines/TestInteractionCheatsheetScalars.png b/testing/baselines/TestInteractionCheatsheetScalars.png index 09ea12a231..e6ec418fb3 100644 --- a/testing/baselines/TestInteractionCheatsheetScalars.png +++ b/testing/baselines/TestInteractionCheatsheetScalars.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c0bcc31dafbe4acb657c0e536fbcbf47d6c29548dc357189f22dafeffd2bf69 -size 46290 +oid sha256:1989f16bbbaf682fb902eee38d96710cac53dd30141ec24cde934773b3a5bed7 +size 46922 diff --git a/testing/baselines/TestInteractionCheatsheetScalarsRaytracing.png b/testing/baselines/TestInteractionCheatsheetScalarsRaytracing.png index f5c3c2c891..f680936645 100644 --- a/testing/baselines/TestInteractionCheatsheetScalarsRaytracing.png +++ b/testing/baselines/TestInteractionCheatsheetScalarsRaytracing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a38d6792fe0275ca5f318d285ce1b768057131648dcbf19d0cd6a4c8ccd52412 -size 46336 +oid sha256:dcd037c326bb40e155668c31aa12f02d1eae94ef0fed41908333110975f69191 +size 46355 diff --git a/testing/baselines/TestInteractionCheatsheetWhiteBG.png b/testing/baselines/TestInteractionCheatsheetWhiteBG.png index 0c654762d2..437d196018 100644 --- a/testing/baselines/TestInteractionCheatsheetWhiteBG.png +++ b/testing/baselines/TestInteractionCheatsheetWhiteBG.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2fdd19fe943e07062f6685f1d7988dcc6db69de9043c5c1a8370d28f6c1d01f3 -size 39480 +oid sha256:7c27f7d2a0429de420305bc94f8b27c7c372332352e0d9be0722264519f3b49d +size 40396 diff --git a/testing/baselines/TestInteractionCheatsheetWhiteBGRaytracing.png b/testing/baselines/TestInteractionCheatsheetWhiteBGRaytracing.png index a274ee1e1a..cfaf74a773 100644 --- a/testing/baselines/TestInteractionCheatsheetWhiteBGRaytracing.png +++ b/testing/baselines/TestInteractionCheatsheetWhiteBGRaytracing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6341c8bbb0662a5696cbfac36185e920e9d0f0e4cf2f388f95a5ce9a9665883 -size 39561 +oid sha256:95db6a1e789859b0e70bfb22e6e9dc406770e43d24bfd5c8d0d6878346ee1569 +size 39913 diff --git a/testing/baselines/TestInteractionNoFileCheatsheet.png b/testing/baselines/TestInteractionNoFileCheatsheet.png index 89c60091cb..b14103d91b 100644 --- a/testing/baselines/TestInteractionNoFileCheatsheet.png +++ b/testing/baselines/TestInteractionNoFileCheatsheet.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0d306368fbcb23633ec1c664a80b213e86268a51e3205c1e88dc57006457d21 -size 30989 +oid sha256:97ab0219e5782422e52c6dfb7f84bfb615a0e48b5f25eb81e8cacb0ce0963aa3 +size 31206 diff --git a/testing/baselines/TestInteractionNoFileCheatsheetRaytracing.png b/testing/baselines/TestInteractionNoFileCheatsheetRaytracing.png index edc4b5348b..34e0d5406e 100644 --- a/testing/baselines/TestInteractionNoFileCheatsheetRaytracing.png +++ b/testing/baselines/TestInteractionNoFileCheatsheetRaytracing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9653fa31f8d3c8bc9838be6ab953e503d22d20207873ea66294064b8869fe8ed -size 30083 +oid sha256:fc6f7d7759ac9a40be7df35ee0143d4479dea4f479fbe42fc9b63bea88bb9727 +size 31307 diff --git a/testing/baselines/TestInteractionRotateCamera90.png b/testing/baselines/TestInteractionRotateCamera90.png new file mode 100644 index 0000000000..04c8a2139c --- /dev/null +++ b/testing/baselines/TestInteractionRotateCamera90.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5585233bb2e943e8bbd0642359366ed8d136a9f5775a048462c86f6e4f999b1d +size 2464 diff --git a/testing/baselines/TestInteractionRotateCameraMinus90.png b/testing/baselines/TestInteractionRotateCameraMinus90.png new file mode 100644 index 0000000000..0ccb3f6c6e --- /dev/null +++ b/testing/baselines/TestInteractionRotateCameraMinus90.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaec8ea6e4e8592928e35f7a0c943cda0e64764a066c956ca21d2656e2294325 +size 2440 diff --git a/testing/recordings/TestInteractionRotateCamera90.log b/testing/recordings/TestInteractionRotateCamera90.log new file mode 100644 index 0000000000..1d05f64b54 --- /dev/null +++ b/testing/recordings/TestInteractionRotateCamera90.log @@ -0,0 +1,133 @@ +# StreamVersion 1.2 +ExposeEvent 0 599 0 0 0 0 0 +RenderEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +ExposeEvent 0 599 0 0 0 0 0 +RenderEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +KeyPressEvent 1051 -293 0 54 1 6 0 +CharEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +KeyReleaseEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 +TimerEvent 1051 -293 0 54 1 6 0 diff --git a/testing/recordings/TestInteractionRotateCameraMinus90.log b/testing/recordings/TestInteractionRotateCameraMinus90.log new file mode 100644 index 0000000000..688f456dd4 --- /dev/null +++ b/testing/recordings/TestInteractionRotateCameraMinus90.log @@ -0,0 +1,250 @@ +# StreamVersion 1.2 +ExposeEvent 0 599 0 0 0 0 0 +RenderEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +ExposeEvent 0 599 0 0 0 0 0 +RenderEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +TimerEvent 0 599 0 0 0 0 0 +EnterEvent 528 0 0 0 0 0 0 +MouseMoveEvent 528 0 0 0 0 0 0 +MouseMoveEvent 506 24 0 0 0 0 0 +MouseMoveEvent 488 48 0 0 0 0 0 +MouseMoveEvent 470 72 0 0 0 0 0 +TimerEvent 470 72 0 0 0 0 0 +MouseMoveEvent 452 96 0 0 0 0 0 +MouseMoveEvent 436 118 0 0 0 0 0 +MouseMoveEvent 422 140 0 0 0 0 0 +MouseMoveEvent 408 160 0 0 0 0 0 +TimerEvent 408 160 0 0 0 0 0 +MouseMoveEvent 396 180 0 0 0 0 0 +MouseMoveEvent 386 198 0 0 0 0 0 +MouseMoveEvent 377 213 0 0 0 0 0 +MouseMoveEvent 370 225 0 0 0 0 0 +TimerEvent 370 225 0 0 0 0 0 +MouseMoveEvent 361 236 0 0 0 0 0 +MouseMoveEvent 354 245 0 0 0 0 0 +MouseMoveEvent 351 252 0 0 0 0 0 +MouseMoveEvent 349 254 0 0 0 0 0 +MouseMoveEvent 349 256 0 0 0 0 0 +TimerEvent 349 256 0 0 0 0 0 +TimerEvent 349 256 0 0 0 0 0 +MouseMoveEvent 349 258 0 0 0 0 0 +TimerEvent 349 258 0 0 0 0 0 +MouseMoveEvent 350 259 0 0 0 0 0 +TimerEvent 350 259 0 0 0 0 0 +MouseMoveEvent 352 261 0 0 0 0 0 +MouseMoveEvent 359 261 0 0 0 0 0 +MouseMoveEvent 369 261 0 0 0 0 0 +MouseMoveEvent 382 262 0 0 0 0 0 +TimerEvent 382 262 0 0 0 0 0 +MouseMoveEvent 401 262 0 0 0 0 0 +MouseMoveEvent 421 264 0 0 0 0 0 +MouseMoveEvent 443 266 0 0 0 0 0 +MouseMoveEvent 461 272 0 0 0 0 0 +TimerEvent 461 272 0 0 0 0 0 +MouseMoveEvent 481 276 0 0 0 0 0 +MouseMoveEvent 500 278 0 0 0 0 0 +MouseMoveEvent 517 282 0 0 0 0 0 +MouseMoveEvent 529 284 0 0 0 0 0 +MouseMoveEvent 541 287 0 0 0 0 0 +TimerEvent 541 287 0 0 0 0 0 +MouseMoveEvent 551 290 0 0 0 0 0 +MouseMoveEvent 556 292 0 0 0 0 0 +MouseMoveEvent 561 294 0 0 0 0 0 +MouseMoveEvent 564 296 0 0 0 0 0 +TimerEvent 564 296 0 0 0 0 0 +MouseMoveEvent 567 296 0 0 0 0 0 +MouseMoveEvent 567 298 0 0 0 0 0 +MouseMoveEvent 569 297 0 0 0 0 0 +MouseMoveEvent 569 299 0 0 0 0 0 +TimerEvent 569 299 0 0 0 0 0 +TimerEvent 569 299 0 0 0 0 0 +MouseMoveEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +TimerEvent 571 299 0 0 0 0 0 +KeyPressEvent 571 299 0 52 1 4 0 +CharEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +KeyReleaseEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +TimerEvent 571 299 0 52 1 4 0 +MouseMoveEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 +TimerEvent 571 301 0 0 0 4 0 diff --git a/vtkext/private/module/vtkF3DGenericImporter.cxx b/vtkext/private/module/vtkF3DGenericImporter.cxx index 8ba35b36ed..49c07d72b7 100644 --- a/vtkext/private/module/vtkF3DGenericImporter.cxx +++ b/vtkext/private/module/vtkF3DGenericImporter.cxx @@ -32,7 +32,6 @@ struct ReaderPipeline ReaderPipeline() { this->GeometryActor->GetProperty()->SetInterpolationToPBR(); - this->VolumeMapper->SetRequestedRenderModeToGPU(); this->PolyDataMapper->InterpolateScalarsBeforeMappingOn(); } @@ -47,7 +46,7 @@ struct ReaderPipeline vtkNew VolumeProp; vtkNew PolyDataMapper; vtkNew PointGaussianMapper; - vtkNew VolumeMapper; + vtkSmartPointer VolumeMapper; vtkDataSet* Output = nullptr; vtkDataSetAttributes* PointDataForColoring = nullptr; @@ -213,6 +212,12 @@ void vtkF3DGenericImporter::ImportActors(vtkRenderer* ren) // Add filter outputs to mapper inputs pipe.PolyDataMapper->SetInputConnection(pipe.PostPro->GetOutputPort(0)); pipe.PointGaussianMapper->SetInputConnection(pipe.PostPro->GetOutputPort(1)); + + if (!pipe.VolumeMapper) + { + pipe.VolumeMapper = vtkSmartPointer::New(); + pipe.VolumeMapper->SetRequestedRenderModeToGPU(); + } pipe.VolumeMapper->SetInputConnection(pipe.PostPro->GetOutputPort(2)); // Set geometry actor default properties diff --git a/vtkext/private/module/vtkF3DRenderer.cxx b/vtkext/private/module/vtkF3DRenderer.cxx index d0b7b84cf4..4006db417d 100644 --- a/vtkext/private/module/vtkF3DRenderer.cxx +++ b/vtkext/private/module/vtkF3DRenderer.cxx @@ -1308,8 +1308,10 @@ void vtkF3DRenderer::ConfigureCheatSheet() cheatSheetText << " DOWN : Add files from dir of current file\n"; cheatSheetText << "\n 1: Front View camera\n"; cheatSheetText << " 3: Right View camera\n"; + cheatSheetText << " 4: Roll the camera left by 90 degrees\n"; cheatSheetText << " 5: Toggle Orthographic Projection " << (this->UseOrthographicProjection ? "[ON]" : "[OFF]") << "\n"; + cheatSheetText << " 6: Roll the camera right by 90 degrees\n"; cheatSheetText << " 7: Top View camera\n"; cheatSheetText << " 9: Isometric View camera\n"; cheatSheetText << " ENTER: Reset camera to initial parameters\n";