ui
¶
|
A 2D overlay button and is of type vtkTexturedActor2D. |
|
A 2D set of :class:’Option’ objects. |
Manipulate the camera and interact with objects in the scene. |
|
|
A 2D disk UI component. |
|
A menu to select files in the current folder. |
|
Add actors in a grid and interact with them individually. |
|
A 2D container to hold an image. |
|
A 2D Line Slider with two sliding rings. |
|
A 2D Line Slider. |
|
UI component that allows the user to select items from a list. |
|
The text displayed in a listbox. |
|
A set of a Button2D and a TextBlock2D to act as a single option for checkboxes and radio buttons. |
|
A 2D UI Panel. |
|
A 2D set of :class:’Option’ objects. |
|
A set of a LineSlider2D and a LineDoubleSlider2D. |
|
A 2D rectangle sub-classed from UI. |
|
A disk slider. |
|
Wraps over the default vtkTextActor and helps setting the text. |
|
An editable 2D text box that behaves as a UI component. |
|
An umbrella class for all UI elements. |
|
Creates a grid of actors that lies in the xy-plane. |
|
Read specific icon from specific style. |
|
Rotate actor around axis by angle. |
|
Set Generic input function which takes into account VTK 5 or 6. |
|
Issue a warning, or maybe ignore it or raise an exception. |
|
Create a base class with a metaclass. |
Button2D
¶
-
class
fury.ui.
Button2D
(icon_fnames, position=(0, 0), size=(30, 30))[source]¶ Bases:
fury.ui.UI
A 2D overlay button and is of type vtkTexturedActor2D.
Currently supports:
- Multiple icons. - Switching between icons.
-
__init__
(self, icon_fnames, position=(0, 0), size=(30, 30))[source]¶ Init class instance.
- Parameters
- icon_fnamesList(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.
-
property
color
¶ Gets the button’s color.
-
resize
(self, size)[source]¶ Resize the button.
- Parameters
- size(float, float)
Button size (width, height) in pixels.
-
scale
(self, 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.UI
A 2D set of :class:’Option’ objects. Multiple options can be selected.
- Attributes
- labelslist(string)
List of labels of each option.
- optionslist(Option)
List of all the options in the checkbox set.
padding
floatGets the padding between options.
-
__init__
(self, labels, padding=1, font_size=18, font_family='Arial', position=(0, 0))[source]¶ - Parameters
- labelslist(string)
List of labels of each option.
- paddingfloat
The distance between two adjacent options
- font_sizeint
Size of the text font.
- font_familystr
Currently only supports Arial.
- position(float, float)
Absolute coordinates (x, y) of the lower-left corner of the button of the first option.
-
property
font_size
¶ Gets the font size of text.
-
property
padding
¶ Gets the padding between options.
CustomInteractorStyle
¶
-
class
fury.ui.
CustomInteractorStyle
[source]¶ Bases:
vtkInteractionStylePython.vtkInteractorStyleUser
Manipulate 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
vtkInteractorStyleUser
have 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
(self, prop, event_type, callback, priority=0, args=[])[source]¶ Add a callback associated to a specific event for a VTK prop.
- Parameters
- propvtkProp
- event_typeevent code
- callbackfunction
- priorityint
-
Disk2D
¶
-
class
fury.ui.
Disk2D
(outer_radius, inner_radius=0, center=(0, 0), color=(1, 1, 1), opacity=1.0)[source]¶ Bases:
fury.ui.UI
A 2D disk UI component.
-
__init__
(self, outer_radius, inner_radius=0, center=(0, 0), color=(1, 1, 1), opacity=1.0)[source]¶ Initializes a rectangle.
- Parameters
- outer_radiusint
Outer radius of the disk.
- inner_radiusint, 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].
- opacityfloat, optional
Must take values in [0, 1].
-
property
color
¶ Gets the rectangle’s color.
-
property
inner_radius
¶
-
property
opacity
¶ Gets the rectangle’s opacity.
-
property
outer_radius
¶
-
GridUI
¶
-
class
fury.ui.
GridUI
(actors, captions=None, caption_offset=(0, -100, 0), cell_padding=0, cell_shape='rect', aspect_ratio=1.7777777777777777, dim=None, rotation_speed=1, rotation_axis=(0, 1, 0))[source]¶ Bases:
fury.ui.UI
Add actors in a grid and interact with them individually.
-
__init__
(self, actors, captions=None, caption_offset=(0, -100, 0), cell_padding=0, cell_shape='rect', aspect_ratio=1.7777777777777777, dim=None, rotation_speed=1, rotation_axis=(0, 1, 0))[source]¶ Init scene.
- Parameters
- position(float, float)
Absolute coordinates (x, y) of the lower-left corner of this UI component.
-
ANTICLOCKWISE_ROTATION_X
= array([-10, 1, 0, 0])¶
-
ANTICLOCKWISE_ROTATION_Y
= array([-10, 0, 1, 0])¶
-
CLOCKWISE_ROTATION_X
= array([10, 1, 0, 0])¶
-
CLOCKWISE_ROTATION_Y
= array([10, 0, 1, 0])¶
-
ImageContainer2D
¶
-
class
fury.ui.
ImageContainer2D
(img_path, position=(0, 0), size=(100, 100))[source]¶ Bases:
fury.ui.UI
A 2D container to hold an image. Currently Supports: - png and jpg/jpeg images
- Attributes
- size: (float, float)
Image size (width, height) in pixels.
- imgvtkImageDataGeometryFilters
The image loaded from the specified path.
-
__init__
(self, img_path, position=(0, 0), size=(100, 100))[source]¶ - Parameters
- img_pathstring
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
(self, 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.UI
A 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_widthint
Width of the line on which the disk will slide.
- lengthint
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.
- shapestring
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__
(self, 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_widthint
Width of the line on which the disk will slide.
- inner_radiusint
Inner radius of the handles (if disk).
- outer_radiusint
Outer radius of the handles (if disk).
- handle_sideint
Side length of the handles (if sqaure).
- center(float, float)
Center of the slider.
- lengthint
Length of the slider.
- initial_values(float, float)
Initial values of the two handles.
- min_valuefloat
Minimum value of the slider.
- max_valuefloat
Maximum value of the slider.
- font_sizeint
Size of the text to display alongside the slider (pt).
- text_templatestr, 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.
- shapestring
Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
-
coord_to_ratio
(self, coord)[source]¶ Converts the x coordinate of a disk to the ratio
- Parameters
- coordfloat
-
format_text
(self, disk_number)[source]¶ Returns formatted text to display along the slider.
- Parameters
- disk_numberIndex of the disk.
-
handle_move_callback
(self, i_ren, vtkactor, _slider)[source]¶ Actual handle movement.
- Parameters
- i_ren
CustomInteractorStyle
- vtkactor
vtkActor
The picked actor
- _slider
LineDoubleSlider2D
- i_ren
-
handle_release_callback
(self, i_ren, vtkactor, _slider)[source]¶ Change color when handle is released.
- Parameters
- i_ren
CustomInteractorStyle
- vtkactor
vtkActor
The picked actor
- _slider
LineDoubleSlider2D
- i_ren
-
property
left_disk_ratio
¶ Returns the ratio of the left disk.
-
property
left_disk_value
¶ Returns the value of the left disk.
-
property
left_x_position
¶
-
ratio_to_coord
(self, ratio)[source]¶ Converts the ratio to the absolute coordinate.
- Parameters
- ratiofloat
-
ratio_to_value
(self, ratio)[source]¶ Converts the ratio to the value of the disk.
- Parameters
- ratiofloat
-
property
right_disk_ratio
¶ Returns the ratio of the right disk.
-
property
right_disk_value
¶ Returns the value of the right disk.
-
property
right_x_position
¶
-
set_position
(self, position, disk_number)[source]¶ Sets the disk’s position.
- Parameters
- position(float, float)
The absolute position of the disk (x, y).
- disk_numberint
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.UI
A 2D Line Slider.
A sliding handle on a line with a percentage indicator.
- Attributes
- line_widthint
Width of the line on which the disk will slide.
- lengthint
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.
- shapestring
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__
(self, 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_valuefloat
Initial value of the slider.
- min_valuefloat
Minimum value of the slider.
- max_valuefloat
Maximum value of the slider.
- lengthint
Length of the slider.
- line_widthint
Width of the line on which the disk will slide.
- inner_radiusint
Inner radius of the handles (if disk).
- outer_radiusint
Outer radius of the handles (if disk).
- handle_sideint
Side length of the handles (if sqaure).
- font_sizeint
Size of the text to display alongside the slider (pt).
- text_templatestr, 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.
- shapestring
Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
-
handle_move_callback
(self, i_ren, _vtkactor, _slider)[source]¶ Actual handle movement.
- Parameters
- i_ren
CustomInteractorStyle
- vtkactor
vtkActor
The picked actor
- slider
LineSlider2D
- i_ren
-
handle_release_callback
(self, i_ren, _vtkactor, _slider)[source]¶ Change color when handle is released.
- Parameters
- i_ren
CustomInteractorStyle
- vtkactor
vtkActor
The picked actor
- slider
LineSlider2D
- i_ren
-
property
left_x_position
¶
-
property
ratio
¶
-
property
right_x_position
¶
-
set_position
(self, position)[source]¶ Sets the disk’s position.
- Parameters
- position(float, float)
The absolute position of the disk (x, y).
-
track_click_callback
(self, 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
-
property
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, text_color=(0.2, 0.2, 0.2), selected_color=(0.9, 0.6, 0.6), unselected_color=(0.6, 0.6, 0.6), scroll_bar_active_color=(0.6, 0.2, 0.2), scroll_bar_inactive_color=(0.9, 0.0, 0.0), background_opacity=1.0)[source]¶ Bases:
fury.ui.UI
UI 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__
(self, values, position=(0, 0), size=(100, 300), multiselection=True, reverse_scrolling=False, font_size=20, line_spacing=1.4, text_color=(0.2, 0.2, 0.2), selected_color=(0.9, 0.6, 0.6), unselected_color=(0.6, 0.6, 0.6), scroll_bar_active_color=(0.6, 0.2, 0.2), scroll_bar_inactive_color=(0.9, 0.0, 0.0), background_opacity=1.0)[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.
- text_colortuple of 3 floats
- selected_colortuple of 3 floats
- unselected_colortuple of 3 floats
- scroll_bar_active_colortuple of 3 floats
- scroll_bar_inactive_colortuple of 3 floats
- background_opacityfloat
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
(self, 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
(self, 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
(self, 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
(self, 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, text_color=(1.0, 0.0, 0.0), selected_color=(0.4, 0.4, 0.4), unselected_color=(0.9, 0.9, 0.9), background_opacity=1.0)[source]¶ Bases:
fury.ui.UI
The text displayed in a listbox.
-
__init__
(self, list_box, size, text_color=(1.0, 0.0, 0.0), selected_color=(0.4, 0.4, 0.4), unselected_color=(0.9, 0.9, 0.9), background_opacity=1.0)[source]¶ Single ListBox Item
- Parameters
- list_box
ListBox
The ListBox reference this text belongs to.
- sizetuple of 2 ints
The size of the listbox item.
- text_colortuple of 3 floats
- unselected_colortuple of 3 floats
- selected_colortuple of 3 floats
- background_opacityfloat
- list_box
-
property
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.UI
A 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
- labelstr
The label for the option.
- font_sizeint
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.UI
A 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__
(self, 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].
- opacityfloat
Must take values in [0, 1].
- align[left, right]
Alignment of the panel with respect to the overall screen.
-
add_element
(self, 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
- elementUI
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.
-
property
color
¶
-
property
opacity
¶
-
re_align
(self, 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
(self, element)[source]¶ Removes a UI component from the panel.
- Parameters
- elementUI
The UI item to be removed.
-
resize
(self, size)[source]¶ Sets the panel size.
- Parameters
- size(float, float)
Panel size (width, height) in pixels.
-
update_element
(self, element, coords, anchor='position')[source]¶ Updates the position of a UI component in the panel.
- Parameters
- elementUI
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.Checkbox
A 2D set of :class:’Option’ objects. Only one option can be selected.
- Attributes
- labelslist(string)
List of labels of each option.
- optionslist(Option)
List of all the options in the checkbox set.
padding
floatGets the padding between options.
-
__init__
(self, labels, padding=1, font_size=18, font_family='Arial', position=(0, 0))[source]¶ - Parameters
- labelslist(string)
List of labels of each option.
- paddingfloat
The distance between two adjacent options
- font_sizeint
Size of the text font.
- font_familystr
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.UI
A 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__
(self, 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_widthint
Width of the slider tracks
- inner_radiusint
Inner radius of the handles.
- outer_radiusint
Outer radius of the handles.
- handle_sideint
Side length of the handles (if square).
- range_slider_center(float, float)
Center of the LineDoubleSlider2D object.
- value_slider_center(float, float)
Center of the LineSlider2D object.
- lengthint
Length of the sliders.
- min_valuefloat
Minimum value of the double slider.
- max_valuefloat
Maximum value of the double slider.
- font_sizeint
Size of the text to display alongside the sliders (pt).
- range_precisionint
Number of decimal places to show the min and max values set.
- value_precisionint
Number of decimal places to show the value set on slider.
- shapestring
Describes the shape of the handle. Currently supports ‘disk’ and ‘square’.
-
range_slider_handle_move_callback
(self, 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.UI
A 2D rectangle sub-classed from UI.
-
__init__
(self, 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].
- opacityfloat
Must take values in [0, 1].
-
property
color
¶ Gets the rectangle’s color.
-
property
height
¶
-
property
opacity
¶ Gets the rectangle’s opacity.
-
resize
(self, size)[source]¶ Sets the button size.
- Parameters
- size(float, float)
Button size (width, height) in pixels.
-
property
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.UI
A 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__
(self, 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_valuefloat
Initial value of the slider.
- min_valuefloat
Minimum value of the slider.
- max_valuefloat
Maximum value of the slider.
- slider_inner_radiusint
Inner radius of the base disk.
- slider_outer_radiusint
Outer radius of the base disk.
- handle_outer_radiusint
Outer radius of the slider’s handle.
- handle_inner_radiusint
Inner radius of the slider’s handle.
- font_sizeint
Size of the text to display alongside the slider (pt).
- text_templatestr, 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.
-
property
angle
¶ Angle (in rad) the handle makes with x-axis
-
handle_move_callback
(self, 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
(self, i_ren, _obj, _slider)[source]¶ Change color when handle is released.
- Parameters
- i_ren
CustomInteractorStyle
- vtkactor
vtkActor
The picked actor
- _slider
RingSlider2D
- i_ren
-
property
mid_track_radius
¶
-
move_handle
(self, click_position)[source]¶ Moves the slider’s handle.
- Parameters
- click_position: (float, float)
Position of the mouse click.
-
property
previous_value
¶
-
property
ratio
¶
-
track_click_callback
(self, 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
-
property
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.UI
Wraps 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)
(x, y) in pixels.
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.
- actor
-
__init__
(self, 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
- textstr
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_sizeint
Size of the text font.
- font_familystr
Currently only supports Arial.
- justificationstr
left, right or center.
- vertical_justificationstr
bottom, middle or top.
- boldbool
Makes text bold.
- italicbool
Makes text italicised.
- shadowbool
Adds text shadow.
-
property
background_color
¶ Gets background color.
- Returns
- (float, float, float) or None
If None, there no background color. Otherwise, background color in RGB.
-
property
bold
¶ Returns whether the text is bold.
- Returns
- bool
Text is bold if True.
-
property
color
¶ Gets text color.
- Returns
- (float, float, float)
Returns text color in RGB.
-
property
font_family
¶ Gets font family.
- Returns
- str
Text font family.
-
property
font_size
¶ Gets text font size.
- Returns
- int
Text font size.
-
property
italic
¶ Returns whether the text is italicised.
- Returns
- bool
Text is italicised if True.
-
property
justification
¶ Gets text justification.
- Returns
- str
Text justification.
-
property
message
¶ Gets message from the text.
- Returns
- str
The current text message.
-
property
shadow
¶ Returns whether the text has shadow.
- Returns
- bool
Text is shadowed if True.
-
property
vertical_justification
¶ Gets text vertical justification.
- Returns
- str
Text vertical justification.
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.UI
An 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
- textstr
The current text state.
- actor
vtkActor2d
The text actor.
- widthint
The number of characters in a single line of text.
- heightint
The number of lines in the textbox.
- window_leftint
Left limit of visible text in the textbox.
- window_rightint
Right limit of visible text in the textbox.
- caret_posint
Position of the caret in the text.
- initbool
Flag which says whether the textbox has just been initialized.
-
__init__
(self, 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
- widthint
The number of characters in a single line of text.
- heightint
The number of lines in the textbox.
- textstr
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_sizeint
Size of the text font.
- font_familystr
Currently only supports Arial.
- justificationstr
left, right or center.
- boldbool
Makes text bold.
- italicbool
Makes text italicised.
- shadowbool
Adds text shadow.
-
add_character
(self, character)[source]¶ Inserts a character into the text and moves window and caret.
- Parameters
- characterstr
-
handle_character
(self, character)[source]¶ Main driving function that handles button events.
# TODO: Need to handle all kinds of characters like !, +, etc.
- Parameters
- characterstr
-
key_press
(self, 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
(self, show_caret=True)[source]¶ Renders text after processing.
- Parameters
- show_caretbool
Whether or not to show the caret.
-
set_message
(self, 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:
object
An umbrella class for all UI elements.
While adding UI elements to the scene, we go over all the sub-elements that come with it and add those to the scene 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_middle_mouse_button_pressed: function
Callback function for when the middle mouse button is pressed.
- on_middle_mouse_button_released: function
Callback function for when the middle mouse button is released.
- on_middle_mouse_button_clicked: function
Callback function for when clicking using the middle mouse button (i.e. pressed -> released).
- on_middle_mouse_button_dragged: function
Callback function for when dragging using the middle mouse button.
- on_key_press: function
Callback function for when a keyboard key is pressed.
-
__init__
(self, position=(0, 0))[source]¶ Init scene.
- Parameters
- position(float, float)
Absolute coordinates (x, y) of the lower-left corner of this UI component.
-
property
actors
¶ Actors composing this UI component.
-
add_callback
(self, prop, event_type, callback, priority=0)[source]¶ Add a callback to a specific event for this UI component.
- Parameters
- propvtkProp
The prop on which is callback is to be added.
- event_typestring
The event code.
- callbackfunction
The callback function.
- priorityint
Higher number is higher priority.
-
add_to_scene
(self, scene)[source]¶ Allow UI objects to add their own props to the scene.
- Parameters
- scenescene
-
property
center
¶
-
property
position
¶
-
property
size
¶
grid¶
-
fury.ui.
grid
(actors, captions=None, caption_offset=(0, -100, 0), cell_padding=0, cell_shape='rect', aspect_ratio=1.7777777777777777, dim=None)[source]¶ Creates a grid of actors that lies in the xy-plane.
- Parameters
- actorslist of vtkProp3D objects
Actors to be layout in a grid manner.
- captionslist of vtkProp3D objects or list of str
Objects serving as captions (can be any vtkProp3D object, not necessarily text). There should be one caption per actor. By default, there are no captions.
- caption_offsettuple of float (optional)
Tells where to position the caption w.r.t. the center of its associated actor. Default: (0, -100, 0).
- cell_paddingtuple of 2 floats or float
Each grid cell will be padded according to (pad_x, pad_y) i.e. horizontally and vertically. Padding is evenly distributed on each side of the cell. If a single float is provided then both pad_x and pad_y will have the same value.
- cell_shapestr
Specifies the desired shape of every grid cell. ‘rect’ ensures the cells are the tightest. ‘square’ ensures the cells are as wide as high. ‘diagonal’ ensures the content of the cells can be rotated without colliding with content of the neighboring cells.
- aspect_ratiofloat
Aspect ratio of the grid (width/height). Default: 16:9.
- dimtuple of int
Dimension (nb_rows, nb_cols) of the grid. If provided, aspect_ratio will be ignored.
- Returns
fury.actor.Container
objectObject that represents the grid containing all the actors and captions, if any.
read_viz_icons¶
-
fury.ui.
read_viz_icons
(style='icomoon', fname='infinity.png')[source]¶ Read specific icon from specific style.
- Parameters
- stylestr
Current icon style. Default is icomoon.
- fnamestr
Filename of icon. This should be found in folder HOME/.fury/style/. Default is infinity.png.
- Returns
- pathstr
Complete path of icon.
rotate¶
set_input¶
-
fury.ui.
set_input
(vtk_object, inp)[source]¶ Set 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)