diff --git a/.github/baselines/install_example_plugin_output.png b/.github/baselines/install_example_plugin_output.png index 61d5667df5..bb65a19f6e 100644 --- a/.github/baselines/install_example_plugin_output.png +++ b/.github/baselines/install_example_plugin_output.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19015fcf64a550bef6a3313a8fff706465a4c2c20c4cc7c73ad963c2471b09c9 -size 40603 +oid sha256:4f50a6dc10f4b5a312a869efb31e62ddd0c16ea582f1a930895290b7b1fe13b0 +size 41817 diff --git a/CMakeLists.txt b/CMakeLists.txt index 82d46d03ac..b586914007 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ set(F3D_MINOR_VERSION 0) set(F3D_PATCH_VERSION 0) set(F3D_VERSION ${F3D_MAJOR_VERSION}.${F3D_MINOR_VERSION}.${F3D_PATCH_VERSION}) -set(F3D_PATCH_VERSION_EXTRA "RC1") +set(F3D_PATCH_VERSION_EXTRA "RC2") if(F3D_PATCH_VERSION_EXTRA STREQUAL "") set(F3D_VERSION_FULL ${F3D_VERSION}) else() diff --git a/application/F3DNSDelegate.mm b/application/F3DNSDelegate.mm index 3802d04d81..16a6072e17 100644 --- a/application/F3DNSDelegate.mm +++ b/application/F3DNSDelegate.mm @@ -14,18 +14,26 @@ // This is a subclass of NSApplicationDelegate. @interface F3DNSDelegateInternal : NSObject @property F3DStarter* Starter; +@property BOOL ShouldHandleFileOpening; @end @implementation F3DNSDelegateInternal @synthesize Starter; +@synthesize ShouldHandleFileOpening; // ---------------------------------------------------------------------------- - (BOOL)application:(NSApplication*)theApplication openFile:(NSString*)filename { (void)theApplication; - Starter->AddFile([filename UTF8String]); - Starter->LoadFileGroup(); - Starter->Render(); + if (ShouldHandleFileOpening) + { + int index = Starter->AddFile([filename UTF8String]); + if (index > -1) + { + Starter->LoadFileGroup(index); + } + Starter->Render(); + } return YES; } @@ -105,6 +113,13 @@ - (void)applicationWillFinishLaunching:(NSNotification *)notification action:@selector(toggleFullScreen:) keyEquivalent:@"f"] setKeyEquivalentModifierMask:NSEventModifierFlagControl | NSEventModifierFlagCommand]; + + ShouldHandleFileOpening = false; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)notification +{ + ShouldHandleFileOpening = true; } @end diff --git a/application/testing/CMakeLists.txt b/application/testing/CMakeLists.txt index 0bbc1f6684..d64f779399 100644 --- a/application/testing/CMakeLists.txt +++ b/application/testing/CMakeLists.txt @@ -373,6 +373,10 @@ if(NOT F3D_MACOS_BUNDLE) f3d_test(NAME TestDefaultConfigFileAndCommand DATA suzanne.stl ARGS --up=-Y --camera-direction=-1,0.5,-1 CONFIG config_build LONG_TIMEOUT TONE_MAPPING UI) f3d_test(NAME TestDefaultConfigTranslucent DATA red_translucent_monkey.gltf CONFIG config_build LONG_TIMEOUT TONE_MAPPING UI) +if(VTK_VERSION VERSION_GREATER_EQUAL 9.4.20241219) + f3d_test(NAME TestDefaultConfigFileArmature DATA RiggedFigure.glb ARGS --animation-time=1 --armature CONFIG config_build LONG_TIMEOUT TONE_MAPPING UI) +endif() + file(COPY "${F3D_SOURCE_DIR}/resources/configs/thumbnail.d/" "${F3D_SOURCE_DIR}/plugins/native/configs/thumbnail.d/" DESTINATION "${CMAKE_BINARY_DIR}/share/f3d/configs/thumbnail_build.d") f3d_test(NAME TestThumbnailConfigFileVTU DATA dragon.vtu CONFIG thumbnail_build LONG_TIMEOUT TONE_MAPPING) f3d_test(NAME TestThumbnailConfigFileVTI DATA vase_4comp.vti CONFIG thumbnail_build LONG_TIMEOUT TONE_MAPPING) @@ -417,9 +421,10 @@ f3d_test(NAME TestVerboseAnimationWrongAnimationTimeHigh DATA BoxAnimated.gltf A f3d_test(NAME TestVerboseAnimationWrongAnimationTimeLow DATA BoxAnimated.gltf ARGS --animation-time=-5 --verbose REGEXP "Animation time -5 is outside of range \\[0, 3\\.70833\\], using 0" NO_BASELINE) # Armature test -f3d_test(NAME TestGLTFRigNoArmature DATA RiggedFigure.glb ARGS --animation-time=1) +f3d_test(NAME TestGLTFRigArmatureNoArmature DATA RiggedFigure.glb ARGS --animation-time=1 --opacity=0.5 -p) if(VTK_VERSION VERSION_GREATER_EQUAL 9.4.20241219) f3d_test(NAME TestGLTFRigArmature DATA RiggedFigure.glb ARGS --animation-time=1 --armature) + f3d_test(NAME TestGLTFRigArmatureWithOpacity DATA RiggedFigure.glb ARGS --animation-time=1 --armature --opacity=0.5 -p) f3d_test(NAME TestGLTFRigArmatureSphereTube DATA RiggedFigure.glb ARGS --animation-time=1 --armature --point-size=20 --line-width=5) endif() @@ -841,6 +846,10 @@ f3d_test(NAME TestInteractionConsoleInvalidCommand DATA f3d.glb INTERACTION UI) f3d_test(NAME TestInteractionConsoleInvalidOption DATA f3d.glb INTERACTION UI) #Escape;toggle foo;Return f3d_test(NAME TestInteractionConsoleClear DATA dragon.vtu INTERACTION UI) #Escape;e;Escape;printt;BackSpace;_scee;Left;n;Right;_info;Return;clear;Return f3d_test(NAME TestInteractionConsoleTypingSceneInfo DATA f3d.glb INTERACTION UI) #Escape;e;Escape;printt;BackSpace;_scee;Left;Right;_info;Return +f3d_test(NAME TestInteractionConsoleReload DATA f3d.glb INTERACTION UI) #Escape;reload_current_file_group;Return +f3d_test(NAME TestInteractionConsoleLoadNext DATA f3d.glb cow.vtp INTERACTION UI) #Escape;load_next_file_group;Return +f3d_test(NAME TestInteractionConsoleRender ARGS --coloring-by-cells DATA waveletMaterial.vti INTERACTION UI) #Escape;toggle_volume_rendering;Return +f3d_test(NAME TestInteractionConsoleCamera DATA f3d.glb INTERACTION UI) #Escape;set_camera top;Return if (F3D_MODULE_TINYFILEDIALOGS) f3d_test(NAME TestInteractionFileOpen INTERACTION NO_BASELINE ENV CTEST_OPEN_DIALOG_FILE=${F3D_SOURCE_DIR}/testing/data/cow.vtp) diff --git a/doc/user/QUICKSTART.md b/doc/user/QUICKSTART.md index 68bac5a587..be2385458b 100644 --- a/doc/user/QUICKSTART.md +++ b/doc/user/QUICKSTART.md @@ -58,7 +58,7 @@ For **default scene** formats, certain default values are set automatically: - roughness: 0.3 - camera-orthographic: false -They will be overridden when using corresponding [options](OPTIONS.md). +They will be overridden when using corresponding [options](OPTIONS.md), either from command line or [configuration file](CONFIGURATION_FILE.md). ## Interacting with your scene diff --git a/library/private/interactor_impl.h b/library/private/interactor_impl.h index 69ee46afc6..88458c6158 100644 --- a/library/private/interactor_impl.h +++ b/library/private/interactor_impl.h @@ -106,6 +106,11 @@ class interactor_impl : public interactor */ void EventLoop(); + /** + * Set a command to be run on the next event loop + */ + void SetCommandBuffer(const char* command); + /** * An exception that can be thrown by certain command callbacks * when the arguments of the callback are incorrect and expected diff --git a/library/src/interactor_impl.cxx b/library/src/interactor_impl.cxx index 0ee5d4c069..521f86e9c4 100644 --- a/library/src/interactor_impl.cxx +++ b/library/src/interactor_impl.cxx @@ -237,7 +237,7 @@ class interactor_impl::internals if (event == vtkF3DConsoleOutputWindow::TriggerEvent) { const char* commandWithArgs = static_cast(data); - self->Interactor.triggerCommand(commandWithArgs); + self->Interactor.SetCommandBuffer(commandWithArgs); } else if (event == vtkF3DConsoleOutputWindow::ShowEvent || event == vtkF3DConsoleOutputWindow::HideEvent) @@ -516,6 +516,12 @@ class interactor_impl::internals this->EventLoopUserCallBack(); } + if (this->CommandBuffer.has_value()) + { + this->Interactor.triggerCommand(this->CommandBuffer.value()); + this->CommandBuffer.reset(); + } + this->AnimationManager->Tick(); if (this->RenderRequested) @@ -543,6 +549,7 @@ class interactor_impl::internals std::map>> TimerCallBacks; std::map&)>> Commands; + std::optional CommandBuffer; std::map Bindings; std::multimap GroupedBinds; @@ -1254,6 +1261,13 @@ void interactor_impl::UpdateRendererAfterInteraction() this->Internals->Style->UpdateRendererAfterInteraction(); } +//---------------------------------------------------------------------------- +void interactor_impl::SetCommandBuffer(const char* command) +{ + // XXX This replace previous command buffer, it should be improved + this->Internals->CommandBuffer = command; +} + //---------------------------------------------------------------------------- interactor_impl::invalid_args_exception::invalid_args_exception(const std::string& what) : exception(what) diff --git a/library/src/window_impl.cxx b/library/src/window_impl.cxx index 21c3092acb..4a48d22858 100644 --- a/library/src/window_impl.cxx +++ b/library/src/window_impl.cxx @@ -178,6 +178,7 @@ window_impl::window_impl(const options& options, const std::optional& type #endif this->Internals->RenWin->SetMultiSamples(0); // Disable hardware antialiasing this->Internals->RenWin->SetOffScreenRendering(offscreen); + this->Internals->RenWin->SetWindowName("f3d"); this->Internals->RenWin->AddRenderer(this->Internals->Renderer); this->Internals->Camera = std::make_unique(); this->Internals->Camera->SetVTKRenderer(this->Internals->Renderer); diff --git a/pyproject.toml b/pyproject.toml index 04df801888..a13739118f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ wheel.packages = [] version_file = "_version.py" version_scheme = "no-guess-dev" local_scheme = "no-local-version" -fallback_version = "3.0.0-RC1" +fallback_version = "3.0.0-RC2" [tool.scikit-build.cmake.define] CMAKE_OSX_DEPLOYMENT_TARGET = "10.15" diff --git a/resources/configs/config.d/05_all.json b/resources/configs/config.d/05_all.json index 2c9ac39a57..fdd7ebc78f 100644 --- a/resources/configs/config.d/05_all.json +++ b/resources/configs/config.d/05_all.json @@ -11,7 +11,9 @@ "camera-direction": "-1,-0.5,-1", "hdri-ambient": true, "translucency-support": true, - "animation-progress": true + "animation-progress": true, + "point-size": 5, + "line-width": 2 } } ] diff --git a/testing/baselines/TestDefaultConfigFileArmature.png b/testing/baselines/TestDefaultConfigFileArmature.png new file mode 100644 index 0000000000..c59c00550b --- /dev/null +++ b/testing/baselines/TestDefaultConfigFileArmature.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bff0668b461d79992bd2844ba357f3a17b916c666e75d576c430a9ab39c4691 +size 46780 diff --git a/testing/baselines/TestGLTFRigArmatureNoArmature.png b/testing/baselines/TestGLTFRigArmatureNoArmature.png new file mode 100644 index 0000000000..30e95593dd --- /dev/null +++ b/testing/baselines/TestGLTFRigArmatureNoArmature.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47d21ecc456b88b7687efb70eb4c5e1e1595fbe8c5d91c1a24a2b88461e652d7 +size 3764 diff --git a/testing/baselines/TestGLTFRigArmatureWithOpacity.png b/testing/baselines/TestGLTFRigArmatureWithOpacity.png new file mode 100644 index 0000000000..c29515571a --- /dev/null +++ b/testing/baselines/TestGLTFRigArmatureWithOpacity.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9d35c475622bfabc99a46fc9d1ac8ef7db19d8461448fcc8a910e49ce2b82ab +size 4448 diff --git a/testing/baselines/TestGLTFRigNoArmature.png b/testing/baselines/TestGLTFRigNoArmature.png deleted file mode 100644 index 2d12b4a6db..0000000000 --- a/testing/baselines/TestGLTFRigNoArmature.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86adce1d4834579279d5a662335f850b84db50b9fbb84e972ae9c1309041677f -size 4543 diff --git a/testing/baselines/TestInteractionConsoleCamera.png b/testing/baselines/TestInteractionConsoleCamera.png new file mode 100644 index 0000000000..f19fe38665 --- /dev/null +++ b/testing/baselines/TestInteractionConsoleCamera.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c08f2d20734e52d4c1ba8a79a8640ba4fd1a59a563fb8b695dc8570fd7107bb +size 2183 diff --git a/testing/baselines/TestInteractionConsoleLoadNext.png b/testing/baselines/TestInteractionConsoleLoadNext.png new file mode 100644 index 0000000000..88639a1cae --- /dev/null +++ b/testing/baselines/TestInteractionConsoleLoadNext.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6294c9979ff8f55ba879a6802fa2ebbfd84089944ef46f8c774c82b4164d8549 +size 18646 diff --git a/testing/baselines/TestInteractionConsoleReload.png b/testing/baselines/TestInteractionConsoleReload.png new file mode 100644 index 0000000000..677455f95b --- /dev/null +++ b/testing/baselines/TestInteractionConsoleReload.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48c3404e4042e16e6001231955a79779a8f8dd5fa3022547ddab3b0352bf2068 +size 2289 diff --git a/testing/baselines/TestInteractionConsoleRender.png b/testing/baselines/TestInteractionConsoleRender.png new file mode 100644 index 0000000000..c8b6cc3e54 --- /dev/null +++ b/testing/baselines/TestInteractionConsoleRender.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:917d020d84fb71ccb3fe58efe65dff4379b090f0b8e911ceaa32fc3aafdfcee6 +size 25576 diff --git a/testing/recordings/TestInteractionConsoleCamera.log b/testing/recordings/TestInteractionConsoleCamera.log new file mode 100644 index 0000000000..0570b35a74 --- /dev/null +++ b/testing/recordings/TestInteractionConsoleCamera.log @@ -0,0 +1,74 @@ +# StreamVersion 1.2 +ConfigureEvent 1249 1374 0 0 0 0 0 +ExposeEvent 0 1406 0 0 0 0 0 +RenderEvent 0 1406 0 0 0 0 0 + +KeyPressEvent -763 401 0 27 1 Escape 0 +CharEvent -763 401 0 27 1 Escape 0 +KeyReleaseEvent -763 401 0 27 1 Escape 0 + +KeyPressEvent -763 401 0 115 1 s 0 +CharEvent -763 401 0 115 1 s 0 +KeyReleaseEvent -763 401 0 115 1 s 0 + +KeyPressEvent -763 401 0 101 1 e 0 +CharEvent -763 401 0 101 1 e 0 +KeyReleaseEvent -763 401 0 101 1 e 0 + +KeyPressEvent -763 401 0 116 1 t 0 +CharEvent -763 401 0 116 1 t 0 +KeyReleaseEvent -763 401 0 116 1 t 0 + +KeyPressEvent -763 401 1 95 1 underscore 0 +CharEvent -763 401 1 95 1 underscore 0 +KeyReleaseEvent -763 401 1 95 1 underscore 0 + +KeyPressEvent -763 401 0 99 1 c 0 +CharEvent -763 401 0 99 1 c 0 +KeyReleaseEvent -763 401 0 99 1 c 0 + +KeyPressEvent -763 401 0 97 1 a 0 +CharEvent -763 401 0 97 1 a 0 +KeyReleaseEvent -763 401 0 97 1 a 0 + +KeyPressEvent -763 401 0 109 1 m 0 +CharEvent -763 401 0 109 1 m 0 +KeyReleaseEvent -763 401 0 109 1 m 0 + +KeyPressEvent -763 401 0 101 1 e 0 +CharEvent -763 401 0 101 1 e 0 +KeyReleaseEvent -763 401 0 101 1 e 0 + +KeyPressEvent -763 401 0 114 1 r 0 +CharEvent -763 401 0 114 1 r 0 +KeyReleaseEvent -763 401 0 114 1 r 0 + +KeyPressEvent -763 401 0 97 1 a 0 +CharEvent -763 401 0 97 1 a 0 +KeyReleaseEvent -763 401 0 97 1 a 0 + +KeyPressEvent -763 401 0 32 1 space 0 +CharEvent -763 401 0 32 1 space 0 +KeyReleaseEvent -763 401 0 32 1 space 0 + +KeyPressEvent -763 401 0 116 1 t 0 +CharEvent -763 401 0 116 1 t 0 +KeyReleaseEvent -763 401 0 116 1 t 0 + +KeyPressEvent -763 401 0 111 1 o 0 +CharEvent -763 401 0 111 1 o 0 +KeyReleaseEvent -763 401 0 111 1 o 0 + +KeyPressEvent -763 401 0 112 1 p 0 +CharEvent -763 401 0 112 1 p 0 +KeyReleaseEvent -763 401 0 112 1 p 0 + +KeyPressEvent -763 401 0 13 1 Return 0 +CharEvent -763 401 0 13 1 Return 0 +KeyReleaseEvent -763 401 0 13 1 Return 0 + +KeyPressEvent -763 401 0 27 1 Escape 0 +CharEvent -763 401 0 27 1 Escape 0 +KeyReleaseEvent -763 401 0 27 1 Escape 0 + +TimerEvent 212 76 0 27 1 Escape 0 diff --git a/testing/recordings/TestInteractionConsoleClear.log b/testing/recordings/TestInteractionConsoleClear.log index dcacde83c2..4a6509df2c 100644 --- a/testing/recordings/TestInteractionConsoleClear.log +++ b/testing/recordings/TestInteractionConsoleClear.log @@ -123,3 +123,4 @@ KeyPressEvent 0 0 0 13 1 Return 0 CharEvent 0 0 0 13 1 Return 0 KeyReleaseEvent 0 0 0 13 1 Return 0 +TimerEvent 351 169 0 0 0 0 0 diff --git a/testing/recordings/TestInteractionConsoleInvalidCommand.log b/testing/recordings/TestInteractionConsoleInvalidCommand.log index 4fb4342b0a..8adb826b58 100644 --- a/testing/recordings/TestInteractionConsoleInvalidCommand.log +++ b/testing/recordings/TestInteractionConsoleInvalidCommand.log @@ -20,3 +20,5 @@ KeyReleaseEvent 0 0 0 111 1 o 0 KeyPressEvent 0 0 0 13 1 Return 0 CharEvent 0 0 0 13 1 Return 0 KeyReleaseEvent 0 0 0 13 1 Return 0 + +TimerEvent 351 169 0 0 0 0 0 diff --git a/testing/recordings/TestInteractionConsoleInvalidOption.log b/testing/recordings/TestInteractionConsoleInvalidOption.log index 07d0214d22..4fc7f8ca2d 100644 --- a/testing/recordings/TestInteractionConsoleInvalidOption.log +++ b/testing/recordings/TestInteractionConsoleInvalidOption.log @@ -48,3 +48,5 @@ KeyReleaseEvent 0 0 0 111 1 o 0 KeyPressEvent 0 0 0 13 1 Return 0 CharEvent 0 0 0 13 1 Return 0 KeyReleaseEvent 0 0 0 13 1 Return 0 + +TimerEvent 351 169 0 0 0 0 0 diff --git a/testing/recordings/TestInteractionConsoleLoadNext.log b/testing/recordings/TestInteractionConsoleLoadNext.log new file mode 100644 index 0000000000..719ff3d406 --- /dev/null +++ b/testing/recordings/TestInteractionConsoleLoadNext.log @@ -0,0 +1,98 @@ +# StreamVersion 1.2 +ConfigureEvent 1249 1374 0 0 0 0 0 +ExposeEvent 0 1406 0 0 0 0 0 +RenderEvent 0 1406 0 0 0 0 0 + +KeyPressEvent -179 393 0 27 1 Escape 0 +CharEvent -179 393 0 27 1 Escape 0 +KeyReleaseEvent -179 393 0 27 1 Escape 0 + +KeyPressEvent -179 393 0 108 1 l 0 +CharEvent -179 393 0 108 1 l 0 +KeyReleaseEvent -179 393 0 108 1 l 0 + +KeyPressEvent -179 393 0 111 1 o 0 +CharEvent -179 393 0 111 1 o 0 +KeyReleaseEvent -179 393 0 111 1 o 0 + +KeyPressEvent -179 393 0 97 1 a 0 +CharEvent -179 393 0 97 1 a 0 +KeyReleaseEvent -179 393 0 97 1 a 0 + +KeyPressEvent -179 393 0 100 1 d 0 +CharEvent -179 393 0 100 1 d 0 +KeyReleaseEvent -179 393 0 100 1 d 0 + +KeyPressEvent -179 393 1 95 1 underscore 0 +CharEvent -179 393 1 95 1 underscore 0 +KeyReleaseEvent -179 393 1 95 1 underscore 0 + +KeyPressEvent -179 393 0 110 1 n 0 +CharEvent -179 393 0 110 1 n 0 +KeyReleaseEvent -179 393 0 110 1 n 0 + +KeyPressEvent -179 393 0 101 1 e 0 +CharEvent -179 393 0 101 1 e 0 +KeyReleaseEvent -179 393 0 101 1 e 0 + +KeyPressEvent -179 393 0 120 1 x 0 +CharEvent -179 393 0 120 1 x 0 +KeyReleaseEvent -179 393 0 120 1 x 0 + +KeyPressEvent -179 393 0 116 1 t 0 +CharEvent -179 393 0 116 1 t 0 +KeyReleaseEvent -179 393 0 116 1 t 0 + +KeyPressEvent -179 393 1 95 1 underscore 0 +CharEvent -179 393 1 95 1 underscore 0 +KeyReleaseEvent -179 393 1 95 1 underscore 0 + +KeyPressEvent -179 393 0 102 1 f 0 +CharEvent -179 393 0 102 1 f 0 +KeyReleaseEvent -179 393 0 102 1 f 0 + +KeyPressEvent -179 393 0 105 1 i 0 +CharEvent -179 393 0 105 1 i 0 +KeyReleaseEvent -179 393 0 105 1 i 0 + +KeyPressEvent -179 393 0 108 1 l 0 +CharEvent -179 393 0 108 1 l 0 +KeyReleaseEvent -179 393 0 108 1 l 0 + +KeyPressEvent -179 393 0 101 1 e 0 +CharEvent -179 393 0 101 1 e 0 +KeyReleaseEvent -179 393 0 101 1 e 0 + +KeyPressEvent -179 393 1 95 1 underscore 0 +CharEvent -179 393 1 95 1 underscore 0 +KeyReleaseEvent -179 393 1 95 1 underscore 0 + +KeyPressEvent -179 393 0 103 1 g 0 +CharEvent -179 393 0 103 1 g 0 +KeyReleaseEvent -179 393 0 103 1 g 0 + +KeyPressEvent -179 393 0 114 1 r 0 +CharEvent -179 393 0 114 1 r 0 +KeyReleaseEvent -179 393 0 114 1 r 0 + +KeyPressEvent -179 393 0 111 1 o 0 +CharEvent -179 393 0 111 1 o 0 +KeyReleaseEvent -179 393 0 111 1 o 0 + +KeyPressEvent -179 393 0 117 1 u 0 +CharEvent -179 393 0 117 1 u 0 +KeyReleaseEvent -179 393 0 117 1 u 0 + +KeyPressEvent -179 393 0 112 1 p 0 +CharEvent -179 393 0 112 1 p 0 +KeyReleaseEvent -179 393 0 112 1 p 0 + +KeyPressEvent -179 393 0 13 1 Return 0 +CharEvent -179 393 0 13 1 Return 0 +KeyReleaseEvent -179 393 0 13 1 Return 0 + +KeyPressEvent -179 393 0 27 1 Escape 0 +CharEvent -179 393 0 27 1 Escape 0 +KeyReleaseEvent -179 393 0 27 1 Escape 0 + +TimerEvent 212 76 0 27 1 Escape 0 diff --git a/testing/recordings/TestInteractionConsoleOpenExit.log b/testing/recordings/TestInteractionConsoleOpenExit.log index dc7251e4d0..618a61ba29 100644 --- a/testing/recordings/TestInteractionConsoleOpenExit.log +++ b/testing/recordings/TestInteractionConsoleOpenExit.log @@ -25,3 +25,5 @@ KeyReleaseEvent 199 142 0 116 1 t 0 KeyPressEvent 199 142 0 13 1 Return 0 CharEvent 199 142 0 13 1 Return 0 KeyReleaseEvent 199 142 0 13 1 Return 0 + +TimerEvent 351 169 0 0 0 0 0 diff --git a/testing/recordings/TestInteractionConsoleReload.log b/testing/recordings/TestInteractionConsoleReload.log new file mode 100644 index 0000000000..437caa4a2f --- /dev/null +++ b/testing/recordings/TestInteractionConsoleReload.log @@ -0,0 +1,118 @@ +# StreamVersion 1.2 +ConfigureEvent 1249 1374 0 0 0 0 0 +ExposeEvent 0 1406 0 0 0 0 0 +RenderEvent 0 1406 0 0 0 0 0 + +KeyPressEvent -740 995 0 27 1 Escape 0 +CharEvent -740 995 0 27 1 Escape 0 +KeyReleaseEvent -740 995 0 27 1 Escape 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 101 1 e 0 +CharEvent -740 995 0 101 1 e 0 +KeyReleaseEvent -740 995 0 101 1 e 0 + +KeyPressEvent -740 995 0 108 1 l 0 +CharEvent -740 995 0 108 1 l 0 +KeyReleaseEvent -740 995 0 108 1 l 0 + +KeyPressEvent -740 995 0 111 1 o 0 +CharEvent -740 995 0 111 1 o 0 +KeyReleaseEvent -740 995 0 111 1 o 0 + +KeyPressEvent -740 995 0 97 1 a 0 +CharEvent -740 995 0 97 1 a 0 +KeyReleaseEvent -740 995 0 97 1 a 0 + +KeyPressEvent -740 995 0 100 1 d 0 +CharEvent -740 995 0 100 1 d 0 +KeyReleaseEvent -740 995 0 100 1 d 0 + +KeyPressEvent -740 995 1 95 1 underscore 0 +CharEvent -740 995 1 95 1 underscore 0 +KeyReleaseEvent -740 995 1 95 1 underscore 0 + +KeyPressEvent -740 995 0 99 1 c 0 +CharEvent -740 995 0 99 1 c 0 +KeyReleaseEvent -740 995 0 99 1 c 0 + +KeyPressEvent -740 995 0 117 1 u 0 +CharEvent -740 995 0 117 1 u 0 +KeyReleaseEvent -740 995 0 117 1 u 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 101 1 e 0 +CharEvent -740 995 0 101 1 e 0 +KeyReleaseEvent -740 995 0 101 1 e 0 + +KeyPressEvent -740 995 0 110 1 n 0 +CharEvent -740 995 0 110 1 n 0 +KeyReleaseEvent -740 995 0 110 1 n 0 + +KeyPressEvent -740 995 0 116 1 t 0 +CharEvent -740 995 0 116 1 t 0 +KeyReleaseEvent -740 995 0 116 1 t 0 + +KeyPressEvent -740 995 1 95 1 underscore 0 +CharEvent -740 995 1 95 1 underscore 0 +KeyReleaseEvent -740 995 1 95 1 underscore 0 + +KeyPressEvent -740 995 0 102 1 f 0 +CharEvent -740 995 0 102 1 f 0 +KeyReleaseEvent -740 995 0 102 1 f 0 + +KeyPressEvent -740 995 0 105 1 i 0 +CharEvent -740 995 0 105 1 i 0 +KeyReleaseEvent -740 995 0 105 1 i 0 + +KeyPressEvent -740 995 0 108 1 l 0 +CharEvent -740 995 0 108 1 l 0 +KeyReleaseEvent -740 995 0 108 1 l 0 + +KeyPressEvent -740 995 0 101 1 e 0 +CharEvent -740 995 0 101 1 e 0 +KeyReleaseEvent -740 995 0 101 1 e 0 + +KeyPressEvent -740 995 1 95 1 underscore 0 +CharEvent -740 995 1 95 1 underscore 0 +KeyReleaseEvent -740 995 1 95 1 underscore 0 + +KeyPressEvent -740 995 0 103 1 g 0 +CharEvent -740 995 0 103 1 g 0 +KeyReleaseEvent -740 995 0 103 1 g 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 111 1 o 0 +CharEvent -740 995 0 111 1 o 0 +KeyReleaseEvent -740 995 0 111 1 o 0 + +KeyPressEvent -740 995 0 117 1 u 0 +CharEvent -740 995 0 117 1 u 0 +KeyReleaseEvent -740 995 0 117 1 u 0 + +KeyPressEvent -740 995 0 112 1 p 0 +CharEvent -740 995 0 112 1 p 0 +KeyReleaseEvent -740 995 0 112 1 p 0 + +KeyPressEvent -740 995 0 13 1 Return 0 +CharEvent -740 995 0 13 1 Return 0 +KeyReleaseEvent -740 995 0 13 1 Return 0 + +KeyPressEvent -740 995 0 27 1 Escape 0 +CharEvent -740 995 0 27 1 Escape 0 +KeyReleaseEvent -740 995 0 27 1 Escape 0 + +TimerEvent 212 76 0 27 1 Escape 0 diff --git a/testing/recordings/TestInteractionConsoleReload2.log b/testing/recordings/TestInteractionConsoleReload2.log new file mode 100644 index 0000000000..437caa4a2f --- /dev/null +++ b/testing/recordings/TestInteractionConsoleReload2.log @@ -0,0 +1,118 @@ +# StreamVersion 1.2 +ConfigureEvent 1249 1374 0 0 0 0 0 +ExposeEvent 0 1406 0 0 0 0 0 +RenderEvent 0 1406 0 0 0 0 0 + +KeyPressEvent -740 995 0 27 1 Escape 0 +CharEvent -740 995 0 27 1 Escape 0 +KeyReleaseEvent -740 995 0 27 1 Escape 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 101 1 e 0 +CharEvent -740 995 0 101 1 e 0 +KeyReleaseEvent -740 995 0 101 1 e 0 + +KeyPressEvent -740 995 0 108 1 l 0 +CharEvent -740 995 0 108 1 l 0 +KeyReleaseEvent -740 995 0 108 1 l 0 + +KeyPressEvent -740 995 0 111 1 o 0 +CharEvent -740 995 0 111 1 o 0 +KeyReleaseEvent -740 995 0 111 1 o 0 + +KeyPressEvent -740 995 0 97 1 a 0 +CharEvent -740 995 0 97 1 a 0 +KeyReleaseEvent -740 995 0 97 1 a 0 + +KeyPressEvent -740 995 0 100 1 d 0 +CharEvent -740 995 0 100 1 d 0 +KeyReleaseEvent -740 995 0 100 1 d 0 + +KeyPressEvent -740 995 1 95 1 underscore 0 +CharEvent -740 995 1 95 1 underscore 0 +KeyReleaseEvent -740 995 1 95 1 underscore 0 + +KeyPressEvent -740 995 0 99 1 c 0 +CharEvent -740 995 0 99 1 c 0 +KeyReleaseEvent -740 995 0 99 1 c 0 + +KeyPressEvent -740 995 0 117 1 u 0 +CharEvent -740 995 0 117 1 u 0 +KeyReleaseEvent -740 995 0 117 1 u 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 101 1 e 0 +CharEvent -740 995 0 101 1 e 0 +KeyReleaseEvent -740 995 0 101 1 e 0 + +KeyPressEvent -740 995 0 110 1 n 0 +CharEvent -740 995 0 110 1 n 0 +KeyReleaseEvent -740 995 0 110 1 n 0 + +KeyPressEvent -740 995 0 116 1 t 0 +CharEvent -740 995 0 116 1 t 0 +KeyReleaseEvent -740 995 0 116 1 t 0 + +KeyPressEvent -740 995 1 95 1 underscore 0 +CharEvent -740 995 1 95 1 underscore 0 +KeyReleaseEvent -740 995 1 95 1 underscore 0 + +KeyPressEvent -740 995 0 102 1 f 0 +CharEvent -740 995 0 102 1 f 0 +KeyReleaseEvent -740 995 0 102 1 f 0 + +KeyPressEvent -740 995 0 105 1 i 0 +CharEvent -740 995 0 105 1 i 0 +KeyReleaseEvent -740 995 0 105 1 i 0 + +KeyPressEvent -740 995 0 108 1 l 0 +CharEvent -740 995 0 108 1 l 0 +KeyReleaseEvent -740 995 0 108 1 l 0 + +KeyPressEvent -740 995 0 101 1 e 0 +CharEvent -740 995 0 101 1 e 0 +KeyReleaseEvent -740 995 0 101 1 e 0 + +KeyPressEvent -740 995 1 95 1 underscore 0 +CharEvent -740 995 1 95 1 underscore 0 +KeyReleaseEvent -740 995 1 95 1 underscore 0 + +KeyPressEvent -740 995 0 103 1 g 0 +CharEvent -740 995 0 103 1 g 0 +KeyReleaseEvent -740 995 0 103 1 g 0 + +KeyPressEvent -740 995 0 114 1 r 0 +CharEvent -740 995 0 114 1 r 0 +KeyReleaseEvent -740 995 0 114 1 r 0 + +KeyPressEvent -740 995 0 111 1 o 0 +CharEvent -740 995 0 111 1 o 0 +KeyReleaseEvent -740 995 0 111 1 o 0 + +KeyPressEvent -740 995 0 117 1 u 0 +CharEvent -740 995 0 117 1 u 0 +KeyReleaseEvent -740 995 0 117 1 u 0 + +KeyPressEvent -740 995 0 112 1 p 0 +CharEvent -740 995 0 112 1 p 0 +KeyReleaseEvent -740 995 0 112 1 p 0 + +KeyPressEvent -740 995 0 13 1 Return 0 +CharEvent -740 995 0 13 1 Return 0 +KeyReleaseEvent -740 995 0 13 1 Return 0 + +KeyPressEvent -740 995 0 27 1 Escape 0 +CharEvent -740 995 0 27 1 Escape 0 +KeyReleaseEvent -740 995 0 27 1 Escape 0 + +TimerEvent 212 76 0 27 1 Escape 0 diff --git a/testing/recordings/TestInteractionConsoleRender.log b/testing/recordings/TestInteractionConsoleRender.log new file mode 100644 index 0000000000..d7bae08968 --- /dev/null +++ b/testing/recordings/TestInteractionConsoleRender.log @@ -0,0 +1,110 @@ +# StreamVersion 1.2 +ConfigureEvent 1249 1374 0 0 0 0 0 +ExposeEvent 0 1406 0 0 0 0 0 +RenderEvent 0 1406 0 0 0 0 0 + +KeyPressEvent -300 299 0 27 1 Escape 0 +CharEvent -300 299 0 27 1 Escape 0 +KeyReleaseEvent -300 299 0 27 1 Escape 0 + +KeyPressEvent -300 299 0 116 1 t 0 +CharEvent -300 299 0 116 1 t 0 +KeyReleaseEvent -300 299 0 116 1 t 0 + +KeyPressEvent -300 299 0 111 1 o 0 +CharEvent -300 299 0 111 1 o 0 +KeyReleaseEvent -300 299 0 111 1 o 0 + +KeyPressEvent -300 299 0 103 1 g 0 +CharEvent -300 299 0 103 1 g 0 +KeyReleaseEvent -300 299 0 103 1 g 0 + +KeyPressEvent -300 299 0 103 1 g 0 +CharEvent -300 299 0 103 1 g 0 +KeyReleaseEvent -300 299 0 103 1 g 0 + +KeyPressEvent -300 299 0 108 1 l 0 +CharEvent -300 299 0 108 1 l 0 +KeyReleaseEvent -300 299 0 108 1 l 0 + +KeyPressEvent -300 299 0 101 1 e 0 +CharEvent -300 299 0 101 1 e 0 +KeyReleaseEvent -300 299 0 101 1 e 0 + +KeyPressEvent -300 299 1 95 1 underscore 0 +CharEvent -300 299 1 95 1 underscore 0 +KeyReleaseEvent -300 299 1 95 1 underscore 0 + +KeyPressEvent -300 299 0 118 1 v 0 +CharEvent -300 299 0 118 1 v 0 +KeyReleaseEvent -300 299 0 118 1 v 0 + +KeyPressEvent -300 299 0 111 1 o 0 +CharEvent -300 299 0 111 1 o 0 +KeyReleaseEvent -300 299 0 111 1 o 0 + +KeyPressEvent -300 299 0 108 1 l 0 +CharEvent -300 299 0 108 1 l 0 +KeyReleaseEvent -300 299 0 108 1 l 0 + +KeyPressEvent -300 299 0 117 1 u 0 +CharEvent -300 299 0 117 1 u 0 +KeyReleaseEvent -300 299 0 117 1 u 0 + +KeyPressEvent -300 299 0 109 1 m 0 +CharEvent -300 299 0 109 1 m 0 +KeyReleaseEvent -300 299 0 109 1 m 0 + +KeyPressEvent -300 299 0 101 1 e 0 +CharEvent -300 299 0 101 1 e 0 +KeyReleaseEvent -300 299 0 101 1 e 0 + +KeyPressEvent -300 299 1 95 1 underscore 0 +CharEvent -300 299 1 95 1 underscore 0 +KeyReleaseEvent -300 299 1 95 1 underscore 0 + +KeyPressEvent -300 299 0 114 1 r 0 +CharEvent -300 299 0 114 1 r 0 +KeyReleaseEvent -300 299 0 114 1 r 0 + +KeyPressEvent -300 299 0 101 1 e 0 +CharEvent -300 299 0 101 1 e 0 +KeyReleaseEvent -300 299 0 101 1 e 0 + +KeyPressEvent -300 299 0 110 1 n 0 +CharEvent -300 299 0 110 1 n 0 +KeyReleaseEvent -300 299 0 110 1 n 0 + +KeyPressEvent -300 299 0 100 1 d 0 +CharEvent -300 299 0 100 1 d 0 +KeyReleaseEvent -300 299 0 100 1 d 0 + +KeyPressEvent -300 299 0 101 1 e 0 +CharEvent -300 299 0 101 1 e 0 +KeyReleaseEvent -300 299 0 101 1 e 0 + +KeyPressEvent -300 299 0 114 1 r 0 +CharEvent -300 299 0 114 1 r 0 +KeyReleaseEvent -300 299 0 114 1 r 0 + +KeyPressEvent -300 299 0 105 1 i 0 +CharEvent -300 299 0 105 1 i 0 +KeyReleaseEvent -300 299 0 105 1 i 0 + +KeyPressEvent -300 299 0 110 1 n 0 +CharEvent -300 299 0 110 1 n 0 +KeyReleaseEvent -300 299 0 110 1 n 0 + +KeyPressEvent -300 299 0 103 1 g 0 +CharEvent -300 299 0 103 1 g 0 +KeyReleaseEvent -300 299 0 103 1 g 0 + +KeyPressEvent -300 299 0 13 1 Return 0 +CharEvent -300 299 0 13 1 Return 0 +KeyReleaseEvent -300 299 0 13 1 Return 0 + +KeyPressEvent -300 299 0 27 1 Escape 0 +CharEvent -300 299 0 27 1 Escape 0 +KeyReleaseEvent -300 299 0 27 1 Escape 0 + +TimerEvent 212 76 0 27 1 Escape 0 diff --git a/testing/recordings/TestInteractionConsoleTypingSceneInfo.log b/testing/recordings/TestInteractionConsoleTypingSceneInfo.log index ffd7acdf6d..fa426d5bf3 100644 --- a/testing/recordings/TestInteractionConsoleTypingSceneInfo.log +++ b/testing/recordings/TestInteractionConsoleTypingSceneInfo.log @@ -98,3 +98,5 @@ KeyReleaseEvent 0 0 0 111 1 o 0 KeyPressEvent 0 0 0 13 1 Return 0 CharEvent 0 0 0 13 1 Return 0 KeyReleaseEvent 0 0 0 13 1 Return 0 + +TimerEvent 351 169 0 0 0 0 0 diff --git a/vtkext/private/module/vtkF3DRenderPass.cxx b/vtkext/private/module/vtkF3DRenderPass.cxx index 1cc45cf583..5e903b9334 100644 --- a/vtkext/private/module/vtkF3DRenderPass.cxx +++ b/vtkext/private/module/vtkF3DRenderPass.cxx @@ -100,9 +100,12 @@ void vtkF3DRenderPass::Initialize(const vtkRenderState* s) { // armature vtkInformation* info = prop->GetPropertyKeys(); - if (this->ArmatureVisible && info && info->Has(vtkF3DImporter::ACTOR_IS_ARMATURE())) + if (info && info->Has(vtkF3DImporter::ACTOR_IS_ARMATURE())) { - this->MainOnTopProps.push_back(prop); + if (this->ArmatureVisible) + { + this->MainOnTopProps.push_back(prop); + } } else { diff --git a/vtkext/private/module/vtkF3DRenderer.cxx b/vtkext/private/module/vtkF3DRenderer.cxx index 8d590f05d8..4d30062b35 100644 --- a/vtkext/private/module/vtkF3DRenderer.cxx +++ b/vtkext/private/module/vtkF3DRenderer.cxx @@ -1840,8 +1840,12 @@ void vtkF3DRenderer::ConfigureActorsProperties() if (this->Opacity.has_value()) { - actor->GetProperty()->SetOpacity(this->Opacity.value()); - originalActor->GetProperty()->SetOpacity(this->Opacity.value()); + vtkInformation* info = originalActor->GetPropertyKeys(); + if (!info || !info->Has(vtkF3DImporter::ACTOR_IS_ARMATURE())) + { + actor->GetProperty()->SetOpacity(this->Opacity.value()); + originalActor->GetProperty()->SetOpacity(this->Opacity.value()); + } } if (this->Roughness.has_value())