From a972e00b7115a5037bdef8dcebbf90596ba70209 Mon Sep 17 00:00:00 2001
From: Andrew Maclean <andrew.amaclean@gmail.com>
Date: Sun, 3 Oct 2021 12:29:20 +1100
Subject: [PATCH] Updated Meshes

---
 src/Python/Meshes/BoundaryEdges.py            |  35 ++++--
 src/Python/Meshes/CapClip.py                  |  70 +++++++----
 src/Python/Meshes/ClipDataSetWithPolyData.py  |  79 +++++++-----
 src/Python/Meshes/ClipDataSetWithPolyData1.py |  60 ++++++---
 src/Python/Meshes/ColoredElevationMap.py      | 117 ++++++++++--------
 src/Python/Meshes/Decimation.py               |  70 +++++++----
 src/Python/Meshes/DeformPointSet.py           |  62 +++++++---
 src/Python/Meshes/PointInterpolator.py        |  54 +++++---
 src/Python/Meshes/SolidClip.py                |  41 ++++--
 9 files changed, 386 insertions(+), 202 deletions(-)

diff --git a/src/Python/Meshes/BoundaryEdges.py b/src/Python/Meshes/BoundaryEdges.py
index 3bb6b33303c..c0f38a6c6aa 100755
--- a/src/Python/Meshes/BoundaryEdges.py
+++ b/src/Python/Meshes/BoundaryEdges.py
@@ -1,14 +1,27 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkFiltersCore import vtkFeatureEdges
+from vtkmodules.vtkFiltersSources import vtkDiskSource
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
-    colors = vtk.vtkNamedColors()
-    diskSource = vtk.vtkDiskSource()
+    colors = vtkNamedColors()
+    diskSource = vtkDiskSource()
     diskSource.Update()
 
-    featureEdges = vtk.vtkFeatureEdges()
+    featureEdges = vtkFeatureEdges()
     featureEdges.SetInputConnection(diskSource.GetOutputPort())
     featureEdges.BoundaryEdgesOn()
     featureEdges.FeatureEdgesOff()
@@ -18,24 +31,24 @@ def main():
     featureEdges.Update()
 
     # Visualize
-    edgeMapper = vtk.vtkPolyDataMapper()
+    edgeMapper = vtkPolyDataMapper()
     edgeMapper.SetInputConnection(featureEdges.GetOutputPort())
-    edgeActor = vtk.vtkActor()
+    edgeActor = vtkActor()
     edgeActor.SetMapper(edgeMapper)
 
-    diskMapper = vtk.vtkPolyDataMapper()
+    diskMapper = vtkPolyDataMapper()
     diskMapper.SetInputConnection(diskSource.GetOutputPort())
-    diskActor = vtk.vtkActor()
+    diskActor = vtkActor()
     diskActor.SetMapper(diskMapper)
     diskActor.GetProperty().SetColor(colors.GetColor3d('Gray'))
 
     # Create a renderer, render window, and interactor
-    renderer = vtk.vtkRenderer()
-    renderWindow = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renderWindow = vtkRenderWindow()
     renderWindow.SetWindowName('BoundaryEdges')
 
     renderWindow.AddRenderer(renderer)
-    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
+    renderWindowInteractor = vtkRenderWindowInteractor()
     renderWindowInteractor.SetRenderWindow(renderWindow)
 
     renderer.AddActor(edgeActor)
diff --git a/src/Python/Meshes/CapClip.py b/src/Python/Meshes/CapClip.py
index 51ba802d241..c8f5a406fe9 100755
--- a/src/Python/Meshes/CapClip.py
+++ b/src/Python/Meshes/CapClip.py
@@ -2,7 +2,35 @@
 
 import os.path
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonDataModel import (
+    vtkPlane,
+    vtkPolyData
+)
+from vtkmodules.vtkFiltersCore import (
+    vtkClipPolyData,
+    vtkFeatureEdges,
+    vtkStripper
+)
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkIOGeometry import (
+    vtkBYUReader,
+    vtkOBJReader,
+    vtkSTLReader
+)
+from vtkmodules.vtkIOPLY import vtkPLYReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkDataSetMapper,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -21,7 +49,7 @@ def main():
     filePath = get_program_parameters()
 
     # Define colors
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
     backgroundColor = colors.GetColor3d('steel_blue')
     boundaryColor = colors.GetColor3d('Banana')
     clipColor = colors.GetColor3d('Tomato')
@@ -33,11 +61,11 @@ def main():
     else:
         polyData = GetSpherePD()
 
-    plane = vtk.vtkPlane()
+    plane = vtkPlane()
     plane.SetOrigin(polyData.GetCenter())
     plane.SetNormal(1.0, -1.0, -1.0)
 
-    clipper = vtk.vtkClipPolyData()
+    clipper = vtkClipPolyData()
     clipper.SetInputData(polyData)
     clipper.SetClipFunction(plane)
     clipper.SetValue(0)
@@ -45,44 +73,44 @@ def main():
 
     polyData = clipper.GetOutput()
 
-    clipMapper = vtk.vtkDataSetMapper()
+    clipMapper = vtkDataSetMapper()
     clipMapper.SetInputData(polyData)
 
-    clipActor = vtk.vtkActor()
+    clipActor = vtkActor()
     clipActor.SetMapper(clipMapper)
     clipActor.GetProperty().SetDiffuseColor(clipColor)
     clipActor.GetProperty().SetInterpolationToFlat()
     clipActor.GetProperty().EdgeVisibilityOn()
 
     # Now extract feature edges
-    boundaryEdges = vtk.vtkFeatureEdges()
+    boundaryEdges = vtkFeatureEdges()
     boundaryEdges.SetInputData(polyData)
     boundaryEdges.BoundaryEdgesOn()
     boundaryEdges.FeatureEdgesOff()
     boundaryEdges.NonManifoldEdgesOff()
     boundaryEdges.ManifoldEdgesOff()
 
