sliceimageviewer

This commit is contained in:
quantulr
2024-04-26 17:25:17 +08:00
parent 49b3d45493
commit 04718305b6
18 changed files with 1092 additions and 247 deletions

View File

@ -1,244 +1,676 @@
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
vtkCompositeDataPipeline (0000023A2CC93260): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (0000023A26C4E360) has 0 connections but is not optional.
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
vtkCompositeDataPipeline (0000023A2CC93260): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (0000023A26C4E360) has 0 connections but is not optional.
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
vtkCompositeDataPipeline (0000023A2CC93260): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (0000023A26C4E360) has 0 connections but is not optional.
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
vtkCompositeDataPipeline (0000023A2CC93260): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (0000023A26C4E360) has 0 connections but is not optional.
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 諠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 蠐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 螰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 褰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 趀䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 謐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 諠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 蒀䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 衰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 諠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 蛰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 謐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 藐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 讠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 賰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 莐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 袠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 褀䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 蛀䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 袠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 訠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 蚐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 衰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48A90): wglMakeCurrent failed in MakeCurrent(), error: 莐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蘰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 謐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 薠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 賰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蔐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蒀䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蔐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 薠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 褰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 薠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 褰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 讠䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蛰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 菰䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蕀䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 莐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 詐䜅Ⱥ
ERROR: In vtkDemandDrivenPipeline.cxx, line 677
vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional.
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 覐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 豠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 趀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蘀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 衰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 蛀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 謐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 螀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 91
vtkWin32OpenGLRenderWindow (0000023A26E4BA60): wglMakeCurrent failed in Clean(), error: 2004
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 衰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 賰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 讠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 螀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 袠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蝐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 衰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 賰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 讠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 螀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 褰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 薠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蒰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 衰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 薠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蚐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蕀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蒀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 諠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 藐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 謐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 莐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 莐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蓠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 豠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蝐䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 芠䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 螰䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in MakeCurrent(), error: 蒀䜅Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 91
vtkWin32OpenGLRenderWindow (0000023A26E48760): wglMakeCurrent failed in Clean(), error: 2004
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 釰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 踀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 遀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 軀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 闠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 趠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 遀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 鑠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 軀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 鑠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 韰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 鑠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 闠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 踀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 醐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 軰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 舀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 芐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 褠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 豐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 萐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 覀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蔀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 莀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蓐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蝰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 莰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 膠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蔀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蛠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蠰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蘠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蓐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 诀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 螠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 詀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 膠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 螠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 螠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 葰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 覀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蟐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 芐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 裀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 訐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蔀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蜐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蒠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 薐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 腰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 腰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蔰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 苰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 藰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蒠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 藰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 觠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 膠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 蠰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 芐䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 譠䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 腀䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 256
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in MakeCurrent(), error: 腰䜼Ⱥ
ERROR: In vtkWin32OpenGLRenderWindow.cxx, line 91
vtkWin32OpenGLRenderWindow (0000023A26E4A410): wglMakeCurrent failed in Clean(), error: 2004

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,6 +1,8 @@
import ctypes
import sys
from pathlib import Path
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication
from vtkmodules.vtkCommonCore import vtkFileOutputWindow, vtkOutputWindow
@ -10,16 +12,17 @@ ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("crystalfly")
def main():
# pipe vtk output errors to file
err_out = vtkFileOutputWindow()
err_out.SetFileName("VTK Error Out.txt")
vtk_std_error = vtkOutputWindow()
vtk_std_error.SetInstance(err_out)
app = QApplication(sys.argv)
app.setWindowIcon(QIcon(str(Path(__file__).parent / "assets" / "raspberrypi.png")))
window = MainWindow()
window.show()
sys.exit(app.exec())
if __name__ == '__main__':
# pipe vtk output errors to file
errOut = vtkFileOutputWindow()
errOut.SetFileName("VTK Error Out.txt")
vtkStdErrOut = vtkOutputWindow()
vtkStdErrOut.SetInstance(errOut)
main()

View File

