VTK issueshttps://gitlab.kitware.com/vtk/vtk/-/issues2023-08-22T16:51:46-04:00https://gitlab.kitware.com/vtk/vtk/-/issues/19058Module descriptions should be improved and mandatory2023-08-22T16:51:46-04:00Mathieu Westphal (Kitware)Module descriptions should be improved and mandatoryIn VTK, many modules do not have a good description or do not have a description at all.
This should be improved drastically and a `DESCRIPTION` should be mandatory, at least in VTK.
VTK modules without a description:
```
./Filters/Ope...In VTK, many modules do not have a good description or do not have a description at all.
This should be improved drastically and a `DESCRIPTION` should be mandatory, at least in VTK.
VTK modules without a description:
```
./Filters/OpenTURNS/vtk.module
./Filters/Statistics/vtk.module
./Filters/Reduction/vtk.module
./Filters/ReebGraph/vtk.module
./Filters/Modeling/vtk.module
./Filters/Hybrid/vtk.module
./Filters/Texture/vtk.module
./Filters/ParallelStatistics/vtk.module
./Filters/Selection/vtk.module
./Filters/ParallelVerdict/vtk.module
./Filters/Points/vtk.module
./Filters/SMP/vtk.module
./Filters/Sources/vtk.module
./Filters/ParallelGeometry/vtk.module
./Filters/Parallel/vtk.module
./Filters/Python/vtk.module
./Filters/ParallelDIY2/vtk.module
./Filters/Programmable/vtk.module
./Filters/ParallelFlowPaths/vtk.module
./Filters/Verdict/vtk.module
./Filters/ParallelImaging/vtk.module
./Filters/Topology/vtk.module
./Filters/ParallelMPI/vtk.module
./Wrapping/Tools/vtk.module
./Wrapping/PythonCore/vtk.module
./Geovis/GDAL/vtk.module
./Geovis/Core/vtk.module
./IO/CGNS/vtk.module
./IO/GeoJSON/vtk.module
./IO/PIO/vtk.module
./IO/ParallelExodus/vtk.module
./IO/MPIParallel/vtk.module
./IO/ADIOS2/vtk.module
./IO/Geometry/vtk.module
./IO/HDF/vtk.module
./IO/Exodus/vtk.module
./IO/ODBC/vtk.module
./IO/Xdmf3/vtk.module
./IO/H5Rage/vtk.module
./IO/IOSS/vtk.module
./IO/LAS/vtk.module
./IO/FFMPEG/vtk.module
./IO/MINC/vtk.module
./IO/XMLParser/vtk.module
./IO/OggTheora/vtk.module
./IO/Export/vtk.module
./IO/ParallelXML/vtk.module
./IO/Image/vtk.module
./IO/TecplotTable/vtk.module
./IO/CONVERGECFD/vtk.module
./IO/OpenVDB/vtk.module
./IO/Movie/vtk.module
./IO/MySQL/vtk.module
./IO/XML/vtk.module
./IO/Xdmf2/vtk.module
./IO/Cesium3DTiles/vtk.module
./IO/ParallelXdmf3/vtk.module
./IO/PLY/vtk.module
./IO/CellGrid/vtk.module
./IO/Legacy/vtk.module
./IO/VeraOut/vtk.module
./IO/Infovis/vtk.module
./IO/MotionFX/vtk.module
./IO/EnSight/vtk.module
./IO/TRUCHAS/vtk.module
./IO/ParallelLSDyna/vtk.module
./IO/GDAL/vtk.module
./IO/AMR/vtk.module
./IO/Parallel/vtk.module
./IO/SegY/vtk.module
./IO/VPIC/vtk.module
./IO/Core/vtk.module
./IO/LSDyna/vtk.module
./IO/ExportGL2PS/vtk.module
./IO/PostgreSQL/vtk.module
./IO/SQL/vtk.module
./IO/H5part/vtk.module
./IO/ExportPDF/vtk.module
./IO/Asynchronous/vtk.module
./IO/Video/vtk.module
./IO/PDAL/vtk.module
./IO/MPIImage/vtk.module
./IO/Import/vtk.module
./IO/CityGML/vtk.module
./IO/NetCDF/vtk.module
./IO/ParallelNetCDF/vtk.module
./Rendering/LOD/vtk.module
./Rendering/ContextOpenGL2/vtk.module
./Rendering/ZSpace/vtk.module
./Rendering/VR/vtk.module
./Rendering/FreeTypeFontConfig/vtk.module
./Rendering/VtkJS/vtk.module
./Rendering/LICOpenGL2/vtk.module
./Rendering/GL2PSOpenGL2/vtk.module
./Rendering/Annotation/vtk.module
./Rendering/FFMPEGOpenGL2/vtk.module
./Rendering/Label/vtk.module
./Rendering/SceneGraph/vtk.module
./Rendering/Image/vtk.module
./Rendering/FreeType/vtk.module
./Rendering/UI/vtk.module
./Rendering/Matplotlib/vtk.module
./Rendering/RayTracing/vtk.module
./Rendering/PythonContext2D/vtk.module
./Rendering/OpenVR/vtk.module
./Rendering/CellGrid/vtk.module
./Rendering/VolumeAMR/vtk.module
./Rendering/OpenXR/vtk.module
./Rendering/External/vtk.module
./Rendering/OpenXRRemoting/vtk.module
./Rendering/VolumeOpenGL2/vtk.module
./Rendering/Tk/vtk.module
./Rendering/Parallel/vtk.module
./Rendering/Volume/vtk.module
./Rendering/Core/vtk.module
./Rendering/ParallelLIC/vtk.module
./Rendering/OpenGL2/vtk.module
./Rendering/WebGPU/vtk.module
./Rendering/Context2D/vtk.module
./Rendering/HyperTreeGrid/vtk.module
./Rendering/Qt/vtk.module
./Common/Archive/vtk.module
./Common/Python/vtk.module
./Infovis/Boost/vtk.module
./Infovis/Layout/vtk.module
./Infovis/BoostGraphAlgorithms/vtk.module
./Infovis/Core/vtk.module
./GUISupport/MFC/vtk.module
./GUISupport/QtSQL/vtk.module
./GUISupport/QtQuick/vtk.module
./GUISupport/Qt/vtk.module
./Parallel/MPI/vtk.module
./Parallel/Core/vtk.module
./Parallel/MPI4Py/vtk.module
./Web/WebGLExporter/vtk.module
./Web/Python/vtk.module
./Web/Core/vtk.module
./Views/Infovis/vtk.module
./Views/Core/vtk.module
./Views/Context2D/vtk.module
./Views/Qt/vtk.module
./Imaging/Statistics/vtk.module
./Imaging/Stencil/vtk.module
./Imaging/Fourier/vtk.module
./Imaging/Morphological/vtk.module
./Imaging/Hybrid/vtk.module
./Imaging/Sources/vtk.module
./Imaging/General/vtk.module
./Imaging/Math/vtk.module
./Imaging/Core/vtk.module
./Imaging/OpenGL2/vtk.module
./Imaging/Color/vtk.module
./Interaction/Widgets/vtk.module
./Interaction/Image/vtk.module
./Interaction/Style/vtk.module
./Testing/GenericBridge/vtk.module
./Testing/Rendering/vtk.module
./Testing/Core/vtk.module
./Testing/IOSQL/vtk.module
./Testing/DataModel/vtk.module
```https://gitlab.kitware.com/vtk/vtk/-/issues/19057vtkFiltersHybrid should be split into more modules2023-10-19T17:54:30-04:00Mathieu Westphal (Kitware)vtkFiltersHybrid should be split into more modulesvtkFiltersHybrid contains two types of filters, temporal manipulation filters and rendering related filters. I'm not sure as to what was that module supposed to contain initially but the dependency against vtkRenderingCore makes most of ...vtkFiltersHybrid contains two types of filters, temporal manipulation filters and rendering related filters. I'm not sure as to what was that module supposed to contain initially but the dependency against vtkRenderingCore makes most of the filters here unusable in other core filters.
The following filters should be moved into their own rendering related module (`Filters/Rendering` ):
- vtkAdaptiveDataSetSurfaceFilter
- vtkDepthSortPolyData
- vtkPolyDataSilhouette
- vtkRenderLargeImage
The following filters should be moved into their own temporal related modele (`Filters/Temporal` /):
- vtkDSPFilterGroup/vtkDSPFilterDefinition
- vtkForceTime
- vtkGenerateTimeSteps
- vtkTemporal*
Other filters should be moved to other related modules:
- vtkBSplineTransform/vtkGridTransform -> Common/Transform
- vtkEarthSource -> Filters/Sources
- vtkFacetReader -> IO/Geometry
- vtkGreedyTerrainDecimation -> Filters/General
- vtkWeightedTransformFilter -> Filters/General
- vtkImageToPolyDataFilter -> Filters/General
- vtkImplicitModeler -> Filters/General
- vtkPCAAnalysisFilter -> Filters/General
- vtkProcrustesAlignmentFilter -> Filters/General
- vtkProjectedTerrainPath -> Filters/General
- vtkTransformToGrid -> Filters/Generalhttps://gitlab.kitware.com/vtk/vtk/-/issues/19054TestOSPRayCache is flaky2023-08-21T03:39:43-04:00Sankhesh JhaveriTestOSPRayCache is flaky![a](/uploads/21e3752086cfac6259c9fd27006d71b4/a.png)
Excluded in !10422![a](/uploads/21e3752086cfac6259c9fd27006d71b4/a.png)
Excluded in !10422https://gitlab.kitware.com/vtk/vtk/-/issues/19051SPDX: Improve license parsing to check license identifier and avoid duplicate2023-08-17T04:18:15-04:00Mathieu Westphal (Kitware)SPDX: Improve license parsing to check license identifier and avoid duplicateImprove license parsing to check license identifier and avoid duplicate
Currently, vtkCommonCore.spdx license identifier looks like that:
```
PackageLicenseConcluded: BSD-3-Clause AND BSD-3-Clause AND Apache-2.0 AND BSD-3-Clause AND MI...Improve license parsing to check license identifier and avoid duplicate
Currently, vtkCommonCore.spdx license identifier looks like that:
```
PackageLicenseConcluded: BSD-3-Clause AND BSD-3-Clause AND Apache-2.0 AND BSD-3-Clause AND MIT AND BSD-3-Clause AND BSD-2-Clause AND LicenseRef-BSD-3-Clause-Sandia-USGov
```
It would be better to actually parse the content of the license identifiers, including the `AND` and other logical operators and make sure license identifiers are actually valid.https://gitlab.kitware.com/vtk/vtk/-/issues/19050Fails to build vtk 9.3.0.rc12023-12-29T14:10:21-05:00مهدي شينون (Mehdi Chinoune)Fails to build vtk 9.3.0.rc1```
FAILED: Remote/MomentInvariants/MomentInvariants/CMakeFiles/MomentInvariants.dir/vtkmComputeMoments.cxx.obj
D:\Programs\msys64_test\clang64\bin\clang++.exe -DKISSFFT_DLL_IMPORT=1 -DMomentInvariants_EXPORTS -DTBB_VERSION_MAJOR=2021 -D...```
FAILED: Remote/MomentInvariants/MomentInvariants/CMakeFiles/MomentInvariants.dir/vtkmComputeMoments.cxx.obj
D:\Programs\msys64_test\clang64\bin\clang++.exe -DKISSFFT_DLL_IMPORT=1 -DMomentInvariants_EXPORTS -DTBB_VERSION_MAJOR=2021 -DVTKMDIY_MP
I_AS_LIB -DVTKMDIY_NO_THREADS -DVTK_ENABLE_VTKM_OVERRIDES=0 -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=1 -Dkiss_fft_scalar=double
-DVTKM_AVAILABLE=1 -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Remote/MomentInvariants/MomentInvariants -ID:/dev/MINGW-pack
ages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Remote/MomentInvariants/MomentInvariants -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/F
ilters/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Filters/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG6
4/Common/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Common/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG
64/Common/DataModel -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Common/DataModel -ID:/dev/MINGW-packages/mingw-w64-vtk/src/
build-CLANG64/Common/Math -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Common/Math -ID:/dev/MINGW-packages/mingw-w64-vtk/src
/build-CLANG64/ThirdParty/kissfft/vtkkissfft -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/kissfft/vtkkissfft -ID:
/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Common/Transforms -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Common/Tr
ansforms -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Common/ExecutionModel -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.
3.0.rc1/Common/ExecutionModel -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Common/Misc -ID:/dev/MINGW-packages/mingw-w64-vtk
/src/VTK-9.3.0.rc1/Common/Misc -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Imaging/Core -ID:/dev/MINGW-packages/mingw-w64-v
tk/src/VTK-9.3.0.rc1/Imaging/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Accelerators/Vtkm/Filters -ID:/dev/MINGW-pack
ages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Accelerators/Vtkm/Filters -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Accelerators/Vtk
m/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Accelerators/Vtkm/Core -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-C
LANG64/ThirdParty/vtkm/vtkvtkm -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/vtkm/vtkvtkm -ID:/dev/MINGW-packages/
mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/thirdparty/optionparser -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VT
K-9.3.0.rc1/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/thirdparty/diy -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/vtkm/v
tkvtkm/vtk-m/vtkm/thirdparty/lcl/vtkmlcl -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/vtkm/vtkvtkm/vtk-m -ID:/dev
/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/ThirdParty/vtkm/vtkvtkm/vtk-m/include -ID:/dev/MINGW-packages/mingw-w64-vtk/src/build-C
LANG64/Accelerators/Vtkm/DataModel -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Accelerators/Vtkm/DataModel -ID:/dev/MINGW-p
ackages/mingw-w64-vtk/src/build-CLANG64/Filters/General -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Filters/General -ID:/de
v/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Filters/Geometry -ID:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Filters/Geome
try -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Utilities/KWIML -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/VTK
-9.3.0.rc1/Utilities/KWIML -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/Utilities/KWSys -isystem D:/dev/MINGW-package
s/mingw-w64-vtk/src/VTK-9.3.0.rc1/Utilities/KWSys -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/ThirdParty/kissfft -is
ystem D:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/kissfft -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/build-C
LANG64/ThirdParty/eigen -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/eigen -isystem D:/Programs/msys64_tes
t/clang64/include/eigen3 -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/ThirdParty/vtkm -isystem D:/dev/MINGW-packages/
mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/vtkm -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/ThirdParty/vtkm/vtkvtkm/
vtk-m/vtkm/thirdparty/diy/vtkmdiy/include -isystem D:/dev/MINGW-packages/mingw-w64-vtk/src/build-CLANG64/ThirdParty/vtkm/vtkvtkm/vtk-m/
vtkm/thirdparty/diy/vtkmdiy/include/vtkmdiy/mpi -march=nocona -msahf -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -Wno-attribute
s -Wno-ignored-attributes -Wno-deprecated-declarations -O3 -DNDEBUG -std=c++14 -fvisibility=hidden -fvisibility-inlines-hidden -pthrea
d -fopenmp=libomp -ffunction-sections -fopenmp=libomp -MD -MT Remote/MomentInvariants/MomentInvariants/CMakeFiles/MomentInvariants.dir/
vtkmComputeMoments.cxx.obj -MF Remote\MomentInvariants\MomentInvariants\CMakeFiles\MomentInvariants.dir\vtkmComputeMoments.cxx.obj.d -o
Remote/MomentInvariants/MomentInvariants/CMakeFiles/MomentInvariants.dir/vtkmComputeMoments.cxx.obj -c D:/dev/MINGW-packages/mingw-w64
-vtk/src/VTK-9.3.0.rc1/Remote/MomentInvariants/MomentInvariants/vtkmComputeMoments.cxx
D:/dev/MINGW-packages/mingw-w64-vtk/src/VTK-9.3.0.rc1/Remote/MomentInvariants/MomentInvariants/vtkmComputeMoments.cxx:7:10: fatal error
: 'vtkm/filter/ComputeMoments.h' file not found
#include <vtkm/filter/ComputeMoments.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
I think MomentInvariants repo should be updated/fixed to build against vtkm
`vtkm/filter/ComputeMoments.h` was deleted in https://gitlab.kitware.com/vtk/vtk-m/-/commit/3e1339f9a7bdd83b6087a4e655d0fea15214bfe0Vicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk/-/issues/19049Use `FORTIFY_SOURCE=3` somewhere on CI2023-08-15T08:11:31-04:00Sean McBrideUse `FORTIFY_SOURCE=3` somewhere on CISince glibc 2.34 and GCC 12, there is a new FORTIFY_SOURCE level (3) that would be nice to have on CI.
You can read more about it here for example:
https://developers.redhat.com/articles/2022/09/17/gccs-new-fortification-level#
@ben.b...Since glibc 2.34 and GCC 12, there is a new FORTIFY_SOURCE level (3) that would be nice to have on CI.
You can read more about it here for example:
https://developers.redhat.com/articles/2022/09/17/gccs-new-fortification-level#
@ben.boeckel is there a bot with new enough glibc / gcc that this could be added to?
(See also #18100.)https://gitlab.kitware.com/vtk/vtk/-/issues/19047Bad module dependency for vtkGenerateTimeSteps2023-08-22T09:22:33-04:00Charly BollingerBad module dependency for vtkGenerateTimeSteps## Description
The useful `vtkGenerateTimeSteps` filter can be found in the `VTK::FiltersHybrid` module. Several sources could need this filter to avoid code duplication, if they wanted the source to allow time steps generation. This is...## Description
The useful `vtkGenerateTimeSteps` filter can be found in the `VTK::FiltersHybrid` module. Several sources could need this filter to avoid code duplication, if they wanted the source to allow time steps generation. This is the case of the `vtkTimeSourceExample` and the more recent `vtkSpatioTemporalHarmonicsSource`.
However, the `VTK::FiltersHybrid` module implies adding strong dependencies, such as the `VTK::RenderingCore` module. This would be bad to need the rendering module to be able to create sources.
## Possible fixes
From the best to the worst solution imo:
* The `vtkGenerateTimeSteps` filter should be moved out of this module, in a better fitting module such as `VTK::FiltersCore` or `VTK::FiltersGeneral`.
* The `VTK::FiltersHybrid` module should move every filter depending on rendering in a more appropriate module, to remove the `VTK::RenderingCore` module dependency.
* Sources needing the `vtkGenerateTimeSteps` filter should be moved in the `VTK::FiltersHybrid` module.https://gitlab.kitware.com/vtk/vtk/-/issues/19046ThirdParty: audit `vtk_module_find_package` calls for `PRIVATE_IF_SHARED` eli...2023-08-08T09:26:05-04:00Ben BoeckelThirdParty: audit `vtk_module_find_package` calls for `PRIVATE_IF_SHARED` eligibilitySee !10393.See !10393.https://gitlab.kitware.com/vtk/vtk/-/issues/19044vtkNonOverlappingAMRLevelIdScalars appears to be unused and should be removed2023-08-16T08:30:38-04:00Jeremy NimmervtkNonOverlappingAMRLevelIdScalars appears to be unused and should be removedAt version v9.2.6, these two source files appear to be unmentioned in any CMakeLists.txt in the project:
- VTK/Filters/General/vtkNonOverlappingAMRLevelIdScalars.h
- VTK/Filters/General/vtkNonOverlappingAMRLevelIdScalars.cxx
They also h...At version v9.2.6, these two source files appear to be unmentioned in any CMakeLists.txt in the project:
- VTK/Filters/General/vtkNonOverlappingAMRLevelIdScalars.h
- VTK/Filters/General/vtkNonOverlappingAMRLevelIdScalars.cxx
They also have errors that prevent them from compiling, if someone were to try to do it.
I suspect they are dead code that should be removed from git.https://gitlab.kitware.com/vtk/vtk/-/issues/19043QVTKRenderWindowInteractor does not work with QWebEnginView2023-08-16T08:31:03-04:00simon klemencQVTKRenderWindowInteractor does not work with QWebEnginViewWhen i try to use QVTKRenderWindowInteractor and QWebEngineView in one application, the whole application breaks.
No proper content is drawn in the main window and only some glitches appear.
In the terminal the following logs are produc...When i try to use QVTKRenderWindowInteractor and QWebEngineView in one application, the whole application breaks.
No proper content is drawn in the main window and only some glitches appear.
In the terminal the following logs are produced:
```
QOpenGLContext::makeCurrent() called with non-opengl surface 0x56440d496570
QRhiGles2: Failed to make context current. Expect bad things to happen.
```
```
python 3.11.3
PySide6 == 6.5.1.1
vtk == 9.2.6
```
Reproducer:
``` python
import sys
from typing import Any
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout
from PySide6.QtWebEngineWidgets import QWebEngineView
from vtkmodules.vtkFiltersSources import vtkConeSource
from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper, vtkRenderer
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
class RenderWidget(QWidget):
def __init__(self) -> None:
super().__init__()
self.vtk = QVTKRenderWindowInteractor(self)
ren = vtkRenderer()
self.vtk.GetRenderWindow().AddRenderer(ren)
cone = vtkConeSource()
cone.SetResolution(8)
coneMapper = vtkPolyDataMapper()
coneMapper.SetInputConnection(cone.GetOutputPort())
coneActor = vtkActor()
coneActor.SetMapper(coneMapper)
ren.AddActor(coneActor)
self.vtk.Initialize()
self.vtk.Start()
class App(QApplication):
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
def run(self) -> None:
self.exec()
class MainWidget(QWidget):
def __init__(self, parent: QWidget | None = None) -> None:
super().__init__(parent)
self._layout = QVBoxLayout()
self.setLayout(self._layout)
self.vtk_view = RenderWidget()
self._layout.addWidget(self.vtk_view)
self.web_view = QWebEngineView(self)
self._layout.addWidget(self.web_view)
def main(argv: Any) -> None:
app = App(argv)
window = QMainWindow()
# create the widget
widget = MainWidget()
window.setCentralWidget(widget)
window.show()
app.run()
if __name__ == "__main__":
main(sys.argv)
```https://gitlab.kitware.com/vtk/vtk/-/issues/19042Remove vtkContourFilter's `ComputeNormals = -1` hack2023-08-02T15:55:27-04:00Sean McBrideRemove vtkContourFilter's `ComputeNormals = -1` hackIn my work adding `VTK_USE_FUTURE_BOOL`, I noticed vtkContourFliter's `ComputeNormals` ivar looks like it should be boolean, but is in fact tri-state: 0, 1 and -1.
The ctor does:
```c++
this->ComputeNormals = -1;
```
later there is ...In my work adding `VTK_USE_FUTURE_BOOL`, I noticed vtkContourFliter's `ComputeNormals` ivar looks like it should be boolean, but is in fact tri-state: 0, 1 and -1.
The ctor does:
```c++
this->ComputeNormals = -1;
```
later there is this:
```c++
// -1 == uninitialized. This setting used to be ignored, and we preserve the
// old behavior for backward compatibility. Normals will be computed here
// if and only if the user has explicitly set the option.
if (this->ComputeNormals != 0 && this->ComputeNormals != -1)
```
Computing normals is expensive, so ideally the ctor should set `ComputeNormals = 0`. If you do so it today's master, one test fails: `IOGeometryPython-testHexaPenta`.
There are clearly code paths that this test exercises that expect normals to be computed by default. Those should I guess be changed to explicitly request that normals be computed.https://gitlab.kitware.com/vtk/vtk/-/issues/19041SDPX: vtkEncodeString adds hard coded VTK license and copyright2023-08-01T05:37:38-04:00Mathieu Westphal (Kitware)SDPX: vtkEncodeString adds hard coded VTK license and copyrightvtkEncodeString adds hard coded VTK license and copyright, it should be configurable.vtkEncodeString adds hard coded VTK license and copyright, it should be configurable.https://gitlab.kitware.com/vtk/vtk/-/issues/19040TestRenderView and TestGraphLayoutView are flaky2023-07-31T11:01:09-04:00Mathieu Westphal (Kitware)TestRenderView and TestGraphLayoutView are flakyTestRenderView and TestGraphLayoutView are flaky
![a](/uploads/4a275c0ac7c243482e0dddc176ae9b67/a.png)
![a](/uploads/8975b89c1aac14e5979075c514cabba3/a.png)
They have been excluded in: https://gitlab.kitware.com/vtk/vtk/-/merge_reques...TestRenderView and TestGraphLayoutView are flaky
![a](/uploads/4a275c0ac7c243482e0dddc176ae9b67/a.png)
![a](/uploads/8975b89c1aac14e5979075c514cabba3/a.png)
They have been excluded in: https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10375
They started failing out of the blue on June 5 2023. No incriminating commit was identified at the time.https://gitlab.kitware.com/vtk/vtk/-/issues/19037[Bug] RenderingWebXR does not make controller bindings available2024-03-01T17:42:10-05:00tbirdso[Bug] RenderingWebXR does not make controller bindings available## Background
I modified the `https://examples.vtk.org/site/Cxx/GeometricObjects/OpenVRCone/` example for `RenderingOpenXR` to test Meta Quest support.
## Expected Behavior
The build succeeds and controller bindings are available when...## Background
I modified the `https://examples.vtk.org/site/Cxx/GeometricObjects/OpenVRCone/` example for `RenderingOpenXR` to test Meta Quest support.
## Expected Behavior
The build succeeds and controller bindings are available when the example runs.
## Observed Behavior
Runtime failure:
```plaintext
Unable to open openXR action file : D:/repos/vtk-openxr-test-bld/Release/vtk_openxr_actions.json
```
## Steps To Reproduce
1. Build VTK with OpenXR support
2. Download `https://examples.vtk.org/site/Cxx/GeometricObjects/OpenVRCone/`
3. Replace VTK VR components with XR components
4. `cmake --build . --config "Release"`
5. Run the executable
## Additional Notes
Manually copying OpenXR `.json` bindings into the Release folder allows the scene to run, but no controller input is detected. This may be due to missing Quest 2 bindings rather than file locations, though.
cc https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10363#note_1393147https://gitlab.kitware.com/vtk/vtk/-/issues/19036SPDX: Improve CI2023-07-28T07:17:24-04:00Mathieu Westphal (Kitware)SPDX: Improve CISPDX CI is running on most CI except:
- el7-mindeps-python-qt5
- fedora34-mpi-renderless
- wheels*
It would be nice to investigate and understand why it is not working on these CI.SPDX CI is running on most CI except:
- el7-mindeps-python-qt5
- fedora34-mpi-renderless
- wheels*
It would be nice to investigate and understand why it is not working on these CI.https://gitlab.kitware.com/vtk/vtk/-/issues/19034vtkHardwarePicker breaks vtkOpenGLHardwareSelector2023-08-16T11:41:25-04:00Arnaud afavtkHardwarePicker breaks vtkOpenGLHardwareSelectorHello,
`vtkOpenGLHardwareSelector` and `vtkHardwarePicker` works well if used separately but if at some point both are instanciated/used it seems `vtkOpenGLHardwareSelector` stops returning meaningful selections.
I tested on Debian 12,...Hello,
`vtkOpenGLHardwareSelector` and `vtkHardwarePicker` works well if used separately but if at some point both are instanciated/used it seems `vtkOpenGLHardwareSelector` stops returning meaningful selections.
I tested on Debian 12, python3.11, PySide2 (Qt5.15) with custom built VTKs 9.2.2 and today's master branch. Attached is a python script. The workflow goes like this (duplicated description in python script):
1. Use right mouse button to trigger a selector. The selector returns the correct number of props depending if the mouse was on an actor or not.
2. Use left mouse button to trigger a picker. The picker returns correct values for cell Id (prop id, point id would be correct if printed).
3. BREAKAGE: Again use right mouse button. The `selector.GetNumberOfNodes()` always returns 0 even if the mouse event happened over an actor.
After this workflow the picker continues to work correctly but any newly instanciated selector is useless. A variant of this issue is possible when a single instance of a picker is stored in the widget. In this variant scenario a segfault can happen in `vtkOpenGLRenderWindow::UpdateGeometry` when trying to use the selector.
Digging in the VTK code:
* In `vtkHardwareSelector::GetPixelInformation`: `this->Convert(display_position, this->PixBuffer[ACTOR_PASS]);` gives `-1`. So `PixBuffer` is not properly set earlier?
* In `vtkOpenGLHardwareSelector::SavePixelBuffer` I activated the code protected by `vtkOpenGLHardwareSelectorDEBUG`. This dump the pixels defined by the area into .pnm files. At first the pixels are red (because hovering an actor right?) but after the `picker.Pick` call, the dumped files are empty as if there was no actor/prop underneath. But the render window is still showing the actors correctly. I would expect the actors to disappear but my understanding may be completely off.
I stopped at `vtkOpenGLRenderWindow::ReadPixels` and went there to ask for help. Maybe I am missing some flags? I tried `Begin/EndSelection` but since `Select` already calls those 2 methods I figured I did not need to call them on my side?
Again thanks a lot for your time. I hope the session is clear.
Best,
[hw_picker_breaking_selector.py](/uploads/a5288ba60924630dce023948b33e2e2b/hw_picker_breaking_selector.py)https://gitlab.kitware.com/vtk/vtk/-/issues/19032TestSockets in Parallel/Core has not run since VTK 62023-07-25T09:28:37-04:00David GobbiTestSockets in Parallel/Core has not run since VTK 6During the VTK 6 modularization, `TestSockets.py` was moved from `Parallel` to `Parallel/Core` but was never made to run at its new location. The purpose of `TestSockets.py` is to verify that `vtkSocket` works properly. Note that this ...During the VTK 6 modularization, `TestSockets.py` was moved from `Parallel` to `Parallel/Core` but was never made to run at its new location. The purpose of `TestSockets.py` is to verify that `vtkSocket` works properly. Note that this test also has two C++ components, `SocketServer.cxx` and `SocketClient.cxx`, that must be compiled into executables so that they can be used by `TestSockets.py`.
See also #18781 which mentions other inactive VTK Python tests that have been re-activated.
For reference, in VTK 5 this test was run as follows:
```
ADD_TEST(Sockets-image ${PYTHON_EXECUTABLE}
${VTK_SOURCE_DIR}/Parallel/Testing/Cxx/TestSockets.py
${EXECUTABLE_OUTPUT_PATH}/SocketServer
${EXECUTABLE_OUTPUT_PATH}/SocketClient
${VTK_DATA_ROOT}
Baseline/Parallel/SocketClient.cxx.png
${VTK_BINARY_DIR}/Testing/Temporary)
```https://gitlab.kitware.com/vtk/vtk/-/issues/19029SPDX: Improve tracking between update.sh and SPDX info in 3rd parties2023-07-26T07:37:12-04:00Mathieu Westphal (Kitware)SPDX: Improve tracking between update.sh and SPDX info in 3rd partiesThe following discussion from !10272 should be addressed:
- [ ] @ben.boeckel started a [discussion](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10272#note_1384757): (+4 comments)
> This is going to get out-of-sync very eas...The following discussion from !10272 should be addressed:
- [ ] @ben.boeckel started a [discussion](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10272#note_1384757): (+4 comments)
> This is going to get out-of-sync very easily. Can we read from `update.sh` directly where possible? This can be a VTK-private API (i.e., not installed).Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/19028Fail to load polydata from ASCII .vtk file if any array contain a nan value2023-07-25T11:11:20-04:00Andras LassoFail to load polydata from ASCII .vtk file if any array contain a nan valueIf there is an invalid value in any of the data arrays then the saved an ASCII .vtk file then VTK cannot read the file that it has written.
The invalid value is saved as `-nan(ind)`. When you try to load it with VTK then you get the err...If there is an invalid value in any of the data arrays then the saved an ASCII .vtk file then VTK cannot read the file that it has written.
The invalid value is saved as `-nan(ind)`. When you try to load it with VTK then you get the error: `ERROR: In vtkDataReader.cxx, line 1978\nvtkPolyDataReader (000002D320606C40): Unsupported data type:`
Saving/loading works if .vtp file or binary .vtk file is used.
How to reproduce:
- Download and unzip sample data from https://github.com/lassoan/PublicTestingData/releases/download/data/20230723-VtkFileWithNanLoadFailed.zip
- Load Network-binary.vtk using vtkPolyDataReader
- Save Network-ascii.vtk using vtkPolyDataReader using ASCII format (for convenience, this file is included in the sample data set, too)
- Load the just created Network-ascii.vtk using vtkPolyDataReader => ERROR!
See user error report at: https://discourse.slicer.org/t/error-exporting-and-importing-vtk/30733/5?u=lassoanhttps://gitlab.kitware.com/vtk/vtk/-/issues/19025Cxx tests that aren't in any CMakeLists.txt2023-07-25T08:25:34-04:00David GobbiCxx tests that aren't in any CMakeLists.txtThere are several tests that exist that aren't part of the build.
Some of these were accidentally dropped when the VTK directory structure was shuffled.
Ideally, these tests should be:
1. added to the CMakeLists.txt, if they run
2. fi...There are several tests that exist that aren't part of the build.
Some of these were accidentally dropped when the VTK directory structure was shuffled.
Ideally, these tests should be:
1. added to the CMakeLists.txt, if they run
2. fixed, if they just need simple updates
3. deleted, if they are no longer relevant
- [ ] `Charts/Core/Testing/Cxx/TestFreeTypeRender.cxx`
- [ ] `Charts/Core/Testing/Cxx/TestQtContextUnicode.cxx`
- [ ] `Charts/Core/Testing/Cxx/TestQtDiagram.cxx`
- [ ] `Common/Core/Testing/Cxx/TestVariantArray.cxx`
- [ ] `Common/DataModel/Testing/Cxx/LagrangeInterpolation.cxx`
- [ ] `Common/DataModel/Testing/Cxx/PointLocator.cxx`
- [ ] `Domains/Chemistry/Testing/Cxx/TestOpenQubeElectronicData.cxx`
- [ ] `Domains/Chemistry/Testing/Cxx/TestOpenQubeMOPACDensity.cxx`
- [ ] `Domains/Chemistry/Testing/Cxx/TestOpenQubeMOPACOrbital.cxx`
- [ ] `Filters/Geometry/Testing/Cxx/TestRectilinearGridPartitioner.cxx`
- [ ] `Filters/Geometry/Testing/Cxx/TestStructuredGridPartitioner.cxx`
- [ ] `Filters/ParallelDIY2/Testing/Cxx/TestPStructuredGridGhostDataGenerator.cxx`
- [ ] `Filters/Sources/Testing/Cxx/ArrayAPIDenseCoordinates.cxx`
- [ ] `Filters/Sources/Testing/Cxx/ArrayDiagonalMatrixSource.cxx`
- [ ] `IO/AMR/Testing/Cxx/TestAMRReadWrite.cxx`
- [ ] `IO/Export/Testing/Cxx/TestLinePlotGL2PS.cxx`
- [ ] `IO/Infovis/Testing/Cxx/TestDelimitedTextReader.cxx`
- [ ] `IO/Infovis/Testing/Cxx/TestTulipReader.cxx`
- [ ] `IO/Infovis/Testing/Cxx/TestTulipReaderClusters.cxx`
- [ ] `IO/SQL/Testing/Cxx/TestSQLGraphReader.cxx`
- [ ] `Infovis/Core/Testing/Cxx/TestKCoreDecomposition.cxx`
- [ ] `Infovis/Core/Testing/Cxx/TestStringToCategory.cxx`
- [ ] `Infovis/Layout/Testing/Cxx/TestArcEdges.cxx`
- [ ] `Infovis/Layout/Testing/Cxx/TestGroupLeafVertices.cxx`
- [ ] `Infovis/Layout/Testing/Cxx/TestKCoreLayout.cxx`
- [ ] `Infovis/Layout/Testing/Cxx/TestKdTreeBoxSelection.cxx`
- [ ] `Infovis/Layout/Testing/Cxx/TestPruneTreeFilter.cxx`
- [ ] `Infovis/Layout/Testing/Cxx/TestSimple3DCirclesStrategy.cxx`
- [ ] `Interaction/Widgets/Testing/Cxx/TestAxesTransformWidget.cxx`
- [ ] `Interaction/Widgets/Testing/Cxx/vtkOrientedPolygonalHandleRepresentation3DTest1.cxx`
- [ ] `Interaction/Widgets/Testing/Cxx/vtkPolygonalHandleRepresentation3DTest1.cxx`
- [x] `Rendering/Core/Testing/Cxx/TestAreaPickerMultiblock.cxx` (removed in !10332)
- [ ] `Rendering/Core/Testing/Cxx/TestTDxGeo.cxx`
- [ ] `Rendering/Core/Testing/Cxx/TestTranslucentLUTDepthPeelingPass.cxx`
- [ ] `Rendering/OpenGL2/Testing/Cxx/TestFluidDemo.cxx`
- [ ] `Rendering/OpenGL2/Testing/Cxx/TestValuePass2.cxx`
- [ ] `Views/Infovis/Testing/Cxx/TestQtLabelStrategy.cxx`
- [ ] `Views/Infovis/Testing/Cxx/TestQtTreeRingLabeler.cxx`Ben BoeckelBen Boeckel