diff --git a/src/Python/Picking/CellPicking.py b/src/Python/Picking/CellPicking.py index 4f176f63f7d152702ab69670694c5ba275dc0e5b..d291ba08cac8bc17562bdbb7eae74a99b915dc2a 100644 --- a/src/Python/Picking/CellPicking.py +++ b/src/Python/Picking/CellPicking.py @@ -1,23 +1,44 @@ #!/usr/bin/env python -import vtkmodules.all as vtk +# noinspection PyUnresolvedReferences +import vtkmodules.vtkRenderingOpenGL2 +from vtkmodules.vtkCommonColor import vtkNamedColors +from vtkmodules.vtkCommonCore import vtkIdTypeArray +from vtkmodules.vtkCommonDataModel import ( + vtkSelection, + vtkSelectionNode, + vtkUnstructuredGrid +) +from vtkmodules.vtkFiltersCore import vtkTriangleFilter +from vtkmodules.vtkFiltersExtraction import vtkExtractSelection +from vtkmodules.vtkFiltersSources import vtkPlaneSource +from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera +from vtkmodules.vtkRenderingCore import ( + vtkActor, + vtkCellPicker, + vtkDataSetMapper, + vtkPolyDataMapper, + vtkRenderWindow, + vtkRenderWindowInteractor, + vtkRenderer +) # Catch mouse events -class MouseInteractorStyle(vtk.vtkInteractorStyleTrackballCamera): +class MouseInteractorStyle(vtkInteractorStyleTrackballCamera): def __init__(self, data): self.AddObserver('LeftButtonPressEvent', self.left_button_press_event) self.data = data - self.selected_mapper = vtk.vtkDataSetMapper() - self.selected_actor = vtk.vtkActor() + self.selected_mapper = vtkDataSetMapper() + self.selected_actor = vtkActor() def left_button_press_event(self, obj, event): - colors = vtk.vtkNamedColors() + colors = vtkNamedColors() # Get the location of the click (in window coordinates) pos = self.GetInteractor().GetEventPosition() - picker = vtk.vtkCellPicker() + picker = vtkCellPicker() picker.SetTolerance(0.0005) # Pick from this location. @@ -29,25 +50,25 @@ class MouseInteractorStyle(vtk.vtkInteractorStyleTrackballCamera): if picker.GetCellId() != -1: print(f'Pick position is: ({world_position[0]:.6g}, {world_position[1]:.6g}, {world_position[2]:.6g})') - ids = vtk.vtkIdTypeArray() + ids = vtkIdTypeArray() ids.SetNumberOfComponents(1) ids.InsertNextValue(picker.GetCellId()) - selection_node = vtk.vtkSelectionNode() - selection_node.SetFieldType(vtk.vtkSelectionNode.CELL) - selection_node.SetContentType(vtk.vtkSelectionNode.INDICES) + selection_node = vtkSelectionNode() + selection_node.SetFieldType(vtkSelectionNode.CELL) + selection_node.SetContentType(vtkSelectionNode.INDICES) selection_node.SetSelectionList(ids) - selection = vtk.vtkSelection() + selection = vtkSelection() selection.AddNode(selection_node) - extract_selection = vtk.vtkExtractSelection() + extract_selection = vtkExtractSelection() extract_selection.SetInputData(0, self.data) extract_selection.SetInputData(1, selection) extract_selection.Update() # In selection - selected = vtk.vtkUnstructuredGrid() + selected = vtkUnstructuredGrid() selected.ShallowCopy(extract_selection.GetOutput()) print(f'Number of points in the selection: {selected.GetNumberOfPoints()}') @@ -67,27 +88,27 @@ class MouseInteractorStyle(vtk.vtkInteractorStyleTrackballCamera): def main(argv): - colors = vtk.vtkNamedColors() + colors = vtkNamedColors() - plane_source = vtk.vtkPlaneSource() + plane_source = vtkPlaneSource() plane_source.Update() - triangle_filter = vtk.vtkTriangleFilter() + triangle_filter = vtkTriangleFilter() triangle_filter.SetInputConnection(plane_source.GetOutputPort()) triangle_filter.Update() - mapper = vtk.vtkPolyDataMapper() + mapper = vtkPolyDataMapper() mapper.SetInputConnection(triangle_filter.GetOutputPort()) - actor = vtk.vtkActor() + actor = vtkActor() actor.GetProperty().SetColor(colors.GetColor3d('SeaGreen')) actor.SetMapper(mapper) - renderer = vtk.vtkRenderer() - ren_win = vtk.vtkRenderWindow() + renderer = vtkRenderer() + ren_win = vtkRenderWindow() ren_win.AddRenderer(renderer) ren_win.SetWindowName('CellPicking') - iren = vtk.vtkRenderWindowInteractor() + iren = vtkRenderWindowInteractor() iren.SetRenderWindow(ren_win) renderer.AddActor(actor) diff --git a/src/Python/Picking/HighlightPickedActor.py b/src/Python/Picking/HighlightPickedActor.py index 52e96e48a03b9501a49a2ac1cd707442964672ad..4a18a8d3c4414bcd820dd8941ebaba8963026ebd 100755 --- a/src/Python/Picking/HighlightPickedActor.py +++ b/src/Python/Picking/HighlightPickedActor.py @@ -1,21 +1,37 @@ -import vtkmodules.all as vtk - -colors = vtk.vtkNamedColors() +#!/usr/bin/env python + +# noinspection PyUnresolvedReferences +import vtkmodules.vtkRenderingOpenGL2 +from vtkmodules.vtkCommonColor import vtkNamedColors +from vtkmodules.vtkCommonCore import vtkMinimalStandardRandomSequence +from vtkmodules.vtkFiltersSources import vtkSphereSource +from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera +from vtkmodules.vtkRenderingCore import ( + vtkActor, + vtkPolyDataMapper, + vtkPropPicker, + vtkProperty, + vtkRenderWindow, + vtkRenderWindowInteractor, + vtkRenderer +) + +colors = vtkNamedColors() NUMBER_OF_SPHERES = 10 -class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera): +class MouseInteractorHighLightActor(vtkInteractorStyleTrackballCamera): def __init__(self, parent=None): self.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent) self.LastPickedActor = None - self.LastPickedProperty = vtk.vtkProperty() + self.LastPickedProperty = vtkProperty() def leftButtonPressEvent(self, obj, event): clickPos = self.GetInteractor().GetEventPosition() - picker = vtk.vtkPropPicker() + picker = vtkPropPicker() picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer()) # get the new @@ -45,16 +61,16 @@ class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera): def main(): # A renderer and render window - renderer = vtk.vtkRenderer() + renderer = vtkRenderer() renderer.SetBackground(colors.GetColor3d('SteelBlue')) - renwin = vtk.vtkRenderWindow() + renwin = vtkRenderWindow() renwin.AddRenderer(renderer) renwin.SetSize(640, 480) renwin.SetWindowName('HighlightPickedActor') # An interactor - interactor = vtk.vtkRenderWindowInteractor() + interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renwin) # add the custom style @@ -62,13 +78,13 @@ def main(): style.SetDefaultRenderer(renderer) interactor.SetInteractorStyle(style) - randomSequence = vtk.vtkMinimalStandardRandomSequence() + randomSequence = vtkMinimalStandardRandomSequence() # randomSequence.SetSeed(1043618065) # randomSequence.SetSeed(5170) randomSequence.SetSeed(8775070) # Add spheres to play with for i in range(NUMBER_OF_SPHERES): - source = vtk.vtkSphereSource() + source = vtkSphereSource() # random position and radius x = randomSequence.GetRangeValue(-5.0, 5.0) @@ -85,9 +101,9 @@ def main(): source.SetPhiResolution(11) source.SetThetaResolution(21) - mapper = vtk.vtkPolyDataMapper() + mapper = vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) - actor = vtk.vtkActor() + actor = vtkActor() actor.SetMapper(mapper) r = randomSequence.GetRangeValue(0.4, 1.0) diff --git a/src/Python/Picking/HighlightWithSilhouette.py b/src/Python/Picking/HighlightWithSilhouette.py index 6eb79a862ed8a64dcccb066fcf05c8ab3837bfc5..337a145247a7199ea6b59c223ea40ac9216771dd 100755 --- a/src/Python/Picking/HighlightWithSilhouette.py +++ b/src/Python/Picking/HighlightWithSilhouette.py @@ -1,6 +1,20 @@ # !/usr/bin/env python -import vtkmodules.all as vtk +# noinspection PyUnresolvedReferences +import vtkmodules.vtkRenderingOpenGL2 +from vtkmodules.vtkCommonColor import vtkNamedColors +from vtkmodules.vtkCommonCore import vtkMinimalStandardRandomSequence +from vtkmodules.vtkFiltersHybrid import vtkPolyDataSilhouette +from vtkmodules.vtkFiltersSources import vtkSphereSource +from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera +from vtkmodules.vtkRenderingCore import ( + vtkActor, + vtkPolyDataMapper, + vtkPropPicker, + vtkRenderWindow, + vtkRenderWindowInteractor, + vtkRenderer +) def get_program_parameters(): @@ -18,7 +32,7 @@ The selected object is highlighted with a silhouette. return args.numberOfSpheres -class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera): +class MouseInteractorHighLightActor(vtkInteractorStyleTrackballCamera): def __init__(self, silhouette=None, silhouetteActor=None): self.AddObserver("LeftButtonPressEvent", self.onLeftButtonDown) @@ -30,7 +44,7 @@ class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera): clickPos = self.GetInteractor().GetEventPosition() # Pick from this location. - picker = vtk.vtkPropPicker() + picker = vtkPropPicker() picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer()) self.LastPickedActor = picker.GetActor() @@ -56,27 +70,27 @@ class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera): def main(): numberOfSpheres = get_program_parameters() - colors = vtk.vtkNamedColors() + colors = vtkNamedColors() # A renderer and render window - renderer = vtk.vtkRenderer() + renderer = vtkRenderer() renderer.SetBackground(colors.GetColor3d('SteelBlue')) - renderWindow = vtk.vtkRenderWindow() + renderWindow = vtkRenderWindow() renderWindow.SetSize(640, 480) renderWindow.AddRenderer(renderer) # An interactor - interactor = vtk.vtkRenderWindowInteractor() + interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) - randomSequence = vtk.vtkMinimalStandardRandomSequence() + randomSequence = vtkMinimalStandardRandomSequence() # randomSequence.SetSeed(1043618065) # randomSequence.SetSeed(5170) randomSequence.SetSeed(8775070) # Add spheres to play with for i in range(numberOfSpheres): - source = vtk.vtkSphereSource() + source = vtkSphereSource() # random position and radius x = randomSequence.GetRangeValue(-5.0, 5.0) @@ -93,9 +107,9 @@ def main(): source.SetPhiResolution(11) source.SetThetaResolution(21) - mapper = vtk.vtkPolyDataMapper() + mapper = vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) - actor = vtk.vtkActor() + actor = vtkActor() actor.SetMapper(mapper) r = randomSequence.GetRangeValue(0.4, 1.0) @@ -118,14 +132,14 @@ def main(): # Create the silhouette pipeline, the input data will be set in the # interactor - silhouette = vtk.vtkPolyDataSilhouette() + silhouette = vtkPolyDataSilhouette() silhouette.SetCamera(renderer.GetActiveCamera()) # Create mapper and actor for silhouette - silhouetteMapper = vtk.vtkPolyDataMapper() + silhouetteMapper = vtkPolyDataMapper() silhouetteMapper.SetInputConnection(silhouette.GetOutputPort()) - silhouetteActor = vtk.vtkActor() + silhouetteActor = vtkActor() silhouetteActor.SetMapper(silhouetteMapper) silhouetteActor.GetProperty().SetColor(colors.GetColor3d("Tomato")) silhouetteActor.GetProperty().SetLineWidth(5)