@ -1,38 +1,38 @@
from pathlib import Path
from PySide6.QtCore import Slot, QEvent
from PySide6.QtUiTools import loadUiType
from PySide6.QtWidgets import QDialog, QFileDialog
from vtkmodules.vtkCommonCore import VTK_INT, VTK_SHORT, VTK_LONG, VTK_FLOAT, VTK_UNSIGNED_SHORT, VTK_UNSIGNED_INT, \
VTK_UNSIGNED_LONG
from crystalfly.thread.image_reader import ImageReaderThread
ImportFileType, _ = loadUiType(str(Path(__file__).parent.joinpath("import_file.ui")))
from crystalfly.ui.import_file_ui import Ui_Dialog
class ImportFile(QDialog, ImportFileType):
# ImportFileType, _ = loadUiType(str(Path(__file__).parent.joinpath("import_file.ui")))
class ImportFile(QDialog):
def __init__(self):
super(ImportFile, self).__init__()
# self.image_read_thread = None
self.setupUi(self)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.browse_file.clicked.connect(self.browse_file_handler)
self.ui.browse_file.clicked.connect(self.browse_file_handler)
self.accepted.connect(self.load_image_file)
def showEvent(self, event: QEvent) -> None:
self.clear_form()
def clear_form(self):
self.file_path_input.clear()
self.size_x_spin.clear()
self.size_y_spin.clear()
self.size_z_spin.clear()
self.data_type_combobox.setCurrentIndex(0)
self.ui.file_path_input.clear()
self.ui.size_x_spin.clear()
self.ui.size_y_spin.clear()
self.ui.size_z_spin.clear()
self.ui.data_type_combobox.setCurrentIndex(0)
@Slot()
def load_image_file(self):
data_type_text = self.data_type_combobox.currentText()
data_type_text = self.ui.data_type_combobox.currentText()
data_type = None
if data_type_text == "int 8":
data_type = VTK_INT
@ -49,12 +49,12 @@ class ImportFile(QDialog, ImportFileType):
elif data_type_text == "float":
data_type = VTK_FLOAT
file_data = {
"file_path": self.file_path_input.text(),
"file_path": self.ui.file_path_input.text(),
"data_type": data_type,
"size": {
"x": self.size_x_spin.value(),
"y": self.size_y_spin.value(),
"z": self.size_z_spin.value(),
"x": self.ui.size_x_spin.value(),
"y": self.ui.size_y_spin.value(),
"z": self.ui.size_z_spin.value(),
}
}
image_read_thread = ImageReaderThread(file_data, self)
@ -66,4 +66,4 @@ class ImportFile(QDialog, ImportFileType):
dialog = QFileDialog(self)
filepath = dialog.getOpenFileName()
if filepath[0]:
self.file_path_input.setText(filepath[0])
self.ui.file_path_input.setText(filepath[0])

View File

@ -50,7 +50,7 @@
<item row="0" column="2">
<widget class="QLabel" name="label_3">
<property name="text">
<string>y</string>
<string>height</string>
</property>
</widget>
</item>
@ -64,7 +64,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>x</string>
<string>width</string>
</property>
</widget>
</item>
@ -78,7 +78,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>z</string>
<string>slices</string>
</property>
</widget>
</item>

View File

