Esempio n. 1
0
    cube.SetVisibility(False)


hide_all_examples()

###############################################################################
# To make the menu, we'll first need to create a list of labels which
# correspond with the examples.

values = ['Rectangle', 'Disks', 'Image', "Button Panel",
          "Line and Ring Slider", "Range Slider"]

###############################################################################
# Now we can create the menu.

listbox = ui.ListBox2D(values=values, position=(10, 300), size=(300, 200),
                       multiselection=False)

###############################################################################
# Then we will use a callback to show the correct example when a label is
# clicked.


def display_element():
    hide_all_examples()
    example = examples[values.index(listbox.selected[0])]
    for element in example:
        element.set_visibility(True)
    if values.index(listbox.selected[0]) == 4:
        cube.SetVisibility(True)

Esempio n. 2
0
def test_ui_listbox_2d(interactive=False):
    filename = "test_ui_listbox_2d"
    recording_filename = pjoin(DATA_DIR, filename + ".log.gz")
    expected_events_counts_filename = pjoin(DATA_DIR, filename + ".json")

    # Values that will be displayed by the listbox.
    values = list(range(1, 42 + 1))
    values.append("A Very Very Long Item To Test Text Overflow of List Box 2D")

    if interactive:
        listbox = ui.ListBox2D(values=values,
                               size=(500, 500),
                               multiselection=True,
                               reverse_scrolling=False,
                               background_opacity=0.3)
        listbox.center = (300, 300)
        listbox.panel.opacity = 0.2

        show_manager = window.ShowManager(size=(600, 600),
                                          title="FURY ListBox")
        show_manager.initialize()
        show_manager.scene.add(listbox)
        show_manager.start()

    # Recorded events:
    #  1. Click on 1
    #  2. Ctrl + click on 2,
    #  3. Ctrl + click on 2.
    #  4. Use scroll bar to scroll to the bottom.
    #  5. Click on "A Very Very Long Item...".
    #  6. Use scroll bar to scroll to the top.
    #  7. Click on 1
    #  8. Use mouse wheel to scroll down.
    #  9. Shift + click on "A Very Very Long Item...".
    # 10. Use mouse wheel to scroll back up.

    listbox = ui.ListBox2D(values=values,
                           size=(500, 500),
                           multiselection=True,
                           reverse_scrolling=False)
    listbox.center = (300, 300)

    # We will collect the sequence of values that have been selected.
    selected_values = []

    def _on_change():
        selected_values.append(list(listbox.selected))

    # Set up a callback when selection changes.
    listbox.on_change = _on_change

    # Assign the counter callback to every possible event.
    event_counter = EventCounter()
    event_counter.monitor(listbox)

    show_manager = window.ShowManager(size=(600, 600),
                                      title="FURY ListBox")
    show_manager.scene.add(listbox)
    show_manager.play_events_from_file(recording_filename)
    expected = EventCounter.load(expected_events_counts_filename)
    event_counter.check_counts(expected)

    # Check if the right values were selected.
    expected = [[1], [1, 2], [1], ["A Very Very Long Item To \
Test Text Overflow of List Box 2D"], [1], values]
    npt.assert_equal(len(selected_values), len(expected))
    assert_arrays_equal(selected_values, expected)

    # Test without multiselection enabled.
    listbox.multiselection = False
    del selected_values[:]  # Clear the list.
    show_manager.play_events_from_file(recording_filename)

    # Check if the right values were selected.
    expected = [[1], [2], [2], ["A Very Very Long Item To \
Test Text Overflow of List Box 2D"], [1], ["A Very Very Long Item To Test \
Text Overflow of List Box 2D"]]
    npt.assert_equal(len(selected_values), len(expected))
    assert_arrays_equal(selected_values, expected)
