ui¶
Button2D(icon_fnames[, position, size]) | 
A 2D overlay button and is of type vtkTexturedActor2D. | 
Checkbox(labels[, padding, font_size, …]) | 
A 2D set of :class:’Option’ objects. | 
CustomInteractorStyle() | 
Manipulate the camera and interact with objects in the scene. | 
Disk2D(outer_radius[, inner_radius, center, …]) | 
A 2D disk UI component. | 
FileMenu2D(directory_path[, extensions, …]) | 
A menu to select files in the current folder. | 
ImageContainer2D(img_path[, position, size]) | 
A 2D container to hold an image. | 
LineDoubleSlider2D([line_width, …]) | 
A 2D Line Slider with two sliding rings. | 
LineSlider2D([center, initial_value, …]) | 
A 2D Line Slider. | 
ListBox2D(values[, position, size, …]) | 
UI component that allows the user to select items from a list. | 
ListBoxItem2D(list_box, size) | 
The text displayed in a listbox. | 
Option(label[, position, font_size]) | 
A set of a Button2D and a TextBlock2D to act as a single option for checkboxes and radio buttons. | 
Panel2D(size[, position, color, opacity, align]) | 
A 2D UI Panel. | 
RadioButton(labels[, padding, font_size, …]) | 
A 2D set of :class:’Option’ objects. | 
RangeSlider([line_width, inner_radius, …]) | 
A set of a LineSlider2D and a LineDoubleSlider2D. | 
Rectangle2D([size, position, color, opacity]) | 
A 2D rectangle sub-classed from UI. | 
RingSlider2D([center, initial_value, …]) | 
A disk slider. | 
TextBlock2D([text, font_size, font_family, …]) | 
Wraps over the default vtkTextActor and helps setting the text. | 
TextBox2D(width, height[, text, position, …]) | 
An editable 2D text box that behaves as a UI component. | 
UI([position]) | 
An umbrella class for all UI elements. | 
read_viz_icons([style, fname]) | 
Read specific icon from specific style. | 
set_input(vtk_object, inp) | 
Generic input function which takes into account VTK 5 or 6 | 
warn | 
Issue a warning, or maybe ignore it or raise an exception. | 
Button2D¶
- 
class 
fury.ui.Button2D(icon_fnames, position=(0, 0), size=(30, 30))[source]¶ Bases:
fury.ui.UIA 2D overlay button and is of type vtkTexturedActor2D.
Currently supports:
- Multiple icons. - Switching between icons.
- 
__init__(icon_fnames, position=(0, 0), size=(30, 30))[source]¶ Parameters: - icon_fnames : List(string, string)
 ((iconname, filename), (iconname, filename), ….)
- position : (float, float), optional
 Absolute coordinates (x, y) of the lower-left corner of the button.
- size : (int, int), optional
 Width and height in pixels of the button.
- 
color¶ Gets the button’s color.
- 
resize(size)[source]¶ Resize the button.
Parameters: - size : (float, float)
 Button size (width, height) in pixels.
- 
scale(factor)[source]¶ Scales the button.
Parameters: - factor : (float, float)
 Scaling factor (width, height) in pixels.
- 
 
Checkbox¶
- 
class 
fury.ui.Checkbox(labels, padding=1, font_size=18, font_family='Arial', position=(0, 0))[source]¶ Bases:
fury.ui.UIA 2D set of :class:’Option’ objects. Multiple options can be selected.
Attributes: - labels : list(string)
 List of labels of each option.
- options : list(Option)
 List of all the options in the checkbox set.
padding: floatGets the padding between options.
- 
__init__(labels, padding=1, font_size=18, font_family='Arial', position=(0, 0))[source]¶ Parameters: - labels : list(string)
 List of labels of each option.
- padding : float
 The distance between two adjacent options
- font_size : int
 Size of the text font.
- font_family : str
 Currently only supports Arial.
- position : (float, float)
 Absolute coordinates (x, y) of the lower-left corner of the button of the first option.