@ -0,0 +1,161 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'import_file.ui'
##
## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QComboBox, QDialog,
QDialogButtonBox, QGridLayout, QGroupBox, QLabel,
QLineEdit, QPushButton, QSizePolicy, QSpacerItem,
QSpinBox, QVBoxLayout, QWidget)
class Ui_Dialog(object):
def setupUi(self, Dialog):
if not Dialog.objectName():
Dialog.setObjectName(u"Dialog")
Dialog.resize(500, 259)
self.verticalLayout = QVBoxLayout(Dialog)
self.verticalLayout.setObjectName(u"verticalLayout")
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName(u"gridLayout")
self.label = QLabel(Dialog)
self.label.setObjectName(u"label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.file_path_input = QLineEdit(Dialog)
self.file_path_input.setObjectName(u"file_path_input")
self.gridLayout.addWidget(self.file_path_input, 0, 1, 1, 1)
self.browse_file = QPushButton(Dialog)
self.browse_file.setObjectName(u"browse_file")
self.gridLayout.addWidget(self.browse_file, 0, 2, 1, 1)
self.gridLayout.setColumnStretch(0, 1)
self.gridLayout.setColumnStretch(1, 5)
self.gridLayout.setColumnStretch(2, 1)
self.verticalLayout.addLayout(self.gridLayout)
self.groupBox = QGroupBox(Dialog)
self.groupBox.setObjectName(u"groupBox")
self.groupBox.setStyleSheet(u"")
self.gridLayout_2 = QGridLayout(self.groupBox)
self.gridLayout_2.setObjectName(u"gridLayout_2")
self.gridLayout_2.setHorizontalSpacing(32)
self.label_3 = QLabel(self.groupBox)
self.label_3.setObjectName(u"label_3")
self.gridLayout_2.addWidget(self.label_3, 0, 2, 1, 1)
self.size_x_spin = QSpinBox(self.groupBox)
self.size_x_spin.setObjectName(u"size_x_spin")
self.size_x_spin.setMaximum(100000)
self.gridLayout_2.addWidget(self.size_x_spin, 0, 1, 1, 1)
self.label_2 = QLabel(self.groupBox)
self.label_2.setObjectName(u"label_2")
self.gridLayout_2.addWidget(self.label_2, 0, 0, 1, 1)
self.size_y_spin = QSpinBox(self.groupBox)
self.size_y_spin.setObjectName(u"size_y_spin")
self.size_y_spin.setMaximum(100000)
self.gridLayout_2.addWidget(self.size_y_spin, 0, 3, 1, 1)
self.label_4 = QLabel(self.groupBox)
self.label_4.setObjectName(u"label_4")
self.gridLayout_2.addWidget(self.label_4, 1, 0, 1, 1)
self.size_z_spin = QSpinBox(self.groupBox)
self.size_z_spin.setObjectName(u"size_z_spin")
self.size_z_spin.setMaximum(100000)
self.gridLayout_2.addWidget(self.size_z_spin, 1, 1, 1, 1)
self.gridLayout_2.setColumnStretch(0, 1)
self.gridLayout_2.setColumnStretch(1, 3)
self.gridLayout_2.setColumnStretch(2, 1)
self.gridLayout_2.setColumnStretch(3, 3)
self.verticalLayout.addWidget(self.groupBox)
self.gridLayout_3 = QGridLayout()
self.gridLayout_3.setObjectName(u"gridLayout_3")
self.label_5 = QLabel(Dialog)
self.label_5.setObjectName(u"label_5")
self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 1)
self.data_type_combobox = QComboBox(Dialog)
self.data_type_combobox.addItem("")
self.data_type_combobox.addItem("")
self.data_type_combobox.addItem("")
self.data_type_combobox.addItem("")
self.data_type_combobox.addItem("")
self.data_type_combobox.addItem("")
self.data_type_combobox.addItem("")
self.data_type_combobox.setObjectName(u"data_type_combobox")
self.data_type_combobox.setEditable(False)
self.gridLayout_3.addWidget(self.data_type_combobox, 0, 1, 1, 1)
self.gridLayout_3.setColumnStretch(0, 1)
self.gridLayout_3.setColumnStretch(1, 6)
self.verticalLayout.addLayout(self.gridLayout_3)
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout.addItem(self.verticalSpacer)
self.buttonBox = QDialogButtonBox(Dialog)
self.buttonBox.setObjectName(u"buttonBox")
self.buttonBox.setOrientation(Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok)
self.verticalLayout.addWidget(self.buttonBox)
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept)
self.buttonBox.rejected.connect(Dialog.reject)
QMetaObject.connectSlotsByName(Dialog)
# setupUi
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"\u6587\u4ef6\u5bfc\u5165", None))
self.label.setText(QCoreApplication.translate("Dialog", u"\u6587\u4ef6\u8def\u5f84", None))
self.browse_file.setText(QCoreApplication.translate("Dialog", u"\u6d4f\u89c8", None))
self.groupBox.setTitle(QCoreApplication.translate("Dialog", u"size", None))
self.label_3.setText(QCoreApplication.translate("Dialog", u"height", None))
self.label_2.setText(QCoreApplication.translate("Dialog", u"width", None))
self.label_4.setText(QCoreApplication.translate("Dialog", u"slices", None))
self.label_5.setText(QCoreApplication.translate("Dialog", u"\u6570\u636e\u7c7b\u578b", None))
self.data_type_combobox.setItemText(0, QCoreApplication.translate("Dialog", u"int 8", None))
self.data_type_combobox.setItemText(1, QCoreApplication.translate("Dialog", u"uint 8", None))
self.data_type_combobox.setItemText(2, QCoreApplication.translate("Dialog", u"int 16", None))
self.data_type_combobox.setItemText(3, QCoreApplication.translate("Dialog", u"uint 16", None))
self.data_type_combobox.setItemText(4, QCoreApplication.translate("Dialog", u"int 32", None))
self.data_type_combobox.setItemText(5, QCoreApplication.translate("Dialog", u"uint 32", None))
self.data_type_combobox.setItemText(6, QCoreApplication.translate("Dialog", u"float", None))
# retranslateUi