Esempio n. 3
0
    def initialize(self):
        print(sys.version)
        global renderer, renderWindow, renderWindowInteractor  #, cone, mapper, actor

        # Bring used components
        self.registerVtkWebProtocol(protocols.vtkWebMouseHandler())
        self.registerVtkWebProtocol(protocols.vtkWebViewPort())
        self.registerVtkWebProtocol(protocols.vtkWebViewPortImageDelivery())
        # self.registerVtkWebProtocol(protocols.vtkWebPublishImageDelivery(decode=False))
        self.registerVtkWebProtocol(protocols.vtkWebViewPortGeometryDelivery())

        # Update authentication key to use
        self.updateSecret(_WebCone.authKey)

        # tell the C++ web app to use no encoding. vtkWebPublishImageDelivery must be set to decode=False to match.
        # self.getApplication().SetImageEncoding(0)

        # Create default pipeline (Only once for all the session)
        if not _WebCone.view:
            TEST_HORIZON = False

            if not TEST_HORIZON:
                showm = window.ShowManager()
                showm.initialize()

                slider_demo = self.build_slider_demo()
                brain_demo = self.build_brain_demo(showm)
                bundle_demo = self.build_bundle_demo()
                surface_demo = self.build_surface_demo(showm)

                examples = [slider_demo, brain_demo]
                examples_names = [name for name, act in examples]

                listbox = ui.ListBox2D(values=examples_names,
                                       position=(10, 300),
                                       size=(300, 80),
                                       multiselection=False)

                def hide_all_examples():
                    for _, l_act in examples:
                        for element in l_act:
                            if hasattr(element, 'add_to_scene'):
                                element.set_visibility(False)
                            else:
                                element.SetVisibility(False)

                def display_element():
                    hide_all_examples()
                    example = examples[examples_names.index(
                        listbox.selected[0])]
                    for element in example[1]:
                        if hasattr(element, 'add_to_scene'):
                            element.set_visibility(True)
                        else:
                            element.SetVisibility(True)

                listbox.on_change = display_element
                listbox.panel.color = (1.0, 1.0, 1.0)
                listbox.panel.opacity = 0.3
                hide_all_examples()
                showm.scene.add(listbox)
                for _, l_act in examples:
                    for element in l_act:
                        showm.scene.add(element)

                # VTK specific code
                renderer = showm.scene
                renderWindow = showm.window
                renderWindowInteractor = showm.iren

            else:
                affine = np.diag([2., 1, 1, 1]).astype('f8')
                data = 255 * np.random.rand(150, 150, 150)
                images = [(data, affine)]
                from dipy.segment.tests.test_bundles import f1
                streamlines = f1.copy()
                tractograms = [streamlines]

                Horizon(tractograms,
                        images=images,
                        cluster=True,
                        cluster_thr=5,
                        random_colors=False,
                        length_lt=np.inf,
                        length_gt=0,
                        clusters_lt=np.inf,
                        clusters_gt=0,
                        world_coords=True)

            def calc_suare(numbers, showm):
                print("Calculate square numbers")
                for n in numbers:
                    time.sleep(1)
                    print("square:", n * n)
                    showm.scene.GetActiveCamera().Azimuth(10)
                    # showm.render()
                    # view = self.getApplication().GetObjectIdMap().GetActiveObject("VIEW")

            # arr = np.random.rand(100)
            # t1 = threading.Thread(target=calc_suare, args=(arr, showm))
            # t1.start()
            print("Auth-key {}".format(_WebCone.authKey))
            print('Initialization  --- OK')
            print('Starting FURY SERVER')
            # VTK Web application specific
            _WebCone.view = renderWindow
            self.getApplication().GetObjectIdMap().SetActiveObject(
                "VIEW", renderWindow)
Esempio n. 4
0
# We create some panels and then we arrange them in a grid fashion
#
# First, we create some panels with different sizes/positions

panel_1 = ui.Panel2D(size=(200, 200),
                     color=(0.4, 0.6, 0.3),
                     position=(100, 100))

panel_2 = ui.Panel2D(size=(250, 250),
                     color=(0.8, 0.3, 0.5),
                     position=(150, 150))

###############################################################################
# Now we create two listboxes

listbox_1 = ui.ListBox2D(size=(150, 150), values=['First', 'Second', 'Third'])

listbox_2 = ui.ListBox2D(size=(250, 250), values=['First', 'Second', 'Third'])

###############################################################################
# Now we create two diffrent UI i.e. a slider and a listbox

slider = ui.LineSlider2D(length=150)
listbox = ui.ListBox2D(size=(150, 150), values=['First', 'Second', 'Third'])

###############################################################################
# Now, we create grids with different shapes

rect_grid = GridLayout(position_offset=(0, 0, 0))
square_grid = GridLayout(cell_shape='square', position_offset=(0, 300, 0))
diagonal_grid = GridLayout(cell_shape="diagonal", position_offset=(0, 600, 0))
Esempio n. 5
0
import fury.ui as ui
import fury.window as window

values = [
    'abcdefghijklmnopqrstuvwxyz', 'ahdfjkhkashdfjkhdskfhiweuroqweqr',
    'akdiuhdaiufhasdfusdffsdfusdyf', 'Soham', '012345678901234567',
    'dfhfsjkljfhsakljfhsjkaljhfajklhgsfajkljhgajkljhkakjljhaklhgfakljhgfajh'
]
listbox = ui.ListBox2D(values=values, size=(300, 300))
sm = window.ShowManager(size=(600, 600))
sm.scene.add(listbox)
sm.start()