- 
font_size¶ Gets the font size of text.
- 
padding¶ Gets the padding between options.
CustomInteractorStyle¶
- 
class 
fury.ui.CustomInteractorStyle[source]¶ Bases:
vtkInteractionStylePython.vtkInteractorStyleUserManipulate the camera and interact with objects in the scene.
This interactor style allows the user to interactively manipulate (pan, rotate and zoom) the camera. It also allows the user to interact (click, scroll, etc.) with objects in the scene.
Several events handling methods from
vtkInteractorStyleUserhave been overloaded to allow the propagation of the events to the objects the user is interacting with.In summary, while interacting with the scene, the mouse events are as follows:
- Left mouse button: rotates the camera - Right mouse button: dollys the camera - Mouse wheel: dollys the camera - Middle mouse button: pans the camera
- 
add_callback(prop, event_type, callback, priority=0, args=[])[source]¶ Add a callback associated to a specific event for a VTK prop.
Parameters: - prop : vtkProp
 - event_type : event code
 - callback : function
 - priority : int
 
- 
 
Disk2D¶
- 
class 
fury.ui.Disk2D(outer_radius, inner_radius=0, center=(0, 0), color=(1, 1, 1), opacity=1.0)[source]¶ Bases:
fury.ui.UIA 2D disk UI component.
- 
__init__(outer_radius, inner_radius=0, center=(0, 0), color=(1, 1, 1), opacity=1.0)[source]¶ Initializes a rectangle.
Parameters: - outer_radius : int
 Outer radius of the disk.
- inner_radius : int, optional
 Inner radius of the disk. A value > 0, makes a ring.
- center : (float, float), optional
 Coordinates (x, y) of the center of the disk.
- color : (float, float, float), optional
 Must take values in [0, 1].
- opacity : float, optional
 Must take values in [0, 1].
- 
color¶ Gets the rectangle’s color.
- 
inner_radius¶ 
- 
opacity¶ Gets the rectangle’s opacity.
- 
outer_radius¶ 
- 
 
ImageContainer2D¶
- 
class 
fury.ui.ImageContainer2D(img_path, position=(0, 0), size=(100, 100))[source]¶ Bases:
fury.ui.UIA 2D container to hold an image. Currently Supports: - png and jpg/jpeg images
Attributes: - size: (float, float)
 Image size (width, height) in pixels.
- img : vtkImageDataGeometryFilters
 The image loaded from the specified path.
- 
__init__(img_path, position=(0, 0), size=(100, 100))[source]¶ Parameters: - img_path : string
 Path of the image
- position : (float, float), optional
 Absolute coordinates (x, y) of the lower-left corner of the image.
- size : (int, int), optional
 Width and height in pixels of the image.
- 
resize(size)[source]¶ Resize the image.
Parameters: - size : (float, float)
 image size (width, height) in pixels.
LineDoubleSlider2D¶
- 
class 
fury.ui.LineDoubleSlider2D(line_width=5, inner_radius=0, outer_radius=10, handle_side=20, center=(450, 300), length=200, initial_values=(0, 100), min_value=0, max_value=100, font_size=16, text_template='{value:.1f}', shape='disk')[source]¶ Bases:
fury.ui.UIA 2D Line Slider with two sliding rings. Useful for setting min and max values for something.
Currently supports: - Setting positions of both disks.
Attributes: - line_width : int
 Width of the line on which the disk will slide.
- length : int
 Length of the slider.
- track : 
vtkActor The line on which the handles move.
- handles : [
vtkActor,vtkActor] The moving slider disks.
- text : [
TextBlock2D,TextBlock2D] The texts that show the values of the disks.
- shape : string
 Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
- default_color : (float, float, float)
 Color of the handles when in unpressed state.
- active_color : (float, float, float)
 Color of the handles when they are pressed.
- 
__init__(line_width=5, inner_radius=0, outer_radius=10, handle_side=20, center=(450, 300), length=200, initial_values=(0, 100), min_value=0, max_value=100, font_size=16, text_template='{value:.1f}', shape='disk')[source]¶ Parameters: - line_width : int
 Width of the line on which the disk will slide.
- inner_radius : int
 Inner radius of the handles (if disk).
- outer_radius : int
 Outer radius of the handles (if disk).
- handle_side : int
 Side length of the handles (if sqaure).
- center : (float, float)
 Center of the slider.
- length : int
 Length of the slider.
- initial_values : (float, float)
 Initial values of the two handles.
- min_value : float
 Minimum value of the slider.