View File

@ -2,20 +2,23 @@ from pathlib import Path
from PySide6.QtCore import Slot, Qt
from PySide6.QtGui import QIcon, QAction
from PySide6.QtUiTools import loadUiType
from PySide6.QtWidgets import QMainWindow, QSlider
from PySide6.QtWidgets import QSlider, QMainWindow
from vtkmodules.vtkRenderingOpenGL2 import vtkGenericOpenGLRenderWindow
from crystalfly.ui.import_file import ImportFile
from crystalfly.ui.main_window_ui import Ui_MainWindow
from crystalfly.ui.volume_viewer import VolumeViewer
from crystalfly.ui.vtk_viewer import VTKImageViewer
MainWindowType, _ = loadUiType(str(Path(__file__).parent.joinpath("main_window.ui")))
class MainWindow(QMainWindow, MainWindowType):
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.coronal_slider = None
self.transverse_slider = None
self.sagittal_slider = None
self.cross_action = None
self.file_action = None
self.volume = None
@ -23,9 +26,8 @@ class MainWindow(QMainWindow, MainWindowType):
self.sagittal = None
self.coronal = None
self.vtk_render_window = vtkGenericOpenGLRenderWindow()
self.setupUi(self)
self.file_open_dialog = ImportFile()
self.file_open.triggered.connect(self.handle_file_open)
self.ui.file_open.triggered.connect(self.handle_file_open)
self.init_four_pane()
self.init_tool_bar()
self.is_pane_maximum = False
@ -36,8 +38,8 @@ class MainWindow(QMainWindow, MainWindowType):
self.cross_action = QAction(icon=QIcon(str(Path(__file__).parent.parent / "assets" / "plus.png")), text="cross",
parent=self)
self.file_action.triggered.connect(self.handle_file_open)
self.tool_bar.addAction(self.file_action)
self.tool_bar.addAction(self.cross_action)
self.ui.tool_bar.addAction(self.file_action)
self.ui.tool_bar.addAction(self.cross_action)
def init_four_pane(self):
self.coronal = VTKImageViewer(1)
@ -62,25 +64,35 @@ class MainWindow(QMainWindow, MainWindowType):
self.sagittal.range_changed.connect(self.set_slide_range)
self.transverse.range_changed.connect(self.set_slide_range)
self.volume_grid_layout.addWidget(self.volume)
self.coronal_grid_layout.addWidget(self.coronal, 0, 0, 8, 8)
self.gridLayout_3.addWidget(self.sagittal, 0, 0, 8, 8)
self.gridLayout_4.addWidget(self.transverse, 0, 0, 8, 8)
self.ui.volume_grid_layout.addWidget(self.volume)
self.ui.coronal_grid_layout.addWidget(self.coronal, 0, 0, 8, 8)
self.ui.sagittal_grid_layout.addWidget(self.sagittal, 0, 0, 8, 8)
self.ui.transverse_grid_layout.addWidget(self.transverse, 0, 0, 8, 8)
self.ui.widget_coronal.mousePressEvent = self.cell_active
self.ui.widget_sagittal.mousePressEvent = self.cell_active
self.ui.widget_transverse.mousePressEvent = self.cell_active
self.ui.widget_3d.mousePressEvent = self.cell_active
self.coronal_slider = QSlider(Qt.Orientation.Vertical)
self.sagittal_slider = QSlider(Qt.Orientation.Vertical)
self.transverse_slider = QSlider(Qt.Orientation.Vertical)
self.coronal_slider.hide()
self.sagittal_slider.hide()
self.transverse_slider.hide()
self.coronal_slider.valueChanged.connect(self.coronal.image_viewer.SetSlice)
self.sagittal_slider.valueChanged.connect(self.sagittal.image_viewer.SetSlice)
self.transverse_slider.valueChanged.connect(self.transverse.image_viewer.SetSlice)
self.coronal_grid_layout.addWidget(self.coronal_slider, 0, 8, 8, 1)
self.gridLayout_3.addWidget(self.sagittal_slider, 0, 8, 8, 1)
self.gridLayout_4.addWidget(self.transverse_slider, 0, 8, 8, 1)
self.ui.coronal_grid_layout.addWidget(self.coronal_slider, 0, 8, 8, 1)
self.ui.sagittal_grid_layout.addWidget(self.sagittal_slider, 0, 8, 8, 1)
self.ui.transverse_grid_layout.addWidget(self.transverse_slider, 0, 8, 8, 1)
@Slot(int, int)
def set_slide_range(self, quadrant, value):
self.coronal_slider.show()
self.sagittal_slider.show()
self.transverse_slider.show()
if quadrant == 1:
self.coronal_slider.setRange(0, value)
elif quadrant == 3:
@ -91,56 +103,62 @@ class MainWindow(QMainWindow, MainWindowType):
@Slot(int)
def cell_max(self, quadrant: int):
if self.is_pane_maximum:
self.widget_3d.show()
self.widget_coronal.show()
self.widget_sagittal.show()
self.widget_transverse.show()
for x in range(2):
self.ui.four_pane_grid.setRowStretch(x, 1)
self.ui.four_pane_grid.setColumnStretch(x, 1)
self.ui.widget_3d.show()
self.ui.widget_coronal.show()
self.ui.widget_sagittal.show()
self.ui.widget_transverse.show()
self.is_pane_maximum = False
else:
self.widget_3d.hide()
self.widget_coronal.hide()
self.widget_sagittal.hide()
self.widget_transverse.hide()
for x in range(2):
self.ui.four_pane_grid.setRowStretch(x, 0)
self.ui.four_pane_grid.setColumnStretch(x, 0)
self.ui.widget_3d.hide()
self.ui.widget_coronal.hide()
self.ui.widget_sagittal.hide()
self.ui.widget_transverse.hide()
if quadrant == 1:
self.widget_coronal.show()
self.ui.widget_coronal.show()
elif quadrant == 2:
self.widget_3d.show()
self.ui.widget_3d.show()
elif quadrant == 3:
self.widget_sagittal.show()
self.ui.widget_sagittal.show()
elif quadrant == 4:
self.widget_transverse.show()
self.ui.widget_transverse.show()
self.is_pane_maximum = True
@Slot(int)
def cell_active(self, quadrant: int):
self.widget_3d.setStyleSheet(".QWidget {"
"border: none;"
"}")
self.widget_coronal.setStyleSheet(".QWidget {"
"border: none;"
"}")
self.widget_sagittal.setStyleSheet(".QWidget {"
"border: none;"
"}")
self.widget_transverse.setStyleSheet(".QWidget {"
self.ui.widget_3d.setStyleSheet(".QWidget {"
"border: none;"
"}")
self.ui.widget_coronal.setStyleSheet(".QWidget {"
"border: none;"
"}")
if quadrant == 1:
self.widget_coronal.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
self.ui.widget_sagittal.setStyleSheet(".QWidget {"
"border: none;"
"}")
elif quadrant == 2:
self.widget_3d.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
"}")
elif quadrant == 3:
self.widget_sagittal.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
"}")
elif quadrant == 4:
self.widget_transverse.setStyleSheet(".QWidget {"
self.ui.widget_transverse.setStyleSheet(".QWidget {"
"border: none;"
"}")
if quadrant == 1:
self.ui.widget_coronal.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
"}")
elif quadrant == 2:
self.ui.widget_3d.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
"}")
elif quadrant == 3:
self.ui.widget_sagittal.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
"}")
elif quadrant == 4:
self.ui.widget_transverse.setStyleSheet(".QWidget {"
"border: 1px solid tomato;"
"}")
@Slot()
def handle_file_open(self):

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
<width>850</width>
<height>628</height>
</rect>
</property>
<property name="windowTitle">
@ -19,37 +19,12 @@
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout" stretch="16">
<item>
<layout class="QGridLayout" name="four_pane_grid" rowstretch="0,0" columnstretch="0,0,0">
<layout class="QGridLayout" name="four_pane_grid" rowstretch="1,1" columnstretch="1,1">
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="1">
<widget class="QWidget" name="widget_3d" native="true">
<property name="styleSheet">
<string notr="true">border: 1px solid rgb(195, 195, 195);</string>
</property>
<layout class="QGridLayout" name="volume_grid_layout">
<property name="leftMargin">
<number>1</number>
</property>
<property name="topMargin">
<number>1</number>
</property>
<property name="rightMargin">
<number>1</number>
</property>
<property name="bottomMargin">
<number>1</number>
</property>
</layout>
</widget>
</item>
<item row="0" column="2">
<widget class="QWidget" name="widget_coronal" native="true">
<property name="styleSheet">
<string notr="true">border: 1px solid rgb(195, 195, 195);
margin-left: -1px;</string>
</property>
<layout class="QGridLayout" name="coronal_grid_layout">
<property name="leftMargin">
<number>1</number>
@ -66,14 +41,27 @@ margin-left: -1px;</string>
</layout>
</widget>
</item>
<item row="1" column="2">
<widget class="QWidget" name="widget_transverse" native="true">
<property name="styleSheet">
<string notr="true">border: 1px solid rgb(195, 195, 195);
margin-left: -1px;
margin-top: -1px;</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QWidget" name="widget_3d" native="true">
<layout class="QGridLayout" name="volume_grid_layout">
<property name="leftMargin">
<number>1</number>
</property>
<property name="topMargin">
<number>1</number>
</property>
<property name="rightMargin">
<number>1</number>
</property>
<property name="bottomMargin">
<number>1</number>
</property>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="widget_sagittal" native="true">
<layout class="QGridLayout" name="sagittal_grid_layout">
<property name="leftMargin">
<number>1</number>
</property>
@ -90,12 +78,8 @@ margin-top: -1px;</string>
</widget>
</item>
<item row="1" column="1">
<widget class="QWidget" name="widget_sagittal" native="true">
<property name="styleSheet">
<string notr="true">border: 1px solid rgb(195, 195, 195);
margin-top: -1px;</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<widget class="QWidget" name="widget_transverse" native="true">
<layout class="QGridLayout" name="transverse_grid_layout">
<property name="leftMargin">
<number>1</number>
</property>