-    boundaryStrips = vtk.vtkStripper()
+    boundaryStrips = vtkStripper()
     boundaryStrips.SetInputConnection(boundaryEdges.GetOutputPort())
     boundaryStrips.Update()
 
     # Change the polylines into polygons
-    boundaryPoly = vtk.vtkPolyData()
+    boundaryPoly = vtkPolyData()
     boundaryPoly.SetPoints(boundaryStrips.GetOutput().GetPoints())
     boundaryPoly.SetPolys(boundaryStrips.GetOutput().GetLines())
 
-    boundaryMapper = vtk.vtkPolyDataMapper()
+    boundaryMapper = vtkPolyDataMapper()
     boundaryMapper.SetInputData(boundaryPoly)
 
-    boundaryActor = vtk.vtkActor()
+    boundaryActor = vtkActor()
     boundaryActor.SetMapper(boundaryMapper)
     boundaryActor.GetProperty().SetDiffuseColor(boundaryColor)
 
     # create renderer render window, and interactor
-    renderer = vtk.vtkRenderer()
-    renderWindow = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renderWindow = vtkRenderWindow()
     renderWindow.AddRenderer(renderer)
-    interactor = vtk.vtkRenderWindowInteractor()
+    interactor = vtkRenderWindowInteractor()
     interactor.SetRenderWindow(renderWindow)
 
     # set background color and size
@@ -112,32 +140,32 @@ def ReadPolyData(file_name):
     path, extension = os.path.splitext(file_name)
     extension = extension.lower()
     if extension == '.ply':
-        reader = vtk.vtkPLYReader()
+        reader = vtkPLYReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.vtp':
-        reader = vtk.vtkXMLpoly_dataReader()
+        reader = vtkXMLpoly_dataReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.obj':
-        reader = vtk.vtkOBJReader()
+        reader = vtkOBJReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.stl':
-        reader = vtk.vtkSTLReader()
+        reader = vtkSTLReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.vtk':
-        reader = vtk.vtkpoly_dataReader()
+        reader = vtkpoly_dataReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.g':
-        reader = vtk.vtkBYUReader()
+        reader = vtkBYUReader()
         reader.SetGeometryFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
@@ -151,7 +179,7 @@ def GetSpherePD():
     '''
     :return: The PolyData representation of a sphere.
     '''
-    source = vtk.vtkSphereSource()
+    source = vtkSphereSource()
     source.SetThetaResolution(20)
     source.SetPhiResolution(11)
     source.Update()
diff --git a/src/Python/Meshes/ClipDataSetWithPolyData.py b/src/Python/Meshes/ClipDataSetWithPolyData.py
index 3087445c448..749cba89f63 100755
--- a/src/Python/Meshes/ClipDataSetWithPolyData.py
+++ b/src/Python/Meshes/ClipDataSetWithPolyData.py
@@ -1,14 +1,37 @@
+#!/usr/bin/env python
+
 import numpy as np
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonCore import vtkFloatArray
+from vtkmodules.vtkCommonDataModel import (
+    vtkCellTypes,
+    vtkRectilinearGrid
+)
+from vtkmodules.vtkFiltersCore import vtkImplicitPolyDataDistance
+from vtkmodules.vtkFiltersGeneral import vtkClipDataSet
+from vtkmodules.vtkFiltersGeometry import vtkRectilinearGridGeometryFilter
+from vtkmodules.vtkFiltersSources import vtkConeSource
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkDataSetMapper,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     # Create polydata to slice the grid with. In this case, use a cone. This
     # could
     # be any polydata including a stl file.
-    cone = vtk.vtkConeSource()
+    cone = vtkConeSource()
     cone.SetResolution(50)
     cone.SetDirection(0, 0, -1)
     cone.SetHeight(3.0)
@@ -16,41 +39,41 @@ def main():
     cone.Update()
 
     # Implicit function that will be used to slice the mesh
-    implicitPolyDataDistance = vtk.vtkImplicitPolyDataDistance()
+    implicitPolyDataDistance = vtkImplicitPolyDataDistance()
     implicitPolyDataDistance.SetInput(cone.GetOutput())
 
     # create a grid
     dimension = 51
-    xCoords = vtk.vtkFloatArray()
+    xCoords = vtkFloatArray()
     for x, i in enumerate(np.linspace(-1.0, 1.0, dimension)):
         xCoords.InsertNextValue(i)
 
-    yCoords = vtk.vtkFloatArray()
+    yCoords = vtkFloatArray()
     for y, i in enumerate(np.linspace(-1.0, 1.0, dimension)):
         yCoords.InsertNextValue(i)
 
-    zCoords = vtk.vtkFloatArray()
+    zCoords = vtkFloatArray()
     for z, i in enumerate(np.linspace(-1.0, 1.0, dimension)):
         zCoords.InsertNextValue(i)
 
     # # create a grid - if not using numpy
     # dimension = 51
-    # xCoords = vtk.vtkFloatArray()
+    # xCoords = vtkFloatArray()
     # for i in range(0, dimension):
     #     xCoords.InsertNextValue(-1.0 + i * 2.0 / (dimension - 1))
     #
-    # yCoords = vtk.vtkFloatArray()
+    # yCoords = vtkFloatArray()
     # for i in range(0, dimension):
     #     yCoords.InsertNextValue(-1.0 + i * 2.0 / (dimension - 1))
     #
-    # zCoords = vtk.vtkFloatArray()
+    # zCoords = vtkFloatArray()
     # for i in range(0, dimension):
     #     zCoords.InsertNextValue(-1.0 + i * 2.0 / (dimension - 1))
 
     # The coordinates are assigned to the rectilinear grid. Make sure that
     # the number of values in each of the XCoordinates, YCoordinates,
     # and ZCoordinates is equal to what is defined in SetDimensions().