- max_value : float
 Maximum value of the slider.
- font_size : int
 Size of the text to display alongside the slider (pt).
- text_template : str, callable
 If str, text template can contain one or multiple of the replacement fields: {value:}, {ratio:}. If callable, this instance of :class:LineDoubleSlider2D will be passed as argument to the text template function.
- shape : string
 Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
- 
coord_to_ratio(coord)[source]¶ Converts the x coordinate of a disk to the ratio
Parameters: - coord : float
 
- 
format_text(disk_number)[source]¶ Returns formatted text to display along the slider.
Parameters: - disk_number : Index of the disk.
 
- 
handle_move_callback(i_ren, vtkactor, slider)[source]¶ Actual handle movement.
Parameters: - i_ren : 
CustomInteractorStyle - vtkactor : 
vtkActor The picked actor
- slider : 
LineDoubleSlider2D 
- i_ren : 
 
- 
handle_release_callback(i_ren, vtkactor, slider)[source]¶ Change color when handle is released.
Parameters: - i_ren : 
CustomInteractorStyle - vtkactor : 
vtkActor The picked actor
- slider : 
LineDoubleSlider2D 
- i_ren : 
 
- 
left_disk_ratio¶ Returns the ratio of the left disk.
- 
left_disk_value¶ Returns the value of the left disk.
- 
left_x_position¶ 
- 
ratio_to_coord(ratio)[source]¶ Converts the ratio to the absolute coordinate.
Parameters: - ratio : float
 
- 
ratio_to_value(ratio)[source]¶ Converts the ratio to the value of the disk.
Parameters: - ratio : float
 
- 
right_disk_ratio¶ Returns the ratio of the right disk.
- 
right_disk_value¶ Returns the value of the right disk.
- 
right_x_position¶ 
- 
set_position(position, disk_number)[source]¶ Sets the disk’s position.
Parameters: - position : (float, float)
 The absolute position of the disk (x, y).
- disk_number : int
 The index of disk being moved.
LineSlider2D¶
- 
class 
fury.ui.LineSlider2D(center=(0, 0), initial_value=50, min_value=0, max_value=100, length=200, line_width=5, inner_radius=0, outer_radius=10, handle_side=20, font_size=16, text_template='{value:.1f} ({ratio:.0%})', shape='disk')[source]¶ Bases:
fury.ui.UIA 2D Line Slider.
A sliding handle on a line with a percentage indicator.
Attributes: - line_width : int
 Width of the line on which the disk will slide.
- length : int
 Length of the slider.
- track : 
Rectangle2D The line on which the slider’s handle moves.
- handle : 
Disk2D The moving part of the slider.
- text : 
TextBlock2D The text that shows percentage.
- shape : string
 Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
- default_color : (float, float, float)
 Color of the handle when in unpressed state.
- active_color : (float, float, float)
 Color of the handle when it is pressed.
- 
__init__(center=(0, 0), initial_value=50, min_value=0, max_value=100, length=200, line_width=5, inner_radius=0, outer_radius=10, handle_side=20, font_size=16, text_template='{value:.1f} ({ratio:.0%})', shape='disk')[source]¶ Parameters: - center : (float, float)
 Center of the slider’s center.
- initial_value : float
 Initial value of the slider.
- min_value : float
 Minimum value of the slider.
- max_value : float
 Maximum value of the slider.
- length : int
 Length of the slider.
- line_width : int
 Width of the line on which the disk will slide.
- inner_radius : int
 Inner radius of the handles (if disk).
- outer_radius : int
 Outer radius of the handles (if disk).
- handle_side : int
 Side length of the handles (if sqaure).
- font_size : int
 Size of the text to display alongside the slider (pt).
- text_template : str, callable
 If str, text template can contain one or multiple of the replacement fields: {value:}, {ratio:}. If callable, this instance of :class:LineSlider2D will be passed as argument to the text template function.
- shape : string
 Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
- 
handle_move_callback(i_ren, vtkactor, slider)[source]¶ Actual handle movement.
Parameters: - i_ren : 
CustomInteractorStyle - vtkactor : 
vtkActor The picked actor
- slider : 
LineSlider2D 
- i_ren : 
 