View File

@ -0,0 +1,95 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'main_window.ui'
##
## Created by: Qt User Interface Compiler version 6.7.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
QCursor, QFont, QFontDatabase, QGradient,
QIcon, QImage, QKeySequence, QLinearGradient,
QPainter, QPalette, QPixmap, QRadialGradient,
QTransform)
from PySide6.QtWidgets import (QApplication, QGridLayout, QHBoxLayout, QMainWindow,
QSizePolicy, QStatusBar, QToolBar, QWidget)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(850, 628)
MainWindow.setStyleSheet(u"# background-color: rgb(50, 50, 50);")
self.file_open = QAction(MainWindow)
self.file_open.setObjectName(u"file_open")
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.horizontalLayout = QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.four_pane_grid = QGridLayout()
self.four_pane_grid.setSpacing(0)
self.four_pane_grid.setObjectName(u"four_pane_grid")
self.widget_coronal = QWidget(self.centralwidget)
self.widget_coronal.setObjectName(u"widget_coronal")
self.coronal_grid_layout = QGridLayout(self.widget_coronal)
self.coronal_grid_layout.setObjectName(u"coronal_grid_layout")
self.coronal_grid_layout.setContentsMargins(1, 1, 1, 1)
self.four_pane_grid.addWidget(self.widget_coronal, 0, 1, 1, 1)
self.widget_3d = QWidget(self.centralwidget)
self.widget_3d.setObjectName(u"widget_3d")
self.volume_grid_layout = QGridLayout(self.widget_3d)
self.volume_grid_layout.setObjectName(u"volume_grid_layout")
self.volume_grid_layout.setContentsMargins(1, 1, 1, 1)
self.four_pane_grid.addWidget(self.widget_3d, 0, 0, 1, 1)
self.widget_sagittal = QWidget(self.centralwidget)
self.widget_sagittal.setObjectName(u"widget_sagittal")
self.sagittal_grid_layout = QGridLayout(self.widget_sagittal)
self.sagittal_grid_layout.setObjectName(u"sagittal_grid_layout")
self.sagittal_grid_layout.setContentsMargins(1, 1, 1, 1)
self.four_pane_grid.addWidget(self.widget_sagittal, 1, 0, 1, 1)
self.widget_transverse = QWidget(self.centralwidget)
self.widget_transverse.setObjectName(u"widget_transverse")
self.transverse_grid_layout = QGridLayout(self.widget_transverse)
self.transverse_grid_layout.setObjectName(u"transverse_grid_layout")
self.transverse_grid_layout.setContentsMargins(1, 1, 1, 1)
self.four_pane_grid.addWidget(self.widget_transverse, 1, 1, 1, 1)
self.four_pane_grid.setRowStretch(0, 1)
self.four_pane_grid.setRowStretch(1, 1)
self.four_pane_grid.setColumnStretch(0, 1)
self.four_pane_grid.setColumnStretch(1, 1)
self.horizontalLayout.addLayout(self.four_pane_grid)
self.horizontalLayout.setStretch(0, 16)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
self.tool_bar = QToolBar(MainWindow)
self.tool_bar.setObjectName(u"tool_bar")
MainWindow.addToolBar(Qt.ToolBarArea.LeftToolBarArea, self.tool_bar)
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Crystalfly", None))
self.file_open.setText(QCoreApplication.translate("MainWindow", u"\u6253\u5f00", None))
self.tool_bar.setWindowTitle(QCoreApplication.translate("MainWindow", u"toolBar_2", None))
# retranslateUi

