VTK issueshttps://gitlab.kitware.com/vtk/vtk/-/issues2021-08-26T07:57:47-04:00https://gitlab.kitware.com/vtk/vtk/-/issues/18265Fails to build against HDF5 1.12.12021-08-26T07:57:47-04:00Bruno PaganiFails to build against HDF5 1.12.1There is a build failure when building against HDF5 1.12.1 that comes from https://gitlab.kitware.com/vtk/vtk/-/blob/master/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Controller.hpp.
I’ve opened an issue at https://gitlab.kitware.com/xdmf/x...There is a build failure when building against HDF5 1.12.1 that comes from https://gitlab.kitware.com/vtk/vtk/-/blob/master/ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Controller.hpp.
I’ve opened an issue at https://gitlab.kitware.com/xdmf/xdmf/-/issues/28, hopefully this is the correct way for this kind of issues.Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18266Issue with CMAKE_INSTALL_LICENSEDIR2021-10-19T09:33:55-04:00Bruno PaganiIssue with CMAKE_INSTALL_LICENSEDIRPassing `-DCMAKE_INSTALL_LICENSEDIR=share/licenses/paraview` when building ParaView 5.9.1 results in:
```
CMake Error at VTK/CMake/vtkModule.cmake:1877 (message):
The `LICENSE_DESTINATION` must not be an absolute path. Use
`CMAKE_IN...Passing `-DCMAKE_INSTALL_LICENSEDIR=share/licenses/paraview` when building ParaView 5.9.1 results in:
```
CMake Error at VTK/CMake/vtkModule.cmake:1877 (message):
The `LICENSE_DESTINATION` must not be an absolute path. Use
`CMAKE_INSTALL_PREFIX` to keep everything in a single installation prefix.
Call Stack (most recent call first):
VTK/CMake/vtkModule.cmake:2367 (_vtk_module_check_destinations)
CMakeLists.txt:522 (vtk_module_build)
```
This does not seems right, since it is actually not an absolute path.
Maybe this should be reported to VTK instead, please let me know.Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18267vtkGeometryFilter and vtkDataSetSurfaceFilter fail to process vtkMultiBlockDa...2021-07-27T16:22:04-04:00Douglas BrennanvtkGeometryFilter and vtkDataSetSurfaceFilter fail to process vtkMultiBlockDataSets that contain a mix of vtkPolyData and vtkUnstructuredGrid datavtkGeometryFilter and vtkDataSetSurfaceFilter fail to process vtkMultiBlockDataSets that contain a mix of vtkPolyData and vtkUnstructuredGrid data. The filters work correctly when passed homogeneous data sets.vtkGeometryFilter and vtkDataSetSurfaceFilter fail to process vtkMultiBlockDataSets that contain a mix of vtkPolyData and vtkUnstructuredGrid data. The filters work correctly when passed homogeneous data sets.https://gitlab.kitware.com/vtk/vtk/-/issues/18268numpy.bool is deprecated2021-07-29T11:36:46-04:00James Wrightnumpy.bool is deprecatedThe usage of `numpy.bool` has been deprecated as of Numpy 1.20. Instead, it's recommended to either use the built in python `bool` or use the numpy scalar `numpy.bool_`.
```python
~/.local/src/miniconda3/lib/python3.9/site-packages/vtkm...The usage of `numpy.bool` has been deprecated as of Numpy 1.20. Instead, it's recommended to either use the built in python `bool` or use the numpy scalar `numpy.bool_`.
```python
~/.local/src/miniconda3/lib/python3.9/site-packages/vtkmodules/util/numpy_support.py in get_vtk_to_numpy_typemap()
72 def get_vtk_to_numpy_typemap():
73 """Returns the VTK array type to numpy array type mapping."""
---> 74 _vtk_np = {vtkConstants.VTK_BIT:numpy.bool,
75 vtkConstants.VTK_CHAR:numpy.int8,
76 vtkConstants.VTK_SIGNED_CHAR:numpy.int8,
~/.local/src/miniconda3/lib/python3.9/site-packages/numpy/__init__.py in __getattr__(attr)
285 pass
286 else:
--> 287 warnings.warn(msg, DeprecationWarning, stacklevel=2)
288 return val
289
DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_
` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
```
Not sure which is preferable in this context though. `bool` would be the direct replacement and prevent any compatibility issues with previous versions of numpy (I'm not sure when `np.bool_` was introduced, maybe it's always been there).
Supposedly, `bool` is the same size as `int` (so normally 4 bytes), while the [`numpy.bool_` is only one byte long](https://numpy.org/devdocs/reference/arrays.scalars.html#numpy.bool_). So using the lower memory footprint may be desirable. But I can't seem to "prove" that there is any difference in the memory allocation, as `np.ones(100, dtype=bool).nbytes` and `np.ones(100, dtype=np.bool_).nbytes` both return with 100 bytes.David GobbiDavid Gobbihttps://gitlab.kitware.com/vtk/vtk/-/issues/18269Exception in vtkSMPTols.h2021-08-02T21:59:15-04:00Andrew MacleanException in vtkSMPTols.hIn running tests for vtk-examples, some examples are showing in Windows MSVC:
``` text
Unhandled exception at 0x00007FFE949EF84D (vtkCommonDataModel-9.0d.dll) in XMLPUnstructuredGridWriter.exe: Stack cookie instrumentation code detected...In running tests for vtk-examples, some examples are showing in Windows MSVC:
``` text
Unhandled exception at 0x00007FFE949EF84D (vtkCommonDataModel-9.0d.dll) in XMLPUnstructuredGridWriter.exe: Stack cookie instrumentation code detected a stack-based buffer overrun.
```
In Linux I am getting a **stack smashing detected** error.
This is happening at line 247 of vtkSPMPTools.h
``` C++
template <typename Functor>
static void For(vtkIdType first, vtkIdType last, vtkIdType grain, Functor& f)
{
typename vtk::detail::smp::vtkSMPTools_Lookup_For<Functor>::type fi(f);
fi.For(first, last, grain);
}
```
In the case of the IO tests when running the vtk-example tests, these are the ones that fail:
``` text
376:IO-WriteVTU
385:IO-WriteXMLLinearCells
387:IO-XMLPUnstructuredGridWriter
```
WriteVTU: first = 0, last = 1, grain = 0<br>
WriteXMLLinearCells: first = 0, last = 1, grain = 0<br>
XMLPUnstructuredGridWriter: first = 0, last = 38, grain = 0
Other examples are also failing, with the same message.
The code is quite simple for these examples e.g. [WriteVTU](https://kitware.github.io/vtk-examples/site/Cxx/IO/WriteVTU/)https://gitlab.kitware.com/vtk/vtk/-/issues/18271Error in vtkRotationFilter for triangle strips2021-08-05T07:56:43-04:00Tiffany ChhimError in vtkRotationFilter for triangle stripsApplying vtkRotationFilter to triangle strips with an even number of cells causes an error.
The associated conditional block does not appear to be necessary.Applying vtkRotationFilter to triangle strips with an even number of cells causes an error.
The associated conditional block does not appear to be necessary.Tiffany ChhimTiffany Chhimhttps://gitlab.kitware.com/vtk/vtk/-/issues/18272Quad triangulation not properly reflected with vtkReflectionFIlter2022-07-27T08:39:07-04:00Tiffany ChhimQuad triangulation not properly reflected with vtkReflectionFIlterThe triangulation of a quad is not properly reflected, as illustrated below in ParaView.
The reflection looks like this
![QuadReflectBeforeFix](/uploads/4af0effce899af3d9363dca02cac1aaa/QuadReflectBeforeFix.png)
instead of this
![Qua...The triangulation of a quad is not properly reflected, as illustrated below in ParaView.
The reflection looks like this
![QuadReflectBeforeFix](/uploads/4af0effce899af3d9363dca02cac1aaa/QuadReflectBeforeFix.png)
instead of this
![QuadReflectFix](/uploads/2722246edfa632987d0d8048adfe3c7b/QuadReflectFix.png)Tiffany ChhimTiffany Chhimhttps://gitlab.kitware.com/vtk/vtk/-/issues/18273Allow Python path objects for filenames2021-08-20T16:00:28-04:00Carlos A. Michelén StröferAllow Python path objects for filenamesThe different readers (e.g. STL, VTK, etc.) only accept a string path. It would be a good addition to accept path objects from the `pathlib` Python standard library.
The following is a minimal example:
```python
from pathlib import Pa...The different readers (e.g. STL, VTK, etc.) only accept a string path. It would be a good addition to accept path objects from the `pathlib` Python standard library.
The following is a minimal example:
```python
from pathlib import Path
import vtk
reader = vtk.vtkSTLReader()
path = Path()
filename = path / "mesh.stl"
reader.SetFileName(filename)
```
which gives the error:
```python
TypeError: SetFileName argument 1: string or None required
```https://gitlab.kitware.com/vtk/vtk/-/issues/18275loguru: make it possible to disable unsafe signal handling2021-09-02T22:23:49-04:00Cory Quammencory.quammen@kitware.comloguru: make it possible to disable unsafe signal handlingWe need to be able to disable loguru's signal handling, e.g.,
```
loguru::Options options;
options.verbosity_flag = verbosity_flag;
options.unsafe_signal_handler = false;
```We need to be able to disable loguru's signal handling, e.g.,
```
loguru::Options options;
options.verbosity_flag = verbosity_flag;
options.unsafe_signal_handler = false;
```Cory Quammencory.quammen@kitware.comCory Quammencory.quammen@kitware.comhttps://gitlab.kitware.com/vtk/vtk/-/issues/18276CI: Schedule PyPI publication failing2021-11-23T10:48:00-05:00Sebastien JourdainCI: Schedule PyPI publication failingThe last successful push was made on July 24 (2021-07-24)
The [current PyPI history is available here](https://pypi.org/project/vtk/9.0.20210724.dev0/#history)The last successful push was made on July 24 (2021-07-24)
The [current PyPI history is available here](https://pypi.org/project/vtk/9.0.20210724.dev0/#history)Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18277Build Error in vtkLoopSubdivisionFilter.cxx2021-08-18T07:20:25-04:00Chabir AkramyarBuild Error in vtkLoopSubdivisionFilter.cxxHey guys!
After following https://vtk.org/Wiki/VTK/Building/Linux and trying to `make `in my build folder I get the following error in Building CXX object Filters/Modeling/CMakeFiles/FiltersModeling.dir/vtkLoopSubdivisionFilter.cxx:
![i...Hey guys!
After following https://vtk.org/Wiki/VTK/Building/Linux and trying to `make `in my build folder I get the following error in Building CXX object Filters/Modeling/CMakeFiles/FiltersModeling.dir/vtkLoopSubdivisionFilter.cxx:
![image](/uploads/1fd75b4b3a23d7b1ffe68114f9daf1af/image.png)
/usr/include/c++/10/bits/basic_ios.tcc:41: confused by earlier errors, bailing out
make[2]: *** [Filters/Texture/CMakeFiles/FiltersTexture.dir/build.make:121: Filters/Texture/CMakeFiles/FiltersTexture.dir/vtkTextureMapToPlane.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:6473: Filters/Texture/CMakeFiles/FiltersTexture.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Thanks in advance for helping!https://gitlab.kitware.com/vtk/vtk/-/issues/18278LIBGL_ALWAYS_SOFTWARE=1 with stock linux drivers gives black window2021-08-27T08:56:16-04:00David GobbiLIBGL_ALWAYS_SOFTWARE=1 with stock linux drivers gives black windowWhen the environment variable LIBGL\_ALWAYS\_SOFTWARE is set on linux to force the use of llvmpipe instead of hardware rendering, the resulting window is black.
Bisection shows that this was caused by !6965, which changed framebuffer ha...When the environment variable LIBGL\_ALWAYS\_SOFTWARE is set on linux to force the use of llvmpipe instead of hardware rendering, the resulting window is black.
Bisection shows that this was caused by !6965, which changed framebuffer handling.
To reproduce, run a VTK test as follows on Linux with stock (not proprietary) drivers:
```
LIBGL_ALWAYS_SOFTWARE=1 bin/vtkInteractionWidgetsCxxTests TestCameraWidget
```
I did the testing on Ubuntu 20.04 with amdgpu and nouveau drivers
```text
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 12.0.0, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.0.3
```
Note that the Qt tests render correctly, while tests that use vtkXOpenGLRenderWindow produce a black window.https://gitlab.kitware.com/vtk/vtk/-/issues/18279vtkGeometryFilter: incorrect values with image data + blanking2022-06-16T12:15:36-04:00Utkarsh AyachitvtkGeometryFilter: incorrect values with image data + blankingI've add a new test `TestDataSetSurfaceFilterWithBlankedImageData`. When using `vtkGeometryFilter` to extract the surface, the result is totally wrong. See the attached image. The top two images are computed using `vtkDataSetSurfaceFilte...I've add a new test `TestDataSetSurfaceFilterWithBlankedImageData`. When using `vtkGeometryFilter` to extract the surface, the result is totally wrong. See the attached image. The top two images are computed using `vtkDataSetSurfaceFilter`, the lower two uses `vtkGeometryFilter`. The results should have been identical to the one on the top.
One this is fixed, please update the baseline as well.
![TestDataSetSurfaceFilterWithBlankedImageData](/uploads/04c44a3ce441c05e4490cb07855bc504/TestDataSetSurfaceFilterWithBlankedImageData.png)Spiros TsalikisSpiros Tsalikishttps://gitlab.kitware.com/vtk/vtk/-/issues/18280SMP backend changes from MR 8052 crash under windows Release2021-08-18T17:01:54-04:00Ken MartinSMP backend changes from MR 8052 crash under windows ReleaseThe new changes for backends in SMP https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8052 are crashing on windows static release builds with SMP set to sequential.
At VTK dcc4f8967e everything is fine but at ef4f4956d0e76eef2630e65249...The new changes for backends in SMP https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8052 are crashing on windows static release builds with SMP set to sequential.
At VTK dcc4f8967e everything is fine but at ef4f4956d0e76eef2630e65249bf3e0f99f5aad2 it breaks (after the new SMP backend code) It also breaks on master as of August 18th. The crash is an attempt to read 0x0000000 Sample stack trace below.
![image](/uploads/1cee6ac5132e1c73deddafcddd81d279/image.png)
Contact @ken-martin for how to reproduce as it is not a simple vtk test.https://gitlab.kitware.com/vtk/vtk/-/issues/18281Building VTK and PThreads vs Win32 Threads2023-06-17T22:00:16-04:00Adam HendryBuilding VTK and PThreads vs Win32 Threads## Problem
I am trying to build VTK with CUDA support using CMake. I have run into an error I'm not sure how to resolve:
```
CMake Error at Common/Core/CMakeLists.txt:306 (message):
Failed to determine the thread implementation in us...## Problem
I am trying to build VTK with CUDA support using CMake. I have run into an error I'm not sure how to resolve:
```
CMake Error at Common/Core/CMakeLists.txt:306 (message):
Failed to determine the thread implementation in use by the compiler.
```
The `CMakeLists.txt` in this folder at this section is attempting to determine whether to use Win32 Threads or PThreads:
**Common/Core/CMakeLists.txt, Lines 288-325**
```
vtk_module_find_package(
PACKAGE Threads)
set(VTK_MAX_THREADS "64" CACHE STRING
"Max number of threads vtkMultiThreader will allocate.")
mark_as_advanced(VTK_MAX_THREADS)
if (CMAKE_USE_PTHREADS_INIT AND CMAKE_USE_WIN32_THREADS_INIT)
if (DEFINED _vtk_thread_impl_output)
set(thread_impl_output "${_vtk_thread_impl_output}")
else ()
execute_process(
COMMAND "${CMAKE_C_COMPILER}" -v
OUTPUT_VARIABLE thread_impl_output
ERROR_VARIABLE thread_impl_output
RESULT_VARIABLE result
TIMEOUT 10)
if (result)
message(FATAL_ERROR
"Failed to determine the thread implementation in use by the "
"compiler.")
endif ()
string (REGEX REPLACE ".*Thread model: \((posix|win32)\).*" "\\1" thread_impl_output "${thread_impl_output}")
endif ()
set(_vtk_thread_impl_output "${thread_impl_output}"
CACHE INTERNAL "thread model detection")
if (thread_impl_output MATCHES "posix")
set(VTK_USE_PTHREADS 1)
elseif (thread_impl_output MATCHES "win32")
set(VTK_USE_WIN32_THREADS 1)
else ()
set(VTK_USE_PTHREADS 1)
endif ()
elseif (CMAKE_USE_PTHREADS_INIT)
set(VTK_USE_PTHREADS 1)
elseif (CMAKE_USE_WIN32_THREADS_INIT)
set(VTK_USE_WIN32_THREADS 1)
endif ()
```
I use `vcpkg` and installed `pthread` and `pthreads`, which is probably why it's getting confused, but is there a way to specify in CMake-GUI to use Windows threads?
Currently, my solution is to add the lines
```
set(CMAKE_USE_PTHREADS_INIT 0)
set(CMAKE_USE_WIN32_THREADS_INIT 1)
```
after
```
vtk_module_find_package(
PACKAGE Threads)
```
in the `CMakeLists.txt` file.https://gitlab.kitware.com/vtk/vtk/-/issues/18282Feature Request: Please Build Python Wheels with CUDA2021-08-28T17:34:41-04:00Adam HendryFeature Request: Please Build Python Wheels with CUDAPlease build Python wheels with CUDA Windows, perhaps similar to how one can run `pip install tensorflow-gpu` vs `pip install tensorflow`.Please build Python wheels with CUDA Windows, perhaps similar to how one can run `pip install tensorflow-gpu` vs `pip install tensorflow`.https://gitlab.kitware.com/vtk/vtk/-/issues/18283vtkStaticCellLocator::FindCellsAlongLine results not reliable2021-09-27T07:57:28-04:00Timothee ChabatvtkStaticCellLocator::FindCellsAlongLine results not reliableA slight variation of P1 and P2 can make the result of `FindCellsAlongLine` looks totally different. Here's a quick example of how to reproduce the problem (see attached for full program) :
```cpp
constexpr int SIZE = 20;
vtkNew<vtk...A slight variation of P1 and P2 can make the result of `FindCellsAlongLine` looks totally different. Here's a quick example of how to reproduce the problem (see attached for full program) :
```cpp
constexpr int SIZE = 20;
vtkNew<vtkRTAnalyticSource> wavelet;
wavelet->SetWholeExtent(0, SIZE, 0, SIZE, 0, SIZE);
wavelet->Update();
// Create the tree
vtkNew<vtkStaticCellLocator> locator;
locator->SetDataSet((vtkDataSet*)wavelet->GetOutput());
locator->UseDiagonalLengthToleranceOff();
locator->SetTolerance(0.0);
locator->BuildLocator();
constexpr double EPSILON = 0.01;
// Line (p1,p2) intersecting all cells on the diagonal of the wavelet (and more)
double p1[] = {0, 0, 0};
double p2[] = {SIZE + EPSILON, SIZE + EPSILON, SIZE + EPSILON};
vtkNew<vtkIdList> cells;
locator->FindCellsAlongLine(p1, p2, 0.0, cells);
```
[main.cxx](/uploads/85980fedbccac72f437cbfe5e16de670/main.cxx)
[CMakeLists.txt](/uploads/913c7c6ae6b0dcbb84a6a6c67aee9213/CMakeLists.txt)
For `SIZE = 20`, `EPSILON = 0.0` do not find 19th and 20th cells on the diagonal, `EPSILON = 0.01` do not find the 12th but `EPSILON = 0.1` find them all. `SEQUENTIAL` and `STDTHREAD` backends give the same result. `UseDiagonalLengthToleranceOff()` and `SetTolerance(0.0)` does not have any effect on the result.
This invalidate the new implementation of `ProbeOverLine` thus https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8222 may need to be reverted.https://gitlab.kitware.com/vtk/vtk/-/issues/18284VTK CMake Python Does Not Link or Include `api-ms-win-core` Libraries2021-08-26T20:56:26-04:00Adam HendryVTK CMake Python Does Not Link or Include `api-ms-win-core` LibrariesVTK compiles and installs perfectly fine, but after adding the built files to my Python directory, importing `vtk` gives a `DLL` error:
```python
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on...VTK compiles and installs perfectly fine, but after adding the built files to my Python directory, importing `vtk` gives a `DLL` error:
```python
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
Traceback (most recent call last):
File "C:\Program Files\Python38\lib\site-packages\vtkmodules\__init__.py", line 13, in <module>
from . import vtkCommonCore
ImportError: DLL load failed while importing vtkCommonCore: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python38\lib\site-packages\vtk.py", line 30, in <module>
all_m = importlib.import_module('vtkmodules.all')
File "C:\Program Files\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Program Files\Python38\lib\site-packages\vtkmodules\__init__.py", line 15, in <module>
import _vtkmodules_static
ModuleNotFoundError: No module named '_vtkmodules_static'
>>>
```
I believe this might be due to the fact that the `api-ms-win-core` libraries are not included in the build. Using Dependency Walker on `vtkCommonCore-9.0.dll` shows many missing DLLs:
![image](/uploads/aa7d03e7efcdefca9996e918a222d1cc/image.png)
How can I fix this issue?https://gitlab.kitware.com/vtk/vtk/-/issues/18287HDF5 Error: File Failed to Open for Reading During Configure2021-09-07T00:14:34-04:00Adam HendryHDF5 Error: File Failed to Open for Reading During Configure### Issue
On Windows 10 x64, after cloning master and pressing `Configure` in CMake-GUI 3.21.1, I see this error:
```
CMake Error at ThirdParty/hdf5/vtkhdf5/config/cmake/ConfigureChecks.cmake:361 (file):
file failed to open for readin...### Issue
On Windows 10 x64, after cloning master and pressing `Configure` in CMake-GUI 3.21.1, I see this error:
```
CMake Error at ThirdParty/hdf5/vtkhdf5/config/cmake/ConfigureChecks.cmake:361 (file):
file failed to open for reading (No such file or directory):
C:/VTK/build/pac_Cconftest.out
Call Stack (most recent call first):
ThirdParty/hdf5/vtkhdf5/CMakeLists.txt:503 (include)
```
Is this a dup of #18265?
Also, `CMAKE_INSTALL_PREFIX` gets set to the path for my system install of HDF5 on first configure:
```
C:/Program Files/HDF_Group/HDF5/1.12.1
```
Regardless if `CMAKE_INSTALL_PREFIX` is changed, reconfiguring always yields same error:
```
CMake Error at ThirdParty/hdf5/vtkhdf5/config/cmake/ConfigureChecks.cmake:361 (file):
file failed to open for reading (No such file or directory):
C:/VTK/build/pac_Cconftest.out
Call Stack (most recent call first):
ThirdParty/hdf5/vtkhdf5/CMakeLists.txt:503 (include)
```
How can I fix this error?
### Logs
[CMakeOutput.log](/uploads/edf97897e0d80b5fa952edf10ac8e9b2/CMakeOutput.log)
[CMakeError.log](/uploads/04d24412e6f0063223020f4f4b3b9631/CMakeError.log)Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18288No Builds Work2021-08-28T14:26:19-04:00Adam HendryNo Builds WorkUsing Python 3.9.6 on Windows 10, building VTK 9.3.0 in MSVC 2019, install fails with `MSB3073` error:
```
Severity Code Description Project File Line Suppression State
Error MSB3073 The command "setlocal
"C:\Program Files\CMake\bin\cma...Using Python 3.9.6 on Windows 10, building VTK 9.3.0 in MSVC 2019, install fails with `MSB3073` error:
```
Severity Code Description Project File Line Suppression State
Error MSB3073 The command "setlocal
"C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd" exited with code 1. INSTALL C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets 155
```
Considering this, [#18287](https://gitlab.kitware.com/vtk/vtk/-/issues/18287), and [this](https://stackoverflow.com/questions/68929181/build-vtk-with-python-bindings-and-cuda-tbb-mpi-on-windows), it appears no builds are working on Windows.https://gitlab.kitware.com/vtk/vtk/-/issues/18289BuildLocator() Error2021-08-30T10:14:43-04:00Chabir AkramyarBuildLocator() Error## Description
I am trying to use do the [AlignTwoPolyDatas](https://kitware.github.io/vtk-examples/site/Cxx/PolyData/AlignTwoPolyDatas/) example on my own data (mesh and PointCoud).
### Error
I get the following error:
![image](/uplo...## Description
I am trying to use do the [AlignTwoPolyDatas](https://kitware.github.io/vtk-examples/site/Cxx/PolyData/AlignTwoPolyDatas/) example on my own data (mesh and PointCoud).
### Error
I get the following error:
![image](/uploads/0f613c8a166b755dbf814ae80058e41a/image.png)
It happens after sourceOBBTree->BuildLocator();
Thank u for any help!https://gitlab.kitware.com/vtk/vtk/-/issues/18291Newest FindMPI incompatible with cmake < 3.182021-08-30T16:46:51-04:00David GobbiNewest FindMPI incompatible with cmake < 3.18The FindMPI patch in !8322 causes config errors with cmake 3.16 when `VTK_USE_MPI` is enabled:
```
CMake error at CMakeFiles/CMakeTmp/CMakeLists.txt:20 (target_link_libraries):
Error evaluating generator expression:
$<HOST_LINK:SHE...The FindMPI patch in !8322 causes config errors with cmake 3.16 when `VTK_USE_MPI` is enabled:
```
CMake error at CMakeFiles/CMakeTmp/CMakeLists.txt:20 (target_link_libraries):
Error evaluating generator expression:
$<HOST_LINK:SHELL:-pthread>
Expression did not evaluate to a known generator expression
CMake Error at CMake/patches/3.22/FindMPI.cmake:1266 (try_compile):
Failed to generate test project build system.
Call Stack (most recent call first):
CMake/patches/3.22/FindMPI.cmake:1317 (_MPI_try_staged_settings)
CMake/patches/3.22/FindMPI.cmake:1607 (_MPI_check_lang_works)
CMake/vtkModule.cmake:4360 (find_package)
CMake/vtkModule.cmake:4960 (vtk_module_find_package)
Utilities/MPI/CMakeLists.txt:1 (vtk_module_third_party_external)
```
Currently, VTK is targeting compatibility with cmake 3.12 and above.Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18292`vtkmodules/__init__.py` Yields Infinite Loop2021-09-06T09:28:44-04:00Adam Hendry`vtkmodules/__init__.py` Yields Infinite LoopThe while loop in `vtkmodules/__init__.py` yields an infinite loop on Windows because the `dirname` of `C:\` on Windows is always `C:\`. This never becomes "", ".", or "/". That would only work on a Linux system.
```python
r"""
Currentl...The while loop in `vtkmodules/__init__.py` yields an infinite loop on Windows because the `dirname` of `C:\` on Windows is always `C:\`. This never becomes "", ".", or "/". That would only work on a Linux system.
```python
r"""
Currently, this package is experimental and may change in the future.
"""
from __future__ import absolute_import
import sys
def _windows_dll_path():
import os
_vtk_python_path = r"C:\VTK\bin\Lib\site-packages\vtkmodules"
_vtk_dll_path = r"C:\VTK\bin"
# Compute the DLL path based on the location of the file and traversing up
# the installation prefix to append the DLL path.
_vtk_dll_directory = os.path.dirname(os.path.abspath(__file__))
# Loop while we have components to remove.
print("Folder Search:")
print("==============")
while _vtk_python_path not in ("", ".", "/"):
# Strip a directory away.
_vtk_python_path = os.path.dirname(_vtk_python_path)
_vtk_dll_directory = os.path.dirname(_vtk_dll_directory)
if _vtk_python_path != "C:\\":
print(_vtk_python_path)
print("==============")
print()
_vtk_dll_directory = os.path.join(_vtk_dll_directory, _vtk_dll_path)
print(f"VTK DLL Directory: {_vtk_dll_directory}")
print()
print("Adding DLLs...")
if os.path.exists(_vtk_dll_directory):
# We never remove this path; it is required for VTK to work and there's
# no scope where we can easily remove the directory again.
print(f"DLL: {_vtk_dll_directory}")
_ = os.add_dll_directory(_vtk_dll_directory)
print()
print("Build tree...")
# Build tree support.
try:
from . import _build_paths
# Add any paths needed for the build tree.
for path in _build_paths.paths:
if os.path.exists(path):
print(f"Path: {path}")
_ = os.add_dll_directory(path)
except ImportError:
# Relocatable install tree (or non-Windows).
print("Passing: Relocatable install tree")
pass
print()
print("Imported!")
# CPython 3.8 added behaviors which modified the DLL search path on Windows to
# only search "blessed" paths. When importing SMTK, ensure that SMTK's DLLs are
# in this set of "blessed" paths.
if sys.version_info >= (3, 8) and sys.platform == "win32":
_windows_dll_path()
# ------------------------------------------------------------------------------
# this little trick is for static builds of VTK. In such builds, if
# the user imports this Python package in a non-statically linked Python
# interpreter i.e. not of the of the VTK-python executables, then we import the
# static components importer module.
try:
from . import vtkCommonCore
except ImportError:
import _vtkmodules_static
# ------------------------------------------------------------------------------
# get the version
__version__ = "9.0.3"
```
The above leads to an infinite loop in the `while` loop because the `dirname` of `C:\` in Windows is always `C:\`:
```
❯ py
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.path.dirname("C:\\"))
C:\
>>>
```
Running the above `__init__.py` code yields:
```python
❯ py
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
Folder Search:
==============
C:\VTK\bin\Lib\site-packages
C:\VTK\bin\Lib
C:\VTK\bin
C:\VTK
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python38\lib\site-packages\vtk.py", line 30, in <module>
all_m = importlib.import_module('vtkmodules.all')
File "C:\Program Files\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Program Files\Python38\lib\site-packages\vtkmodules\__init__.py", line 61, in <module>
_windows_dll_path()
File "C:\Program Files\Python38\lib\site-packages\vtkmodules\__init__.py", line 23, in _windows_dll_path
_vtk_dll_directory = os.path.dirname(_vtk_dll_directory)
File "C:\Program Files\Python38\lib\ntpath.py", line 223, in dirname
return split(p)[0]
File "C:\Program Files\Python38\lib\ntpath.py", line 187, in split
d, p = splitdrive(p)
KeyboardInterrupt
>>>
```
The fix to this is to add `"C:\\"` and `"C:/"` to the tuple in the while loop:
```python
while _vtk_python_path not in ("", ".", "/", "C:\\", "C:/"):
```https://gitlab.kitware.com/vtk/vtk/-/issues/18293Error Building with Ninja2021-09-07T07:41:32-04:00Adam HendryError Building with NinjaAttempting to build VTK 9.0.3 with Ninja on Windows 10 in x64-bit mode gives the following error in CMake-GUI
```
The CUDA compiler identification is unknown
Detecting CUDA compiler ABI info
Detecting CUDA compiler ABI info - failed
Che...Attempting to build VTK 9.0.3 with Ninja on Windows 10 in x64-bit mode gives the following error in CMake-GUI
```
The CUDA compiler identification is unknown
Detecting CUDA compiler ABI info
Detecting CUDA compiler ABI info - failed
Check for working CUDA compiler: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.4/bin/nvcc.exe
Check for working CUDA compiler: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.4/bin/nvcc.exe - broken
CMake Error at C:/Program Files/CMake/share/cmake-3.21/Modules/CMakeTestCUDACompiler.cmake:56 (message):
The CUDA compiler
"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.4/bin/nvcc.exe"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: C:/VTK/build/CMakeFiles/CMakeTmp
Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_a0bc7 && [1/2] Building CUDA object CMakeFiles\cmTC_a0bc7.dir\main.cu.obj
FAILED: CMakeFiles/cmTC_a0bc7.dir/main.cu.obj
C:\PROGRA~1\NVIDIA~2\CUDA\v11.4\bin\nvcc.exe -c C:\VTK\build\CMakeFiles\CMakeTmp\main.cu -o CMakeFiles\cmTC_a0bc7.dir\main.cu.obj
nvcc fatal : Could not set up the environment for Microsoft Visual Studio using 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/../../../../../../../VC/Auxiliary/Build/vcvars64.bat'
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:129 (enable_language)
Configuring incomplete, errors occurred!
See also "C:/VTK/build/CMakeFiles/CMakeOutput.log".
See also "C:/VTK/build/CMakeFiles/CMakeError.log".
```https://gitlab.kitware.com/vtk/vtk/-/issues/18294OSPRay 1.8 and TBB tbb2018_20170919oss_win Required2021-08-28T18:29:52-04:00Adam HendryOSPRay 1.8 and TBB tbb2018_20170919oss_win RequiredIs there a reason why
- OSPRay 1.8, and
- TBB 2018 Update 1 (tbb2018_20170919oss_win)
are required in VTK-9.0.3 and newer versions aren't supported? Is this intentional?Is there a reason why
- OSPRay 1.8, and
- TBB 2018 Update 1 (tbb2018_20170919oss_win)
are required in VTK-9.0.3 and newer versions aren't supported? Is this intentional?https://gitlab.kitware.com/vtk/vtk/-/issues/18295Generate Cells/vertices2021-09-01T04:59:17-04:00Chabir AkramyarGenerate Cells/vertices## Description
Hey guys I am trying to allign a PointCloud (x,y,z, vtkSimplePointsReader) with an Mesh. I am at the point where i want to use the ICP alghorithm but its not working since my PointCloud doesnt have any verticies or cells....## Description
Hey guys I am trying to allign a PointCloud (x,y,z, vtkSimplePointsReader) with an Mesh. I am at the point where i want to use the ICP alghorithm but its not working since my PointCloud doesnt have any verticies or cells.
I tried using PointDatatoCellData but it didnt transform the points to CellData. Does someone maybe have another approach to generate the cells/vertices from my PointCloud?
Thanks in advance!https://gitlab.kitware.com/vtk/vtk/-/issues/18296compilation fails with stable fmt2021-09-13T02:41:51-04:00Julien Schuellercompilation fails with stable fmtwith gcc compilation fails with external fmt 8.0.1 (VTK_MODULE_USE_EXTERNAL_VTK_fmt=OFF)
```
vtkPVStringFormatter.h:153:9: error: use of deleted function ‘fmt::v8::dynamic_format_arg_store<fmt::v8::basic_format_context<fmt::v8::appender,...with gcc compilation fails with external fmt 8.0.1 (VTK_MODULE_USE_EXTERNAL_VTK_fmt=OFF)
```
vtkPVStringFormatter.h:153:9: error: use of deleted function ‘fmt::v8::dynamic_format_arg_store<fmt::v8::basic_format_context<fmt::v8::appender, char> >::dynamic_format_arg_store(const fmt::v8::dynamic_format_arg_store<fmt::v8::basic_format_context<fmt::v8::appender, char> >&)’
153 | : Args(args.Args)
| ^~~~~~~~~~~~~~~
```
is this a known issue ? is this an upstream issue ? seems the bundled one is some git version
cc @cory.quammen as you updated it lasthttps://gitlab.kitware.com/vtk/vtk/-/issues/18297Broken Package libvtk6-qt-dev on Ubuntu 21.042021-09-01T06:24:48-04:00SunBlackBroken Package libvtk6-qt-dev on Ubuntu 21.04I'm not sure where to post it, since the official [package issue page](https://launchpad.net/ubuntu/+source/vtk6/+bugs) seems to be abandoned.
I did a matrix build between all current Ubuntu versions and all VTK versions available there...I'm not sure where to post it, since the official [package issue page](https://launchpad.net/ubuntu/+source/vtk6/+bugs) seems to be abandoned.
I did a matrix build between all current Ubuntu versions and all VTK versions available there. There [I found a problem](https://github.com/PointCloudLibrary/pcl/pull/4747#issuecomment-909196309) with `libvtk6-qt-dev` on Ubuntu 21.04: The `VTKTargets-none.cmake` reference to `libvtkGUISupportQt-6.3.so.6 .3.0` as `IMPORTED_LOCATION` and as `IMPORTED_SONAME` to `libvtkGUISupportQt-6.3.so.6 .3` - but libvtk6-qt-dev only provides `libvtkRenderingOpenGL-6.3.so` (which is a broken link to `libvtkGUISupportQt-6.3.so.6.3`).
Compared to `libvtk6-qt-dev`, `libvtk7-qt-dev` depends on `libvtk7.1p-qt` which contains the required files. The vtk6 counter package `libvtk6.3-qt`, on the other hand, is an almost [empty package](https://packages.ubuntu.com/hirsute/amd64/libvtk6.3-qt/filelist).https://gitlab.kitware.com/vtk/vtk/-/issues/18298vtkCollisionDetectionFilter segfault2021-09-20T05:05:22-04:00ferdymercuryvtkCollisionDetectionFilter segfaultWhen running this script in Python, I get a segmentation fault (core dumped)
```
import itertools
from stl import mesh
import vedo
import vtk
fpath = vedo.download("https://ozeki.hu/attachments/116/Eiffel_tower_sample.STL")
your_mesh =...When running this script in Python, I get a segmentation fault (core dumped)
```
import itertools
from stl import mesh
import vedo
import vtk
fpath = vedo.download("https://ozeki.hu/attachments/116/Eiffel_tower_sample.STL")
your_mesh = mesh.Mesh.from_file(fpath)
verts = list(itertools.chain(*(your_mesh.vectors)))
faces = [[i*3, i*3+1, i*3+2] for i in range(len(verts)//3)]
vpoly = vedo.Mesh([verts, faces]).clean().polydata()
vpoly2 = vpoly
collide = vtk.vtkCollisionDetectionFilter()
collide.SetInputData(0, vpoly)
collide.SetInputData(1, vpoly2)
collide.SetBoxTolerance(0.1)
collide.SetCellTolerance(0.1)
collide.SetNumberOfCellsPerNode(2)
collide.SetCollisionModeToFirstContact()
collide.GenerateScalarsOn()
#collide.Update()
print(collide.GetNumberOfContacts())
```
If I uncomment `collide.Update()`, then it doesn't crash. In my opinion, a warning or exception should be thrown if Update was not called, to prevent your program from crashing.
This has also been mentioned in https://discourse.slicer.org/t/collision-detection-capabilities-in-3d-slicer/14854/13https://gitlab.kitware.com/vtk/vtk/-/issues/18300VTK Documentation LaTex Equations2022-02-02T15:52:55-05:00Andrew MacleanVTK Documentation LaTex EquationsLaTex equations in the VTK Doxygen Documentation are not rendered correctly, for example see [vtkCurvatures](https://vtk.org/doc/nightly/html/classvtkCurvatures.html#Description). Building on my Linux machine produces the expected result...LaTex equations in the VTK Doxygen Documentation are not rendered correctly, for example see [vtkCurvatures](https://vtk.org/doc/nightly/html/classvtkCurvatures.html#Description). Building on my Linux machine produces the expected result, namely equations are rendered correctly when bracketed by `\k$ ... \k$`. In looking at the html code, the equations are rendered as png files. Could it be that the png files are not being copied across and only the git-lfs link is being copied? That's a guess on my part!Sankhesh JhaveriSankhesh Jhaverihttps://gitlab.kitware.com/vtk/vtk/-/issues/18302VR / OpenVR / OpenXR improvements2023-10-23T11:30:07-04:00Paul LafoixVR / OpenVR / OpenXR improvements# Adapt the ParaView OpenVR plugin code to compile with the new VR module
- [x] Adapt the OpenVR plugin to make it work with the VR module: in https://gitlab.kitware.com/paraview/paraview/-/merge_requests/5166
# Improve the generic VR...# Adapt the ParaView OpenVR plugin code to compile with the new VR module
- [x] Adapt the OpenVR plugin to make it work with the VR module: in https://gitlab.kitware.com/paraview/paraview/-/merge_requests/5166
# Improve the generic VR module "VR"
- Create VRInteractorStyle. NB: Could be almost fully generic, the only problem is in `SetInteractor` because actions names are different in OpenVR/OpenXR (OpenXR do not accept actions with slashes inside its name eg. _"/actions/vtk/in/StartMovement"_ must be _"startmovement"_) :
* Remove occurences of _vr::TrackedDevicePose_t_:
- [x] Create and use `vtkVRRenderWindow::GetTrackedDevicePose()` that return a vtkMatrix4x4 (in absolute tracking coordinates) from a vtkEventDataDevice
- [x] Create and use the new generic function `VRRenderWindowInteractor::ConvertPoseToWorldCoordinates()` that convert a vtkMatrix4x4 into world coordinates
* Remove occurences of _vr::TrackedDeviceIndex_t_:
- [x] Create the `VRRenderWindow::GetTrackedDeviceModel()` function that returns a _vtkVRModel_ from an _EventDataDevice_ (a lot of changes in VRRenderWindow here, think about just storing model with their associated EventDataDevice)
- [x] Get the VRModel from the RenderWindow by using the new `VRRenderWindow::GetTrackedDeviceModel`
* [x] Create `OpenVRInteractorStyle` with the overidden method => SetInteractor to add actions (_"/actions/vtk/in/StartMovement"_ for OpenVR, _"startmovement"_ for OpenXR) (**OR** change OpenVR action names to a string without slashes to be generic)
- Create VRRenderWindowInteractor :
* [x] Create a generic `ConvertPoseToWorldCoordinates` (not using vr::TrackedDevicePose_t but a vtkMatrix4x4 directly, like in GenericVRModel::Render) to be used in the `VRInteractorStyle`
* [x] Make DoOneEvent virtual pure (or empty) ?
* [x] Create all shared functions : PhysicalToWorldMatrix functions, StartEventLoop, GetPointerDevice, Initialize (when relevant), etc.
* [x] Create `OpenVRRenderWindowInteractor` to define `DoOneEvent` and `Initialize`
* [x] Implement _InternalCreateTimer_ and _InternalDestroyTimer_, as noted in the [comment](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8504/diffs#note_1048653), then have the subclasses use the generic implementation.: https://gitlab.kitware.com/vtk/vtk/-/issues/19102
- VRRenderWindow:
* [x] Store matrices of tracked devices in a vector member variable (to factorize `TrackedDevicePoses` in the subclass)
* [x] Store models in a vector associated with their EventDataDevice (to factorize `TrackedDeviceModels`)
* [x] What is the use of the member variable `VTKRenderModels`?
* [x] Create the generic `ConvertPoseToMatrices` that take a vtkMatrix4x4 pose instead of a vr::TrackedDevicePose
* [x] Remove useless functions such as GetTrackedDeviceModel, GetTrackedDevicePose, ConvertOpenVRPoseToMatrices ..
* [x] Implement `UpdateHMDMatrixPose()` in OpenXR
- Camera:
* [x] Compute the actual view angle from the headset projection matrix
- Actions:
* [x] Find the _controller_type_ name for the valve index to update vtk_openvr_actions.json
> The controller type for valve index is named "knuckles" (see https://docs.unity3d.com/2017.3/Documentation/Manual/OpenVRControllers.html)
* [x] Create a vtk_openvr_knuckles.json file for bindings with this controller. See https://github.com/1runeberg/SunRock/blob/master/Config/SteamVRBindings/knuckles.json for an example
* [x] Create a generic binding .json to fallback for all other controllers: https://gitlab.kitware.com/vtk/vtk/-/issues/19103
* [x] Implement a generic way of handling actions (action paths, action updates/processing, etc.): https://gitlab.kitware.com/vtk/vtk/-/issues/19103
- Code cleaning
* Update documentation :
- [x] _vtkVRCamera_
- [x] _vtkVRControlsHelper_ : https://gitlab.kitware.com/vtk/vtk/-/issues/19104
- [x] _vtkVRModel_ and its virtual pure function to load the model : https://gitlab.kitware.com/vtk/vtk/-/issues/19104
- [x] _vtkVRRenderWindow_
- [x] _vtkVRInteractorStyle_
- [x] _vtkVRRenderWindowInteractor_
* [x] Make sure includes in VR / OpenVR classes are minimal
* [x] Move CameraPose from OverlayInternal to either VRCamera or a new small class. It doesn't depend on overlays so it should not be in that file. And it ended up being used publicly all over the place so Internal doesn't make sense.
* [x] Make sure vtk.module dependances are minimal
* [x] Review of !8470 (adding OpenXR module) revealed several issues that likely need to be fixed in OpenVR module as well (renderer `MakeCamera` method needs `VTK_NEW_INSTANCE` attribute, etc...)
* [x] Rework the enum classes `vtkEventData...` in `vtkEventData.h` to be put in a namespace
- CMake:
* [x] Add a factory mechanism to be able to compile both OpenVR and OpenXR modules and choose the backend at runtime
* [x] Add a VTK_ENABLE_OPENVR_COLLABORATION variable (in OpenVR module) that will enable VTK_ENABLE_VR_COLLABORATION (in the VR module)
NB:
- controller models and ray drawing can't be tested with this method as OpenVR do not send the controller model through the Mixed Reality Portal
- To make the Mixed Reality Portal work with OpenGL, the OpenXR runtime must be set to SteamVR in the Developper tab of SteamVR settings window.
# Create the "OpenXR" module and merge it in VTK
#### Basic Integration
[Use this working branch that adds the support for OpenXR](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7907)
- [x] _vtkOpenXRManager_ tasks
* [x] Copy the _vtkOpenXRManager_ (communication class between VTK and OpenXR), _vtkOpenXRUtilities.h_ and _XrExtensions.h_
* [x] In _SelectExtensions_ examine whether we should query additional runtime capabilities and store whether they're enabled in _OptionalExtensions_, (use _EnableExtensionIfSupported()_ with _XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME_, _XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME_, _XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME_, _XR_EXT_HAND_TRACKING_EXTENSION_NAME_).
* [x] Decide if we want (or need) to provide api to get _ActionSet_ instances by name, in which case, we need to store them in a map rather than vector (see _CreateActionSet()_). UPDATE: Implementation détail of #19116
* [x] In _UpdateActionData_, decide if we need to store the action paths currently kept in _this->SubactionPaths_ in the interactor (Paul's comment in the code didn't make it clear if it should be stored there in addition or instead). Note that we currently publicly expose api on the _vtkOpenXRManager_ to get _SubActionPaths_, _Instance_, and _Session_, so that the _vtkOpenXRRenderWindowInteractor_ can use them to interact with the OpenXR runtime. It may be better to move that code from the interactor into the manager, which may be what Paul's comment was about. UPDATE: Implementation détail of #19116 and #19103
* [x] Figure out if we need flag to invalidate/validate pose at each frame, or just at begin frame (see the _GetViewPose_ method).
* [x] Android/handheld support will require making the form factor an option, rather than hardcoding to _XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY_ as we do currently.
- [x] Make the _vtkOpenXRCamera_ inherit from _vtkVRCamera_ and define function `GetTrackingToDCMatrix()`
- [x] Make the _vtkOpenXRRenderer_ inherit from _vtkVRRenderer_ and override `MakeCamera()` to return an OpenXRCamera
- [x] Make _vtkOpenXRRenderWindow_ inherit from _vtkVRRenderWindow_ and:
* [x] override `MakeInteractor()` to return a _vtkOpenXRRenderWindowInteractor_
* [x] override `CreateFramebuffers()` (look at `vtkOpenXRRenderWindow::CreateFramebuffers` + render mechanism in `vtkOpenXRRenderWindow::RenderOneEye()`)
* [x] override `GetSizeFromAPI()` to get the size of the HMD from `vtkOpenXRManager::GetRecommandedImageRectSize()`
* [x] override `GetPoseMatrixWorldFromDevice()`
* [x] Initialization / Render functions
* [x] Create function to convert OpenXRPoseToMatrices
* [x] Once !8504 is merged, remove methods that can be defined only in _vtkVRRenderWindow_, such as `GetTrackedDeviceModel`, `GetPoseMatrixWorldFromDevice`, etc.
- [x] Make _vtkOpenXRInteractorStyle_ inherit from _vtkVRInteractorStyle_ (once !8504 is merged), or else use only the generic _vtkVRInteractorStyle_ depending on the actions names and the `SetInteractor()` problem.
* [x] change interaction entry point methods to use just `override` instead of `virtual`.
* [x] update PrintSelf to print whatever is left specific to this class after re-parenting
- [x] Make _vtkOpenXRRenderWindowInteractor_ inherit from _vtkVRRenderWindowInteractor_ (once !8504 is merged):
* [x] Initialization
* [x] Override `AddAction()` functions
* [x] Override `DoOneEvent()` by using `ProcessXrEvents()`, `PollXrActions()`, and all `Handle***Actions()`
#### Improve the OpenXR module
- [x] RenderWindow PhysicalScale seems bugged (ray is not drawn where it should be if physicalScale / Translation is set)
- [x] Reduce creation and destruction of objects in the render loop, specifically local instances of vtkMatrix4x4 and vtkTransform.
- [x] MenuRepresentation does not always follow the camera view (sometimes, when opening the menu it opens behind the head)
- [x] MenuRepresentation does not capture the start position of the controller to swipe in the option. It seems that the starting point is always horizontal
* [x] Create the Overlay : extension `XR_EXTX_overlay` (provisional), or with a composition layer directly ? To investiguate #19113
- [x] Create _vtkOpenXRModel_
* [x] use the extension `XR_MSFT_CONTROLLER_MODEL` (To add an extension, see the file `XrExtensions.h`) to get the model in _gltf_ format: https://gitlab.kitware.com/vtk/vtk/-/issues/19105
* [x] Create the `OpenXRControlsHelper::InitControlPosition()`: iterate over the node of the gltf format to get the position of each component #18332
* [x] Create `vtkOpenXRRenderWindow::RenderModels()`
* [x] Be sure to check active before rendering each model #19117
- [x] Generify the handling of actions in _vtkOpenXRRenderWindowInteractor_
* [x] create _vtkOpenXRActionData_ classes (see very WIP classes https://gitlab.kitware.com/paul.lafoix/vtk/-/blob/OpenXRWithActionData/Rendering/OpenXR/vtkOpenXRActionData.h). This will be useful to remove all `HandleBooleanActions()`, `HandleFlaotActions()`, etc... functions in _vtkOpenXRRenderWindowInteractor_
* [x] move loading of actions to generic VR module (currently in _vtkOpenXRRenderWindowInteractor::Initialize()_ method)
* [x] also support loading of action sets from json (currently handled in _vtkOpenXRRenderWindowInteractor::LoadActions_). Storing action sets in the json file will allow to support more than one action set as well. #19116
* [x] Also, the current _LoadActions_ implementation hardcodes the controller type to "_vive_controller_". When this section of refactoring is addressed, we should also support other controller types (e.g. "_khr_simple_", "_valve_index_controller_", etc).
- [x] [18332](https://gitlab.kitware.com/vtk/vtk/-/issues/18332) OpenXR: Implement controls helper
- [x] Since _vtkOpenXRUtilities.h_ contains only static methods, it does not need to be a class: https://gitlab.kitware.com/vtk/vtk/-/issues/19106
- [x] Once finished will all of the above items, make a pass to remove/turnoff debugging:
* [x] _vtkOpenXRManager::Initialize()_ - remove _this->DebugOn()_
- [x] Fix volume rendering. Camera matrices look wrong when using vtkOpenGLGPURaycastMapper.
#### CI
* [X] Add openxr in CI (both VTK and ParaView)
* [X] Testing is the same as OpenVR, duplicate tests
* [X] Install OpenVR on Linux and enable smoke tests
* [x] Install [monado](https://monado.dev/) in linux CI and start it in the CI and enable rendering test: tested, not that simple
* [x] Move TestAvatar in the "VR" module: https://gitlab.kitware.com/vtk/vtk/-/issues/19107
* [x] Find a way to test interactions in CI: https://gitlab.kitware.com/vtk/vtk/-/issues/19108
* [x] TestPicking
* [x] TestMenu
* [x] TestControlsHelper
# Improve the ParaView XRInterface plugin
- [x] Rename the old "VRPlugin" to "CAVEInteraction" and rename "OpenVRPlugin" to "XRInterface"
- [x] Remove occurences of OpenVR when possible (missing _vtkVROverlay_, _vtkVRCameraPose_ though)
- [x] adapt actions.json files to be used with OpenXR and OpenVR
- [x] CMake: Do not depend on _VTKRenderingOpenVR_ but on _VTKRenderingVR_
- [x] General cleanup
- [x] Add a Developper oriented documentation in a .md
- [ ] Cleanup the XRInterfaceRepresentations code
- [x] Remove mineview related code / integrate mineview feature in ParaView (Locations/Skyboxes/View): https://gitlab.kitware.com/paraview/paraview/-/issues/22316
- [x] Cleanup/integrate cleanly collaboration code: https://gitlab.kitware.com/paraview/paraview/-/issues/22316
- [x] Avoid using setText in the UI but rely on cleaner UX design
- [ ] Handle backward compatibility to actual deprecation mechanism in loadState
- [x] Cleanup in-XR UI to be more usable
- [x] Cleanup Imago support: https://gitlab.kitware.com/paraview/paraview/-/issues/22317
- [x] Fix and improve Reset All Positions feature
- [x] Fix Crop Planes features
- [x] Fix grounded movement in OpenXR
- [x] Make base station visible in OpenXR: not needed
- [x] Use nice controller model in OpenXR
- [x] Fix warnings with widgets in OpenXR
- [x] Add OpenXR to the ParaView-superbuild and enable it in CI
- [x] Make OpenXR the default: https://gitlab.kitware.com/paraview/paraview/-/issues/22318
- [x] Deprecate OpenVR support: https://gitlab.kitware.com/paraview/paraview/-/issues/22318
# Add support for HoloLens using the OpenXR module
[Use this WIP branch that adds support for HoloLens using OpenXR Remoting](https://gitlab.kitware.com/LucasGandelKitware/vtk/-/tree/prepare-holographic-remoting)
This branch allows to stream VTK inside an HoloLens using :
* [OpenXR Remoting extension](https://docs.microsoft.com/en-us/windows/mixed-reality/develop/platform-capabilities-and-apis/holographic-remoting-create-remote-openxr)
* [OpenGL/DirectX interop](https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_DX_interop.txt)
TODO:
* [x] Split OpenGL/D3D implementation in vtkOpenXRManager: Strategy design pattern (set singleton interface at runtime)
* [x] Split OpenGL/D3D implementation in vtkOpenXRRenderWindow: Introduce vtkOpenXRRemotingRenderWindow subclass to override behavior.
* [x] CMake dependency: [Microsoft.Holographic.Remoting.OpenXr nuget package](https://docs.microsoft.com/en-us/windows/mixed-reality/develop/platform-capabilities-and-apis/holographic-remoting-create-remote-openxr#get-the-holographic-remoting-nuget-package) : Implement [FindOpenXRRemoting](https://gitlab.kitware.com/alexy.pellegrini/vtk/-/commit/ee7c166cbd8ddf477bb31c885eff0d1e52ee1ce4) vs add support for Nuget packages references in CMake ([already supported](https://gitlab.kitware.com/cmake/cmake/-/merge_requests/3389) for C# project).
* [x] Introduce CMake variable to enable remoting and conditionally include the required changes based on this variable. e.g. add #ifdef VTK_OPENXR_REMOTING in OpenXr.h to prevent remoting/d3d headers to be always included.
* [x] CMake dependency: D3D libraries: d3d11.lib, dxgi.lib (available on all machine? no need to find library?)
* [x] Interaction: Handle (missing) models and actions
* [x] First frame not being rendered by the runtime (Warning macro "Not renderer"). Try to skip.
* [x] Clean + document (+ rename?) `vtkWin32OpenGLD3D11RenderWindow`
* [x] Depth support: Blit Hololens depth texture (D3D) into the render window framebuffer depth attachment #19114
* [x] Hologram stability (XrSpace, infinite near/far plane) -> Depth reprojection #19115
* [x] Add support for hand tracking mesh using [XR_MSFT_hand_tracking_mesh](https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_MSFT_hand_tracking_mesh) #19105
* [x] Add `vtkWin32OpenGLD3D11RenderWindow` test (blit VTK into D3D window)
* [x] Handle multisampling in vtkWin32OpenGLD3D11RenderWindowhttps://gitlab.kitware.com/vtk/vtk/-/issues/18303Cannot build a /MT static library2021-09-06T08:44:44-04:00Peiqi.LiuCannot build a /MT static libraryEven if I set the /MT option, I still compile a /MD static library.
CMAKE: 3.20.0-rc5
Visual studio 2019
VTK: 9.0.3 release
cmake setting:
```
-D CMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" `
-D CMAKE_C_FLAGS_MINS...Even if I set the /MT option, I still compile a /MD static library.
CMAKE: 3.20.0-rc5
Visual studio 2019
VTK: 9.0.3 release
cmake setting:
```
-D CMAKE_C_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" `
-D CMAKE_C_FLAGS_MINSIZEREL="/MT /O1 /Ob1 /DNDEBUG" `
-D CMAKE_C_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" `
-D CMAKE_C_FLAGS_RELWITHDEBINFO="/MT /Zi /O2 /Ob1 /DNDEBUG" `
-D CMAKE_CXX_FLAGS_DEBUG="/MTd /Zi /Ob0 /Od /RTC1" `
-D CMAKE_CXX_FLAGS_MINSIZEREL="/MT /O1 /Ob1 /DNDEBUG" `
-D CMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /DNDEBUG" `
-D CMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT /Zi /O2 /Ob1 /DNDEBUG" `
```
CMakeCache.txt:
```
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=/MTd /Zi /Ob0 /Od /RTC1
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=/MT /O1 /Ob1 /DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=/MT /O2 /Ob2 /DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MT /Zi /O2 /Ob1 /DNDEBUG
```
.vcxproj:
```
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> (Must be **MultiThreaded**, because I set **/MT**, NOT **/MD**)
or
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
```
same as: https://github.com/InsightSoftwareConsortium/ITK/issues/2571https://gitlab.kitware.com/vtk/vtk/-/issues/18304vtkHDF5 warning about missing Perl executable2021-09-07T09:02:05-04:00ToddvtkHDF5 warning about missing Perl executableCMake-gui warns about missing _Perl_ which is apparently optional for the hdf5 lib.
![image](/uploads/b4fbfdbeb559360300b9dbac1d9467f1/image.png)
but it can be silenced easily
![image](/uploads/56928881301801bbe727e45b5e77f6ea/image.png)CMake-gui warns about missing _Perl_ which is apparently optional for the hdf5 lib.
![image](/uploads/b4fbfdbeb559360300b9dbac1d9467f1/image.png)
but it can be silenced easily
![image](/uploads/56928881301801bbe727e45b5e77f6ea/image.png)Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18306The vtkStaticPointLocator crashes if data isn't a vtkPointSet (master and rel...2021-09-14T18:10:42-04:00David GobbiThe vtkStaticPointLocator crashes if data isn't a vtkPointSet (master and release)As shown in [this sample code on discourse](https://discourse.vtk.org/t/problem-with-interpolating-vtkimagedata-on-vtkpolydata-with-vtkpointinterpolator), the vtkStaticPointInterpolator crashes when given data that isn't a vtkPointSet.
...As shown in [this sample code on discourse](https://discourse.vtk.org/t/problem-with-interpolating-vtkimagedata-on-vtkpolydata-with-vtkpointinterpolator), the vtkStaticPointInterpolator crashes when given data that isn't a vtkPointSet.
In the code, there is a `static_cast` where it looks like a `SafeDownCast` was intended:
```c++
void BuildLocator() override
{
// Place each point in a bucket
//
vtkPointSet* ps = static_cast<vtkPointSet*>(this->DataSet);
int mapped = 0;
if (ps)
{ // map points array: explicit points representation
```
The `static_cast` results in an invalid pointer if `this->DataSet` is vtkImageData.https://gitlab.kitware.com/vtk/vtk/-/issues/18307vtkImplicitPolyDataDistance calculates incorrect sign in some specific cases2024-02-28T05:56:36-05:00Ted GiblettevtkImplicitPolyDataDistance calculates incorrect sign in some specific casesIn some specific cases, vtkImplicitPolyDataDistance calculates the wrong sign when calling EvaluateFunction. It appears to only occur when the query point sits directly above the edge of a face as shown in the image below.
![test_surfac...In some specific cases, vtkImplicitPolyDataDistance calculates the wrong sign when calling EvaluateFunction. It appears to only occur when the query point sits directly above the edge of a face as shown in the image below.
![test_surface_and_point](/uploads/8873e57962a8c8a579b0074118502bf9/test_surface_and_point.png)
The code to reproduce this issue is as follows.
const double length = 1.0;
vtkNew<vtkCubeSource> cube;
cube->SetXLength(length);
cube->SetYLength(length);
cube->SetZLength(length);
cube->Update();
vtkNew<vtkImplicitPolyDataDistance> signed_distance;
signed_distance->SetInput(cube->GetOutput());
double test_distance = signed_distance->EvaluateFunction(-0.5, 0.7, 0.);
With this code, the value of test_distance is -0.2 instead of 0.2.https://gitlab.kitware.com/vtk/vtk/-/issues/18308LZ4 Warning During Build2021-09-15T16:42:30-04:00Adam HendryLZ4 Warning During Build```
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (LZ4) does
not match the name of the calling...```
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (LZ4) does
not match the name of the calling package (lz4). This can lead to problems
in calling code that expects `find_package` result variables (e.g.,
`_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
CMake/FindLZ4.cmake:24 (find_package_handle_standard_args)
C:/vcpkg/scripts/buildsystems/vcpkg.cmake:784 (_find_package)
C:/Program Files/CMake/share/cmake-3.21/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
C:/vcpkg/installed/x64-windows/share/libarchive/vcpkg-cmake-wrapper.cmake:15 (find_dependency)
C:/vcpkg/scripts/buildsystems/vcpkg.cmake:738 (include)
CMake/vtkModule.cmake:4365 (find_package)
Common/Archive/CMakeLists.txt:5 (vtk_module_find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
```https://gitlab.kitware.com/vtk/vtk/-/issues/18309vtkDICOM Deprecation Warning2021-09-16T14:55:53-04:00Adam HendryvtkDICOM Deprecation WarningI think the vtkDICOM `CMakeLists.txt` is outdated and needs updating:
```
CMake Deprecation Warning at Remote/vtkDICOM/CMakeLists.txt:5 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version ...I think the vtkDICOM `CMakeLists.txt` is outdated and needs updating:
```
CMake Deprecation Warning at Remote/vtkDICOM/CMakeLists.txt:5 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.21/Modules/CTest.cmake:50 (option):
Policy CMP0077 is not set: option() honors normal variables. Run "cmake
--help-policy CMP0077" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
For compatibility with older versions of CMake, option is clearing the
normal variable 'BUILD_TESTING'.
Call Stack (most recent call first):
Remote/vtkDICOM/CMakeLists.txt:12 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
```https://gitlab.kitware.com/vtk/vtk/-/issues/18310H5detect vs H5Tinit.c dependency problem2021-09-23T15:32:40-04:00David GobbiH5detect vs H5Tinit.c dependency problemSystem: macOS 10.15, cmake 3.13.2, GNU make 3.81, VTK master from Sept 15, 2021
Doing a "Makefile" build (-j 1) of VTK generated this error:
```text
No rule to make target 'ThirdParty/hdf5/vtkhdf5/src/H5Tinit.c'
```
The build continued ...System: macOS 10.15, cmake 3.13.2, GNU make 3.81, VTK master from Sept 15, 2021
Doing a "Makefile" build (-j 1) of VTK generated this error:
```text
No rule to make target 'ThirdParty/hdf5/vtkhdf5/src/H5Tinit.c'
```
The build continued after I forced H5detect to build:
```bash
make H5detect
make
```
I haven't dug very deep into this, but the following code block [(line 1084 in ThirdParty/hdf5/vtkhdf5/src/CMakeLists.txt)](https://gitlab.kitware.com/vtk/vtk/-/blob/7591e63b/ThirdParty/hdf5/vtkhdf5/src/CMakeLists.txt#L1084) seems to be implicated:
```cmake
add_custom_command (TARGET H5detect POST_BUILD
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5detect>
ARGS H5Tinit.c
BYPRODUCTS H5Tinit.c gen_SRCS.stamp1
COMMAND ${CMAKE_COMMAND}
ARGS -E touch gen_SRCS.stamp1
DEPENDS H5detect
WORKING_DIRECTORY ${HDF5_GENERATED_SOURCE_DIR}
COMMENT "Create H5Tinit.c"
)
```
Perhaps the problem is the use of "BYPRODUCTS" with no "OUTPUT" with the Makefile generator?
There seem to be similar dependency issues with `H5lib_settings.c` and `H5make_libsettings`. In that case, the workaround was this:
```
make H5make_libsettings
```Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18311VTK build error2021-09-16T10:12:21-04:00Chong ZHENGVTK build errorI have the following error. Please help.
```
.../VTK/ThirdParty/hdf5/vtkhdf5/src/H5Oint.c:358:12: error: implicit declaration of function 'vtkhdf5_H5CX_get_ohdr_flags' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
...I have the following error. Please help.
```
.../VTK/ThirdParty/hdf5/vtkhdf5/src/H5Oint.c:358:12: error: implicit declaration of function 'vtkhdf5_H5CX_get_ohdr_flags' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if(H5CX_get_ohdr_flags(&oh_flags) < 0)
^
.../VTK/ThirdParty/hdf5/vtkhdf5/src/vtk_hdf5_mangle.h:273:29: note: expanded from macro 'H5CX_get_ohdr_flags'
#define H5CX_get_ohdr_flags vtkhdf5_H5CX_get_ohdr_flags
^
[ 3%] Generating the wrap hierarchy for ParaView::VTKExtensionsIOCore
.../VTK/ThirdParty/hdf5/vtkhdf5/src/H5Oint.c:358:12: note: did you mean 'vtkhdf5_H5O_get_oh_flags'?
.../VTK/ThirdParty/hdf5/vtkhdf5/src/vtk_hdf5_mangle.h:273:29: note: expanded from macro 'H5CX_get_ohdr_flags'
#define H5CX_get_ohdr_flags vtkhdf5_H5CX_get_ohdr_flags
^
.../VTK/ThirdParty/hdf5/vtkhdf5/src/H5Oprivate.h:913:16: note: 'vtkhdf5_H5O_get_oh_flags' declared here
H5_DLL uint8_t H5O_get_oh_flags(const H5O_t *oh);
^
.../VTK/ThirdParty/hdf5/vtkhdf5/src/vtk_hdf5_mangle.h:1780:26: note: expanded from macro 'H5O_get_oh_flags'
#define H5O_get_oh_flags vtkhdf5_H5O_get_oh_flags
^
[ 3%] Building C object VTK/ThirdParty/hdf5/vtkhdf5/src/CMakeFiles/vtkhdf5_src.dir/H5Olayout.c.o
1 error generated.
```https://gitlab.kitware.com/vtk/vtk/-/issues/18312Error building VTK 9.0.3 with Intel(R) C++ Compiler 2021.12023-03-23T14:10:35-04:00stefan-gavranovicError building VTK 9.0.3 with Intel(R) C++ Compiler 2021.1Building VTK 9.0.3 with Intel icx compiler, I get compile error for following constexpr:
```c++
constexpr static std::array<vtkFFT::WindowGenerator, vtkTableFFT::MAX_WINDOWING_FUNCTION> WindowingFunctionsList =
{
vtkFFT::HanningGenera...Building VTK 9.0.3 with Intel icx compiler, I get compile error for following constexpr:
```c++
constexpr static std::array<vtkFFT::WindowGenerator, vtkTableFFT::MAX_WINDOWING_FUNCTION> WindowingFunctionsList =
{
vtkFFT::HanningGenerator,
vtkFFT::BartlettGenerator,
vtkFFT::SineGenerator,
vtkFFT::BlackmanGenerator,
vtkFFT::RectangularGenerator
};
```
```
"D:\VTK\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\VTK\build\Domains\Chemistry\DomainsChemistry.vcxproj" (default target) (86) ->
"D:\VTK\build\Filters\General\FiltersGeneral.vcxproj" (default target) (88) ->
(ClCompile target) ->
D:\VTK\VTK\Filters\General\vtkTableFFT.cxx(58,91): : error : constexpr variable 'WindowingFunctionsList' must be initialized by a constant expression [D:\VTK\build\Filters\General\FiltersGe neral.vcxproj]
0 Warning(s)
1 Error(s)
```Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18313reader update2021-09-20T04:46:44-04:00WZYSIUIreader updateI use the vtkImageimport interface to use the same pointer to pass in data for body drawing, the first time the pointer address grayscale range is 0 to 128, color map is 0 to 255, the second time to modify the pointer internal data range...I use the vtkImageimport interface to use the same pointer to pass in data for body drawing, the first time the pointer address grayscale range is 0 to 128, color map is 0 to 255, the second time to modify the pointer internal data range to 0 to 255, or the original color map, but this time the body color map is only 0 to 128.
This time the reader to perform modified interface can solve this problem,but would like to ask why there is this situationhttps://gitlab.kitware.com/vtk/vtk/-/issues/18315vtkVortexCore: interpolate point and cell data in output2021-09-22T10:00:42-04:00Cory Quammencory.quammen@kitware.comvtkVortexCore: interpolate point and cell data in outputvtkVortexCore does interpolates neither point data nor cell data from the input into the output data set. Update the filter so it interpolates point data.vtkVortexCore does interpolates neither point data nor cell data from the input into the output data set. Update the filter so it interpolates point data.Spiros TsalikisSpiros Tsalikishttps://gitlab.kitware.com/vtk/vtk/-/issues/18317Python 3.10 vtkPythonInterpreter path initialization2021-12-15T14:24:01-05:00David GobbiPython 3.10 vtkPythonInterpreter path initializationI've tried using VTK with Python-3.10rc2 (built from source) on linux (ubuntu 20.04).
The vtkpython executable runs, but VTK's site-packages directory is not in `sys.path`, so `import vtkmodules` fails. Adding VTK's site-packages to PY...I've tried using VTK with Python-3.10rc2 (built from source) on linux (ubuntu 20.04).
The vtkpython executable runs, but VTK's site-packages directory is not in `sys.path`, so `import vtkmodules` fails. Adding VTK's site-packages to PYTHONPATH (or to sys.path after-the-fact) allows vtkmodules to load as normal.
The PrependPythonPath machinery in vtkPythonInterpreter seems to be working (`<vtk-dir>/lib/python3.10/site-packages` is added to sys.path as it should be). However, at some point in the initialization, Python apparently replaces sys.path with a new list object that no longer contains VTK's site-packages.
My proof: I added a diagnostic print statement to vtkPythonInterpreter.cxx which prints the address of `path`. Then I checked the address within the REPL:
```
bin/vtkpython
Address of sys.path in vtkPrependPythonPath: 0x7f87b693ccc0
>>> import sys
>>> hex(id(sys.path))
'0x7f87b695b880'
```
In comparison, a VTK compiled with Python 3.8 printed the same address both times.
For compatibility with 3.10 and future versions of Python, VTK might have to adopt the new initialization strategy outlined in [PEP 587](https://www.python.org/dev/peps/pep-0587). I haven't yet tried to chase down the change in Python's source code that has caused this regression.Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18318Make it possible to disable Python output capture by VTK2021-09-24T19:01:21-04:00Cory Quammencory.quammen@kitware.comMake it possible to disable Python output capture by VTK`vtkPythonInterpreter` redirects Python output to `vtkOutputWindow`. Add an option to disable that so that VTK can be used in applications that have their own Python output redirection.`vtkPythonInterpreter` redirects Python output to `vtkOutputWindow`. Add an option to disable that so that VTK can be used in applications that have their own Python output redirection.https://gitlab.kitware.com/vtk/vtk/-/issues/18324Update Python wrapper documentation2021-10-25T08:27:52-04:00David GobbiUpdate Python wrapper documentationThe wrapper documentation is several years out-of-date and contains inaccuracies.
**Wrapping/Python/README.md**
This file currently contains general (but outdated) information on the Python wrappers, and it should be brought up-to-date...The wrapper documentation is several years out-of-date and contains inaccuracies.
**Wrapping/Python/README.md**
This file currently contains general (but outdated) information on the Python wrappers, and it should be brought up-to-date and moved to Documentation/Doxygen. The readme for Wrapping/Python should instead contain information about the contents of that directory (vtkPythonAppInit and vtkmodules).
**Wrapping/PythonCore/**
This directory currently has no documentation, but should have some. This directory contains extension classes and utility classes that are used by the Python wrappers.
**Wrapping/Tools/README.txt**
This file currently contains instructions on how to run lex and yacc to build the parser. It should be expanded to give a high-level overview of how the wrappers are constructed. And it should be re-named to README.md.https://gitlab.kitware.com/vtk/vtk/-/issues/18325Release 9.1.0.rc12023-06-01T00:54:25-04:00Ben BoeckelRelease 9.1.0.rc1# Update VTK
- Update the local copy of `master`.
- If `0.rc1` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout master
git merge --ff-only origin/master # if this fails, there are loc...# Update VTK
- Update the local copy of `master`.
- If `0.rc1` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout master
git merge --ff-only origin/master # if this fails, there are local commits that need to be removed
git submodule update --recursive --init
```
- If `master` is not `master`, ensure merge requests which should be
in the release have been merged. The [`backport-mrs.py`][backport-mrs]
script can be used to find and ensure that merge requests assigned to the
associated milestone are available on the `release` branch.
- Make a commit for each of these changes on a single topic (suggested branch
name: `update-to-v9.1.0`):
- Assemble release notes into `Documentation/release/9.1.md`.
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] Remove old release note files
- [x] If `master` is `master`, make a separate commit to update non-patch
version information.
- [x] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups
- [x] Update `CMake/vtkVersion.cmake` and tag the commit (tag this commit below)
```
$EDITOR CMake/vtkVersion.cmake
git commit -m 'Update version number to 9.1.0.rc1' CMake/vtkVersion.cmake
```
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.vtk` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.vtk` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] `Do: merge`
- [x] Push the tag to the main repository
- [x] `git tag -a -m 'VTK 9.1.0.rc1' v9.1.0.rc1 commit-that-updated-vtkVersion.cmake`
- [x] `git push origin v9.1.0.rc1`
- Gather release assets
- [x] Source (from the `build:source` CI job in the tag pipeline)
- [x] Documentation (from the `release-prep:documentation` CI job in the tag pipeline)
- [x] Wheels (from the `build:wheel-*` jobs).
- Upload assets to `vtk.org`
- [x] `rsync -rptv $tarballs $wheels user@host:vtk_release/9.1/`
- [x] Update `vtk.org/download` with the new release (email
`comm@kitware.com` with filenames and hashes)
- Software process updates (these can all be done independently)
- [x] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [x] Post an announcement in the Announcements category on
[discourse.vtk.org](https://discourse.vtk.org/).
/cc @ben.boeckel
/cc @ken-martin
/cc @utkarsh.ayachit
/cc @vbolea
/cc @mwestphal
/cc @cory.quammenhttps://gitlab.kitware.com/vtk/vtk/-/issues/18328Streamline configuration of client project adding PYTHON_* and Python3_* vari...2021-10-21T21:03:12-04:00Jean-Christophe Fillion-RobinStreamline configuration of client project adding PYTHON_* and Python3_* variables vtk-config (or alike)To streamline the configuration of project that do not directly use python but depends on a VTK build tree wrapped in python, it would be helpful to include all the python variables in the VTK configuration associated with the build tree...To streamline the configuration of project that do not directly use python but depends on a VTK build tree wrapped in python, it would be helpful to include all the python variables in the VTK configuration associated with the build tree.
The goal is to avoid passing blocks like these ones and expect VTK to find the python it was build against:
```
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
-DPYTHON_INCLUDE_DIR:FILEPATH=${PYTHON_INCLUDE_DIR}
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE}
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY}
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR}
```
Notes:
* These comments only apply to a VTK build tree and **NOT** a VTK install tree.
References:
* https://github.com/openigtlink/SlicerOpenIGTLink/pull/116
* https://discourse.slicer.org/t/superbuild-extension-builds-failed-when-python-was-installed-good-solution/199389.1Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18329SSL certificate error on Gitlab2021-10-04T12:09:57-04:00ToddSSL certificate error on Gitlab```
> git.exe push -v --progress "origin" master:master
> fatal: unable to access 'https://gitlab.kitware.com/todoooo/vtk.git/': SSL certificate problem: certificate has expired
> Pushing to https://gitlab.kitware.com/todoooo/vtk.git
``````
> git.exe push -v --progress "origin" master:master
> fatal: unable to access 'https://gitlab.kitware.com/todoooo/vtk.git/': SSL certificate problem: certificate has expired
> Pushing to https://gitlab.kitware.com/todoooo/vtk.git
```https://gitlab.kitware.com/vtk/vtk/-/issues/18331Is it possible to export data to netgen then read meshing result from it dire...2021-10-05T06:32:49-04:00Alex LuyaIs it possible to export data to netgen then read meshing result from it directly without file?Following code can export meshing result as vtu file
```
from netgen import occ, meshing
from ngsolve.utils import *
from vtkmodules.vtkIOXML import vtkXMLUnstructuredGridReader
from ngsolve.comp import *
from ngsolve.solve import *
# ...Following code can export meshing result as vtu file
```
from netgen import occ, meshing
from ngsolve.utils import *
from vtkmodules.vtkIOXML import vtkXMLUnstructuredGridReader
from ngsolve.comp import *
from ngsolve.solve import *
# from netgen.csg import unit_cube
# mesh = unit_cube.GenerateMesh (maxh = 0.2)
# load geo
geo = occ.OCCGeometry('../resource/frame.step')
# generate mesh from geo
mesh = geo.GenerateMesh(maxh = 1000, perfstepsend = meshing.MeshingStep.MESHSURFACE)
# convert to ngsolve mesh
mesh = Mesh(mesh)
# export mesh as result.vtu
v = FESpace(type = "hdivho", mesh = mesh, order = 1, dirichlet = [1, 2, 3])
u = GridFunction (space = v)
vtk = VTKOutput(ma = mesh,
coefs = [u],
names = ["density", "velocity"],
filename = "result",
subdivision = 3)
vtk.Do()
# read exported file: result.vtu
reader = vtkXMLUnstructuredGridReader()
reader.SetFileName("result.vtu")
reader.Update()
```
Geo can be exported from vtk pipeline also,my questions are:
1, How to pass geo from vtk to netgen directly,not need to export files?
2, How to read mesh from netgen directly,not need to export/read files?https://gitlab.kitware.com/vtk/vtk/-/issues/18333Release 9.1.0.rc22023-06-01T00:54:33-04:00Ben BoeckelRelease 9.1.0.rc2# Update VTK
- Update the local copy of `release`.
- If `0.rc2` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout release
git merge --ff-only origin/release # if this fails, there are ...# Update VTK
- Update the local copy of `release`.
- If `0.rc2` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout release
git merge --ff-only origin/release # if this fails, there are local commits that need to be removed
git submodule update --recursive --init
```
- If `release` is not `master`, ensure merge requests which should be
in the release have been merged. The [`backport-mrs.py`][backport-mrs]
script can be used to find and ensure that merge requests assigned to the
associated milestone are available on the `release` branch.
- Make a commit for each of these changes on a single topic (suggested branch
name: `update-to-v9.1.0`):
- Assemble release notes into `Documentation/release/9.1.md`.
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] If `release` is `master`, update the non-patch version in a
separate commit (so that `master` gets it as well).
- [x] Remove old release note files
- [x] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups
- [x] Update `CMake/vtkVersion.cmake` and tag the commit (tag this commit below)
```
$EDITOR CMake/vtkVersion.cmake
git commit -m 'Update version number to 9.1.0.rc2' CMake/vtkVersion.cmake
```
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.vtk` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.vtk` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] `Do: merge`
- [x] Push the tag to the main repository
- [x] `git tag -a -m 'VTK 9.1.0.rc2' v9.1.0.rc2 commit-that-updated-vtkVersion.cmake`
- [x] `git push origin v9.1.0.rc2`
- Gather release assets
- [x] Source (from the `build:source` CI job in the tag pipeline)
- [x] Documentation (from the `release-prep:documentation` CI job in the tag pipeline)
- [x] Wheels (from the `build:wheel-*` jobs).
- Upload assets to `vtk.org`
- [x] `rsync -rptv $tarballs $wheels user@host:vtk_release/9.1/`
- [x] Update `vtk.org/download` with the new release (email
`comm@kitware.com` with filenames and hashes)
- Software process updates (these can all be done independently)
- [x] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
- Deprecation updates (if `release` is `master`)
- [x] Update deprecation macros for the next release
- [x] Remove deprecated symbols from before the *prior* release
- [x] Update `VTK_MINIMUM_DEPRECATION_LEVEL` to be that of the *prior*
release
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [x] Post an announcement in the Announcements category on
[discourse.vtk.org](https://discourse.vtk.org/).
/cc @ben.boeckel
/cc @ken-martin
/cc @utkarsh.ayachitVicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk/-/issues/18335can't install with Python 3.102023-10-24T18:19:44-04:00Alexander Hegercan't install with Python 3.10Can't install vtk on poythin 3.10. Default pip find no compatible version, installing from git give
```
~>pip3 install vtk
ERROR: Could not find a version that satisfies the requirement vtk (from versions: none)
ERROR: No matching distr...Can't install vtk on poythin 3.10. Default pip find no compatible version, installing from git give
```
~>pip3 install vtk
ERROR: Could not find a version that satisfies the requirement vtk (from versions: none)
ERROR: No matching distribution found for vtk
~>pip3 install git+https://gitlab.kitware.com/vtk/vtk.git
Collecting git+https://gitlab.kitware.com/vtk/vtk.git
Cloning https://gitlab.kitware.com/vtk/vtk.git to /tmp/pip-req-build-c33xtydz
Running command git clone -q https://gitlab.kitware.com/vtk/vtk.git /tmp/pip-req-build-c33xtydz
Resolved https://gitlab.kitware.com/vtk/vtk.git to commit 2b4475008cdacb88831f2908f2017cd829db48f7
Running command git submodule update --init --recursive -q
ERROR: File "setup.py" not found for legacy project git+https://gitlab.kitware.com/vtk/vtk.git.
```
Maybe you want to update vtk install procedure.https://gitlab.kitware.com/vtk/vtk/-/issues/18336Same texture used in two renders window fails2021-10-26T05:39:55-04:00Timothee ChabatSame texture used in two renders window failsCreating a single texture used in multiple **render windows** does not work. Note that using the same texture in 2 different renderers but in the same render window works fine.
See below for a minimal example :
```cpp
#include <vtkActo...Creating a single texture used in multiple **render windows** does not work. Note that using the same texture in 2 different renderers but in the same render window works fine.
See below for a minimal example :
```cpp
#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <vtkPlaneSource.h>
#include <vtkTexture.h>
#include <vtkPNGReader.h>
#include <array>
int main(int, char*[])
{
std::array<vtkNew<vtkRenderWindow>, 2> renderWindows;
std::array<vtkNew<vtkRenderWindowInteractor>, 2> interactors;
// XXX: ---------------------------------
// Moving this into the for loop will make the program behave correctly
vtkNew<vtkPNGReader> texReader;
texReader->SetFileName("/home/timothee/Misc/Images/plain.png");
vtkNew<vtkTexture> texture;
texture->SetInputConnection(texReader->GetOutputPort());
texture->Update();
// ---------------------------------------
for (int i : {0, 1})
{
vtkNew<vtkPlaneSource> plane;
plane->Update();
renderWindows[i]->SetWindowName("ShareCamera");
renderWindows[i]->SetSize(400, 400);
interactors[i]->SetRenderWindow(renderWindows[i]);
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(plane->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
actor->SetTexture(texture);
vtkNew<vtkRenderer> renderer;
renderer->AddActor(actor);
renderer->SetBackground(0.2, 0.2, 0.2);
renderWindows[i]->AddRenderer(renderer);
vtkCamera* camera = nullptr;
if (i == 0)
{
camera = renderer->GetActiveCamera();
camera->Azimuth(30);
camera->Elevation(30);
}
else
{
renderer->SetActiveCamera(camera);
}
renderer->ResetCamera();
renderWindows[i]->Render();
}
interactors[0]->Start();
return EXIT_SUCCESS;
}
```https://gitlab.kitware.com/vtk/vtk/-/issues/18340TestHyperTreeGridBitmask.cxx:141:12: error: narrowing conversion of '-1' from...2021-10-29T13:17:39-04:00Orion PoplawskiTestHyperTreeGridBitmask.cxx:141:12: error: narrowing conversion of '-1' from 'int' to 'char' [-Wnarrowing]Trying to build vtk 9.1.0.rc1 on Fedora Rawhide, build fails on 32 and 64-bit arm:
```
/builddir/build/BUILD/VTK-9.1.0.rc1/Common/DataModel/Testing/Cxx/TestHyperTreeGridBitmask.cxx: In function 'int TestUniformHyperTreeOneRootCellSubdivi...Trying to build vtk 9.1.0.rc1 on Fedora Rawhide, build fails on 32 and 64-bit arm:
```
/builddir/build/BUILD/VTK-9.1.0.rc1/Common/DataModel/Testing/Cxx/TestHyperTreeGridBitmask.cxx: In function 'int TestUniformHyperTreeOneRootCellSubdivided()':
/builddir/build/BUILD/VTK-9.1.0.rc1/Common/DataModel/Testing/Cxx/TestHyperTreeGridBitmask.cxx:141:12: error: narrowing conversion of '-1' from 'int' to 'char' [-Wnarrowing]
141 | subdivide(cursor, { 7, 2, -1, -1, 2, 7 });
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/VTK-9.1.0.rc1/Common/DataModel/Testing/Cxx/TestHyperTreeGridBitmask.cxx: In function 'int TestUniformHyperTreeSeveralRootCellsSubdivided()':
/builddir/build/BUILD/VTK-9.1.0.rc1/Common/DataModel/Testing/Cxx/TestHyperTreeGridBitmask.cxx:202:39: error: narrowing conversion of '-1' from 'int' to 'char' [-Wnarrowing]
202 | initUniformHyperTreeSeveralRootCells(uhtg, { { 5, 0, -1, 2 }, { 7, 7, 7 }, { 4, -1, 6 }, { 4 } });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [Common/DataModel/Testing/Cxx/CMakeFiles/vtkCommonDataModelCxxTests.dir/build.make:471: Common/DataModel/Testing/Cxx/CMakeFiles/vtkCommonDataModelCxxTests.dir/TestHyperTreeGridBitmask.cxx.o] Error 1
```Yohann Bearzi (Kitware)Yohann Bearzi (Kitware)https://gitlab.kitware.com/vtk/vtk/-/issues/18343Config failure for python static build2021-10-28T18:10:25-04:00David GobbiConfig failure for python static buildOn ubuntu 20.04, the following config gives an error for the current release head:
```bash
cmake -G Ninja ../vtk-gitlab -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF \
-DVTK_BUILD_TESTING=OFF -DVTK_PYTHON_VERSION=3 -DVTK_WRAP...On ubuntu 20.04, the following config gives an error for the current release head:
```bash
cmake -G Ninja ../vtk-gitlab -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF \
-DVTK_BUILD_TESTING=OFF -DVTK_PYTHON_VERSION=3 -DVTK_WRAP_PYTHON=ON
```
```text
CMake Error at CMake/vtkModuleWrapPython.cmake:987 (target_link_libraries):
INTERFACE library can only be used with the INTERFACE keyword of
target_link_libraries
```
The cmake code in question:
```cmake
if (_vtk_python_UTILITY_TARGET)
target_link_libraries("${_vtk_python_TARGET_NAME}"
PRIVATE
"${_vtk_python_UTILITY_TARGET}")
endif ()
```
Tested with cmake 3.16.3 and with 3.21, both produced the same error.9.1Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18344Destructor of vtkDataEncoder hangs with apparent deadlock2022-07-13T11:57:55-04:00Mark DickinsonDestructor of vtkDataEncoder hangs with apparent deadlockThis issue was cut down from a problem with the Mayavi package. With the Python "vtk" package, I'm able to easily hang the process simply by creating `vtkDataEncoder` instances and then allowing them to be garbage collected.
The followi...This issue was cut down from a problem with the Mayavi package. With the Python "vtk" package, I'm able to easily hang the process simply by creating `vtkDataEncoder` instances and then allowing them to be garbage collected.
The following simple script hangs for me on macOS 10.15.7 on an Intel MacBook Pro, Python 3.9.7, vtk 9.0.3:
```
import vtk
print("Version:", vtk.VTK_VERSION)
print("Starting loop")
for _ in range(100):
vtk.vtkDataEncoder()
print("Finished")
```
The output is just:
```
(mayavi) mdickinson@mirzakhani Desktop % python vtk_bug.py
Version: 9.0.3
Starting loop
```
Attaching lldb to the hanging process shows that it's locked at the point where it's trying to tear down the thread pool:
```
mdickinson@mirzakhani ~ % lldb -p 6292
(lldb) process attach --pid 6292
Process 6292 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fff70dad55e libsystem_kernel.dylib`__ulock_wait + 10
libsystem_kernel.dylib`__ulock_wait:
-> 0x7fff70dad55e <+10>: jae 0x7fff70dad568 ; <+20>
0x7fff70dad560 <+12>: movq %rax, %rdi
0x7fff70dad563 <+15>: jmp 0x7fff70dac629 ; cerror_nocancel
0x7fff70dad568 <+20>: retq
Target 0: (Python) stopped.
Executable module set to "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/Resources/Python.app/Contents/MacOS/Python".
Architecture set to: x86_64h-apple-macosx-.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x00007fff70dad55e libsystem_kernel.dylib`__ulock_wait + 10
frame #1: 0x00007fff70e705c2 libsystem_pthread.dylib`_pthread_join + 347
frame #2: 0x000000010a4f28a2 libvtkCommonCore-9.0.dylib`vtkMultiThreader::TerminateThread(int) + 226
frame #3: 0x000000010a8845cc libvtkWebCore-9.0.dylib`vtkDataEncoder::vtkInternals::TerminateAllWorkers() + 124
frame #4: 0x000000010a88467d libvtkWebCore-9.0.dylib`vtkDataEncoder::~vtkDataEncoder() + 29
frame #5: 0x000000010a283e3d libvtkWrappingPythonCore-9.0.dylib`vtkPythonUtil::RemoveObjectFromMap(_object*) + 157
frame #6: 0x000000010a268215 libvtkWrappingPythonCore-9.0.dylib`PyVTKObject_Delete + 37
frame #7: 0x000000010980fb57 Python`_PyEval_EvalFrameDefault + 2263
frame #8: 0x0000000109818be2 Python`_PyEval_EvalCode + 2008
frame #9: 0x000000010980f1c8 Python`PyEval_EvalCode + 57
frame #10: 0x000000010984a059 Python`run_eval_code_obj + 110
frame #11: 0x0000000109849230 Python`run_mod + 103
frame #12: 0x00000001098493ae Python`pyrun_file + 216
frame #13: 0x0000000109847a4e Python`PyRun_SimpleFileExFlags + 660
frame #14: 0x000000010985f7c7 Python`Py_RunMain + 1839
frame #15: 0x000000010985fb36 Python`pymain_main + 360
frame #16: 0x000000010985fb8b Python`Py_BytesMain + 42
frame #17: 0x00007fff70c6acc9 libdyld.dylib`start + 1
frame #18: 0x00007fff70c6acc9 libdyld.dylib`start + 1
```9.1Utkarsh AyachitUtkarsh Ayachithttps://gitlab.kitware.com/vtk/vtk/-/issues/18346vtkExtractParticlesOverTime filter output does not change over time2021-11-15T04:13:10-05:00Francois MazenvtkExtractParticlesOverTime filter output does not change over timeThe output of the `vtkExtractParticlesOverTime` filter does not change over time. The extracted particles are always at first time step whatever the requested time step.
Sample code to reproduce:
```cpp
vtkNew<vtkTimeSourceExample> t...The output of the `vtkExtractParticlesOverTime` filter does not change over time. The extracted particles are always at first time step whatever the requested time step.
Sample code to reproduce:
```cpp
vtkNew<vtkTimeSourceExample> timeSource;
timeSource->SetXAmplitude(10);
timeSource->SetYAmplitude(0);
vtkNew<vtkSphereSource> sphere;
sphere->SetCenter(10, 0, 0);
vtkNew<vtkDelaunay3D> delaunay;
delaunay->SetInputConnection(sphere->GetOutputPort());
vtkNew<vtkExtractParticlesOverTime> particleExtraction;
particleExtraction->SetInputConnection(0, timeSource->GetOutputPort());
particleExtraction->SetInputConnection(1, delaunay->GetOutputPort());
double initialTimeStep = 0.5;
particleExtraction->UpdateTimeStep(initialTimeStep);
auto* resultDataObject = particleExtraction->GetOutputDataObject(0);
auto* resultDataSet = vtkDataSet::SafeDownCast(resultDataObject);
double* firstPointCoordinates = resultDataSet->GetPoint(0);
// Expected point coordinate is [3.4202, 0, 0], whereas we get [0, 0, 0]
```
Introduced by https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8503https://gitlab.kitware.com/vtk/vtk/-/issues/18347Python: broken wxVTKRenderWindow and wxVTKRenderWindowInteractor2021-10-19T11:10:15-04:00Noè MurrPython: broken wxVTKRenderWindow and wxVTKRenderWindowInteractor## Problem
I'm trying to run the `wxVTKRenderWindowConeExample` function from the file `vtkmodules.wx.wxVTKRenderWindow` on ubuntu 20.04 and on windows 10.
The example is not working and it's just showing an empty window (black on linu...## Problem
I'm trying to run the `wxVTKRenderWindowConeExample` function from the file `vtkmodules.wx.wxVTKRenderWindow` on ubuntu 20.04 and on windows 10.
The example is not working and it's just showing an empty window (black on linux, white on windows).
![image](/uploads/ca06c0e1b9d4ffe9d9846f753e82911a/image.png) ![image](/uploads/ba3ec422cb18d079d3c97777d6afb225/image.png)
The same problem occurs with the example in wxVTKRenderWindowInteractor
## Observations
Both wxWidgets and VTK alone are working properly. I run examples from both the software and they are working properly.
I also tried to took the code inside the function `wxVTKRenderWindowConeExample` and commented everything a part from the definition of the window and of the class `wxVTKRendererWindow`:
```python
import wx
"""Like it says, just a simple example.
"""
from vtkmodules.wx.wxVTKRenderWindow import wxVTKRenderWindow
from vtkmodules.vtkFiltersSources import vtkConeSource
from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper, vtkRenderer
# every wx app needs an app
app = wx.App(False)
# create the widget
frame = wx.Frame(None, -1, "wxVTKRenderWindow", size=(400, 400))
widget = wxVTKRenderWindow(frame, -1)
#ren = vtkRenderer()
#widget.GetRenderWindow().AddRenderer(ren)
#cone = vtkConeSource()
#cone.SetResolution(8)
#coneMapper = vtkPolyDataMapper()
#coneMapper.SetInputConnection(cone.GetOutputPort())
#coneActor = vtkActor()
#coneActor.SetMapper(coneMapper)
#ren.AddActor(coneActor)
frame.Show()
app.MainLoop()
```
Since the result is equal with the commented code and without the commented code I think that the problem is that the renderer is not rendering the actor.https://gitlab.kitware.com/vtk/vtk/-/issues/18348Many textured vtkFollower failure2021-10-26T07:44:20-04:00Timothee ChabatMany textured vtkFollower failureWhen instanciating more than 32 textured vtkFollower, some errors are logged about too many textures being send to the GPU and final render is totally broken.
Replacing `vtkFollower` by `vtkActor` gives no errors and works fine even wit...When instanciating more than 32 textured vtkFollower, some errors are logged about too many textures being send to the GPU and final render is totally broken.
Replacing `vtkFollower` by `vtkActor` gives no errors and works fine even with 100+ textures.
Errors :
```shell
2021-10-18 16:55:26.100 ( 1.300s) [ EA38C780] vtkOpenGLState.cxx:1795 WARN| Hardware does not support the number of textures defined.
2021-10-18 16:55:26.100 ( 1.300s) [ EA38C780]vtkOpenGLPolyDataMapper:2648 ERR| vtkCompositeMapperHelper2 (0x55b142535840): failed after Render 1 OpenGL errors detected
0 : (1281) Invalid value
```
Program to reproduce :
```cpp
#include <vtkCell.h>
#include <vtkIdList.h>
#include <vtkNew.h>
#include <vtkRTAnalyticSource.h>
#include <vtkStaticCellLocator.h>
#include <vtkPlaneSource.h>
#include <vtkActor.h>
#include <vtkFollower.h>
#include <vtkRenderer.h>
#include <vtkCompositePolyDataMapper.h>
#include <vtkCompositePolyDataMapper2.h>
#include <vtkRenderWindow.h>
#include <vtkNew.h>
#include <vtkJPEGReader.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkTexture.h>
#include <vector>
//////////////////////////
constexpr int LOOP = 6;
const std::vector<const char*> TEXTURES = {
// list of texture name ...
};
//////////////////////////
int main(int, char *[])
{
vtkNew<vtkRenderer> renderer;
const std::string prefix = "/home/timothee/Data/materials/textures/";
for (int i = 0; i < LOOP; ++i)
{
for(int j = 0; j < LOOP; ++j)
{
vtkNew<vtkPlaneSource> source;
source->SetCenter(i, j, 0);
source->Update();
const std::string filename = prefix + TEXTURES[(i + LOOP *j) % TEXTURES.size()];
vtkNew<vtkJPEGReader> reader;
reader->SetFileName(filename.c_str());
vtkNew<vtkTexture> texture;
texture->SetInputConnection(reader->GetOutputPort());
vtkNew<vtkCompositePolyDataMapper2> mapper;
mapper->SetInputConnection(source->GetOutputPort());
vtkNew<vtkFollower> actor;
actor->SetCamera(renderer->GetActiveCamera());
actor->SetMapper(mapper);
actor->SetTexture(texture);
renderer->AddActor(actor);
}
}
renderer->ResetCamera(-1, LOOP + 1, -1, LOOP + 1, -1, 1);
vtkNew<vtkRenderWindow> window;
window->AddRenderer(renderer);
window->SetWindowName("Follower test");
vtkNew<vtkRenderWindowInteractor> interactor;
interactor->SetRenderWindow(window);
window->Render();
interactor->Start();
return 0;
}
```https://gitlab.kitware.com/vtk/vtk/-/issues/18349Import and export OFF or STL files to do mesh Boolean operations(Union, Diffe...2021-10-19T09:36:25-04:00Sumil SoodImport and export OFF or STL files to do mesh Boolean operations(Union, Difference, Intersection)Hi,
My name is Sumil and I work as an Engineer in Mathworks. My team is looking into libraries that can help in doing Boolean operations like union, difference or intersection on 3d meshes created in MATLAB. We are looking for something...Hi,
My name is Sumil and I work as an Engineer in Mathworks. My team is looking into libraries that can help in doing Boolean operations like union, difference or intersection on 3d meshes created in MATLAB. We are looking for something that is robust and has good performance.
I see that VTK works well for the application and want to check it for performance and robustness.
I compiled the example Implicit Boolean(https://kitware.github.io/vtk-examples/site/Cxx/Filtering/ImplicitBoolean/) and it works fine. However I want to import my own mesh data files which are in .OFF and STL format. I also want to export the result in the same format. Is there any example that can tell me how to do this using VTK? I have attached the data files for reference.[cube1.off](/uploads/fdf99424ef472cf17fb7dd74cda6154b/cube1.off)[cylinder1.off](/uploads/21abec5b94b3c7d70e7b7d157c70dddb/cylinder1.off)
Thank you
Sumilhttps://gitlab.kitware.com/vtk/vtk/-/issues/18350Old VTK modules aren't importing vtkRenderingOpenGL22022-02-08T07:55:45-05:00David GobbiOld VTK modules aren't importing vtkRenderingOpenGL2The vtk.wxVTKRenderWindow used to import "vtk" to bring in the OpenGL backend, but since the code was modified to use "vtkmodules", the vtkRenderWindow no longer has an implementation (See #18347). The same is probably true for other Py...The vtk.wxVTKRenderWindow used to import "vtk" to bring in the OpenGL backend, but since the code was modified to use "vtkmodules", the vtkRenderWindow no longer has an implementation (See #18347). The same is probably true for other Python modules that haven't been tested recently.
Adding this issue to remind myself to examine these modules (though I'm not set up to test all of them).
The fix is to add `import vtkRenderingOpenGL2`, `import vtkRenderingUI`, `import vtkRenderingFreeType`, and `import vtkInteractionStyle` where appropriate.https://gitlab.kitware.com/vtk/vtk/-/issues/18351Release 9.1.0.rc42023-06-01T00:54:42-04:00Ben BoeckelRelease 9.1.0.rc4# Update VTK
- Update the local copy of `release`.
- If `0.rc4` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout release
git merge --ff-only origin/release # if this fails, there are ...# Update VTK
- Update the local copy of `release`.
- If `0.rc4` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout release
git merge --ff-only origin/release # if this fails, there are local commits that need to be removed
git submodule update --recursive --init
```
- If `release` is not `master`, ensure merge requests which should be
in the release have been merged. The [`backport-mrs.py`][backport-mrs]
script can be used to find and ensure that merge requests assigned to the
associated milestone are available on the `release` branch.
- Make a commit for each of these changes on a single topic (suggested branch
name: `update-to-v9.1.0`):
- Assemble release notes into `Documentation/release/9.1.md`.
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] If `release` is `master`, update the non-patch version in a
separate commit (so that `master` gets it as well).
- [x] Remove old release note files
- [x] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups
- [x] Update `CMake/vtkVersion.cmake` and tag the commit (tag this commit below)
```
$EDITOR CMake/vtkVersion.cmake
git commit -m 'Update version number to 9.1.0.rc4' CMake/vtkVersion.cmake
```
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.vtk` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.vtk` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] `Do: merge`
- [x] Push the tag to the main repository
- [x] `git tag -a -m 'VTK 9.1.0.rc4' v9.1.0.rc4 commit-that-updated-vtkVersion.cmake`
- [x] `git push origin v9.1.0.rc4`
- Gather release assets
- [x] Source (from the `build:source` CI job in the tag pipeline)
- [x] Documentation (from the `release-prep:documentation` CI job in the tag pipeline)
- [x] Wheels (from the `build:wheel-*` jobs).
- Upload assets to `vtk.org`
- [x] `rsync -rptv $tarballs $wheels user@host:vtk_release/9.1/`
- [x] Update `vtk.org/download` with the new release (email
`comm@kitware.com` with filenames and hashes)
- Software process updates (these can all be done independently)
- [x] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
- Deprecation updates (if `release` is `master`)
- [x] Update deprecation macros for the next release
- [x] Remove deprecated symbols from before the *prior* release
- [x] Update `VTK_MINIMUM_DEPRECATION_LEVEL` to be that of the *prior*
release
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [x] Post an announcement in the Announcements category on
[discourse.vtk.org](https://discourse.vtk.org/).
/cc @ben.boeckel
/cc @ken-martin
/cc @utkarsh.ayachit
/cc @vbolea9.1Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18353vtk x11 ProcessEvents inconsistent behaviour2021-10-25T03:46:13-04:00Jaswant Panchumartivtk x11 ProcessEvents inconsistent behaviourWhen I call ProcessEvents in my own loop, the joystick functionality: Dolly, Spin, Rotate do not work. However, zooming in/out works. This is not the case on windows or SDL2.
```c++
void callback(vtkObject* caller, unsigned long eid, vo...When I call ProcessEvents in my own loop, the joystick functionality: Dolly, Spin, Rotate do not work. However, zooming in/out works. This is not the case on windows or SDL2.
```c++
void callback(vtkObject* caller, unsigned long eid, void* callData)
{
... // cast caller to interactor
... // my event loop starts
interactor->ProcessEvents()
... // my event loop ends
}
interactor->AddObserver(vtkCommand::StartEvent, this, &callback);
interactor->Start()
```https://gitlab.kitware.com/vtk/vtk/-/issues/18356vtkOpenGLRenderer (000001FB00382400): Resetting view-up since view plane norm...2021-11-02T04:48:42-04:00santosh kamblevtkOpenGLRenderer (000001FB00382400): Resetting view-up since view plane normal is parallelI am using vtk 9.0.3.
I am trying to set the lateral view using Roll and Pitch of vtkCamera.
When I use Pitch > 87 degree I get below warning and view gets reset.
**Warning: In ..\Rendering\Core\vtkRenderer.cxx, line 1164
vtkOpenGLRende...I am using vtk 9.0.3.
I am trying to set the lateral view using Roll and Pitch of vtkCamera.
When I use Pitch > 87 degree I get below warning and view gets reset.
**Warning: In ..\Rendering\Core\vtkRenderer.cxx, line 1164
vtkOpenGLRenderer (00000245253A2650): Resetting view-up since view plane normal is parallel**
Below is the code
```
import vtk
reader = vtk.vtkSTLReader()
reader.SetFileName("MiniHumanMandible.stl")
reader.Update()
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(reader.GetOutput())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(1, 0, 0)
cam = vtk.vtkCamera()
cam.Roll(90)
cam.Pitch(90)
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
ren.AddActor(actor)
ren.SetActiveCamera(cam)
ren.SetBackground(0,0,0)
renWin.AddRenderer(ren)
ren.ResetCamera()
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
style = vtk.vtkInteractorStyleTrackballCamera()
iren.SetInteractorStyle(style)
iren.Start()
```
I have attached images of default rendered stl file, with Roll 90 and pitch 90 and warning, with Roll 90 and Pitch 87 degree
Original View (Without any camera Roll or Pitch)
![originalview](/uploads/4ab38b6c6031f03471806850d20d19d0/originalview.PNG)
Lateral View (With Roll = 90, Pitch = 90) with warning
![warning_lateral_view](/uploads/4db246743b268b3f25ee1235a95f04b2/warning_lateral_view.PNG)
Lateral View (With Roll = 90, Pitch = 87) no warning
![87degree](/uploads/6eb47a5f857d35ca3f8550a2d9e9e3ef/87degree.PNG)
Please help me to resolve this issuehttps://gitlab.kitware.com/vtk/vtk/-/issues/18357VTK9.1.0 Build failed on jetson(ubuntu18.04)2021-10-31T21:45:28-04:00HypersenVTK9.1.0 Build failed on jetson(ubuntu18.04)**I try to compile VTK9.1.0-rc1 on a Jetson device, and the operating system is ubuntu18.04. In order to combine VTK with Qt, I turned on the Qt GUI Support options, but the compilation failed, indicating that OpenGL-related macro defini...**I try to compile VTK9.1.0-rc1 on a Jetson device, and the operating system is ubuntu18.04. In order to combine VTK with Qt, I turned on the Qt GUI Support options, but the compilation failed, indicating that OpenGL-related macro definitions are missing. I manually added <GL/gl.h>, after the error disappeared, "glPointParameteri was not declared in this scope of file vtkOpenGLContextDevice2D.cxx" appeared again. I still manually added the header file <GL/glext.h>, but it didn't work. I saw a related problem in the Issues column, saying that it can be solved by recompiling the Qt source code and turning on the OpenGL function. I tried to compile the Qt12.5.11 version of the source code and recompile the VTK after it was completed, but it didn’t work. In the same situation, I added -opengl desktop to my Qt configure option, because dynamic is invalid in Unix systems. How to solve this compilation problem? If you just turn off the rendering-related modules, then Qt will not be able to use VTK. This is for me It doesn't make sense, thank you.**
```
In file included from /home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:63:0:
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h: In member function ‘void vtkOpenGLContextDevice2D::Private::SaveGLState(vtkOpenGLState*, bool)’:
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h:312:32: error: ‘GL_DRAW_BUFFER’ was not declared in this scope
ostate->vtkglGetIntegerv(GL_DRAW_BUFFER, &this->SavedDrawBuffer);
^~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h:312:32: note: suggested alternative: ‘GL_DRAW_BUFFER0’
ostate->vtkglGetIntegerv(GL_DRAW_BUFFER, &this->SavedDrawBuffer);
^~~~~~~~~~~~~~
GL_DRAW_BUFFER0
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx: In member function ‘virtual void vtkOpenGLContextDevice2D::DrawPointSprites(vtkImageData*, float*, int, unsigned char*, int)’:
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1128:16: error: ‘GL_POINT_SPRITE’ was not declared in this scope
glEnable(GL_POINT_SPRITE);
^~~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1128:16: note: suggested alternative: ‘GL_POINTS’
glEnable(GL_POINT_SPRITE);
^~~~~~~~~~~~~~~
GL_POINTS
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1129:34: error: ‘GL_COORD_REPLACE’ was not declared in this scope
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
^~~~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1129:34: note: suggested alternative: ‘GL_REPLACE’
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
^~~~~~~~~~~~~~~~
GL_REPLACE
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1129:7: error: ‘glTexEnvi’ was not declared in this scope
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
^~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1131:23: error: ‘GL_POINT_SPRITE_COORD_ORIGIN’ was not declared in this scope
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1131:53: error: ‘GL_LOWER_LEFT’ was not declared in this scope
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
^~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1131:53: note: suggested alternative: ‘GL_LOW_INT’
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
^~~~~~~~~~~~~
GL_LOW_INT
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1131:5: error: ‘glPointParameteri’ was not declared in this scope
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
^~~~~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1131:5: note: suggested alternative: ‘glProgramParameteri’
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
^~~~~~~~~~~~~~~~~
glProgramParameteri
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1137:17: error: ‘GL_POINT_SPRITE’ was not declared in this scope
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE);
^~~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1137:17: note: suggested alternative: ‘GL_POINTS’
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE);
^~~~~~~~~~~~~~~
GL_POINTS
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1137:34: error: ‘GL_COORD_REPLACE’ was not declared in this scope
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE);
^~~~~~~~~~~~~~~~
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1137:34: note: suggested alternative: ‘GL_REPLACE’
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE);
^~~~~~~~~~~~~~~~
GL_REPLACE
/home/hypersen/vtk-v9.1.0.rc1/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:1137:7: error: ‘glTexEnvi’ was not declared in this scope
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE);
```https://gitlab.kitware.com/vtk/vtk/-/issues/18358VTK 9.1.0 rc1 with Qt App complie ERR: 'ReferenceCountModel' And 'vtkQtConnec...2021-11-02T04:47:49-04:00HypersenVTK 9.1.0 rc1 with Qt App complie ERR: 'ReferenceCountModel' And 'vtkQtConnection' Undefined referenceI use Qt With VTK 9.1.0 rc1 library, occus below errors while linking library:
```
moc_vtkQtConnection.o:In funtion ‘vtkQtConnection::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’:
moc_vtkQtConnection.cpp:85:对‘vtkQtConne...I use Qt With VTK 9.1.0 rc1 library, occus below errors while linking library:
```
moc_vtkQtConnection.o:In funtion ‘vtkQtConnection::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’:
moc_vtkQtConnection.cpp:85:对‘vtkQtConnection::deleteConnection()’Undefined reference
moc_vtkQtConnection.o:(.data.rel.ro._ZTV15vtkQtConnection[_ZTV15vtkQtConnection]+0x28):对‘vtkQtConnection::~vtkQtConnection()’Undefined reference
moc_vtkQtConnection.o:(.data.rel.ro._ZTV15vtkQtConnection[_ZTV15vtkQtConnection]+0x30):对‘vtkQtConnection::~vtkQtConnection()’Undefined reference
moc_vtkQtDebugLeaksModel.o:In funtion ‘ReferenceCountModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’:
moc_vtkQtDebugLeaksModel.cpp:195:对‘ReferenceCountModel::updateReferenceCounts()’Undefined reference
moc_vtkQtDebugLeaksModel.o:(.data.rel.ro._ZTV19ReferenceCountModel[_ZTV19ReferenceCountModel]+0x28):‘ReferenceCountModel::~ReferenceCountModel()’Undefined reference
moc_vtkQtDebugLeaksModel.o:(.data.rel.ro._ZTV19ReferenceCountModel[_ZTV19ReferenceCountModel]+0x30):‘ReferenceCountModel::~ReferenceCountModel()’Undefined reference
moc_vtkQtDebugLeaksModel.o:(.data.rel.ro._ZTV19ReferenceCountModel[_ZTV19ReferenceCountModel]+0x140):‘ReferenceCountModel::flags(QModelIndex const&) const’Undefined reference
```https://gitlab.kitware.com/vtk/vtk/-/issues/18359VTK8.2+Qt5.15.2 QVTKOpenGLNativeWidget and vtkGenericOpenGLRenderWindow inte...2021-11-02T04:47:04-04:00MakmanfuVTK8.2+Qt5.15.2 QVTKOpenGLNativeWidget and vtkGenericOpenGLRenderWindow interrupted by signal 11: SIGSEGV**Debug info**
```
gdb ./test_qt_vtk
(gdb) r
Starting program: /home/frp/1-Code/test_qt_vtk/build/test_qt_vtk
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New...**Debug info**
```
gdb ./test_qt_vtk
(gdb) r
Starting program: /home/frp/1-Code/test_qt_vtk/build/test_qt_vtk
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe6059700 (LWP 8086)]
[New Thread 0x7fffdb7d3700 (LWP 8087)]
[New Thread 0x7fffdafd2700 (LWP 8088)]
[New Thread 0x7fffd9551700 (LWP 8089)]
[New Thread 0x7fffc7f5a700 (LWP 8090)]
[New Thread 0x7fffbffff700 (LWP 8091)]
[New Thread 0x7fffc7759700 (LWP 8092)]
[New Thread 0x7fffc6f58700 (LWP 8093)]
Thread 1 "test_qt_vtk" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ()
#1 0x00007ffff73cf3b0 in vtkOpenGLBufferObject::GenerateBuffer(vtkOpenGLBufferObject::ObjectType) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#2 0x00007ffff73cf3f4 in vtkOpenGLBufferObject::UploadInternal(void const*, unsigned long, vtkOpenGLBufferObject::ObjectType) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#3 0x00007ffff7472666 in vtkOpenGLVertexBufferObject::UploadDataArray(vtkDataArray*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#4 0x00007ffff747923b in vtkOpenGLVertexBufferObjectGroup::BuildAllVBOs(vtkOpenGLVertexBufferObjectCache*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#5 0x00007ffff742ce6a in vtkOpenGLPolyDataMapper::BuildBufferObjects(vtkRenderer*, vtkActor*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#6 0x00007ffff741a662 in vtkOpenGLPolyDataMapper::RenderPieceStart(vtkRenderer*, vtkActor*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#7 0x00007ffff742f184 in vtkOpenGLPolyDataMapper::RenderPiece(vtkRenderer*, vtkActor*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#8 0x00007ffff6b55b0a in vtkPolyDataMapper::Render(vtkRenderer*, vtkActor*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#9 0x00007ffff73cdeda in vtkOpenGLActor::Render(vtkRenderer*, vtkMapper*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#10 0x00007ffff6abe47f in vtkActor::RenderOpaqueGeometry(vtkViewport*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#11 0x00007ffff6b62936 in vtkRenderer::DeviceRenderOpaqueGeometry() [clone .localalias.51] ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#12 0x00007ffff7453b23 in vtkOpenGLRenderer::DeviceRenderOpaqueGeometry() ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#13 0x00007ffff7451629 in vtkOpenGLRenderer::UpdateGeometry() ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#14 0x00007ffff744da50 in vtkOpenGLRenderer::DeviceRender() ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#15 0x00007ffff6b6495f in vtkRenderer::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#16 0x00007ffff6b6191f in vtkRendererCollection::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#17 0x00007ffff6b6f60d in vtkRenderWindow::DoStereoRender() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#18 0x00007ffff6b6f8f0 in vtkRenderWindow::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#19 0x00007ffff744cb39 in vtkOpenGLRenderWindow::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#20 0x00007ffff73cb001 in vtkGenericOpenGLRenderWindow::Render() ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#21 0x0000555555558783 in MainWindow::update1() ()
---Type <return> to continue, or q <return> to quit---
#22 0x00005555555596ac in vtkObject::vtkClassMemberCallback<MainWindow>::operator()(vtkObject*, unsigned long, void*) ()
#23 0x00007ffff5ec75b9 in vtkSubjectHelper::InvokeEvent(unsigned long, void*, vtkObject*) ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkCommonCore-8.2.so.1
#24 0x00007ffff7776421 in QVTKOpenGLNativeWidget::recreateFBO() ()
at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkGUISupportQt-8.2.so.1
#25 0x00007ffff45acddf in doActivate<false>(QObject*, int, void**) (sender=0x55555597c250, signal_index=10, argv=0x7fffffffd640, argv@entry=0x0)
at kernel/qobject.cpp:3898
#26 0x00007ffff45a6479 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55555597c250, m=m@entry=0x7ffff5c32d00 <QOpenGLWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#27 0x00007ffff55bdd83 in QOpenGLWidget::resized() (this=this@entry=0x55555597c250) at .moc/moc_qopenglwidget.cpp:183
#28 0x00007ffff55be115 in QOpenGLWidgetPrivate::recreateFbo() (this=this@entry=0x5555558c2260) at kernel/qopenglwidget.cpp:764
#29 0x00007ffff55be828 in QOpenGLWidget::resizeEvent(QResizeEvent*) (this=0x55555597c250, e=<optimized out>) at kernel/qopenglwidget.cpp:1290
#30 0x00007ffff559fc6e in QWidget::event(QEvent*) (this=0x55555597c250, event=0x7fffffffda20) at kernel/qwidget.cpp:8809
#31 0x00007ffff556143c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555597c250, e=0x7fffffffda20)
at kernel/qapplication.cpp:3632
#32 0x00007ffff5567f20 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555597c250, e=0x7fffffffda20)
at kernel/qapplication.cpp:3378
#33 0x00007ffff4574808 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55555597c250, event=0x7fffffffda20)
at kernel/qcoreapplication.cpp:1063
#34 0x00007ffff45749be in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=receiver@entry=0x55555597c250, event=event@entry=0x7fffffffda20) at kernel/qcoreapplication.cpp:1458
#35 0x00007ffff5597f4d in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) (this=this@entry=0x5555558c2260, recursive=recursive@entry=false, disableUpdates=<optimized out>, disableUpdates@entry=false) at kernel/qwidget.cpp:7711
#36 0x00007ffff559c153 in QWidgetPrivate::show_helper() (this=this@entry=0x5555558c2260) at kernel/qwidget.cpp:7762
#37 0x00007ffff559f274 in QWidgetPrivate::setVisible(bool) (this=0x5555558c2260, visible=<optimized out>) at kernel/qwidget.cpp:8111
#38 0x00007ffff559c100 in QWidgetPrivate::showChildren(bool) (this=this@entry=0x5555558aa280, spontaneous=spontaneous@entry=false)
at kernel/qwidget.cpp:8183
#39 0x00007ffff559c16f in QWidgetPrivate::show_helper() (this=this@entry=0x5555558aa280) at kernel/qwidget.cpp:7768
#40 0x00007ffff559f274 in QWidgetPrivate::setVisible(bool) (this=0x5555558aa280, visible=<optimized out>) at kernel/qwidget.cpp:8111
#41 0x0000555555557f66 in main ()
(gdb)
```
**main.cpp**
```
#include <QApplication>
#include <QSurfaceFormat>
#include <vtkOpenGLRenderWindow.h>
#include <QVTKOpenGLWidget.h>
#include <QVTKOpenGLNativeWidget.h>
#include "mainwindow.h"
int main(int argc, char * argv[]) {
QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
QApplication app( argc, argv );
MainWindow mainWindow;
mainWindow.show();
return app.exec();
}
```
**mainwindow.h**
```
#ifndef TEST_QT_VTK_MAINWINDOW_H
#define TEST_QT_VTK_MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class QTimer;
class QVTKOpenGLWidget;
class QVTKOpenGLNativeWidget;
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow() override;
protected:
void update1();
private:
Ui::MainWindow *ui;
QVTKOpenGLNativeWidget *centralWidget;
//QTimer *timer;
};
#endif //TEST_QT_VTK_MAINWINDOW_H
```
**mainwindow.cpp**
```
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>
#include <vtkCamera.h>
#include <QVTKOpenGLNativeWidget.h>
#include <vtkCommand.h>
#include <vtkCubeSource.h>
#include <vtkDataObjectToTable.h>
#include <vtkElevationFilter.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkQtTableView.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkSphereSource.h>
#include <vtkVersion.h>
#include <QVTKOpenGLWidget.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow),
centralWidget(new QVTKOpenGLNativeWidget(this))
{
ui->setupUi(this);
setCentralWidget(centralWidget);
vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
centralWidget->SetRenderWindow(renderWindow);
vtkNew<vtkNamedColors> colors;
// Sphere
vtkNew<vtkSphereSource> sphereSource;
sphereSource->Update();
vtkNew<vtkPolyDataMapper> sphereMapper;// centralWidget->GetRenderWindow()->Render();
sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
vtkNew<vtkActor> sphereActor;
sphereActor->SetMapper(sphereMapper);
sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());
// VTK Renderer
vtkNew<vtkRenderer> leftRenderer;
leftRenderer->AddActor(sphereActor);
leftRenderer->SetBackground(colors->GetColor3d("LightSteelBlue").GetData());
centralWidget->GetRenderWindow()->AddRenderer(leftRenderer);
leftRenderer->ResetCamera();
// centralWidget->GetRenderWindow()->Render(); //this is ok!!!
renderWindow->AddObserver(vtkCommand::ModifiedEvent, this, &MainWindow::update1);
}
MainWindow::~MainWindow() {
centralWidget->GetRenderWindow()->RemoveAllObservers();
delete ui;
}
void MainWindow::update1() {
centralWidget->GetRenderWindow()->Render(); //this is Segmentation fault.??? why???
}
```
**mainwindow.ui**
```
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="windowModality">
<enum>Qt::NonModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>553</width>
<height>448</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QStatusBar" name="statusBar"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>553</width>
<height>28</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
```https://gitlab.kitware.com/vtk/vtk/-/issues/18360QML QQuick Support problem with multi renderwindow2021-12-11T05:20:17-05:00Mohammad NaghizadehQML QQuick Support problem with multi renderwindowCreating two instance of QQuickVTKRenderWindow in one page of qml make the previous one black.
I did some test also with QML Loader and it look when you clear the loader of second, first one gets fixed and you can see the renderer.
![Ca...Creating two instance of QQuickVTKRenderWindow in one page of qml make the previous one black.
I did some test also with QML Loader and it look when you clear the loader of second, first one gets fixed and you can see the renderer.
![Capture1](/uploads/fad7b82c4d926ca1f7ae14eb805a209e/Capture1.PNG)https://gitlab.kitware.com/vtk/vtk/-/issues/18361Release 9.1.02023-06-01T00:54:49-04:00Ben BoeckelRelease 9.1.0# Update VTK
- Update the local copy of `release`.
- If `0` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout release
git merge --ff-only origin/release # if this fails, there are loca...# Update VTK
- Update the local copy of `release`.
- If `0` is `0.rc1`, update `master`
- Otherwise, update `release`
```
git fetch origin
git checkout release
git merge --ff-only origin/release # if this fails, there are local commits that need to be removed
git submodule update --recursive --init
```
- If `release` is not `master`, ensure merge requests which should be
in the release have been merged. The [`backport-mrs.py`][backport-mrs]
script can be used to find and ensure that merge requests assigned to the
associated milestone are available on the `release` branch.
- Make a commit for each of these changes on a single topic (suggested branch
name: `update-to-v9.1.0`):
- Assemble release notes into `Documentation/release/9.1.md`.
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] If `release` is `master`, update the non-patch version in a
separate commit (so that `master` gets it as well).
- [x] Remove old release note files
- [x] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups
- [x] Update `CMake/vtkVersion.cmake` and tag the commit (tag this commit below)
```
$EDITOR CMake/vtkVersion.cmake
git commit -m 'Update version number to 9.1.0' CMake/vtkVersion.cmake
```
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.vtk` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.vtk` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] `Do: merge`
- [x] Push the tag to the main repository
- [x] `git tag -a -m 'VTK 9.1.0' v9.1.0 commit-that-updated-vtkVersion.cmake`
- [x] `git push origin v9.1.0`
- Gather release assets
- [x] Source (from the `build:source` CI job in the tag pipeline)
- [x] Documentation (from the `release-prep:documentation` CI job in the tag pipeline)
- [x] Wheels (from the `build:wheel-*` jobs).
- Upload assets to `vtk.org`
- [x] `rsync -rptv $tarballs $wheels user@host:vtk_release/9.1/`
- [x] Update `vtk.org/download` with the new release (email
`comm@kitware.com` with filenames and hashes)
- Software process updates (these can all be done independently)
- [x] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [x] Post an announcement in the Announcements category on
[discourse.vtk.org](https://discourse.vtk.org/).
/cc @ben.boeckel
/cc @ken-martin
/cc @utkarsh.ayachit9.1Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18362vtkDebugLeaks attempts to lock mutex twice when printing error msg for the fi...2021-12-10T20:03:11-05:00Shreeraj JadhavvtkDebugLeaks attempts to lock mutex twice when printing error msg for the first time### The Problem
`vtkDebugLeaks` locks and unlocks the `std::mutex* CriticalSection` explicitly. It also reports error and warning messages before unlocking the mutex. If a failure occurs, for example in [`void vtkDebugLeaks::DestructClas...### The Problem
`vtkDebugLeaks` locks and unlocks the `std::mutex* CriticalSection` explicitly. It also reports error and warning messages before unlocking the mutex. If a failure occurs, for example in [`void vtkDebugLeaks::DestructClass(const char* className)`](https://gitlab.kitware.com/vtk/vtk/-/blob/master/Common/Core/vtkDebugLeaks.cxx#L246), the function tries to report the error using `vtkGenericWarningMacro`. This macro will construct a `vtkWin32OutputWindow` if being called for the first time. Since `VTK_DEBUG_LEAKS` is defined, the construction causes [another call to `vtkDebugLeaks` here](https://gitlab.kitware.com/vtk/vtk/-/blob/master/Common/Core/vtkObjectBase.cxx#L167):
```
void vtkObjectBase::InitializeObjectBase()
{
#ifdef VTK_DEBUG_LEAKS
vtkDebugLeaks::ConstructClass(this);
#endif // VTK_DEBUG_LEAKS
}
```
which tries to lock the mutex for a second time.
### Proposed solution:
`vtkDebugLeaks` class should avoid using explicit calls to `std::mutex::lock()` and `std::mutex::unlock()`. It should use `std::lock_guard` and set the scope to release the lock before attempting to print errors or do anything else that does not belong to a "CriticalSection".
Example shown below:
#### Before
```
void vtkDebugLeaks::DestructClass(const char* className)
{
vtkDebugLeaks::CriticalSection->lock();
// Due to globals being deleted, this table may already have
// been deleted.
if (vtkDebugLeaks::MemoryTable && !vtkDebugLeaks::MemoryTable->DecrementCount(className))
{
vtkGenericWarningMacro("Deleting unknown object: " << className);
}
vtkDebugLeaks::CriticalSection->unlock();
}
```
#### After (Solution)
```
void vtkDebugLeaks::DestructClass(const char* className)
{
bool failure = false;
{
const std::lock_guard<std::mutex> lock(*(vtkDebugLeaks::CriticalSection));
failure = vtkDebugLeaks::MemoryTable && !vtkDebugLeaks::MemoryTable->DecrementCount(className);
}
if (failure)
{
vtkGenericWarningMacro("Deleting unknown object: " << className);
}
}
```Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18363vtkExtractPolyDataGeometry does not copy cell data array properly with mixed ...2021-11-09T04:07:41-05:00Tiffany ChhimvtkExtractPolyDataGeometry does not copy cell data array properly with mixed cell typesWhen extracting cells using the filter `vtkExtractPolyDataGeometry`, if the input polydata data set contains different cell types (vertices, lines, polygons, stripes), the output cell data arrays are not indexed properly.
The indexing i...When extracting cells using the filter `vtkExtractPolyDataGeometry`, if the input polydata data set contains different cell types (vertices, lines, polygons, stripes), the output cell data arrays are not indexed properly.
The indexing is based on the ID of each inserted cell. Therefore, when treating a new type of cell, the indexing starts over from 0 instead of being incremented.Tiffany ChhimTiffany Chhimhttps://gitlab.kitware.com/vtk/vtk/-/issues/18364SMP backend OpenMP: awkward destructor shows Clang compiler warning.2021-11-10T20:03:11-05:00Jaswant PanchumartiSMP backend OpenMP: awkward destructor shows Clang compiler warning.```bash
/src/vtk/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.h:89:29: warning: class with destructor marked
'final' cannot be inherited from [-Wfinal-dtor-non-final-class]
virtual ~ThreadSpecific() final;
```
This is not a breaki...```bash
/src/vtk/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.h:89:29: warning: class with destructor marked
'final' cannot be inherited from [-Wfinal-dtor-non-final-class]
virtual ~ThreadSpecific() final;
```
This is not a breaking issue. It is just a bit awkward. What is the intent here? virtual and final are opposing each other's purpose..https://gitlab.kitware.com/vtk/vtk/-/issues/18369vtkExtractCells2021-11-07T00:15:44-04:00beijihuohu1vtkExtractCells When i used the new version vtk(9.1.0) for new application,the linker give a tips as follow:unresolved external symbol "__declspec(dllimport) public: static class vtkExtractCells * __cdecl vtkExtractCells::New(void)" (__imp_?New@vtkE... When i used the new version vtk(9.1.0) for new application,the linker give a tips as follow:unresolved external symbol "__declspec(dllimport) public: static class vtkExtractCells * __cdecl vtkExtractCells::New(void)" (__imp_?New@vtkExtractCells@@SAPEAV1@XZ) referenced in function.
In the VTK(8.2),i linked the vtkFilterExtraction.lib,but we can only linded the vtkFilter-9.1.lib with the 9.1.0 version and it faild.https://gitlab.kitware.com/vtk/vtk/-/issues/18370Transient data with vtkEnSightGoldBinaryReader() does not update time value2021-11-10T07:35:02-05:00Max ElfnerTransient data with vtkEnSightGoldBinaryReader() does not update time valueI am trying to read in transient data from a simulation using Ensight format using the Python wrappers. The data is extracted as a case file with the time steps specified and then a file for each timestamp and each data variable.
FWIW i...I am trying to read in transient data from a simulation using Ensight format using the Python wrappers. The data is extracted as a case file with the time steps specified and then a file for each timestamp and each data variable.
FWIW in advance: I can read in the dat into Paraview correctly.
My first try was quite simple
```python
case_foam = 'filename.case'
reader_foam = vtk.vtkEnSightGoldBinaryReader()
reader_foam.SetCaseFileName(case_foam)
reader_foam.Update()
time_steps = vtk_to_numpy(reader_foam.GetTimeSets().GetItem(0))
transient_data = dict()
for tv in time_steps:
reader_foam.SetTimeValue(tv)
reader_foam.Update()
transient_data[tv] = reader_foam.GetOutput(0)
```
which results in the same data being read for all dict elements, e.g. a print of the dict yields (see memory location, plotting the data confirms the equality)
```
{30000.0: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.1: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.2: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.3: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.4: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.5: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.6: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.7: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.8: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30000.9: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20,
30001.0: (vtkmodules.vtkCommonDataModel.vtkMultiBlockDataSet)0x15a412e20}
```
I did find the `.UpdateTimeStep(double timeValue)` method which I tried before and after `.Update()` to no avail.
```python
for tv in time_steps:
reader_foam.SetTimeValue(tv)
# reader_foam.UpdateTimeStep(tv)
reader_foam.Update()
reader_foam.UpdateTimeStep(tv)
transient_data[tv] = reader_foam.GetOutput(0)
```
Can someone pinpoint me in the right direction here?
Besthttps://gitlab.kitware.com/vtk/vtk/-/issues/18372Crash on window close with vtkXRenderWindowInteractor2022-03-30T04:25:35-04:00David GobbiCrash on window close with vtkXRenderWindowInteractorThis is an issue in VTK 9.0 and 9.1 (and possibly earlier?)
The `vtkXRenderWindowInteractor` will crash when the window is closed, if the window called `XOpenDisplay()` before the interactor was attached to it. The problem is that, if...This is an issue in VTK 9.0 and 9.1 (and possibly earlier?)
The `vtkXRenderWindowInteractor` will crash when the window is closed, if the window called `XOpenDisplay()` before the interactor was attached to it. The problem is that, if the window thinks it owns the `DisplayId` handle (if `win->OwnDisplay == 1`), then closing the window will call `XCloseDisplay(win->DisplayId)`, which leaves the `iren->DisplayId` dangling.
Conversely, if the interactor calls `XOpenDisplay()` then there is no crash when the window closes, but there is a resource leak since the interactor never calls `XCloseDisplay()`. See `vtkXRenderWindowInteractor::Initialize()`:
```c++
this->DisplayId = static_cast<Display*>(renWin->GetGenericDisplayId());
if (!this->DisplayId)
{
vtkDebugMacro("opening display");
this->DisplayId = XOpenDisplay(nullptr);
vtkDebugMacro("opened display");
renWin->SetDisplayId(this->DisplayId);
}
```
Test code for reproducing the crash:
```python
from vtkmodules.vtkRenderingCore import (
vtkRenderer,
vtkRenderWindow,
vtkRenderWindowInteractor,
)
import vtkmodules.vtkRenderingUI
import vtkmodules.vtkRenderingOpenGL2
import vtkmodules.vtkInteractionStyle
ren = vtkRenderer()
ren.SetBackground(0.5, 0.2, 0.2)
renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
# this line causes renWin->DisplayId and renWin->OwnDisplay to be set
renWin.Render()
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# this line causes iren->DisplayId to be set to renWin->DisplayId
iren.Initialize()
# here we start the main loop, but when we close the window, renWin closes
# its DisplayId, and iren->DisplayId is left dangling (segfault!)
iren.Start()
```https://gitlab.kitware.com/vtk/vtk/-/issues/18373vtkImageFlip filter broken on Apple Silicon2021-11-09T16:52:43-05:00Daniel SchwenvtkImageFlip filter broken on Apple SiliconThe `vtkImageFlip` filter produces curious off by one artifacts on Apple Silicon (mac mini M1). Below is the output of
```
for (std::size_t y = 0; y < 20; ++y)
{
for (std::size_t x = 0; x < 20; ++x)
std::cout << _data->Ge...The `vtkImageFlip` filter produces curious off by one artifacts on Apple Silicon (mac mini M1). Below is the output of
```
for (std::size_t y = 0; y < 20; ++y)
{
for (std::size_t x = 0; x < 20; ++x)
std::cout << _data->GetScalarComponentAsDouble(x, y, 0, _component) << ' ';
std::cout << '\n';
}
```
performed on a 20x20 image read in from the attached PNG, before and after application of the `vtkImageFlip` filter on an M1 mac mini
### before `vtkImageFlip`
```
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 0 0 0 0 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 0 0 0 0 0 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
```
### after `vtkImageFlip`
```
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 0 0 0 0 62734 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 62734 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 62734 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 62734 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 1 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 0 0 0 0 0 0 0 0 0 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 1 0 0 0 0 0 0 0 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 1 0 0 0 0 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735 62735
```
Pay attention to the `1`s and `62734`s in the flipped data, which are not present in the unflipped data. On intel machines the flip produces the expected result.!
### PNG image used in the test
[test_00](/uploads/f6974e4155f32ef91cfb1f5a915fa2b0/test_00.png)https://gitlab.kitware.com/vtk/vtk/-/issues/18375VTK 9.1 with Qt 5.15.22022-03-14T08:30:57-04:00Himanshu SharmaVTK 9.1 with Qt 5.15.2Attempting to build VTK 9.1 with Qt 5.15.2. However it runs into following error:
```
CMake Error at GUISupport/QtQuick/qml/CMakeLists.txt:74 (message):
qmlplugindump executable not found.
It is required to generate the qmltypes ...Attempting to build VTK 9.1 with Qt 5.15.2. However it runs into following error:
```
CMake Error at GUISupport/QtQuick/qml/CMakeLists.txt:74 (message):
qmlplugindump executable not found.
It is required to generate the qmltypes file for VTK Qml plugin.
Configuring incomplete, errors occurred!
```
I was able to build VTK 9.1 with Qt 6.2 where I understand that the above qmlplugin is available.
Is there a way to build VTK 9.1 with Qt 5.15.2 ?https://gitlab.kitware.com/vtk/vtk/-/issues/18376VTK v9.1.0 Error reporting is introduced on the Android platform2022-04-22T09:33:56-04:00shixiangVTK v9.1.0 Error reporting is introduced on the Android platform```
CMake Error at /Users/sdk/android_sdk/cmake/3.18.1/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find OpenGL (missing: OPENGL_INCLUDE_DIR)
Call Stack (most recent call first):
/Users/sdk/androi...```
CMake Error at /Users/sdk/android_sdk/cmake/3.18.1/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find OpenGL (missing: OPENGL_INCLUDE_DIR)
Call Stack (most recent call first):
/Users/sdk/android_sdk/cmake/3.18.1/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
/Users/Desktop/vtk_9.1.0/android-buid/CMakeExternals/Install/vtk-android/lib/cmake/vtk-9.1/patches/99/FindOpenGL.cmake:495 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
/Users/Desktop/vtk_9.1.0/android-buid/CMakeExternals/Install/vtk-android/lib/cmake/vtk-9.1/VTK-vtk-module-find-packages.cmake:162 (find_package)
/Users/Desktop/vtk_9.1.0/android-buid/CMakeExternals/Install/vtk-android/lib/cmake/vtk-9.1/vtk-config.cmake:150 (include)
CMakeLists.txt:13 (find_package)
```https://gitlab.kitware.com/vtk/vtk/-/issues/18377openfoam reader chokes on empty dimension field2023-05-04T05:53:33-04:00olesenopenfoam reader chokes on empty dimension fieldDimensionless volume fields have this type of content
```
dimensions [];
internalField ...;
```
However, the internal parser chokes since the first token is a non-digit instead of treating as being equivalent to `[0 0 0 0 0]`
cross-...Dimensionless volume fields have this type of content
```
dimensions [];
internalField ...;
```
However, the internal parser chokes since the first token is a non-digit instead of treating as being equivalent to `[0 0 0 0 0]`
cross-reference: https://develop.openfoam.com/Development/ThirdParty-common/-/issues/61
This could also be considered a RFE, since it seems to be related to symbolic output only, which probably isn't supported very well (or at all?) in the reader.olesenolesenhttps://gitlab.kitware.com/vtk/vtk/-/issues/18378Leak in vtkInformation*Key::MakeKey Python wrapping2021-11-23T10:37:48-05:00Ben BoeckelLeak in vtkInformation*Key::MakeKey Python wrappingI'm seeing this from `clang-tidy`:
```
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:202:10: warning: Potential leak of memory pointed to by 'tempr' [clang-analyzer-cplusplus.NewDele...I'm seeing this from `clang-tidy`:
```
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:202:10: warning: Potential leak of memory pointed to by 'tempr' [clang-analyzer-cplusplus.NewDeleteLeaks]
return result;
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:185:7: note: Left side of '&&' is true
if (ap.CheckArgCount(2) &&
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:186:7: note: Assuming the condition is true
ap.GetValue(temp0) &&
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:185:7: note: Left side of '&&' is true
if (ap.CheckArgCount(2) &&
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:187:7: note: Assuming the condition is true
ap.GetValue(temp1))
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:185:3: note: Taking true branch
if (ap.CheckArgCount(2) &&
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:189:50: note: Calling 'vtkInformationDataObjectMetaDataKey::MakeKey'
vtkInformationDataObjectMetaDataKey *tempr = vtkInformationDataObjectMetaDataKey::MakeKey(temp0, temp1);
^
/build/src/VTK/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h:49:12: note: Memory is allocated
return new vtkInformationDataObjectMetaDataKey(name, location);
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:189:50: note: Returned allocated memory
vtkInformationDataObjectMetaDataKey *tempr = vtkInformationDataObjectMetaDataKey::MakeKey(temp0, temp1);
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:191:5: note: Taking false branch
if (!ap.ErrorOccurred())
^
/build/build/CMakeFiles/vtkCommonExecutionModelPython/vtkInformationDataObjectMetaDataKeyPython.cxx:202:10: note: Potential leak of memory pointed to by 'tempr'
return result;
^
```
And it is indeed true that if `ap.ErrorOccurred()`, the `MakeKey` return value is leaked. It needs a `delete` if that's not the case.
I tried using `VTK_NEWINSTANCE`, but that didn't work.https://gitlab.kitware.com/vtk/vtk/-/issues/18379VTK 9.1.0 does not compile with Qt52022-01-10T05:28:03-05:00Billy AraujoVTK 9.1.0 does not compile with Qt5GUISupport/QtQuick/QQuickVTKInteractorAdapter.cxx does not compile with Qt5.11.2.
```
//-------------------------------------------------------------------------------------------------
void QQuickVTKInteractorAdapter::QueueWheelEvent(...GUISupport/QtQuick/QQuickVTKInteractorAdapter.cxx does not compile with Qt5.11.2.
```
//-------------------------------------------------------------------------------------------------
void QQuickVTKInteractorAdapter::QueueWheelEvent(QQuickItem* item, QWheelEvent* e)
{
QPointF p, gp;
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
p = e->position();
gp = e->globalPosition();
#else
p = e->posF();
gp = e->globalPosF();
#endif
QWheelEvent* newEvent = new QWheelEvent(this->mapEventPosition(item, p),
this->mapEventPosition(item, gp), e->pixelDelta(), e->angleDelta(), e->buttons(),
e->modifiers(), e->phase(), e->inverted(), e->source());
QueueEvent(newEvent);
}
```
This seems to only work for Qt 6 as this is the signature of the new constructor.
`QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())`
In Qt 5 it was:
`QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source, bool inverted)`
So I doubt this compiles on any Qt5 version. All VTK compiles on Qt5 except for this line so this should be fixed as many people are not using Qt6.
Also shouldn't this type of thing be caught by the CI system? Doesn't it build and test with Qt5 and Qt6?https://gitlab.kitware.com/vtk/vtk/-/issues/18380Vtk build error can't close file , too big2021-11-17T07:38:55-05:00Lalit KumarVtk build error can't close file , too bigFatal error can't close Common/Misc....vtkExprTkFunctionParser.cxx.obj file too big.
Using code block mingw 64 bit
Ninja generator also not working.
It's show error
vtkMath.h
inline vtkTypeBool vtkMath::IsNan(double x){}Fatal error can't close Common/Misc....vtkExprTkFunctionParser.cxx.obj file too big.
Using code block mingw 64 bit
Ninja generator also not working.
It's show error
vtkMath.h
inline vtkTypeBool vtkMath::IsNan(double x){}https://gitlab.kitware.com/vtk/vtk/-/issues/18381VTK python module crashes on import in conda2021-11-24T14:53:10-05:00Timofey MukhaVTK python module crashes on import in condaHello!
For a long while, conda has been a real life-saver in terms of installing VTK. But as of some time now, there seems to be some issue leading VTK behaving incorrectly in conda. Just installing VTK from the default conda channel app...Hello!
For a long while, conda has been a real life-saver in terms of installing VTK. But as of some time now, there seems to be some issue leading VTK behaving incorrectly in conda. Just installing VTK from the default conda channel appears to always lead to a module, which crashes on import. There are reports on the internet like this one:
https://discourse.vtk.org/t/no-module-named-vtkcommoncorepython-import-vtk/7039
Also, from users of my package turbulucid, that relies on vtk, see e.g. this issue:
https://github.com/timofeymukha/turbulucid/issues/6
I have experienced the same problem, typically a crash in `vtkIOParallelPython`, or some other VTK submodule. A workaround seems to be to create an environment, where everything is installed from the `conda forge` channel instead of the default one. What makes matters worse, though, is that the issues somehow transcends conda environments, and e.g. accidentally installing a new VTK in a new environment will break the VTK that was working in the `forge` environment and the import issue would reappear.
I realize this is not a perfect bug report, and maybe it has more to do with conda than VTK itself. But I would really appreciate if this could be solved, and would try to provide additional information upon request.https://gitlab.kitware.com/vtk/vtk/-/issues/18382vtkRenderer accesses some uninitialized cached values2021-12-01T16:03:52-05:00Andreas BuykxvtkRenderer accesses some uninitialized cached valuesThe new cache values `vtkRenderer::LastCompositeProjectionTransformationMatrixTiledAspectRatio` and `vtkRenderer::LastProjectionTransformationMatrixTiledAspectRatio` are accessed uninitialized. Also the cached matrices are uninitialized ...The new cache values `vtkRenderer::LastCompositeProjectionTransformationMatrixTiledAspectRatio` and `vtkRenderer::LastProjectionTransformationMatrixTiledAspectRatio` are accessed uninitialized. Also the cached matrices are uninitialized but they are written to before being accessed.https://gitlab.kitware.com/vtk/vtk/-/issues/18384Link Error vtkCommonDataModel-9.1d.lib(vtkDataAssembly.obj) : error LNK2019: ...2021-11-19T07:05:46-05:00Andreas-SchniertshauerLink Error vtkCommonDataModel-9.1d.lib(vtkDataAssembly.obj) : error LNK2019: unresolved external symbol "public: __cdecl vtkpugixml::xml_attribute::operator ...Issue occurred when updating from 9.0.3 to 9.1.0 on Windows 10 21H2 Professional with Visual Studio 2019 16.11.6 Professional.
I am using only the following subset of the VTK libraries in my application compiled as static libs (Debug/Rel...Issue occurred when updating from 9.0.3 to 9.1.0 on Windows 10 21H2 Professional with Visual Studio 2019 16.11.6 Professional.
I am using only the following subset of the VTK libraries in my application compiled as static libs (Debug/Release):
```
vtkCommonCore-9.0(d).lib
vtkCommonDataModel-9.0(d).lib
vtkCommonExecutionModel-9.0(d).lib
vtkCommonMath-9.0(d).lib
vtkCommonMisc-9.0(d).lib
vtkCommonSystem-9.0(d).lib
vtkCommonTransforms-9.0(d).lib
vtkImagingHybrid-9.0(d).lib
vtkInfovisLayout-9.0(d).lib
vtksys-9.0(d).lib
```
Now when I link the new 9.1.0 libraries to my application I get various link errors:
```
1>vtkCommonDataModel-9.1d.lib(vtkDataAssembly.obj) : error LNK2019: unresolved external symbol "public: __cdecl vtkpugixml::xml_attribute::operator void (__cdecl*)(class vtkpugixml::xml_attribute * * *)(void)const " (??Bxml_attribute@vtkpugixml@@QEBAP6AXPEAPEAPEAV01@@ZXZ) referenced in function "public: bool __cdecl vtkDataAssembly::HasAttribute(int,char const *)const " (?HasAttribute@vtkDataAssembly@@QEBA_NHPEBD@Z)
1>vtkCommonDataModel-9.1d.lib(vtkDataAssembly.obj) : error LNK2019: unresolved external symbol "public: bool __cdecl vtkpugixml::xml_attribute::operator!(void)const " (??7xml_attribute@vtkpugixml@@QEBA_NXZ) referenced in function "public: void __cdecl vtkDataAssembly::SetAttribute(int,char const *,char const *)" (?SetAttribute@vtkDataAssembly@@QEAAXHPEBD0@Z)
1>vtkCommonDataModel-9.1d.lib(vtkDataAssembly.obj) : error LNK2019: unresolved external symbol "public: char const * __cdecl vtkpugixml::xml_attribute::value(void)const " (?value@xml_attribute@vtkpugixml@@QEBAPEBDXZ) referenced in function "public: virtual bool __cdecl `anonymous namespace'::ValidationAndInitializationWalker::for_each(class vtkpugixml::xml_node &)" (?for_each@ValidationAndInitializationWalker@?A0x93ac3df4@@UEAA_NAEAVxml_node@vtkpugixml@@@Z)
...
```
It seems that I must also link vtkpugixml-9.1(d).lib now, but in VTK\Common\DataModel\vtk.module VTK::pugixml is listed as PRIVATE_DEPENDS.
How can I use the vtkCommonDataModel without explicitly linking my application to vtkpugixml?
Thanks for the help,
Andreas.https://gitlab.kitware.com/vtk/vtk/-/issues/18385vtkHexahedron EvaluatePosition fails in release build2021-12-05T03:11:16-05:00Andreas BuykxvtkHexahedron EvaluatePosition fails in release buildThe VTK 9.1.0 release build (icpc version 2021.3.0 (gcc version 8.5.0 compatibility)) causes a failure in vtkHexahedron::EvaluatePosition
The attached [script](/uploads/66efd995e1b7ccdbdf76a1d1d2e24e2e/cell-locator.py) demonstrates how ...The VTK 9.1.0 release build (icpc version 2021.3.0 (gcc version 8.5.0 compatibility)) causes a failure in vtkHexahedron::EvaluatePosition
The attached [script](/uploads/66efd995e1b7ccdbdf76a1d1d2e24e2e/cell-locator.py) demonstrates how vtkCellLocator is used to find the closest point in or on the surface of a bar of 5 vtkHexahedrons. The [debug build](/uploads/c5b92aae75dab98e6b5512b9e9ea5f8e/cell-locator_v9.1.0-debug.out) properly finds the expected positions whereas the [release build](/uploads/c0e2a4b7387e1437916cdddd720d1301/cell-locator_v9.1.0-release.out) fails in almost all cases. Is is demonstrated that this is caused by vtkHexahedron::EvaluatePosition.
In VTK 8.1.1 the release build is OK.https://gitlab.kitware.com/vtk/vtk/-/issues/18388Fallback to GlobalID when unknown ID Channel Array in vtkExtractParticlesOver...2021-11-22T10:49:56-05:00Francois MazenFallback to GlobalID when unknown ID Channel Array in vtkExtractParticlesOverTime does not workWhen setting an unknown array via `vtkExtractParticlesOverTime::SetIdChannelArray` then the fallback to Global ID does not work and the filter produces no output.
Sample code to reproduce the issue:
```cpp
vtkNew<vtkTimeSourceExample> t...When setting an unknown array via `vtkExtractParticlesOverTime::SetIdChannelArray` then the fallback to Global ID does not work and the filter produces no output.
Sample code to reproduce the issue:
```cpp
vtkNew<vtkTimeSourceExample> timeSource;
timeSource->SetXAmplitude(10);
timeSource->SetYAmplitude(0);
vtkNew<vtkSphereSource> sphere;
sphere->SetCenter(10, 0, 0);
vtkNew<vtkDelaunay3D> delaunay;
delaunay->SetInputConnection(sphere->GetOutputPort());
vtkNew<vtkExtractParticlesOverTime> particleExtraction;
particleExtraction->SetInputConnection(0, delaunay->GetOutputPort());
particleExtraction->SetInputConnection(1, delaunay->GetOutputPort());
particleExtraction->SetIdChannelArray("unknown_channel_name");
particleExtraction->Update();
// Check output of the filter, it should contains 1 point.
```https://gitlab.kitware.com/vtk/vtk/-/issues/18389VTK 9.1 build Fail With Qt 6.2.12022-05-16T10:09:13-04:00qu710458643VTK 9.1 build Fail With Qt 6.2.1When Compile VTK 9.1.0 With Qt 6.2.1,I get this error message:
```
qmlplugindump is deprecated.
Please declare your types using QML_ELEMENT and related macros.
Then utilize the build system to invoke qmltyperegistrar in order to
generate...When Compile VTK 9.1.0 With Qt 6.2.1,I get this error message:
```
qmlplugindump is deprecated.
Please declare your types using QML_ELEMENT and related macros.
Then utilize the build system to invoke qmltyperegistrar in order to
generate qmltypes files.
QQmlComponent: Component is not ready
file:///D:/SourceCode/VTK/build/lib/qml/typelist.qml:3:1: module "VTK" plugin "qmlvtkplugin" not found
mingw32-make[2]: *** [Imaging\GUISupport\QtQuick\qml\CMakeFiles\qmlvtkplugin.dir\build.make:149: lib/qml/VTK.9.1/libqmlvtkplugin.dll] Error 3
mingw32-make[2]: *** Deleting file 'lib/qml/VTK.9.1/libqmlvtkplugin.dll'
mingw32-make[1]: *** [CMakeFiles\Makefile2:17595: Imaging/GUISupport/QtQuick/qml/CMakeFiles/qmlvtkplugin.dir/all] Error 2
```
My Build Environment is:
```
OS: Windows 10
GCC:11.2(Mingw64)
Qt:6.2.1
Cmake:3.21.3
```https://gitlab.kitware.com/vtk/vtk/-/issues/18390Missing libm link library for vtkkissfft2021-11-23T10:10:38-05:00StefanBruensMissing libm link library for vtkkissfftkissfft uses sincos and sqrt and thus should be linked with libm under "UNIX".
```
[ 40s] /var/lib/build/ccache/bin/gcc -fPIC -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-...kissfft uses sincos and sqrt and thus should be linked with libm under "UNIX".
```
[ 40s] /var/lib/build/ccache/bin/gcc -fPIC -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -O2 -g -DNDEBUG -Wl,-lc -flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -shared -Wl,-soname,libvtkkissfft.so.1 -o ../../../lib64/libvtkkissfft.so.9.1.0 CMakeFiles/kissfft.dir/kiss_fft.c.o CMakeFiles/kissfft.dir/tools/kiss_fastfir.c.o CMakeFiles/kissfft.dir/tools/kiss_fftnd.c.o CMakeFiles/kissfft.dir/tools/kiss_fftndr.c.o CMakeFiles/kissfft.dir/tools/kiss_fftr.c.o
[ 40s] /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /tmp/ccwYefBl.ltrans0.ltrans.o: in function `vtkkissfft_fft_alloc':
[ 40s] /home/abuild/rpmbuild/BUILD/VTK-9.1.0/ThirdParty/kissfft/vtkkissfft/kiss_fft.c:351: undefined reference to `sincos'
[ 40s] /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/VTK-9.1.0/ThirdParty/kissfft/vtkkissfft/kiss_fft.c:307: undefined reference to `sqrt'
[ 40s] /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /tmp/ccwYefBl.ltrans0.ltrans.o: in function `vtkkissfft_fftr_alloc':
[ 40s] /home/abuild/rpmbuild/BUILD/VTK-9.1.0/ThirdParty/kissfft/vtkkissfft/tools/kiss_fftr.c:51: undefined reference to `sincos'
```Ben BoeckelBen Boeckelhttps://gitlab.kitware.com/vtk/vtk/-/issues/18392Please add SONAMEs to all installed shared libraries2021-11-22T21:36:22-05:00yurivictPlease add SONAMEs to all installed shared librariesThe ports framework complains:
```
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkGeovisCore-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: ...The ports framework complains:
```
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkGeovisCore-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkRenderingQt-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkGUISupportQt-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkInteractionWidgets-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkIOExportGL2PS-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkViewsQt-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkGUISupportQtQuick-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkGUISupportQtSQL-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
Warning: /disk-samsung/freebsd-ports/math/vtk9/work/stage/usr/local/lib/libvtkViewsInfovis-9.1.so.9.1.0 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
```
Version: 9.1.0
OS: FreeBSD 13https://gitlab.kitware.com/vtk/vtk/-/issues/18393[question] How to force VTK to use a specific Python version ?2021-11-22T05:16:04-05:00yurivict[question] How to force VTK to use a specific Python version ?There's the ```vtk_python_min_version``` variable in ```Utilities/Python/CMakeLists.txt``` but it only sets the version minimum.
There's ```VTK_PYTHON_VERSION``` but it is expected to be '2' or '3'.There's the ```vtk_python_min_version``` variable in ```Utilities/Python/CMakeLists.txt``` but it only sets the version minimum.
There's ```VTK_PYTHON_VERSION``` but it is expected to be '2' or '3'.https://gitlab.kitware.com/vtk/vtk/-/issues/18402OpenVR module is failing to build: ‘struct vr::InputBindingInfo_t’ has no mem...2021-11-29T12:54:13-05:00Bane SullivanOpenVR module is failing to build: ‘struct vr::InputBindingInfo_t’ has no member named ‘rchInputSourceType’I'm getting the following error when trying to build VTK with VR module enabled:
```
FAILED: Rendering/OpenVR/CMakeFiles/RenderingOpenVR.dir/vtkOpenVRRenderWindowInteractor.cxx.o
/usr/bin/c++ -DRenderingOpenVR_EXPORTS -DVTK_IN_VTK -Dk...I'm getting the following error when trying to build VTK with VR module enabled:
```
FAILED: Rendering/OpenVR/CMakeFiles/RenderingOpenVR.dir/vtkOpenVRRenderWindowInteractor.cxx.o
/usr/bin/c++ -DRenderingOpenVR_EXPORTS -DVTK_IN_VTK -Dkiss_fft_scalar=double -DvtkRenderingCore_AUTOINIT_INCLUDE=\"/home/local/KHQ/bane.sullivan/Software/Kitware/vtk/build/CMakeFiles/vtkModuleAutoInit_1a291450dcdb0ede7da8203975a53d2b.h\" -DvtkRenderingVolume_AUTOINIT_INCLUDE=\"/home/local/KHQ/bane.sullivan/Software/Kitware/vtk/build/CMakeFiles/vtkModuleAutoInit_1a291450dcdb0ede7da8203975a53d2b.h\" -IRendering/OpenVR -I../Rendering/OpenVR -IRendering/VR -I../Rendering/VR -ICommon/Core -I../Common/Core -IIO/Image -I../IO/Image -ICommon/ExecutionModel -I../Common/ExecutionModel -ICommon/DataModel -I../Common/DataModel -ICommon/Math -I../Common/Math -IThirdParty/kissfft/vtkkissfft -I../ThirdParty/kissfft/vtkkissfft -ICommon/Transforms -I../Common/Transforms -IImaging/Core -I../Imaging/Core -IIO/XMLParser -I../IO/XMLParser -IInteraction/Style -I../Interaction/Style -IRendering/Core -I../Rendering/Core -IFilters/Core -I../Filters/Core -ICommon/Misc -I../Common/Misc -IInteraction/Widgets -I../Interaction/Widgets -IFilters/General -I../Filters/General -IFilters/Sources -I../Filters/Sources -IRendering/Context2D -I../Rendering/Context2D -IRendering/OpenGL2 -I../Rendering/OpenGL2 -IRendering/UI -I../Rendering/UI -IThirdParty/glew/vtkglew -I../ThirdParty/glew/vtkglew -IRendering/VolumeOpenGL2 -I../Rendering/VolumeOpenGL2 -IImaging/Math -I../Imaging/Math -IRendering/Volume -I../Rendering/Volume -ICommon/System -I../Common/System -IIO/XML -I../IO/XML -IImaging/Sources -I../Imaging/Sources -isystem Utilities/KWIML -isystem ../Utilities/KWIML -isystem Utilities/KWSys -isystem ../Utilities/KWSys -isystem ThirdParty/kissfft -isystem ../ThirdParty/kissfft -isystem ThirdParty/glew -isystem ../ThirdParty/glew -isystem /usr/include/openvr -g -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -MD -MT Rendering/OpenVR/CMakeFiles/RenderingOpenVR.dir/vtkOpenVRRenderWindowInteractor.cxx.o -MF Rendering/OpenVR/CMakeFiles/RenderingOpenVR.dir/vtkOpenVRRenderWindowInteractor.cxx.o.d -o Rendering/OpenVR/CMakeFiles/RenderingOpenVR.dir/vtkOpenVRRenderWindowInteractor.cxx.o -c ../Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx
../Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx: In member function ‘virtual void vtkOpenVRRenderWindowInteractor::DoOneEvent(vtkVRRenderWindow*, vtkRenderer*)’:
../Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx:279:49: error: ‘struct vr::InputBindingInfo_t’ has no member named ‘rchInputSourceType’
279 | std::string inputSource = inBindingInfo.rchInputSourceType;
| ^~~~~~~~~~~~~~~~~~
[7526/10041] Building CXX object Rende...OpenVR.dir/vtkOpenVRRenderWindow.cxx.o
ninja: build stopped: subcommand failed.
```
I'm on Ubuntu 20.04 and trying to build from both 9.1.0 and `master` (same error)
My build command:
```bash
$ cmake -GNinja \
-DVTK_BUILD_TESTING=OFF \
-DVTK_WHEEL_BUILD=ON \
-DVTK_PYTHON_VERSION=3 \
-DVTK_WRAP_PYTHON=ON \
-DVTK_MODULE_ENABLE_VTK_RenderingOpenVR=YES ..
$ ninja
```
Not sure if this is related but during configuration, I got this error:
```
Performing Test CHECK_HAVE_STAT64_STRUCT - Failed
```
cc @ken-martin, any help here would be greatly appreciated!https://gitlab.kitware.com/vtk/vtk/-/issues/18403Run test failed after successful compilation by msvc on the windows x64 platform2022-07-08T03:54:58-04:00TheshyiscomingRun test failed after successful compilation by msvc on the windows x64 platform**Describe the bug**
Run test failed When I used the code compiled by msbuild for testing. The specific failure is as follows:
```
121/257 Test #121: VTK::IOIOSSCxx-TestIOSSAssemblies ....................................***Exception: S...**Describe the bug**
Run test failed When I used the code compiled by msbuild for testing. The specific failure is as follows:
```
121/257 Test #121: VTK::IOIOSSCxx-TestIOSSAssemblies ....................................***Exception: SegFault 0.34 sec
Exodus Library Warning/Error: [vtkexodusII_ex__check_file_type]
ERROR: Could not open file 'F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g', error = No such file or directory.
Exodus Library Warning/Error: [vtkexodusII_ex_open_int]
ERROR: failed to open F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g of type 0 for reading. Either the file does not exist,
or there is a permission or file format issue.
IOSS WARNING: ERROR: Unable to open input database 'F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g' of type 'exodusII'
( 0.003s) [main thread ] vtkIOSSReader.cxx:934 ERR| vtkIOSSReader (000001998BAB8560): Error in UpdateTimeInformation:
Failed to open database F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g
( 0.034s) [main thread ] vtkExecutive.cxx:753 ERR| vtkCompositeDataPipeline (000001998BAB6370): Algorithm vtkIOSSReader(000001998BAB8560) returned failure for request: vtkInformation (000001998BAFC950)
Debug: Off
Modified Time: 96
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
Exodus Library Warning/Error: [vtkexodusII_ex__check_file_type]
ERROR: Could not open file 'F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g', error = No such file or directory.
Exodus Library Warning/Error: [vtkexodusII_ex_open_int]
ERROR: failed to open F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g of type 0 for reading. Either the file does not exist,
or there is a permission or file format issue.
IOSS WARNING: ERROR: Unable to open input database 'F:/vtk/vtk/build_amd64/ExternalData/Testing/Data/Exodus/Assembly-Example.g' of type 'exodusII'
( 0.048s) [main thread ] vtkExecutive.cxx:753 ERR| vtkCompositeDataPipeline (000001998BAB6370): Algorithm vtkIOSSReader(000001998BAB8560) returned failure for request: vtkInformation (000001998BAFC950)
Debug: Off
Modified Time: 96
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
( 0.064s) [main thread ]vtkWindowsTestUtilities:32 ERR| Error: EXCEPTION_ACCESS_VIOLATION
( 0.127s) [main thread ]vtkWindowsTestUtilities:98 ERR| at �,�
at �,�
at �,�
at UnhandledExceptionFilter
at memset
at _C_specific_handler
at _chkstk
at RtlWalkFrameChain
at KiUserExceptionDispatcher
at KiUserExceptionDispatcher
at KiUserExceptionDispatcher
at KiUserExceptionDispatcher
at KiUserExceptionDispatcher
at KiUserExceptionDispatcher
at BaseThreadInitThunk
at RtlUserThreadStart
```
**To Reproduce**
Steps to reproduce the behavior:
1. git clone https://gitlab.kitware.com/vtk/vtk
git -C "F:\vtk\vtk" rev-parse --git-dir
git -C "F:\vtk\vtk" clean -xdf
git -C "F:\vtk\vtk" fetch --recurse-submodules=no --force
git -C "F:\vtk\vtk" reset --hard a6d4c9d
git -C "F:\vtk\vtk" remote prune origin
git -C "F:\vtk\vtk" submodule sync
git -C "F:\vtk\vtk" submodule foreach git reset --hard
git -C "F:\vtk\vtk" submodule foreach git clean -xdf
git -C "F:\vtk\vtk" submodule update --init --recursive
1. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
cd F:\vtk\vtk\build_amd64
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.18362.0 -DBUILD_SHARED_LIBS=OFF -DVTK_BUILD_TESTING=WANT -DVTK_BUILD_EXAMPLES=OFF -DVTK_IGNORE_CMAKE_CXX11_CHECKS=TRUE -DVTK_DATA_EXCLUDE_FROM_ALL=ON ..
1. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
cd F:\vtk\vtk\build_amd64
msbuild /m /p:Platform=x64 /p:Configuration=Release All_BUILD.vcxproj /t:Rebuild
1. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
cd F:\vtk\vtk\build_amd64
ctest --build-config Release --output-on-failure -E "vtkChartsCoreCxx|vtkCommonDataModelCxx|vtkDomainsChemistryCxx|vtkDomainsChemistryOpenGL2Cxx|vtkFilters*|vtkImaging*|vtkInfovis*|vtkInteractionWidgetsCxx|vtkIOExodusCxx|vtkIOGeometryCxx|vtkIOImageCxx|vtkIOImportCxx|vtkIOExportCxx|vtkIOInfovisCxx|vtkIOLegacyCxx|vtkIOPLYCxx|vtkIOSQLCxx|vtkIOXMLCxx|vtkRendering*|vtkViewsInfovisCxx|vtkIOSegYCxx|vtkIOCityGMLCxx-TestCityGMLReader|ViewsInfovisCxx|RenderingVolumeOpenGL2Cxx|RenderingLabelCxx|IOSegYCxx|IOPLYCxx|IOMotionFXCxx|IOImportCxx|IOGeometryCxx|IOExportCxx|IOCityGMLCxx|GeovisCoreCxx|InfovisLayoutCxx|InteractionWidgetsCxx|RenderingVolumeCxx|RenderingAnnotationCxx|RenderingImageCxx|IOExodusCxx|ImagingMorphologicalCxx|ImagingHybridCxx|FiltersProgrammableCxx|FiltersPointsCxx|FiltersHyperTreeCxx|FiltersHybridCxx|FiltersGenericCxx|FiltersFlowPathsCxx|IOXMLCxx|FiltersModelingCxx|IOImageCxx|RenderingOpenGL2Cxx|DomainsChemistryCxx|IOLegacyCxx|ChartsCoreCxx|InfovisCoreCxx|FiltersExtractionCxx|RenderingContext2DCxx|RenderingCoreCxx|FiltersSourcesCxx|ImagingCoreCxx|FiltersGeometryCxx|FiltersGeneralCxx|FiltersCoreCxx|CommonDataModelCxx|RenderingLODCxx-TestLODActor|IOParallelCxx-TestPOpenFOAMReader|FiltersAMRCxx-TestAMRSliceFilterCellData|FiltersAMRCxx-TestAMRSliceFilterPointData|FiltersParallelCxx-TestAngularPeriodicFilter|RenderingSceneGraphCxx-UnitTests|TestDataArrayValueRange|RenderingFreeTypeCxx*|VTK::IOTecplotTableCxx-TestTecplotTableReader|VTK::IOParallelXMLCxx-TestXMLReaderChangingBlocksOverTime|VTK::IOParallelCxx-TestBigEndianPlot3D|VTK::IOInfovisCxx*|VTK::IOCONVERGECFDCxx-TestCONVERGECFDReader|VTK::IOCGNSReaderCxx*|VTK::IOAMRCxx*|VTK::IOSQLCxx-TestSQLiteTableReadWrite|VTK::ImagingColorCxx-ImageQuantizeToIndex|VTK::FiltersTopologyCxx-TestFiberSurface|VTK::FiltersSelectionCxx*|VTK::FiltersVerdictCxx*|VTK::CommonColorCxx-TestColorSeries|VTK::CommonExecutionModelCxx-TestMultiOutputSimpleFilter|VTK::CommonCoreCxx-TestDataArrayTupleRange|VTK::RenderingFreeTypeCxx*|VTK::RenderingSceneGraphCxx-UnitTests|VTK::IOChemistryCxx*|VTK::DomainsChemistryOpenGL2Cxx*|VTK::IOHDFCxx-TestHDFReader|VTK::IOIossCxx-TestIossAssemblies|VTK::IOIossCxx-TestIossCGNS|VTK::IOIossCxx-TestIossApplyDisplacementsCGNS|VTK::IOIossCxx-TestIossExodusRestarts|VTK::IOIossCxx-TestIossExodus|VTK::IOIossCxx-TestIossAttributes|VTK::IOIossCxx-TestIossNoElementBlocks|VTK::IOIossCxx-TestIossTri6"
**Expected behavior**
All test pass.
**Observed Behavior**
Test failed.
**Environment**
OS: Windows Server 2019
CPU: AMD EPYC 7452 32-Core Processor
Compiler: MSVC 14.29.30133
Language: ENU
**Note**
You can also check build error messages from attached file
[test.log](/uploads/ae898c60124effd73df6b8d29e48864f/test.log)https://gitlab.kitware.com/vtk/vtk/-/issues/18406vtkArrayListTemplate holds vtkDataArray instead of vtkAbstractArray2021-12-08T20:03:31-05:00Yohann Bearzi (Kitware)vtkArrayListTemplate holds vtkDataArray instead of vtkAbstractArray`vtkArrayListTemplate`, a helper class to `vtkDataSetAttributes`, holds `vtkDataArray` pointers instead of `vtkAbstractArray`. This makes that some filters are incapable to pass `vtkStringArray` in VTK 9.1 (see [here](https://discourse.v...`vtkArrayListTemplate`, a helper class to `vtkDataSetAttributes`, holds `vtkDataArray` pointers instead of `vtkAbstractArray`. This makes that some filters are incapable to pass `vtkStringArray` in VTK 9.1 (see [here](https://discourse.vtk.org/t/vtkgeometryfilter-not-passing-vtkstringarray/7245)).Yohann Bearzi (Kitware)Yohann Bearzi (Kitware)https://gitlab.kitware.com/vtk/vtk/-/issues/18410vtkImageMathematics SetInputConnection issue2021-12-09T15:56:31-05:00Andrew MacleanvtkImageMathematics SetInputConnection issue@sankhesh Your commit f260a426bff55ddb8ce4a4956a3f3d6a21ab474e !8603 breaks the vtk-examples that use `vtkImageMathematics`, for example, look at [DotProduct](https://kitware.github.io/vtk-examples/site/Cxx/Images/DotProduct/), in partic...@sankhesh Your commit f260a426bff55ddb8ce4a4956a3f3d6a21ab474e !8603 breaks the vtk-examples that use `vtkImageMathematics`, for example, look at [DotProduct](https://kitware.github.io/vtk-examples/site/Cxx/Images/DotProduct/), in particular line 120:
``` c++
imageMath->SetInputConnection(dotProductFilter->GetOutputPort());
```
I can get around it by changing the line to:
``` c++
imageMath->SetInputConnection(0,dotProductFilter->GetOutputPort());
```
Although it seems a bit odd having to now specify the input port number here.
I guess what I am thinking is that now we have to manually specify the input port, is that true?
If so, will doing this affect previous versions of VTK? I am using the master to build the vtk-examples.
Thanks in advance for any advice.https://gitlab.kitware.com/vtk/vtk/-/issues/18411vtkHyperTreeGrid mapper cyclic dependency2022-02-03T11:05:27-05:00Charles GueunetvtkHyperTreeGrid mapper cyclic dependencyhttps://gitlab.kitware.com/vtk/vtk/-/jobs/6408458
!8679 introduced a cyclic dependency, I am on it.https://gitlab.kitware.com/vtk/vtk/-/jobs/6408458
!8679 introduced a cyclic dependency, I am on it.Charles GueunetCharles Gueunethttps://gitlab.kitware.com/vtk/vtk/-/issues/18413OpenVDBWriter constructor segfaults with openVDB 92023-12-06T11:45:15-05:00Antonio RojasOpenVDBWriter constructor segfaults with openVDB 9This minimal example
```
#include <vtk/vtkOpenVDBWriter.h>
int main() {
vtkOpenVDBWriter* a=vtkOpenVDBWriter::New();
}
```
segfaults with openVDB 9 with this backtrace:
```
(gdb) bt
#0 openvdb::v9_0::Grid<openvdb::v9_0::tree::Tree<...This minimal example
```
#include <vtk/vtkOpenVDBWriter.h>
int main() {
vtkOpenVDBWriter* a=vtkOpenVDBWriter::New();
}
```
segfaults with openVDB 9 with this backtrace:
```
(gdb) bt
#0 openvdb::v9_0::Grid<openvdb::v9_0::tree::Tree<openvdb::v9_0::tree::RootNode<openvdb::v9_0::tree::InternalNode<openvdb::v9_0::tree::InternalNode<openvdb::v9_0::tree::LeafNode<openvdb::v9_0::ValueMask, 3u>, 4u>, 5u> > > >::gridType[abi:cxx11]()
() at /usr/src/debug/openvdb-9.0.0/openvdb/openvdb/Grid.h:719
#1 openvdb::v9_0::Grid<openvdb::v9_0::tree::Tree<openvdb::v9_0::tree::RootNode<openvdb::v9_0::tree::InternalNode<openvdb::v9_0::tree::InternalNode<openvdb::v9_0::tree::LeafNode<openvdb::v9_0::ValueMask, 3u>, 4u>, 5u> > > >::registerGrid ()
at /usr/src/debug/openvdb-9.0.0/openvdb/openvdb/Grid.h:981
#2 openvdb::v9_0::initialize () at /usr/src/debug/openvdb-9.0.0/openvdb/openvdb/openvdb.cc:100
#3 0x00007ffff7e1da25 in vtkOpenVDBWriter::vtkOpenVDBWriter (this=0x55555558a050)
at /usr/src/debug/VTK-9.1.0/IO/OpenVDB/vtkOpenVDBWriter.cxx:365
#4 0x00007ffff7e1dabe in vtkOpenVDBWriter::New () at /usr/src/debug/VTK-9.1.0/IO/OpenVDB/vtkOpenVDBWriter.cxx:357
#5 0x0000555555555166 in main ()
```https://gitlab.kitware.com/vtk/vtk/-/issues/18416Vertical axis title not correctly drawn2022-01-11T03:46:21-05:00dcbrVertical axis title not correctly drawnThe vertical axis title is not always correctly drawn (some characters seem to be rotated, incorrectly placed and are not in bold) when other text actors (such as a `vtkCornerAnnotation`) are rendered. Steps to reproduce (see also code b...The vertical axis title is not always correctly drawn (some characters seem to be rotated, incorrectly placed and are not in bold) when other text actors (such as a `vtkCornerAnnotation`) are rendered. Steps to reproduce (see also code below):
1. Create a `vtkChartXY` with custom y title.
2. Add a `vtkCornerAnnotation`.
3. Create a `vtkChartXY` with custom y title, *different from the title in step 1*.
If step 2 is omitted (no other text actors drawn), everything works fine. If in step 3 the same y title is used as in step 1, everything works fine as well.
<details><summary>Python code to reproduce</summary>
```py
import vtk
from vtkmodules.util.numpy_support import vtk_to_numpy
from PIL import Image
width, height = 400, 400
def create_renderer():
renwin = vtk.vtkRenderWindow()
renwin.SetOffScreenRendering(1)
renwin.SetSize(width, height)
renderer = vtk.vtkRenderer()
renderer.SetBackground([0.6, 1.0, 0.7])
renderer.SetBackgroundAlpha(1.0)
renwin.AddRenderer(renderer)
return renwin, renderer
def screenshot(renwin, name):
# Save offscreen rendering to image:
renwin.SetMultiSamples(0)
renwin.Render()
arr = vtk.vtkUnsignedCharArray()
renwin.GetRGBACharPixelData(0, 0, width - 1, height - 1, 0, arr)
data = vtk_to_numpy(arr).reshape(height, width, -1)[::-1]
Image.fromarray(data).save(f"{name}.png")
def plot_chart(renderer, title_y):
chart_scene = vtk.vtkContextScene()
chart_actor = vtk.vtkContextActor()
chart_actor.SetScene(chart_scene)
renderer.AddActor(chart_actor)
chart_scene.SetRenderer(renderer)
chart = vtk.vtkChartXY()
chart_scene.AddItem(chart)
table = vtk.vtkTable()
arrX = vtk.vtkFloatArray()
arrX.SetName("X axis")
arrL = vtk.vtkFloatArray()
arrL.SetName("Line")
table.AddColumn(arrX)
table.AddColumn(arrL)
numPoints = 5
table.SetNumberOfRows(numPoints)
for i in range(numPoints):
table.SetValue(i, 0, i)
table.SetValue(i, 1, i*i)
plot = chart.AddPlot(vtk.vtkChart.LINE)
plot.SetInputData(table, 0, 1)
chart.GetAxis(vtk.vtkAxis.LEFT).SetTitle(title_y)
def plot_text(renderer, text):
actor = vtk.vtkCornerAnnotation()
actor.SetText(vtk.vtkCornerAnnotation.UpperLeft, text)
actor.GetTextProperty().SetColor(0.0, 0.0, 0.0)
renderer.AddActor(actor)
# Step 1: Create first chart
renwin1, renderer1 = create_renderer()
plot_chart(renderer1, "Label before")
screenshot(renwin1, "chart_before")
# Step 2: Create renderer with text actor
renwin2, renderer2 = create_renderer()
plot_text(renderer2, "Foo")
screenshot(renwin2, "plotter_text")
# Step 3: Create second chart *with different y title*
renwin3, renderer3 = create_renderer()
plot_chart(renderer3, "Custom after")
screenshot(renwin3, "chart_after")
```
</details>
<details><summary>Resulting plots</summary>
![chart_before.png](/uploads/7651a93c11792a5d022d566a3fcb264d/chart_before.png.png)
![plotter_text.png](/uploads/6a576e8ad23b0baf3ec528e0d4b135b3/plotter_text.png.png)
![chart_after.png](/uploads/7609129582f612fb347d2acbf79013a8/chart_after.png.png)
</details>
Possibly related stale issue: #17417
Any pointers to what could be causing this would be helpful as well. And if it's a cache issue, is there a way to clear this cache?https://gitlab.kitware.com/vtk/vtk/-/issues/18417ChartXY log scale warning and wrong plot2022-01-24T14:40:31-05:00dcbrChartXY log scale warning and wrong plotFollowing the discussion in !8693, I analyzed the log scale behaviour of ChartXY in more depth. Let me start by saying my initial attempt at a fix in !8618 was a bit overkill, as the actual issue is related to a peculiar combination of a...Following the discussion in !8693, I analyzed the log scale behaviour of ChartXY in more depth. Let me start by saying my initial attempt at a fix in !8618 was a bit overkill, as the actual issue is related to a peculiar combination of a custom axis range, axis behavior *and* an enabled log scale (while I initially thought it was only related to this log scale). I will use the below script and table to illustrate the problem.
<details><summary>Python code to reproduce plots below</summary>
```py
import vtk
from vtkmodules.util.numpy_support import vtk_to_numpy
from PIL import Image
def save_render(data_column, y_range, y_behavior, name):
width, height = 400, 400
renwin = vtk.vtkRenderWindow()
renwin.SetOffScreenRendering(1)
renwin.SetSize(width, height)
renderer = vtk.vtkRenderer()
renderer.SetBackground([1, 1, 1])
renwin.AddRenderer(renderer)
chart_scene = vtk.vtkContextScene()
chart_actor = vtk.vtkContextActor()
chart_actor.SetScene(chart_scene)
renderer.AddActor(chart_actor)
chart_scene.SetRenderer(renderer)
chart = vtk.vtkChartXY()
chart_scene.AddItem(chart)
table = vtk.vtkTable()
arrX = vtk.vtkFloatArray()
arrX.SetName('X Axis')
arrN = vtk.vtkFloatArray()
arrN.SetName('Negative Line')
arrP = vtk.vtkFloatArray()
arrP.SetName('Positive Line')
table.AddColumn(arrX)
table.AddColumn(arrN)
table.AddColumn(arrP)
numPoints = 101
table.SetNumberOfRows(numPoints)
for i in range(numPoints):
x = i / (numPoints - 1)
table.SetValue(i, 0, x)
table.SetValue(i, 1, 20*x - 10)
table.SetValue(i, 2, 10*x + 1e-6)
points = chart.AddPlot(vtk.vtkChart.LINE)
points.SetInputData(table, 0, data_column)
points.SetColor(0, 0, 255, 255)
points.SetWidth(1.0)
if y_range is not None:
points.GetYAxis().SetRange(*y_range)
points.GetYAxis().SetBehavior(y_behavior)
points.GetYAxis().SetLogScale(True)
renwin.SetMultiSamples(0)
renwin.Render()
arr = vtk.vtkUnsignedCharArray()
renwin.GetRGBACharPixelData(0, 0, width - 1, height - 1, 0, arr)
data = vtk_to_numpy(arr).reshape(height, width, -1)[::-1]
Image.fromarray(data).save(f"{name}.png")
# These behave correctly:
save_render(2, [-5, 10], vtk.vtkAxis.FIXED, "Dpos_Rneg_Bfixed")
save_render(2, [-5, 10], vtk.vtkAxis.AUTO, "Dpos_Rneg_Bauto")
save_render(2, [5, 10], vtk.vtkAxis.FIXED, "Dpos_Rpos_Bfixed")
save_render(2, [5, 10], vtk.vtkAxis.AUTO, "Dpos_Rpos_Bauto")
# Following three behave correctly:
save_render(1, [-5, 10], vtk.vtkAxis.FIXED, "Dneg_Rneg_Bfixed")
save_render(1, [-5, 10], vtk.vtkAxis.AUTO, "Dneg_Rneg_Bauto")
save_render(1, [5, 10], vtk.vtkAxis.FIXED, "Dneg_Rpos_Bfixed")
# This one gives a "vtkMath::Jacobi: Error extracting eigenfunctions" warning and is not correctly drawn
save_render(1, [5, 10], vtk.vtkAxis.AUTO, "Dneg_Rpos_Bauto")
```
</details>
In summary, the code creates a ChartXY with a line plot of a linear function (with negative and positive values if `data_column` is 1 and only positive values when `data_column` is 2). The Y axis range is set to either `[-5, 10]` (i.e. both negative and positive values) or `[5, 10]` (i.e. only positive values). The Y axis behaviour is set to be either fixed (following the custom range) or auto (discarding the custom range).
<details><summary>Resulting plots</summary>
<table>
<tr><th>Data</th><th>Range</th><th>Behavior</th><th>Plot</th><th>Remarks</th></tr>
<tr><td>Pos.</td><td>Neg. + Pos.</td><td>Fixed</td><td>
![Dpos_Rneg_Bfixed](/uploads/6486758eb6f82b95ca179d38dd74a71b/Dpos_Rneg_Bfixed.png)
</td><td>OK: negative values in range cause log scale to be disabled.</td></tr>
<tr><td>Pos.</td><td>Neg. + Pos.</td><td>Auto</td><td>
![Dpos_Rneg_Bauto](/uploads/0c19307373bb5e28e08d4dc20fa89783/Dpos_Rneg_Bauto.png)
</td><td>OK: auto behavior leads to positive values only in range, hence log scale can be enabled.</td></tr>
<tr><td>Pos.</td><td>Pos.</td><td>Fixed</td><td>
![Dpos_Rpos_Bfixed](/uploads/76f0c646396ab7a7c3facbe39ec2c398/Dpos_Rpos_Bfixed.png)
</td><td>OK: positive values only in range, hence log scale can be enabled.</td></tr>
<tr><td>Pos.</td><td>Pos.</td><td>Auto</td><td>
![Dpos_Rpos_Bauto](/uploads/75b748640e09871a462936e4ca0e42f5/Dpos_Rpos_Bauto.png)
</td><td>OK: auto behavior leads to positive values only in range, hence log scale can be enabled.</td></tr>
<tr><td>Neg.</td><td>Neg. + Pos.</td><td>Fixed</td><td>
![Dneg_Rneg_Bfixed](/uploads/78182ad59a99778356d9ce27777d6c80/Dneg_Rneg_Bfixed.png)
</td><td>OK: negative values in range cause log scale to be disabled.</td></tr>
<tr><td>Neg.</td><td>Neg. + Pos.</td><td>Auto</td><td>
![Dneg_Rneg_Bauto](/uploads/a6cd5d358cbeb5ecf8ffe05c5bee5f20/Dneg_Rneg_Bauto.png)
</td><td>OK: auto behavior leads to negative values in range, causing log scale to be disabled.</td></tr>
<tr><td>Neg.</td><td>Pos.</td><td>Fixed</td><td>
![Dneg_Rpos_Bfixed](/uploads/907e32bd997d0a634fd0e2550e63756a/Dneg_Rpos_Bfixed.png)
</td><td>OK: positive values only in range, hence log scale can be enabled.</td></tr>
<tr><td>Neg.</td><td>Pos.</td><td>Auto</td><td>
![Dneg_Rpos_Bauto](/uploads/746a95eed6750e05eeeb0f89b0a352f2/Dneg_Rpos_Bauto.png)
</td><td>NOT OK: auto behavior should lead to negative values in range, causing log scale to be disabled (leading to same plot as with a Neg. + Pos. range).<br>NOT OK: vtkMath warning.</td></tr>
</table>
</details>
The problematic combination is the last one (negative data, positive range, auto behavior). This leads to the following vtkMath warning `WARN| vtkMath::Jacobi: Error extracting eigenfunctions`. I assume this has something to do with NaNs arising by taking the log of negative values. Even though this shouldn't be happening, as the log scale should be disabled because of the auto behavior (but this isn't happening either, as nothing is drawn in this case).
@mwestphal and @yohann.bearzi your thoughts and comments would be appreciated. Let me know if my interpretation of these results is wrong.
**Edit**: Only the last combination seems to be causing trouble, the rest is fine.https://gitlab.kitware.com/vtk/vtk/-/issues/18419[Gitlab] pipeline from Do: reformat action cannot be started2022-07-28T04:09:32-04:00Menno Deij - van Rijswijk[Gitlab] pipeline from Do: reformat action cannot be startedFirst off: I'm not sure if this is the right place to put an issue about the Gitlab interface itself. If there is a better place (I have searched) please let me know.
Issue: when I push code to gitlab from VTK, often the bot will fail t...First off: I'm not sure if this is the right place to put an issue about the Gitlab interface itself. If there is a better place (I have searched) please let me know.
Issue: when I push code to gitlab from VTK, often the bot will fail the commit and it needs a Do: reformat comment to reformat. This also creates a new pipeline. I am unable to start this pipeline, as it has no "Play" button.
Workaround: create another pipeline myself and press "Play" on this.
It would be nice if the pipeline created from the Do:reformat action is directly also Play-able.https://gitlab.kitware.com/vtk/vtk/-/issues/18420vtkFeatureEdges is allocating a very large array2021-12-21T14:47:34-05:00Martijn SipkemavtkFeatureEdges is allocating a very large arrayIt seems that since release 9.1 the `vtkFeatureEdges` filter is allocating (or trying to) a very large array.
The following code:
```
from vtkmodules.vtkFiltersCore import vtkFeatureEdges
from vtkmodules.vtkFiltersSources import vtkSphe...It seems that since release 9.1 the `vtkFeatureEdges` filter is allocating (or trying to) a very large array.
The following code:
```
from vtkmodules.vtkFiltersCore import vtkFeatureEdges
from vtkmodules.vtkFiltersSources import vtkSphereSource
N_CELLS = 2_000_000
source = vtkSphereSource()
source.LatLongTessellationOn()
source.SetEndPhi(90)
source.SetThetaResolution(1000)
source.SetPhiResolution(N_CELLS // 1000 + 1)
source.Update()
print("Cell count:", source.GetOutput().GetNumberOfCells())
feature_edges = vtkFeatureEdges()
feature_edges.ExtractAllEdgeTypesOff()
feature_edges.ColoringOff()
feature_edges.BoundaryEdgesOn()
feature_edges.SetInputConnection(source.GetOutputPort())
feature_edges.Update()
print("Boundary edges:", feature_edges.GetOutput().GetNumberOfCells())
```
crashes on my system with the following output:
```
Cell count: 2000000
2021-12-21 12:32:13.692 ( 0.321s) [ ]vtkGenericDataArray.txx:389 ERR| vtkTypeInt64Array (0000029BB68DAD10): Unable to allocate 20000000000 elements of size 8 bytes.
```
that is, it appears (in this case) to try to allocate 10 thousand 8-byte elements for each cell in the mesh.