-    rgrid = vtk.vtkRectilinearGrid()
+    rgrid = vtkRectilinearGrid()
     rgrid.SetDimensions(xCoords.GetNumberOfTuples(),
                         yCoords.GetNumberOfTuples(),
                         zCoords.GetNumberOfTuples())
@@ -59,7 +82,7 @@ def main():
     rgrid.SetZCoordinates(zCoords)
 
     # Create an array to hold distance information
-    signedDistances = vtk.vtkFloatArray()
+    signedDistances = vtkFloatArray()
     signedDistances.SetNumberOfComponents(1)
     signedDistances.SetName('SignedDistances')
 
@@ -73,7 +96,7 @@ def main():
     rgrid.GetPointData().SetScalars(signedDistances)
 
     # Use vtkClipDataSet to slice the grid with the polydata
-    clipper = vtk.vtkClipDataSet()
+    clipper = vtkClipDataSet()
     clipper.SetInputData(rgrid)
     clipper.InsideOutOn()
     clipper.SetValue(0.0)
@@ -82,40 +105,40 @@ def main():
 
     # --- mappers, actors, render, etc. ---
     # mapper and actor to view the cone
-    coneMapper = vtk.vtkPolyDataMapper()
+    coneMapper = vtkPolyDataMapper()
     coneMapper.SetInputConnection(cone.GetOutputPort())
-    coneActor = vtk.vtkActor()
+    coneActor = vtkActor()
     coneActor.SetMapper(coneMapper)
 
     # geometry filter to view the background grid
-    geometryFilter = vtk.vtkRectilinearGridGeometryFilter()
+    geometryFilter = vtkRectilinearGridGeometryFilter()
     geometryFilter.SetInputData(rgrid)
     geometryFilter.SetExtent(0, dimension, 0, dimension, int(dimension / 2), int(dimension / 2))
     geometryFilter.Update()
 
-    rgridMapper = vtk.vtkPolyDataMapper()
+    rgridMapper = vtkPolyDataMapper()
     rgridMapper.SetInputConnection(geometryFilter.GetOutputPort())
     rgridMapper.SetScalarRange(
         rgrid.GetPointData().GetArray('SignedDistances').GetRange())
 
-    wireActor = vtk.vtkActor()
+    wireActor = vtkActor()
     wireActor.SetMapper(rgridMapper)
     wireActor.GetProperty().SetRepresentationToWireframe()
 
     # mapper and actor to view the clipped mesh
-    clipperMapper = vtk.vtkDataSetMapper()
+    clipperMapper = vtkDataSetMapper()
     clipperMapper.SetInputConnection(clipper.GetOutputPort())
     clipperMapper.ScalarVisibilityOff()
 
-    clipperOutsideMapper = vtk.vtkDataSetMapper()
+    clipperOutsideMapper = vtkDataSetMapper()
     clipperOutsideMapper.SetInputConnection(clipper.GetOutputPort(1))
     clipperOutsideMapper.ScalarVisibilityOff()
 
-    clipperActor = vtk.vtkActor()
+    clipperActor = vtkActor()
     clipperActor.SetMapper(clipperMapper)
     clipperActor.GetProperty().SetColor(colors.GetColor3d('Banana'))
 
-    clipperOutsideActor = vtk.vtkActor()
+    clipperOutsideActor = vtkActor()
     clipperOutsideActor.SetMapper(clipperOutsideMapper)
     clipperOutsideActor.GetProperty().SetColor(
         colors.GetColor3d('Banana'))
@@ -123,12 +146,12 @@ def main():
     # A renderer and render window
     # Create a renderer, render window, and interactor
     leftViewport = [0.0, 0.0, 0.5, 1.0]
-    leftRenderer = vtk.vtkRenderer()
+    leftRenderer = vtkRenderer()
     leftRenderer.SetViewport(leftViewport)
     leftRenderer.SetBackground(colors.GetColor3d('SteelBlue'))
 
     rightViewport = [0.5, 0.0, 1.0, 1.0]
-    rightRenderer = vtk.vtkRenderer()
+    rightRenderer = vtkRenderer()
     rightRenderer.SetViewport(rightViewport)
     rightRenderer.SetBackground(colors.GetColor3d('CadetBlue'))
 
@@ -137,14 +160,14 @@ def main():
     leftRenderer.AddActor(clipperActor)
     rightRenderer.AddActor(clipperOutsideActor)
 
-    renwin = vtk.vtkRenderWindow()
+    renwin = vtkRenderWindow()
     renwin.SetSize(640, 480)
     renwin.AddRenderer(leftRenderer)
     renwin.AddRenderer(rightRenderer)
     renwin.SetWindowName('ClipDataSetWithPolyData')
 
     # An interactor
-    interactor = vtk.vtkRenderWindowInteractor()
+    interactor = vtkRenderWindowInteractor()
     interactor.SetRenderWindow(renwin)
 
     # Share the camera
@@ -161,7 +184,7 @@ def main():
     interactor.Start()
 
     # Generate a report
-    ct = vtk.vtkCellTypes()
+    ct = vtkCellTypes()
 
     numberOfCells = clipper.GetOutput().GetNumberOfCells()
     print('------------------------')
@@ -173,7 +196,7 @@ def main():
 
     for k, v in cellMap.items():
         print('\tCell type ', ct.GetClassNameFromTypeId(k), 'occurs', v, 'times.')