View File

@ -1,10 +1,14 @@
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingContextOpenGL2
# noinspection PyUnresolvedReferences
import vtkmodules.all
from PySide6.QtCore import Signal
from PySide6.QtGui import QMouseEvent
from vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkCommonDataModel import vtkPiecewiseFunction
from vtkmodules.vtkCommonTransforms import vtkTransform
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera
from vtkmodules.vtkRenderingAnnotation import vtkAxesActor
from vtkmodules.vtkRenderingCore import vtkVolume, vtkVolumeProperty, vtkRenderer, vtkColorTransferFunction
from vtkmodules.vtkRenderingVolume import vtkGPUVolumeRayCastMapper
# noinspection PyUnresolvedReferences
@ -28,6 +32,13 @@ class VolumeViewer(QVTKRenderWindowInteractor):
# self.iren = vtkRenderWindowInteractor()
# self.iren.SetRenderWindow(self.render_window)
transform = vtkTransform()
transform.Translate(1.0, 0, 0)
colors = vtkNamedColors()
self.axes = vtkAxesActor()
self.axes.SetUserTransform(transform)
self.axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetColor(colors.GetColor3d("red"))
self.axes.SetPosition(0, 0, 0)
self.volume_mapper = vtkGPUVolumeRayCastMapper()
self.volume_mapper.SetBlendModeToComposite()
self.volume_mapper.SetUseJittering(1)
@ -76,6 +87,8 @@ class VolumeViewer(QVTKRenderWindowInteractor):
self.render_window.Render()
self.renderer.ResetCamera()
self.renderer.GetActiveCamera().Zoom(1.3)
# self.axes.Zoom(1.3)
self.renderer.AddActor(self.axes)
self.volume.Update()
# self.volume_mapper.Render()

