Problem running Examples/GUI/Python/ImplicitPlaneWidget.py (vtkLODActor not found, etc)

I’m trying to run VTK Examples/GUI/Python/ImplicitPlaneWidget.py and ran into a couple of issues.

  • I downloaded & installed ParaView-5.8.0-MPI-Linux-Python3.7-64bit.tar.gz on Ubuntu 18.04.
  • Then I ran pvpython ImplicitPlaneWidget.py, where pvpython is the binary that came with the above package.

I get:

AttributeError: module ‘vtkmodules.all’ has no attribute ‘vtkLODActor’

In fact I get this error on every script that uses vtkLODActor.
So I replaced vtkLODActor to vtkActor, then I can see a window with a mace in a blue background, but I don’t see any implicit plane selection widget. I don’t see any error message otherwise.

Am I doing something wrong?

Thanks in advance,
yaz

I’m guessing that vtkRenderingLOD isn’t available. Can you import vtkmodules.vtkRenderingLOD?

There’s no such module. I see the following vtkRender* in vtkmodules:

vtkRenderingCore
vtkRenderingContext2D
vtkRenderingFreeType
vtkRenderingOpenGL2
vtkRenderingSceneGraph
vtkRenderingVolume
vtkRenderingRayTracing
vtkRenderingVolumeOpenGL2
vtkRenderingVolumeAMR
vtkRenderingParallel
vtkRenderingMatplotlib
vtkRenderingLabel
vtkRenderingLICOpenGL2
vtkRenderingContextOpenGL2
vtkRenderingGL2PSOpenGL2
vtkRenderingAnnotation

I recompiled Paraview from scratch, and it seems like VTKRenderingLOD is not included in the build. I used the following cmake setting. I’m not all that familiar with cmake. Can someone enlighten me what’s going on?

cmake
-GNinja
-DPARAVIEW_BUILD_SHARED_LIBS=ON
-DBUILD_TESTING=OFF
-DPARAVIEW_USE_MPI=ON
-DPARAVIEW_USE_PYTHON=ON
-DPARAVIEW_OPENGL_HAS_OSMESA=ON
-DPARAVIEW_OPENGL_HAS_EGL=OFF
-DPARAVIEW_USE_QT=ON
-DPARAVIEW_ENABLE_WEB=ON

You can pass -DVTK_MODULE_ENABLE_VTK_RenderingLOD=YES to force the module to build. @utkarshayachit Should the LOD module be tied to some ParaView build option?

As for vtkImplicitPlaneWidget, I missed that I needed to press “i” to activate the widget. Now I can see the widget.

So I guess at least for the examples, it’s safe to use vtkActor in place of vtkLODActor?

Ah, yeah probably. I don’t know what vtkLODActor gets you on top of it, but not requiring a subclass if the base is sufficient for examples is probably better.