-        
+
     numberOfCells = clipper.GetClippedOutput().GetNumberOfCells()
     print('------------------------')
     print('The clipped dataset(outside) contains a\n', clipper.GetClippedOutput().GetClassName(), 'that has',
diff --git a/src/Python/Meshes/ClipDataSetWithPolyData1.py b/src/Python/Meshes/ClipDataSetWithPolyData1.py
index 2742cfa735e..dcb8fbde9ef 100755
--- a/src/Python/Meshes/ClipDataSetWithPolyData1.py
+++ b/src/Python/Meshes/ClipDataSetWithPolyData1.py
@@ -1,44 +1,64 @@
+#!/usr/bin/env python
+
 import numpy as np
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonCore import vtkFloatArray
+from vtkmodules.vtkCommonDataModel import vtkRectilinearGrid
+from vtkmodules.vtkFiltersCore import vtkImplicitPolyDataDistance
+from vtkmodules.vtkFiltersGeneral import vtkClipDataSet
+from vtkmodules.vtkFiltersGeometry import vtkRectilinearGridGeometryFilter
+from vtkmodules.vtkFiltersSources import vtkConeSource
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkDataSetMapper,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     # Create polydata to slice the grid with. In this case, use a cone. This could
     # be any polydata including a stl file.
-    cone = vtk.vtkConeSource()
+    cone = vtkConeSource()
     cone.SetResolution(20)
     cone.Update()
 
     # implicit function that will be used to slice the mesh
-    implicitPolyDataDistance = vtk.vtkImplicitPolyDataDistance()
+    implicitPolyDataDistance = vtkImplicitPolyDataDistance()
     implicitPolyDataDistance.SetInput(cone.GetOutput())
 
     # create a grid
-    xCoords = vtk.vtkFloatArray()
+    xCoords = vtkFloatArray()
     for x, i in enumerate(np.linspace(-1.0, 1.0, 15)):
         xCoords.InsertNextValue(i)
 
-    yCoords = vtk.vtkFloatArray()
+    yCoords = vtkFloatArray()
     for y, i in enumerate(np.linspace(-1.0, 1.0, 15)):
         yCoords.InsertNextValue(i)
 
-    zCoords = vtk.vtkFloatArray()
+    zCoords = vtkFloatArray()
     for z, i in enumerate(np.linspace(-1.0, 1.0, 15)):
         zCoords.InsertNextValue(i)
 
     # The coordinates are assigned to the rectilinear grid. Make sure that
     # the number of values in each of the XCoordinates, YCoordinates,
     # and ZCoordinates is equal to what is defined in SetDimensions().
-    rgrid = vtk.vtkRectilinearGrid()
+    rgrid = vtkRectilinearGrid()
     rgrid.SetDimensions(x + 1, y + 1, z + 1)
     rgrid.SetXCoordinates(xCoords)
     rgrid.SetYCoordinates(yCoords)
     rgrid.SetZCoordinates(zCoords)
 
     # Create an array to hold distance information
-    signedDistances = vtk.vtkFloatArray()
+    signedDistances = vtkFloatArray()
     signedDistances.SetNumberOfComponents(1)
     signedDistances.SetName('SignedDistances')
 
@@ -52,7 +72,7 @@ def main():
     rgrid.GetPointData().SetScalars(signedDistances)
 
     # use vtkClipDataSet to slice the grid with the polydata
-    clipper = vtk.vtkClipDataSet()
+    clipper = vtkClipDataSet()
     clipper.SetInputData(rgrid)
     clipper.InsideOutOn()
     clipper.SetValue(0.0)
@@ -60,36 +80,36 @@ def main():
 
     # --- mappers, actors, render, etc. ---
     # mapper and actor to view the cone
-    coneMapper = vtk.vtkPolyDataMapper()
+    coneMapper = vtkPolyDataMapper()
     coneMapper.SetInputConnection(cone.GetOutputPort())
-    coneActor = vtk.vtkActor()
+    coneActor = vtkActor()
     coneActor.SetMapper(coneMapper)
 
     # geometry filter to view the background grid
-    geometryFilter = vtk.vtkRectilinearGridGeometryFilter()
+    geometryFilter = vtkRectilinearGridGeometryFilter()
     geometryFilter.SetInputData(rgrid)
     geometryFilter.SetExtent(0, x + 1, 0, y + 1, (z + 1) // 2, (z + 1) // 2)
     geometryFilter.Update()
 
-    rgridMapper = vtk.vtkPolyDataMapper()
+    rgridMapper = vtkPolyDataMapper()
     rgridMapper.SetInputConnection(geometryFilter.GetOutputPort())
 
-    wireActor = vtk.vtkActor()
+    wireActor = vtkActor()
     wireActor.SetMapper(rgridMapper)
     wireActor.GetProperty().SetRepresentationToWireframe()
     wireActor.GetProperty().SetColor(colors.GetColor3d('Black'))
 
     # mapper and actor to view the clipped mesh
-    clipperMapper = vtk.vtkDataSetMapper()
+    clipperMapper = vtkDataSetMapper()
     clipperMapper.SetInputConnection(clipper.GetOutputPort())
 
-    clipperActor = vtk.vtkActor()
+    clipperActor = vtkActor()
     clipperActor.SetMapper(clipperMapper)
     clipperActor.GetProperty().SetRepresentationToWireframe()
     clipperActor.GetProperty().SetColor(colors.GetColor3d('Black'))
 
     # A renderer and render window
-    renderer = vtk.vtkRenderer()
+    renderer = vtkRenderer()
     renderer.SetBackground(colors.GetColor3d('Snow'))
 
     # add the actors
@@ -97,12 +117,12 @@ def main():
     renderer.AddActor(wireActor)
     renderer.AddActor(clipperActor)
 
-    renwin = vtk.vtkRenderWindow()
+    renwin = vtkRenderWindow()
     renwin.AddRenderer(renderer)
     renwin.SetWindowName('ClipDataSetWithPolyData')
 
     # An interactor
-    interactor = vtk.vtkRenderWindowInteractor()
+    interactor = vtkRenderWindowInteractor()
     interactor.SetRenderWindow(renwin)
 
     # Start
diff --git a/src/Python/Meshes/ColoredElevationMap.py b/src/Python/Meshes/ColoredElevationMap.py
index 3bd4b4006c9..ebdb83cba85 100755
--- a/src/Python/Meshes/ColoredElevationMap.py
+++ b/src/Python/Meshes/ColoredElevationMap.py
@@ -1,71 +1,90 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonCore import (
+    vtkLookupTable,
+    vtkMinimalStandardRandomSequence,
+    vtkPoints,
+    vtkUnsignedCharArray
+)
+from vtkmodules.vtkCommonDataModel import vtkPolyData
+from vtkmodules.vtkFiltersCore import vtkDelaunay2D
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
+
 
 def main():
-    named_colors = vtk.vtkNamedColors()
+    named_colors = vtkNamedColors()
 
     # Create a grid points
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     GridSize = 20;
-    xx=0.0 
-    yy=0.0
-    zz=0.0
-    rng = vtk.vtkMinimalStandardRandomSequence()
+    xx = 0.0
+    yy = 0.0
+    zz = 0.0
+    rng = vtkMinimalStandardRandomSequence()
     rng.SetSeed(8775586)  # For testing.
     for x in range(0, GridSize):
         for y in range(0, GridSize):
-          rng.Next()
-          xx = x + rng.GetRangeValue(-0.2, 0.2)
-          rng.Next()
-          yy = y + rng.GetRangeValue(-0.2, 0.2)
-          rng.Next()
-          zz = rng.GetRangeValue(-0.5, 0.5)
-          points.InsertNextPoint(xx, yy, zz)
-         
- 
+            rng.Next()
+            xx = x + rng.GetRangeValue(-0.2, 0.2)
+            rng.Next()
+            yy = y + rng.GetRangeValue(-0.2, 0.2)
+            rng.Next()
+            zz = rng.GetRangeValue(-0.5, 0.5)
+            points.InsertNextPoint(xx, yy, zz)
+
     # Add the grid points to a polydata object
-    inputPolyData = vtk.vtkPolyData()
+    inputPolyData = vtkPolyData()
     inputPolyData.SetPoints(points)
- 
+
     # Triangulate the grid points
-    delaunay = vtk.vtkDelaunay2D()
+    delaunay = vtkDelaunay2D()
     delaunay.SetInputData(inputPolyData)
     delaunay.Update()
     outputPolyData = delaunay.GetOutput()
-    
-    bounds= 6*[0.0]
+
+    bounds = 6 * [0.0]
     outputPolyData.GetBounds(bounds)
-  
+
     # Find min and max z
     minz = bounds[4]
     maxz = bounds[5]
- 
+
     print('minz: {:< 6.3}'.format(minz))
     print('maxz: {:< 6.3}'.format(maxz))
- 
+
     # Create the color map
-    colorLookupTable = vtk.vtkLookupTable()
+    colorLookupTable = vtkLookupTable()
     colorLookupTable.SetTableRange(minz, maxz)
     colorLookupTable.Build()
- 
+
     # Generate the colors for each point based on the color map
-    colors = vtk.vtkUnsignedCharArray()
+    colors = vtkUnsignedCharArray()
     colors.SetNumberOfComponents(3)
     colors.SetName('Colors')
- 
-    print( 'There are '+str(outputPolyData.GetNumberOfPoints())+' points.')
- 
+
+    print('There are ' + str(outputPolyData.GetNumberOfPoints()) + ' points.')
+
     for i in range(0, outputPolyData.GetNumberOfPoints()):
-        p= 3*[0.0]
-        outputPolyData.GetPoint(i,p)
- 
-        dcolor = 3*[0.0]
+        p = 3 * [0.0]
+        outputPolyData.GetPoint(i, p)
+
+        dcolor = 3 * [0.0]
         colorLookupTable.GetColor(p[2], dcolor);
         # print( 'dcolor: {:<8.6} {:<8.6} {:<8.6}'.format(*dcolor))
-        color=3*[0.0]
-        for j in range(0,3):
-          color[j] = int(255.0 * dcolor[j])
+        color = 3 * [0.0]
+        for j in range(0, 3):
+            color[j] = int(255.0 * dcolor[j])
         # print('color:  {:<8} {:<8} {:<8}'.format(*color))
 
         try:
@@ -73,35 +92,33 @@ def main():
         except AttributeError:
             # For compatibility with new VTK generic data arrays.
             colors.InsertNextTypedTuple(color)
-        
- 
+
     outputPolyData.GetPointData().SetScalars(colors)
- 
+
     # Create a mapper and actor
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputData(outputPolyData)
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
- 
+
     # Create a renderer, render window, and interactor
-    renderer = vtk.vtkRenderer()
-    renderWindow = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renderWindow = vtkRenderWindow()
     renderWindow.AddRenderer(renderer)
     renderWindow.SetWindowName('ColoredElevationMap')
 
-    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
+    renderWindowInteractor = vtkRenderWindowInteractor()
     renderWindowInteractor.SetRenderWindow(renderWindow)
- 
+
     # Add the actor to the scene
     renderer.AddActor(actor)
     renderer.SetBackground(named_colors.GetColor3d('DarkSlateGray'))
- 
+
     # Render and interact
     renderWindow.Render()
     renderWindowInteractor.Start()
-   
+
 
 if __name__ == '__main__':
     main()
-
diff --git a/src/Python/Meshes/Decimation.py b/src/Python/Meshes/Decimation.py
index b53d1bff19e..65902e08a4f 100755
--- a/src/Python/Meshes/Decimation.py
+++ b/src/Python/Meshes/Decimation.py
@@ -2,7 +2,33 @@
 
 import os.path
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonDataModel import vtkPolyData
+from vtkmodules.vtkFiltersCore import (
+    vtkDecimatePro,
+    vtkTriangleFilter
+)
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkIOGeometry import (
+    vtkBYUReader,
+    vtkOBJReader,
+    vtkSTLReader
+)
+from vtkmodules.vtkIOPLY import vtkPLYReader
+from vtkmodules.vtkIOXML import vtkXMLPolyDataReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkCamera,
+    vtkPolyDataMapper,
+    vtkProperty,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -23,7 +49,7 @@ def main():
     filePath, reduction = get_program_parameters()
 
     # Define colors
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
     backFaceColor = colors.GetColor3d('Gold')
     inputActorColor = colors.GetColor3d('NavajoWhite')
     decimatedActorColor = colors.GetColor3d('NavajoWhite')
@@ -35,7 +61,7 @@ def main():
         if not readerPD:
             inputPolyData = GetSpherePD()
         else:
-            triangles = vtk.vtkTriangleFilter()
+            triangles = vtkTriangleFilter()
             triangles.SetInputData(readerPD)
             triangles.Update()
             inputPolyData = triangles.GetOutput()
@@ -46,13 +72,13 @@ def main():
     print(f'There are {inputPolyData.GetNumberOfPoints()} points.')
     print(f'There are {inputPolyData.GetNumberOfPolys()} polygons.')
 
-    decimate = vtk.vtkDecimatePro()
+    decimate = vtkDecimatePro()
     decimate.SetInputData(inputPolyData)
     decimate.SetTargetReduction(reduction)
     decimate.PreserveTopologyOn()
     decimate.Update()
 
-    decimated = vtk.vtkPolyData()
+    decimated = vtkPolyData()
     decimated.ShallowCopy(decimate.GetOutput())
 
     print('After decimation')
@@ -61,34 +87,34 @@ def main():
     print(
         f'Reduction: {(inputPolyData.GetNumberOfPolys() - decimated.GetNumberOfPolys()) / inputPolyData.GetNumberOfPolys()}')
 
-    inputMapper = vtk.vtkPolyDataMapper()
+    inputMapper = vtkPolyDataMapper()
     inputMapper.SetInputData(inputPolyData)
 
-    backFace = vtk.vtkProperty()
+    backFace = vtkProperty()
     backFace.SetColor(backFaceColor)
 
-    inputActor = vtk.vtkActor()
+    inputActor = vtkActor()
     inputActor.SetMapper(inputMapper)
     inputActor.GetProperty().SetInterpolationToFlat()
     inputActor.GetProperty().SetColor(inputActorColor)
     inputActor.SetBackfaceProperty(backFace)
 
-    decimatedMapper = vtk.vtkPolyDataMapper()
+    decimatedMapper = vtkPolyDataMapper()
     decimatedMapper.SetInputData(decimated)
 
-    decimatedActor = vtk.vtkActor()
+    decimatedActor = vtkActor()
     decimatedActor.SetMapper(decimatedMapper)
     decimatedActor.GetProperty().SetColor(decimatedActorColor)
     decimatedActor.GetProperty().SetInterpolationToFlat()
     decimatedActor.SetBackfaceProperty(backFace)
 
     # There will be one render window
-    renderWindow = vtk.vtkRenderWindow()
+    renderWindow = vtkRenderWindow()
     renderWindow.SetSize(600, 300)
     renderWindow.SetWindowName('Decimation');
 
     # And one interactor
-    interactor = vtk.vtkRenderWindowInteractor()
+    interactor = vtkRenderWindowInteractor()
     interactor.SetRenderWindow(renderWindow)
 
     # Define viewport ranges
@@ -97,13 +123,13 @@ def main():
     rightViewport = [0.5, 0.0, 1.0, 1.0]
 
     # Setup both renderers
-    leftRenderer = vtk.vtkRenderer()
+    leftRenderer = vtkRenderer()
     renderWindow.AddRenderer(leftRenderer)
     leftRenderer.SetViewport(leftViewport)
     # leftRenderer.SetBackground((colors.GetColor3d('leftBkg')))
     leftRenderer.SetBackground((colors.GetColor3d('Peru')))
 
-    rightRenderer = vtk.vtkRenderer()
+    rightRenderer = vtkRenderer()
     renderWindow.AddRenderer(rightRenderer)
     rightRenderer.SetViewport(rightViewport)
     # rightRenderer.SetBackground((colors.GetColor3d('rightBkg')))
@@ -115,7 +141,7 @@ def main():
 
     # Shared camera
     # Shared camera looking down the -y axis
-    camera = vtk.vtkCamera()
+    camera = vtkCamera()
     camera.SetPosition(0, -1, 0)
     camera.SetFocalPoint(0, 0, 0)
     camera.SetViewUp(0, 0, 1)
@@ -139,32 +165,32 @@ def ReadPolyData(file_name):
     path, extension = os.path.splitext(file_name)
     extension = extension.lower()
     if extension == '.ply':
-        reader = vtk.vtkPLYReader()
+        reader = vtkPLYReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.vtp':
-        reader = vtk.vtkXMLPolyDataReader()
+        reader = vtkXMLPolyDataReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.obj':
-        reader = vtk.vtkOBJReader()
+        reader = vtkOBJReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.stl':
-        reader = vtk.vtkSTLReader()
+        reader = vtkSTLReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.vtk':
-        reader = vtk.vtkpoly_dataReader()
+        reader = vtkpoly_dataReader()
         reader.SetFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
     elif extension == '.g':
-        reader = vtk.vtkBYUReader()
+        reader = vtkBYUReader()
         reader.SetGeometryFileName(file_name)
         reader.Update()
         poly_data = reader.GetOutput()
@@ -178,7 +204,7 @@ def GetSpherePD():
     '''
     :return: The PolyData representation of a sphere.
     '''
-    source = vtk.vtkSphereSource()
+    source = vtkSphereSource()
     source.SetThetaResolution(30)
     source.SetPhiResolution(15)
     source.Update()
diff --git a/src/Python/Meshes/DeformPointSet.py b/src/Python/Meshes/DeformPointSet.py
index 2fb5f157ede..a41b5b23800 100755
--- a/src/Python/Meshes/DeformPointSet.py
+++ b/src/Python/Meshes/DeformPointSet.py
@@ -1,24 +1,45 @@
-import vtkmodules.all as vtk
+#!/usr/bin/env python
+
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonCore import vtkPoints
+from vtkmodules.vtkCommonDataModel import (
+    vtkCellArray,
+    vtkPolyData
+)
+from vtkmodules.vtkFiltersCore import vtkElevationFilter
+from vtkmodules.vtkFiltersGeneral import vtkDeformPointSet
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
-    colors = vtk.vtkNamedColors()
-    
+    colors = vtkNamedColors()
+
     # Set the background color.
     # colors.SetColor('bkg', [0.2, 0.3, 0.4, 1.0])
 
     # Create a sphere to deform
-    sphere = vtk.vtkSphereSource()
+    sphere = vtkSphereSource()
     sphere.SetThetaResolution(51)
     sphere.SetPhiResolution(17)
     sphere.Update()
     bounds = sphere.GetOutput().GetBounds()
 
     # Create a filter to color the sphere
-    ele = vtk.vtkElevationFilter()
+    ele = vtkElevationFilter()
     ele.SetInputConnection(sphere.GetOutputPort())
-    ele.SetLowPoint(0,0,-0.5);
-    ele.SetHighPoint(0,0,0.5);
+    ele.SetLowPoint(0, 0, -0.5);
+    ele.SetHighPoint(0, 0, 0.5);
     ele.SetLowPoint((bounds[1] + bounds[0]) / 2.0,
                     (bounds[3] + bounds[2]) / 2.0,
                     -bounds[5]);
@@ -28,7 +49,7 @@ def main():
     ele.Update()
 
     # Create a mesh to deform the sphere
-    pts = vtk.vtkPoints()
+    pts = vtkPoints()
     pts.SetNumberOfPoints(6)
     pts.SetPoint(0,
                  bounds[0] - 0.1 * (bounds[1] - bounds[0]),
@@ -54,7 +75,7 @@ def main():
                  (bounds[1] + bounds[0]) / 2.0,
                  (bounds[3] + bounds[2]) / 2.0,
                  bounds[5] + 0.1 * (bounds[5] - bounds[4]))
-    tris = vtk.vtkCellArray()
+    tris = vtkCellArray()
 
     cells = [[2, 0, 4], [1, 2, 4], [3, 1, 4], [0, 3, 4], [0, 2, 5], [2, 1, 5], [1, 3, 5], [3, 0, 5]]
 
@@ -63,18 +84,18 @@ def main():
         for c in cell:
             tris.InsertCellPoint(c)
 
-    pd = vtk.vtkPolyData()
+    pd = vtkPolyData()
     pd.SetPoints(pts)
     pd.SetPolys(tris)
 
-    meshMapper = vtk.vtkPolyDataMapper()
+    meshMapper = vtkPolyDataMapper()
     meshMapper.SetInputData(pd)
-    meshActor = vtk.vtkActor()
+    meshActor = vtkActor()
     meshActor.SetMapper(meshMapper)
     meshActor.GetProperty().SetRepresentationToWireframe()
     meshActor.GetProperty().SetColor(colors.GetColor3d('Black'))
 
-    deform = vtk.vtkDeformPointSet()
+    deform = vtkDeformPointSet()
     deform.SetInputData(ele.GetOutput())
     deform.SetControlMeshData(pd)
     deform.Update()
@@ -85,29 +106,30 @@ def main():
                  bounds[5] + .8 * (bounds[5] - bounds[4]))
     pts.Modified()
 
-    polyMapper = vtk.vtkPolyDataMapper()
+    polyMapper = vtkPolyDataMapper()
     polyMapper.SetInputConnection(deform.GetOutputPort())
-    polyActor = vtk.vtkActor()
+    polyActor = vtkActor()
     polyActor.SetMapper(polyMapper)
 
-    renderer = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renWin = vtkRenderWindow()
     renWin.AddRenderer(renderer)
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     iren.SetRenderWindow(renWin)
 
     renderer.AddActor(polyActor)
     renderer.AddActor(meshActor)
 
-    renderer.GetActiveCamera().SetPosition(1,1,1)
+    renderer.GetActiveCamera().SetPosition(1, 1, 1)
     renderer.ResetCamera()
     renderer.SetBackground(colors.GetColor3d('DarkSlateGray'))
 
-    renWin.SetSize(300,300)
+    renWin.SetSize(300, 300)
     renWin.SetWindowName('DeformPointSet')
     renWin.Render()
 
     iren.Start()
 
+
 if __name__ == '__main__':
     main()
diff --git a/src/Python/Meshes/PointInterpolator.py b/src/Python/Meshes/PointInterpolator.py
index 77e14adfe8d..9ea0d2acb6d 100755
--- a/src/Python/Meshes/PointInterpolator.py
+++ b/src/Python/Meshes/PointInterpolator.py
@@ -1,8 +1,28 @@
 #!/usr/bin/env python
 
 import numpy as np
-
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonDataModel import vtkImageData
+from vtkmodules.vtkFiltersCore import vtkResampleWithDataSet
+from vtkmodules.vtkFiltersGeneral import vtkTableToPolyData
+from vtkmodules.vtkFiltersPoints import (
+    vtkGaussianKernel,
+    vtkPointInterpolator
+)
+from vtkmodules.vtkIOGeometry import vtkSTLReader
+from vtkmodules.vtkIOInfovis import vtkDelimitedTextReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPointGaussianMapper,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -24,15 +44,15 @@ This example uses vtkPointInterpolator with a Gaussian Kernel (or other kernel)
 def main():
     points_fn, probe_fn = get_program_parameters()
 
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
-    points_reader = vtk.vtkDelimitedTextReader()
+    points_reader = vtkDelimitedTextReader()
     points_reader.SetFileName(points_fn)
     points_reader.DetectNumericColumnsOn()
     points_reader.SetFieldDelimiterCharacters('\t')
     points_reader.SetHaveHeaders(True)
 
-    table_points = vtk.vtkTableToPolyData()
+    table_points = vtkTableToPolyData()
     table_points.SetInputConnection(points_reader.GetOutputPort())
     table_points.SetXColumn('x')
     table_points.SetYColumn('y')
@@ -44,7 +64,7 @@ def main():
     range = points.GetPointData().GetScalars().GetRange()
 
     # Read a probe surface
-    stl_reader = vtk.vtkSTLReader()
+    stl_reader = vtkSTLReader()
     stl_reader.SetFileName(probe_fn)
     stl_reader.Update()
 
@@ -52,33 +72,33 @@ def main():
     bounds = np.array(surface.GetBounds())
 
     dims = np.array([101, 101, 101])
-    box = vtk.vtkImageData()
+    box = vtkImageData()
     box.SetDimensions(dims)
     box.SetSpacing((bounds[1::2] - bounds[:-1:2]) / (dims - 1))
     box.SetOrigin(bounds[::2])
 
     # Gaussian kernel
-    gaussian_kernel = vtk.vtkGaussianKernel()
+    gaussian_kernel = vtkGaussianKernel()
     gaussian_kernel.SetSharpness(2)
     gaussian_kernel.SetRadius(12)
 
-    interpolator = vtk.vtkPointInterpolator()
+    interpolator = vtkPointInterpolator()
     interpolator.SetInputData(box)
     interpolator.SetSourceData(points)
     interpolator.SetKernel(gaussian_kernel)
 
-    resample = vtk.vtkResampleWithDataSet()
+    resample = vtkResampleWithDataSet()
     resample.SetInputData(surface)
     resample.SetSourceConnection(interpolator.GetOutputPort())
 
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(resample.GetOutputPort())
     mapper.SetScalarRange(range)
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
 
-    point_mapper = vtk.vtkPointGaussianMapper()
+    point_mapper = vtkPointGaussianMapper()
     point_mapper.SetInputData(points)
     point_mapper.SetScalarRange(range)
     point_mapper.SetScaleFactor(0.6)
@@ -95,13 +115,13 @@ def main():
         "}\n"
     )
 