- 
handle_release_callback(i_ren, vtkactor, slider)[source]¶ Change color when handle is released.
Parameters: - i_ren : 
CustomInteractorStyle - vtkactor : 
vtkActor The picked actor
- slider : 
LineSlider2D 
- i_ren : 
 
- 
left_x_position¶ 
- 
ratio¶ 
- 
right_x_position¶ 
- 
set_position(position)[source]¶ Sets the disk’s position.
Parameters: - position : (float, float)
 The absolute position of the disk (x, y).
- 
track_click_callback(i_ren, vtkactor, slider)[source]¶ Update disk position and grab the focus.
Parameters: - i_ren : 
CustomInteractorStyle - vtkactor : 
vtkActor The picked actor
- slider : 
LineSlider2D 
- i_ren : 
 
- 
value¶ 
ListBox2D¶
- 
class 
fury.ui.ListBox2D(values, position=(0, 0), size=(100, 300), multiselection=True, reverse_scrolling=False, font_size=20, line_spacing=1.4)[source]¶ Bases:
fury.ui.UIUI component that allows the user to select items from a list.
Attributes: - on_change: function
 Callback function for when the selected items have changed.
- 
__init__(values, position=(0, 0), size=(100, 300), multiselection=True, reverse_scrolling=False, font_size=20, line_spacing=1.4)[source]¶ Parameters: - values: list of objects
 Values used to populate this listbox. Objects must be castable to string.
- position : (float, float)
 Absolute coordinates (x, y) of the lower-left corner of this UI component.
- size : (int, int)
 Width and height in pixels of this UI component.
- multiselection: {True, False}
 Whether multiple values can be selected at once.
- reverse_scrolling: {True, False}
 If True, scrolling up will move the list of files down.
- font_size: int
 The font size in pixels.
- line_spacing: float
 Distance between listbox’s items in pixels.
Pressing down button scrolls down in the combo box.
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- list_box: :class:`ListBox2D`
 
- 
scroll_click_callback(i_ren, obj, rect_obj)[source]¶ Callback to change the color of the bar when it is clicked.
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- rect_obj: :class:`Rectangle2D`
 
- 
scroll_drag_callback(i_ren, obj, rect_obj)[source]¶ Dragging scroll bar in the combo box.
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- rect_obj: :class:`Rectangle2D`
 
- 
scroll_release_callback(i_ren, obj, rect_obj)[source]¶ Callback to change the color of the bar when it is released.
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- rect_obj: :class:`Rectangle2D`
 
- 
select(item, multiselect=False, range_select=False)[source]¶ Select the item.
Parameters: - item: ListBoxItem2D’s object
 Item to select.
- multiselect: {True, False}
 If True and multiselection is allowed, the item is added to the selection. Otherwise, the selection will only contain the provided item unless range_select is True.
- range_select: {True, False}
 If True and multiselection is allowed, all items between the last selected item and the current one will be added to the selection. Otherwise, the selection will only contain the provided item unless multi_select is True.
Pressing up button scrolls up in the combo box.
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- list_box: :class:`ListBox2D`
 
ListBoxItem2D¶
- 
class 
fury.ui.ListBoxItem2D(list_box, size)[source]¶ Bases:
fury.ui.UIThe text displayed in a listbox.
- 
__init__(list_box, size)[source]¶ Parameters: - list_box: :class:`ListBox`
 The ListBox reference this text belongs to.
- size: int
 The size of the listbox item.
- 
element¶ 
A callback to handle left click for this UI element.
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- list_box_item: :class:`ListBoxItem2D`
 
- 
 
Option¶
- 
class 
fury.ui.Option(label, position=(0, 0), font_size=18)[source]¶ Bases:
fury.ui.UIA set of a Button2D and a TextBlock2D to act as a single option for checkboxes and radio buttons. Clicking the button toggles its checked/unchecked status.
Attributes: - label : str
 The label for the option.
- font_size : int
 Font Size of the label.
Panel2D¶
- 
class 
fury.ui.Panel2D(size, position=(0, 0), color=(0.1, 0.1, 0.1), opacity=0.7, align='left')[source]¶ Bases:
fury.ui.UIA 2D UI Panel.
Can contain one or more UI elements.
Attributes: - alignment : [left, right]
 Alignment of the panel with respect to the overall screen.
