Source code for dipy.viz.horizon.tab.roi

from dipy.viz.horizon.tab import HorizonTab, build_checkbox, build_slider


[docs] class ROIsTab(HorizonTab): def __init__(self, contour_actors): """Initialize interaction tab for ROIs visualization. Parameters ---------- contour_actors : list list of vtkActor. """ super().__init__() self._actors = contour_actors self._name = "ROIs" self._tab_id = 0 self._actor_toggle = build_checkbox( labels=[""], checked_labels=[""], on_change=self._toggle_actors ) self._opacity_slider_label, self._opacity_slider = build_slider( initial_value=1, max_value=1.0, text_template="{ratio:.0%}", on_change=self._change_opacity, label="Opacity", ) self._register_elements( self._actor_toggle, self._opacity_slider_label, self._opacity_slider ) def _change_opacity(self, slider): """Change opacity of all ROIs. Parameters ---------- slider : LineSlider2D """ opacity = slider.value self._opacity_slider.selected_value = slider.value for contour in self._actors: contour.GetProperty().SetOpacity(opacity)
[docs] def build(self, tab_id): """Position the elements in the tab. Parameters ---------- tab_id : int Identifier for the tab. Index of the tab in TabUI. """ self._tab_id = tab_id y_pos = 0.85 self._actor_toggle.position = (0.02, y_pos) self._opacity_slider_label.position = (0.05, y_pos) self._opacity_slider.position = (0.12, y_pos)
@property def name(self): """Title of the tab. Returns ------- str """ return self._name @property def actors(self): """Actors controlled by tab. Returns ------- list """ return self._actors