plotter¶
Defines main class Plotter
to manage actors and 3D rendering.
Plotter¶
-
class
vedo.plotter.
Plotter
(shape=1, 1, N=None, pos=0, 0, size='auto', screensize='auto', title='', bg='white', bg2=None, axes=None, sharecam=True, resetcam=True, interactive=None, offscreen=False, qtWidget=None)[source]¶ Bases:
object
Main class to manage actors.
- Parameters
shape (list) – shape of the grid of renderers in format (rows, columns). Ignored if N is specified.
N (int) – number of desired renderers arranged in a grid automatically.
pos (list) – (x,y) position in pixels of top-left corner of the rendering window on the screen
size – size of the rendering window. If ‘auto’, guess it based on screensize.
screensize – physical size of the monitor screen
bg – background color or specify jpg image file name with path
bg2 – background color of a gradient towards the top
axes (int) –
0, no axes
1, draw three gray grid walls
2, show cartesian axes from (0,0,0)
3, show positive range of cartesian axes from (0,0,0)
4, show a triad at bottom left
5, show a cube at bottom left
6, mark the corners of the bounding box
7, draw a 3D ruler at each side of the cartesian axes
8, show the VTK
CubeAxesActor
object9, show the bounding box outLine,
10, show three circles representing the maximum bounding box,
11, show a large grid on the x-y plane (use with zoom=8)
12, show polar axes.
13, draw a simple ruler at the bottom of the window
Axis type-1 can be fully customized by passing a dictionary
axes=dict()
. CheckAxes()
for the available options.- Parameters
sharecam (bool) – if False each renderer will have an independent vtkCamera
interactive (bool) – if True will stop after show() to allow interaction w/ window
offscreen (bool) – if True will not show the rendering window
qtWidget (QVTKRenderWindowInteractor) – render in a Qt-Widget using an QVTKRenderWindowInteractor. Overrides offscreen to True Overrides interactive to False See Also: examples qt_windows1.py and qt_windows2.py
-
add
(actors, render=True, at=None)[source]¶ Append input object to the internal list of actors to be shown.
-
addButton
(fnc, states='On', 'Off', c='w', 'w', bc='dg', 'dr', pos=20, 40, size=24, font='Normografo', bold=False, italic=False, alpha=1, angle=0)[source]¶ Add a button to the renderer window.
- Parameters
states (list) – a list of possible states, e.g. [‘On’, ‘Off’]
c – a list of colors for each state
bc – a list of background colors for each state
pos – 2D position in pixels from left-bottom corner
size – size of button font
font (str) – font type (arial, courier, times)
bold (bool) – bold face (False)
italic (bool) – italic face (False)
alpha (float) – opacity level
angle (float) – anticlockwise rotation in degrees
-
addGlobalAxes
(axtype=None, c=None)[source]¶ Draw axes on scene. Available axes types:
- Parameters
axtype (int) –
0, no axes,
1, draw three gray grid walls
2, show cartesian axes from (0,0,0)
3, show positive range of cartesian axes from (0,0,0)
4, show a triad at bottom left
5, show a cube at bottom left
6, mark the corners of the bounding box
7, draw a 3D ruler at each side of the cartesian axes
8, show the
vtkCubeAxesActor
object9, show the bounding box outLine
10, show three circles representing the maximum bounding box
11, show a large grid on the x-y plane
12, show polar axes
13, draw a simple ruler at the bottom of the window
Axis type-1 can be fully customized by passing a dictionary
axes=dict()
.- Example
from vedo import Box, show b = Box(pos=(0,0,0), length=80, width=90, height=70).alpha(0) show(b, axes={ 'xtitle':'Some long variable [a.u.]', 'numberOfDivisions':4, # ... } )
-
addIcon
(icon, pos=3, size=0.08)[source]¶ Add an inset icon mesh into the same renderer.
- Parameters
pos – icon position in the range [1-4] indicating one of the 4 corners, or it can be a tuple (x,y) as a fraction of the renderer size.
size (float) – size of the square inset.
-
addInset
(*actors, **options)[source]¶ Add a draggable inset space into a renderer.
- Parameters
at (int) – specify the renderer number
pos – icon position in the range [1-4] indicating one of the 4 corners, or it can be a tuple (x,y) as a fraction of the renderer size.
size (float) – size of the square inset.
draggable (bool) – if True the subrenderer space can be dragged around.
c – color of the inset frame when dragged
-
addSlider2D
(sliderfunc, xmin, xmax, value=None, pos=4, title='', font='arial', titleSize=1, c=None, showValue=True)[source]¶ Add a slider widget which can call an external custom function.
- Parameters
sliderfunc – external function to be called by the widget
xmin (float) – lower value
xmax (float) – upper value
value (float) – current value
pos (list) – position corner number: horizontal [1-5] or vertical [11-15] it can also be specified by corners coordinates [(x1,y1), (x2,y2)]
title (str) – title text
titleSize (float) – title text scale [1.0]
font (str) – title font [arial, courier]
showValue (bool) – if true current value is shown
-
addSlider3D
(sliderfunc, pos1, pos2, xmin, xmax, value=None, s=0.03, t=1, title='', rotation=0, c=None, showValue=True)[source]¶ Add a 3D slider widget which can call an external custom function.
- Parameters
sliderfunc – external function to be called by the widget
pos1 (list) – first position coordinates
pos2 (list) – second position coordinates
xmin (float) – lower value
xmax (float) – upper value
value (float) – initial value
s (float) – label scaling factor
t (float) – tube scaling factor
title (str) – title text
c – slider color
rotation (float) – title rotation around slider axis
showValue (bool) – if True current value is shown
-
backgroundColor
(c1=None, c2=None, at=None)[source]¶ Set the color of the background for the current renderer. A different renderer index can be specified by keyword
at
.
-
getMeshes
(obj=None, renderer=None)[source]¶ Return a list of Meshes (which may include Volume objects too).
- If
obj
is: None
, return meshes of current rendererint
, return meshes in given renderer numbervtkAssembly
return the contained meshesstring
, return meshes matching legend name
- Parameters
renderer (int,vtkRenderer) – specify which renederer to look into.
- If
-
getVolumes
(obj=None, renderer=None)[source]¶ Return the list of the rendered Volumes.
- If
obj
is: None
, return volumes of current rendererint
, return volumes in given renderer number
- Parameters
renderer (int,vtkRenderer) – specify which renederer to look into.
- If
-
load
(filename, unpack=True, force=False)[source]¶ Load Mesh and Volume objects from file. The output will depend on the file extension. See examples below.
- Parameters
- Example
from vedo import datadir, load, show # Return a list of 2 Mesh g = load([datadir+'250.vtk', datadir+'290.vtk']) show(g) # Return a list of meshes by reading all files in a directory # (if directory contains DICOM files then a Volume is returned) g = load('mydicomdir/') show(g) # Return a Volume. Color/Opacity transfer function can be specified too. g = load(datadir+'embryo.slc') g.c(['y','lb','w']).alpha((0.0, 0.4, 0.9, 1)).show()
-
moveCamera
(camstart, camstop, fraction)[source]¶ Takes as input two
vtkCamera
objects and returns a newvtkCamera
that is at an intermediate position:fraction=0 -> camstart, fraction=1 -> camstop.
Press
shift-C
key in interactive mode to dump a python snipplet of parameters for the current camera view.
-
parallelProjection
(value=True)[source]¶ Use parallel projection. Obecjt is seen from “infinite” distance”, e.i. remove any perspective effects.
-
screenshot
(filename='screenshot.png', scale=None, returnNumpy=False)[source]¶ Take a screenshot of the Plotter window.
-
show
(*actors, **options)[source]¶ Render a list of actors.
Allowed input objects are:
filename
,vtkPolyData
,vtkActor
,vtkActor2D
,vtkImageActor
,vtkAssembly
orvtkVolume
.If filename is given, its type is guessed based on its extension. Supported formats are: vtu, vts, vtp, ply, obj, stl, 3ds, xml, neutral, gmsh, pcd, xyz, txt, byu, tif, slc, vti, mhd, png, jpg.
- Parameters
at (int) – number of the renderer to plot to, if more than one exists
shape (list) –
Number of sub-render windows inside of the main window. Specify two across with
shape=(2, 1)
and a two by two grid withshape=(2, 2)
. By default there is only one renderer. Can also accept a shape as string descriptor. E.g.shape=”3|1” means 3 plots on the left and 1 on the right,
shape=”4/2” means 4 plots on top of 2 at bottom.
axes (int) –
set the type of axes to be shown
0, no axes
1, draw three customizable gray grid walls
2, show cartesian axes from (0,0,0)
3, show positive range of cartesian axes from (0,0,0)
4, show a triad at bottom left
5, show a cube at bottom left
6, mark the corners of the bounding box
7, draw a 3D ruler at each side of the cartesian axes
8, show the
vtkCubeAxesActor
object9, show the bounding box outLine
10, show three circles representing the maximum bounding box
11, show a large grid on the x-y plane (use with zoom=8)
12, show polar axes
13, draw a simple ruler at the bottom of the window
azimuth/elevation/roll (float) – move camera accordingly
viewup (str) – either [‘x’, ‘y’, ‘z’] to set vertical direction
resetcam (bool) – re-adjust camera position to fit objects
camera (dict) –
Camera parameters can further be specified with a dictionary assigned to the
camera
keyword (E.g. show(camera={‘pos’:(1,2,3), ‘thickness’:1000,}))pos, (list), the position of the camera in world coordinates
focalPoint (list), the focal point of the camera in world coordinates
viewup (list), the view up direction vector for the camera
distance (float), set the focal point to the specified distance from the camera position.
- clippingRange (float), distance of the near and far clipping planes along
the direction of projection.
- parallelScale (float),
scaling used for a parallel projection, i.e. the height of the viewport in world-coordinate distances. The default is 1. Note that the “scale” parameter works as an “inverse scale”, larger numbers produce smaller images. This method has no effect in perspective projection mode.
- thickness (float),
set the distance between clipping planes. This method adjusts the far clipping plane to be set a distance ‘thickness’ beyond the near clipping plane.
- viewAngle (float),
the camera view angle, which is the angular height of the camera view measured in degrees. The default angle is 30 degrees. This method has no effect in parallel projection mode. The formula for setting the angle up for perfect perspective viewing is: angle = 2*atan((h/2)/d) where h is the height of the RenderWindow (measured by holding a ruler up to your screen) and d is the distance from your eyes to the screen.
interactive (bool) – pause and interact with window (True) or continue execution (False)
rate (float) – maximum rate of show() in Hertz
interactorStyle (int) – set the type of interaction - 0 = TrackballCamera [default] - 1 = TrackballActor - 2 = JoystickCamera - 3 = JoystickActor - 4 = Flight - 5 = RubberBand2D - 6 = RubberBand3D - 7 = RubberBandZoom - 8 = Context - 9 = 3D - 10 = Terrain - 11 = Unicam
q (bool) – force program to quit after show() command returns.
clear¶
closePlotter¶
closeWindow¶
ioff¶
ion¶
show¶
-
vedo.plotter.
show
(*actors, **options)[source]¶ Create on the fly an instance of class
Plotter
and show the object(s) provided.Allowed input objects types are:
str
,Mesh
,Volume
,Picture
,Assembly
vtkPolyData
,vtkActor
,vtkActor2D
,vtkImageActor
,vtkAssembly
orvtkVolume
.If filename is given, its type is guessed based on its extension. Supported formats are: vtu, vts, vtp, ply, obj, stl, 3ds, xml, neutral, gmsh, pcd, xyz, txt, byu, tif, slc, vti, mhd, png, jpg.
- Parameters
at (int) – number of the renderer to plot to, if more than one exists
shape (list) –
Number of sub-render windows inside of the main window. Specify two across with
shape=(2, 1)
and a two by two grid withshape=(2, 2)
. By default there is only one renderer. Can also accept a shape as string descriptor. E.g.:shape=”3|1” means 3 plots on the left and 1 on the right,
shape=”4/2” means 4 plots on top of 2 at bottom.
axes (int) –
set the type of axes to be shown
0, no axes
1, draw three gray grid walls
2, show cartesian axes from (0,0,0)
3, show positive range of cartesian axes from (0,0,0)
4, show a triad at bottom left
5, show a cube at bottom left
6, mark the corners of the bounding box
7, draw a 3D ruler at each side of the cartesian axes
8, show the
vtkCubeAxesActor
object9, show the bounding box outLine
10, show three circles representing the maximum bounding box
11, show a large grid on the x-y plane
12, show polar axes
13, draw a simple ruler at the bottom of the window
Axis type-1 can be fully customized by passing a dictionary
axes=dict()
where: Checkaddons.Axes()
for the full list of options.azimuth/elevation/roll (float) – move camera accordingly
viewup (str) – either [‘x’, ‘y’, ‘z’] or a vector to set vertical direction
resetcam (bool) – re-adjust camera position to fit objects
camera (dict) –
Camera parameters can further be specified with a dictionary assigned to the
camera
keyword (E.g. show(camera={‘pos’:(1,2,3), ‘thickness’:1000,}))pos, (list), the position of the camera in world coordinates
focalPoint (list), the focal point of the camera in world coordinates
viewup (list), the view up direction for the camera
distance (float), set the focal point to the specified distance from the camera position.
- clippingRange (float), distance of the near and far clipping planes along the direction
of projection.
- parallelScale (float),
scaling used for a parallel projection, i.e. the height of the viewport in world-coordinate distances. The default is 1. Note that the “scale” parameter works as an “inverse scale”, larger numbers produce smaller images. This method has no effect in perspective projection mode.
- thickness (float),
set the distance between clipping planes. This method adjusts the far clipping plane to be set a distance ‘thickness’ beyond the near clipping plane.
- viewAngle (float),
the camera view angle, which is the angular height of the camera view measured in degrees. The default angle is 30 degrees. This method has no effect in parallel projection mode. The formula for setting the angle up for perfect perspective viewing is: angle = 2*atan((h/2)/d) where h is the height of the RenderWindow (measured by holding a ruler up to your screen) and d is the distance from your eyes to the screen.
interactive (bool) – pause and interact with window (True) or continue execution (False)
rate (float) – maximum rate of show() in Hertz
interactorStyle (int) –
set the type of interaction
0 = TrackballCamera [default]
1 = TrackballActor
2 = JoystickCamera
3 = JoystickActor
4 = Flight
5 = RubberBand2D
6 = RubberBand3D
7 = RubberBandZoom
8 = Context
9 = 3D
10 = Terrain
11 = Unicam
q (bool) – force program to quit after show() command returns.
new (bool) – if set to True, a call to
show
will instantiate a newPlotter
object (a new window) instead of reusing the first created.
- Returns
the current
Plotter
class instance.
Note
With multiple renderers, keyword
at
can become a list, e.g.from vedo import * s = Sphere() c = Cube() p = Paraboloid() show(s, c, at=[0, 1], shape=(3,1)) show(p, at=2, interactive=True) # # is equivalent to: plt = Plotter(shape=(3,1)) s = Sphere() c = Cube() p = Paraboloid() plt.show(s, at=0) plt.show(p, at=1) plt.show(c, at=2, interactive=True)