- 
__init__(size, position=(0, 0), color=(0.1, 0.1, 0.1), opacity=0.7, align='left')[source]¶ Parameters: - size : (int, int)
 Size (width, height) in pixels of the panel.
- position : (float, float)
 Absolute coordinates (x, y) of the lower-left corner of the panel.
- color : (float, float, float)
 Must take values in [0, 1].
- opacity : float
 Must take values in [0, 1].
- align : [left, right]
 Alignment of the panel with respect to the overall screen.
- 
add_element(element, coords, anchor='position')[source]¶ Adds a UI component to the panel.
The coordinates represent an offset from the lower left corner of the panel.
Parameters: - element : UI
 The UI item to be added.
- coords : (float, float) or (int, int)
 If float, normalized coordinates are assumed and they must be between [0,1]. If int, pixels coordinates are assumed and it must fit within the panel’s size.
- 
color¶ 
- 
opacity¶ 
- 
re_align(window_size_change)[source]¶ Re-organises the elements in case the window size is changed.
Parameters: - window_size_change : (int, int)
 New window size (width, height) in pixels.
- 
remove_element(element)[source]¶ Removes a UI component from the panel.
Parameters: - element : UI
 The UI item to be removed.
- 
resize(size)[source]¶ Sets the panel size.
Parameters: - size : (float, float)
 Panel size (width, height) in pixels.
- 
update_element(element, coords, anchor='position')[source]¶ Updates the position of a UI component in the panel.
Parameters: - element : UI
 The UI item to be updated.
- coords : (float, float) or (int, int)
 New coordinates. If float, normalized coordinates are assumed and they must be between [0,1]. If int, pixels coordinates are assumed and it must fit within the panel’s size.
RadioButton¶
- 
class 
fury.ui.RadioButton(labels, padding=1, font_size=18, font_family='Arial', position=(0, 0))[source]¶ Bases:
fury.ui.CheckboxA 2D set of :class:’Option’ objects. Only one option can be selected.
Attributes: - labels : list(string)
 List of labels of each option.
- options : list(Option)
 List of all the options in the checkbox set.
padding: floatGets the padding between options.
- 
__init__(labels, padding=1, font_size=18, font_family='Arial', position=(0, 0))[source]¶ Parameters: - labels : list(string)
 List of labels of each option.
- padding : float
 The distance between two adjacent options
- font_size : int
 Size of the text font.
- font_family : str
 Currently only supports Arial.
- position : (float, float)
 Absolute coordinates (x, y) of the lower-left corner of the button of the first option.
RangeSlider¶
- 
class 
fury.ui.RangeSlider(line_width=5, inner_radius=0, outer_radius=10, handle_side=20, range_slider_center=(450, 400), value_slider_center=(450, 300), length=200, min_value=0, max_value=100, font_size=16, range_precision=1, value_precision=2, shape='disk')[source]¶ Bases:
fury.ui.UIA set of a LineSlider2D and a LineDoubleSlider2D. The double slider is used to set the min and max value for the LineSlider2D
Attributes: - range_slider_center : (float, float)
 Center of the LineDoubleSlider2D object.
- value_slider_center : (float, float)
 Center of the LineSlider2D object.
- range_slider : 
LineDoubleSlider2D The line slider which sets the min and max values
- value_slider : 
LineSlider2D The line slider which sets the value
- 
__init__(line_width=5, inner_radius=0, outer_radius=10, handle_side=20, range_slider_center=(450, 400), value_slider_center=(450, 300), length=200, min_value=0, max_value=100, font_size=16, range_precision=1, value_precision=2, shape='disk')[source]¶ Parameters: - line_width : int
 Width of the slider tracks
- inner_radius : int
 Inner radius of the handles.
- outer_radius : int
 Outer radius of the handles.
- handle_side : int
 Side length of the handles (if sqaure).
- range_slider_center : (float, float)
 Center of the LineDoubleSlider2D object.
- value_slider_center : (float, float)
 Center of the LineSlider2D object.
- length : int
 Length of the sliders.
- min_value : float
 Minimum value of the double slider.
- max_value : float
 Maximum value of the double slider.
- font_size : int
 Size of the text to display alongside the sliders (pt).