-    point_actor = vtk.vtkActor()
+    point_actor = vtkActor()
     point_actor.SetMapper(point_mapper)
 
-    renderer = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renWin = vtkRenderWindow()
     renWin.AddRenderer(renderer)
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     iren.SetRenderWindow(renWin)
 
     renderer.AddActor(actor)
diff --git a/src/Python/Meshes/SolidClip.py b/src/Python/Meshes/SolidClip.py
index 3ce24fe40b5..2d1dd706ed6 100755
--- a/src/Python/Meshes/SolidClip.py
+++ b/src/Python/Meshes/SolidClip.py
@@ -1,40 +1,55 @@
 # !/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonDataModel import vtkPlane
+from vtkmodules.vtkFiltersCore import vtkClipPolyData
+from vtkmodules.vtkFiltersSources import vtkSuperquadricSource
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkProperty,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
     # Create a superquadric
-    superquadric_source = vtk.vtkSuperquadricSource()
+    superquadric_source = vtkSuperquadricSource()
     superquadric_source.SetPhiRoundness(3.1)
     superquadric_source.SetThetaRoundness(2.2)
 
     # Define a clipping plane
-    clip_plane = vtk.vtkPlane()
+    clip_plane = vtkPlane()
     clip_plane.SetNormal(1.0, -1.0, -1.0)
     clip_plane.SetOrigin(0.0, 0.0, 0.0)
 
     # Clip the source with the plane