View File

@ -3,8 +3,9 @@ import vtkmodules.vtkRenderingContextOpenGL2
from PySide6.QtCore import Signal
from PySide6.QtGui import QCloseEvent, QMouseEvent
from vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
from vtkmodules.vtkInteractionImage import vtkImageViewer2
from vtkmodules.vtkInteractionImage import vtkResliceImageViewer
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleImage
from vtkmodules.vtkInteractionWidgets import vtkResliceCursorLineRepresentation
from crystalfly.model.image_reader import image_reader_model
@ -21,8 +22,8 @@ class VTKImageViewer(QVTKRenderWindowInteractor):
self.render_window = self.GetRenderWindow()
# image viewer
# self.image_viewer = vtkResliceImageViewer()
self.image_viewer = vtkImageViewer2()
self.image_viewer = vtkResliceImageViewer()
# self.image_viewer = vtkImageViewer2()
# 交互
self.interactor_style = vtkInteractorStyleImage()
@ -32,8 +33,10 @@ class VTKImageViewer(QVTKRenderWindowInteractor):
self.interactor_style.AddObserver("MouseWheelBackwardEvent", self.mouse_wheel_backward_event)
self.iren.Initialize()
# rep = vtkResliceCursorLineRepresentation.SafeDownCast(
# self.image_viewer.GetResliceCursorWidget().GetRepresentation())
rep = vtkResliceCursorLineRepresentation.SafeDownCast(
self.image_viewer.GetResliceCursorWidget().GetRepresentation())
rep.GetResliceCursorActor().GetCursorAlgorithm().SetReslicePlaneNormal(self.quadrant)
self.image_viewer.SetResliceModeToAxisAligned()
# # self.image_viewer.
# rep.GetResliceCursorActor().GetCursorAlgorithm().SetReslicePlaneNormal(0)
#