def test_ui_ring_slider_2d(recording=False): filename = "test_ui_ring_slider_2d" recording_filename = pjoin(DATA_DIR, filename + ".log.gz") expected_events_counts_filename = pjoin(DATA_DIR, filename + ".pkl") ring_slider_2d_test = ui.RingSlider2D() ring_slider_2d_test.center = (300, 300) ring_slider_2d_test.value = 90 # Assign the counter callback to every possible event. event_counter = EventCounter() event_counter.monitor(ring_slider_2d_test) current_size = (600, 600) show_manager = window.ShowManager(size=current_size, title="DIPY Ring Slider") show_manager.ren.add(ring_slider_2d_test) if recording: # Record the following events # 1. Left Click on the handle and hold it # 2. Move to the left the handle and make 1.5 tour # 3. Release the handle # 4. Left Click on the handle and hold it # 5. Move to the right the handle and make 1 tour # 6. Release the handle show_manager.record_events_to_file(recording_filename) print(list(event_counter.events_counts.items())) event_counter.save(expected_events_counts_filename) else: show_manager.play_events_from_file(recording_filename) expected = EventCounter.load(expected_events_counts_filename) event_counter.check_counts(expected)
max_value=5) line_slider.on_change = translate_green_cube """ 2D Ring Slider ============== """ def rotate_red_cube(slider): angle = slider.value previous_angle = slider.previous_value rotation_angle = angle - previous_angle cube_actor_1.RotateY(rotation_angle) ring_slider = ui.RingSlider2D(text_template="{angle:5.1f}°") ring_slider.center = (200, 200) ring_slider.on_change = rotate_red_cube """ 2D List Box =========== """ values = list(map(str, range(1, 50 + 1))) listbox = ui.ListBox2D(values=values, position=(300, 420), size=(250, 160), multiselection=True) def _print_nb_selected_elements():
cube_mapper = window.vtk.vtkPolyDataMapper() cube_mapper.SetInputConnection(cube.GetOutputPort()) cube_actor = window.vtk.vtkActor() cube_actor.SetMapper(cube_mapper) if color is not None: cube_actor.GetProperty().SetColor(color) return cube_actor cube = cube_maker(color=(0, 0, 1), size=(20, 20, 20), center=(15, 0, 0)) """ Now we'll add two sliders: one circular and one linear. """ ring_slider = ui.RingSlider2D(center=(740, 400), initial_value=0, text_template="{angle:5.1f}°") line_slider = ui.LineSlider2D(center=(500, 250), initial_value=0, min_value=-10, max_value=10) """ We can use a callback to rotate the cube with the ring slider. """ def rotate_cube(slider): angle = slider.value previous_angle = slider.previous_value rotation_angle = angle - previous_angle