Example #1
0
def selectionCallback(caller, eventId):
    hsel = vtk.vtkHardwareSelector()
    hsel.SetFieldAssociation(vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS)
    hsel.SetRenderer(ren1)

    x, y = caller.GetRenderWindow().GetSize()

    # Create a small area around clicked point for selector area
    hsel.SetArea(0, 0, x, y)
    res = hsel.Select()

    numNodes = res.GetNumberOfNodes()
    if (numNodes < 1):
        print("No visible cells")
    else:
        sel_node = res.GetNode(0)
        print('Visible cell IDs: ', VN.vtk_to_numpy(sel_node.GetSelectionList()).tolist())
def selectionCallback(caller, eventId):
    hsel = vtk.vtkHardwareSelector()
    hsel.SetFieldAssociation(vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS)
    hsel.SetRenderer(ren1)

    x, y = caller.GetRenderWindow().GetSize()

    # Create a small area around clicked point for selector area
    hsel.SetArea(0, 0, x, y)
    res = hsel.Select()

    numNodes = res.GetNumberOfNodes()
    if numNodes < 1:
        print("No visible cells")
    else:
        sel_node = res.GetNode(0)
        print("Visible cell IDs: ", VN.vtk_to_numpy(sel_node.GetSelectionList()).tolist())
Example #3
0
    def __init__(self, select='faces'):
        """ Selection Manager helps with picking many
        objects simultaneously

        Parameters
        -----------
        select : 'faces'
            Options are 'faces', 'vertices' or 'actors'.
            Default 'faces'.

        Methods
        -------
        select()
        pick()

        """

        self.hsel = vtk.vtkHardwareSelector()
        self.update_selection_type(select)
Example #4
0
def PickData(object, event, selactor, state, view, text_init):
    picker = object.GetPicker()
    hsel = vtk.vtkHardwareSelector()
    ren = picker.GetRenderer(); hsel.SetRenderer(ren)
    hsel.SetArea(ren.GetPickX1(),ren.GetPickY1(),ren.GetPickX2(),ren.GetPickY2())
    if state:
        hsel.SetFieldAssociation(vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS)
    else:
        hsel.SetFieldAssociation(vtk.vtkDataObject.FIELD_ASSOCIATION_POINTS)
    sel = hsel.Select(); ex = vtk.vtkExtractSelection()
    if picker.GetMapper():
        if (not sel.GetNumberOfNodes()==0):
            ex.SetInputConnection(picker.GetMapper().GetInputConnection(0,0))
            ex.SetSelectionConnection(sel.GetProducerPort()); ex.Update()
            selmapper = vtk.vtkDataSetMapper(); data = ex.GetOutput()
            selmapper.SetInput(data); selmapper.ScalarVisibilityOff()
            selactor.SetMapper(selmapper); selactor.PickableOff(); 
            selactor.GetProperty().SetColor(0.0, 1.0, 0.0)
            selactor.GetProperty().SetOpacity(0.5); selactor.GetProperty().SetPointSize(5)
            ren.AddActor(selactor)
            PlotSelectedData(data, state, view, text_init)
Example #5
0
            selected_actor.text.SetText(labels[selected_node])
        else:
            selected_actor.text.SetText("#%d" % selected_node)
        selected_actor.SetPosition(positions[selected_node])

    else:
        selected_actor.text.SetText("")
    timer_callback(None, None)


###############################################################################
# We add observers to pick the nodes and enable hardware selector

nodes_actor.AddObserver('LeftButtonPressEvent', left_click_callback, 1)

hsel = vtk.vtkHardwareSelector()
hsel.SetFieldAssociation(vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS)
hsel.SetRenderer(scene)

###############################################################################
# All actors need to be added in a scene, so we build one and add our
# lines_actor and nodes_actor.

scene.add(lines_actor)
scene.add(nodes_actor)
scene.add(selected_actor)

###############################################################################
# The final step ! Visualize the result of our creation! Also, we need to move
# the camera a little bit farther from the network. you can increase the
# parameter max_iteractions of the timer callback to let the animation run for
Example #6
0
polydata = sphere_source.GetOutput()

mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(polydata)
mapper.ScalarVisibilityOn()

surface_actor = vtk.vtkActor()
surface_actor.SetMapper(mapper)

ren.AddActor(surface_actor)

ren.Render()


hw_filter = vtk.vtkHardwareSelector()
hw_filter.SetRenderer(ren)
window_size = ren_win.GetSize()
hw_filter.SetArea(1, 1, window_size[0], window_size[1])
hw_filter.SetFieldAssociation(vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS)
selection = hw_filter.Select()

extract_selection = vtk.vtkExtractSelection()

extract_selection.SetInputData(0, polydata)
extract_selection.SetInputData(1, selection)
extract_selection.Update()

selection = extract_selection.GetOutput()

polydata.BuildLinks()