- range_precision : int
 Number of decimal places to show the min and max values set.
- value_precision : int
 Number of decimal places to show the value set on slider.
- shape : string
 Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
- 
range_slider_handle_move_callback(i_ren, obj, slider)[source]¶ Actual movement of range_slider’s handles.
Parameters: - i_ren : 
CustomInteractorStyle - obj : 
vtkActor The picked actor
- slider : 
RangeSlider 
- i_ren : 
 
Rectangle2D¶
- 
class 
fury.ui.Rectangle2D(size=(0, 0), position=(0, 0), color=(1, 1, 1), opacity=1.0)[source]¶ Bases:
fury.ui.UIA 2D rectangle sub-classed from UI.
- 
__init__(size=(0, 0), position=(0, 0), color=(1, 1, 1), opacity=1.0)[source]¶ Initializes a rectangle.
Parameters: - size : (int, int)
 The size of the rectangle (width, height) in pixels.
- position : (float, float)
 Coordinates (x, y) of the lower-left corner of the rectangle.
- color : (float, float, float)
 Must take values in [0, 1].
- opacity : float
 Must take values in [0, 1].
- 
color¶ Gets the rectangle’s color.
- 
height¶ 
- 
opacity¶ Gets the rectangle’s opacity.
- 
resize(size)[source]¶ Sets the button size.
Parameters: - size : (float, float)
 Button size (width, height) in pixels.
- 
width¶ 
- 
 
RingSlider2D¶
- 
class 
fury.ui.RingSlider2D(center=(0, 0), initial_value=180, min_value=0, max_value=360, slider_inner_radius=40, slider_outer_radius=44, handle_inner_radius=0, handle_outer_radius=10, font_size=16, text_template='{ratio:.0%}')[source]¶ Bases:
fury.ui.UIA disk slider.
A disk moves along the boundary of a ring. Goes from 0-360 degrees.
Attributes: - mid_track_radius: float
 Distance from the center of the slider to the middle of the track.
- previous_value: float
 Value of Rotation of the actor before the current value.
- track : 
Disk2D The circle on which the slider’s handle moves.
- handle : 
Disk2D The moving part of the slider.
- text : 
TextBlock2D The text that shows percentage.
- default_color : (float, float, float)
 Color of the handle when in unpressed state.
- active_color : (float, float, float)
 Color of the handle when it is pressed.
- 
__init__(center=(0, 0), initial_value=180, min_value=0, max_value=360, slider_inner_radius=40, slider_outer_radius=44, handle_inner_radius=0, handle_outer_radius=10, font_size=16, text_template='{ratio:.0%}')[source]¶ Parameters: - center : (float, float)
 Position (x, y) of the slider’s center.
- initial_value : float
 Initial value of the slider.
- min_value : float
 Minimum value of the slider.
- max_value : float
 Maximum value of the slider.
- slider_inner_radius : int
 Inner radius of the base disk.
- slider_outer_radius : int
 Outer radius of the base disk.
- handle_outer_radius : int
 Outer radius of the slider’s handle.
- handle_inner_radius : int
 Inner radius of the slider’s handle.
- font_size : int
 Size of the text to display alongside the slider (pt).
- text_template : str, callable
 If str, text template can contain one or multiple of the replacement fields: {value:}, {ratio:}, {angle:}. If callable, this instance of :class:RingSlider2D will be passed as argument to the text template function.
- 
angle¶ Angle (in rad) the handle makes with x-axis
- 
handle_move_callback(i_ren, obj, slider)[source]¶ Move the slider’s handle.
Parameters: - i_ren : 
CustomInteractorStyle - obj : 
vtkActor The picked actor
- slider : 
RingSlider2D 
- i_ren : 
 
- 
handle_release_callback(i_ren, obj, slider)[source]¶ Change color when handle is released.
Parameters: - i_ren : 
CustomInteractorStyle - vtkactor : 
vtkActor The picked actor
- slider : 
RingSlider2D 
- i_ren : 
 
- 
mid_track_radius¶ 
- 
move_handle(click_position)[source]¶ Moves the slider’s handle.
Parameters: - click_position: (float, float)
 Position of the mouse click.