-    clipper = vtk.vtkClipPolyData()
+    clipper = vtkClipPolyData()
     clipper.SetInputConnection(superquadric_source.GetOutputPort())
     clipper.SetClipFunction(clip_plane)
     # This will give us the polygonal data that is clipped away
     clipper.GenerateClippedOutputOn()
 
     # Create a mapper and actor
-    superquadric_mapper = vtk.vtkPolyDataMapper()
+    superquadric_mapper = vtkPolyDataMapper()
     superquadric_mapper.SetInputConnection(clipper.GetOutputPort())
 
-    superquadric_actor = vtk.vtkActor()
+    superquadric_actor = vtkActor()
     superquadric_actor.SetMapper(superquadric_mapper)
 
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     # Create a property to be used for the back faces. Turn off all
     # shading by specifying 0 weights for specular and diffuse. Max the
     # ambient.
-    back_faces = vtk.vtkProperty()
+    back_faces = vtkProperty()
     back_faces.SetSpecular(0.0)
     back_faces.SetDiffuse(0.0)
     back_faces.SetAmbient(1.0)
@@ -43,25 +58,25 @@ def main():
     superquadric_actor.SetBackfaceProperty(back_faces)
 
     # Here we get the the polygonal data that is clipped away
-    clipped_away_mapper = vtk.vtkPolyDataMapper()
+    clipped_away_mapper = vtkPolyDataMapper()
     clipped_away_mapper.SetInputData(clipper.GetClippedOutput())
     clipped_away_mapper.ScalarVisibilityOff()
 
     # Let us display it as a faint object
-    clipped_away_actor = vtk.vtkActor()
+    clipped_away_actor = vtkActor()
     clipped_away_actor.SetMapper(clipped_away_mapper)
     clipped_away_actor.GetProperty().SetDiffuseColor(colors.GetColor3d("Silver"))
     clipped_away_actor.GetProperty().SetOpacity(0.1)
 
     # Create a renderer
-    renderer = vtk.vtkRenderer()
+    renderer = vtkRenderer()
     renderer.SetBackground(colors.GetColor3d('SlateGray'))
 
-    render_window = vtk.vtkRenderWindow()
+    render_window = vtkRenderWindow()
 
     render_window.AddRenderer(renderer)
 
-    render_window_interactor = vtk.vtkRenderWindowInteractor()
+    render_window_interactor = vtkRenderWindowInteractor()
     render_window_interactor.SetRenderWindow(render_window)
 
     # Add the actor to the renderer
-- 
GitLab