- 
previous_value¶ 
- 
ratio¶ 
- 
track_click_callback(i_ren, obj, slider)[source]¶ Update disk position and grab the focus.
Parameters: - i_ren : 
CustomInteractorStyle - obj : 
vtkActor The picked actor
- slider : 
RingSlider2D 
- i_ren : 
 
- 
value¶ 
TextBlock2D¶
- 
class 
fury.ui.TextBlock2D(text='Text Block', font_size=18, font_family='Arial', justification='left', vertical_justification='bottom', bold=False, italic=False, shadow=False, color=(1, 1, 1), bg_color=None, position=(0, 0))[source]¶ Bases:
fury.ui.UIWraps over the default vtkTextActor and helps setting the text.
Contains member functions for text formatting.
Attributes: - actor : 
vtkTextActor The text actor.
message: strGets message from the text.
position: (float, float)Gets text actor position.
color: (float, float, float)Gets text color.
- bg_color : (float, float, float)
 RGB: Values must be between 0-1.
font_size: intGets text font size.
font_family: strGets font family.
justification: strGets text justification.
vertical_justification: strGets text vertical justification.
bold: boolReturns whether the text is bold.
italic: boolReturns whether the text is italicised.
shadow: boolReturns whether the text has shadow.
- 
__init__(text='Text Block', font_size=18, font_family='Arial', justification='left', vertical_justification='bottom', bold=False, italic=False, shadow=False, color=(1, 1, 1), bg_color=None, position=(0, 0))[source]¶ Parameters: - text : str
 The initial text while building the actor.
- position : (float, float)
 (x, y) in pixels.
- color : (float, float, float)
 RGB: Values must be between 0-1.
- bg_color : (float, float, float)
 RGB: Values must be between 0-1.
- font_size : int
 Size of the text font.
- font_family : str
 Currently only supports Arial.
- justification : str
 left, right or center.
- vertical_justification : str
 bottom, middle or top.
- bold : bool
 Makes text bold.
- italic : bool
 Makes text italicised.
- shadow : bool
 Adds text shadow.
- 
background_color¶ Gets background color.
Returns: - (float, float, float) or None
 If None, there no background color. Otherwise, background color in RGB.
- 
bold¶ Returns whether the text is bold.
Returns: - bool
 Text is bold if True.
- 
color¶ Gets text color.
Returns: - (float, float, float)
 Returns text color in RGB.
- 
font_family¶ Gets font family.
Returns: - str
 Text font family.
- 
font_size¶ Gets text font size.
Returns: - int
 Text font size.
- 
italic¶ Returns whether the text is italicised.
Returns: - bool
 Text is italicised if True.
- 
justification¶ Gets text justification.
Returns: - str
 Text justification.
- 
message¶ Gets message from the text.
Returns: - str
 The current text message.
- 
position¶ Gets text actor position.
Returns: - (float, float)
 The current actor position. (x, y) in pixels.
- 
shadow¶ Returns whether the text has shadow.
Returns: - bool
 Text is shadowed if True.
- 
vertical_justification¶ Gets text vertical justification.
Returns: - str
 Text vertical justification.
- actor : 
 
TextBox2D¶
- 
class 
fury.ui.TextBox2D(width, height, text='Enter Text', position=(100, 10), color=(0, 0, 0), font_size=18, font_family='Arial', justification='left', bold=False, italic=False, shadow=False)[source]¶ Bases:
fury.ui.UIAn editable 2D text box that behaves as a UI component.
Currently supports: - Basic text editing. - Cursor movements. - Single and multi-line text boxes. - Pre text formatting (text needs to be formatted beforehand).
Attributes: - text : str
 The current text state.
- actor : 
vtkActor2d The text actor.
- width : int
 The number of characters in a single line of text.
- height : int
 The number of lines in the textbox.
- window_left : int
 Left limit of visible text in the textbox.
- window_right : int
 Right limit of visible text in the textbox.
- caret_pos : int
 Position of the caret in the text.
- init : bool
 Flag which says whether the textbox has just been initialized.
- 
__init__(width, height, text='Enter Text', position=(100, 10), color=(0, 0, 0), font_size=18, font_family='Arial', justification='left', bold=False, italic=False, shadow=False)[source]¶ Parameters: - width : int
 The number of characters in a single line of text.
- height : int
 The number of lines in the textbox.
- text : str
 The initial text while building the actor.
- position : (float, float)
 (x, y) in pixels.
- color : (float, float, float)
 RGB: Values must be between 0-1.
- font_size : int
 Size of the text font.
- font_family : str
 Currently only supports Arial.
- justification : str
 left, right or center.
- bold : bool
 Makes text bold.
- italic : bool
 Makes text italicised.
- shadow : bool
 Adds text shadow.
- 
add_character(character)[source]¶ Inserts a character into the text and moves window and caret.
Parameters: - character : str
 
- 
handle_character(character)[source]¶ Main driving function that handles button events.
# TODO: Need to handle all kinds of characters like !, +, etc.
Parameters: - character : str
 
- 
key_press(i_ren, obj, textbox_object)[source]¶ Key press handler for textbox
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- textbox_object: :class:`TextBox2D`
 
Left button press handler for textbox
Parameters: - i_ren: :class:`CustomInteractorStyle`
 - obj: :class:`vtkActor`
 The picked actor
- textbox_object: :class:`TextBox2D`
 
- 
render_text(show_caret=True)[source]¶ Renders text after processing.
Parameters: - show_caret : bool
 Whether or not to show the caret.
- 
set_message(message)[source]¶ Set custom text to textbox.
Parameters: - message: str
 The custom message to be set.
UI¶
- 
class 
fury.ui.UI(position=(0, 0))[source]¶ Bases:
objectAn umbrella class for all UI elements.
While adding UI elements to the renderer, we go over all the sub-elements that come with it and add those to the renderer automatically.
Attributes: - position : (float, float)
 Absolute coordinates (x, y) of the lower-left corner of this UI component.
- center : (float, float)
 Absolute coordinates (x, y) of the center of this UI component.
- size : (int, int)
 Width and height in pixels of this UI component.
- on_left_mouse_button_pressed: function
 Callback function for when the left mouse button is pressed.
- on_left_mouse_button_released: function
 Callback function for when the left mouse button is released.
- on_left_mouse_button_clicked: function
 Callback function for when clicked using the left mouse button (i.e. pressed -> released).
- on_left_mouse_button_dragged: function
 Callback function for when dragging using the left mouse button.
- on_right_mouse_button_pressed: function
 Callback function for when the right mouse button is pressed.
- on_right_mouse_button_released: function
 Callback function for when the right mouse button is released.
- on_right_mouse_button_clicked: function
 Callback function for when clicking using the right mouse button (i.e. pressed -> released).
- on_right_mouse_button_dragged: function
 Callback function for when dragging using the right mouse button.
- on_key_press: function
 Callback function for when a keyboard key is pressed.
- 
__init__(position=(0, 0))[source]¶ Parameters: - position : (float, float)
 Absolute coordinates (x, y) of the lower-left corner of this UI component.
- 
actors¶ Actors composing this UI component.
- 
add_callback(prop, event_type, callback, priority=0)[source]¶ Adds a callback to a specific event for this UI component.
Parameters: - prop : vtkProp
 The prop on which is callback is to be added.
- event_type : string
 The event code.
- callback : function
 The callback function.
- priority : int
 Higher number is higher priority.
- 
add_to_renderer(ren)[source]¶ Allows UI objects to add their own props to the renderer.
Parameters: - ren : renderer
 
- 
center¶ 
- 
position¶ 
- 
size¶ 
read_viz_icons¶
- 
fury.ui.read_viz_icons(style='icomoon', fname='infinity.png')[source]¶ Read specific icon from specific style.
Parameters: - style : str
 Current icon style. Default is icomoon.
- fname : str
 Filename of icon. This should be found in folder HOME/.fury/style/. Default is infinity.png.
Returns: - path : str
 Complete path of icon.
set_input¶
- 
fury.ui.set_input(vtk_object, inp)[source]¶ Generic input function which takes into account VTK 5 or 6
Parameters: - vtk_object: vtk object
 - inp: vtkPolyData or vtkImageData or vtkAlgorithmOutput
 
Returns: - vtk_object
 
Notes
- This can be used in the following way::
 - from fury.utils import set_input poly_mapper = set_input(vtk.vtkPolyDataMapper(), poly_data)