trimesh.viewer package

Submodules

trimesh.viewer.notebook module

notebook.py

Render trimesh.Scene objects in HTML and jupyter notebooks using three.js

trimesh.viewer.notebook.in_notebook()

Check to see if we are in an IPython or Jypyter notebook.

Returns
in_notebookbool

Returns True if we are in a notebook

trimesh.viewer.notebook.scene_to_html(scene)

Return HTML that will render the scene using GLTF/GLB encoded to base64 loaded by three.js

Parameters
scenetrimesh.Scene

Source geometry

Returns
htmlstr

HTML containing embedded geometry

trimesh.viewer.notebook.scene_to_notebook(scene, height=500, **kwargs)

Convert a scene to HTML containing embedded geometry and a three.js viewer that will display nicely in an IPython/Jupyter notebook.

Parameters
scenetrimesh.Scene

Source geometry

Returns
htmlIPython.display.HTML

Object containing rendered scene

trimesh.viewer.trackball module

Trackball class for 3D manipulation of viewpoints.

class trimesh.viewer.trackball.Trackball(pose, size, scale, target=array([0., 0., 0.]))

Bases: object

A trackball class for creating camera transforms from mouse movements.

Attributes
pose

autolab_core.RigidTransform : The current camera-to-world pose.

Methods

down(point)

Record an initial mouse press at a given point.

drag(point)

Update the tracball during a drag.

resize(size)

Resize the window.

rotate(azimuth[, axis])

Rotate the trackball about the “Up” axis by azimuth radians.

scroll(clicks)

Zoom using a mouse scroll wheel motion.

set_state(state)

Set the state of the trackball in order to change the effect of dragging motions.

STATE_PAN = 1
STATE_ROLL = 2
STATE_ROTATE = 0
STATE_ZOOM = 3
down(point)

Record an initial mouse press at a given point.

Parameters
point(2,) int

The x and y pixel coordinates of the mouse press.

drag(point)

Update the tracball during a drag.

Parameters
point(2,) int

The current x and y pixel coordinates of the mouse during a drag. This will compute a movement for the trackball with the relative motion between this point and the one marked by down().

pose

autolab_core.RigidTransform : The current camera-to-world pose.

resize(size)

Resize the window.

Parameters
size(float, float)

The new width and height of the camera image in pixels.

rotate(azimuth, axis=None)

Rotate the trackball about the “Up” axis by azimuth radians.

Parameters
azimuthfloat

The number of radians to rotate.

scroll(clicks)

Zoom using a mouse scroll wheel motion.

Parameters
clicksint

The number of clicks. Positive numbers indicate forward wheel movement.

set_state(state)

Set the state of the trackball in order to change the effect of dragging motions.

Parameters
stateint

One of Trackball.STATE_ROTATE, Trackball.STATE_PAN, Trackball.STATE_ROLL, and Trackball.STATE_ZOOM.

trimesh.viewer.widget module

trimesh.viewer.windowed module

windowed.py

Provides a pyglet- based windowed viewer to preview Trimesh, Scene, PointCloud, and Path objects.

Works on all major platforms: Windows, Linux, and OSX.

class trimesh.viewer.windowed.SceneViewer(scene, smooth=True, flags=None, visible=True, resolution=None, start_loop=True, callback=None, callback_period=None, caption=None, fixed=None, **kwargs)

Bases: pyglet.window.Window

Attributes
CURSOR_DEFAULT
WINDOW_STYLE_DEFAULT
caption

The window caption (title).

config

A GL config describing the context of this window.

context

The OpenGL context attached to this window.

display

The display this window belongs to.

fullscreen

True if the window is currently fullscreen.

height

The height of the window, in pixels.

resizeable

True if the window is resizable.

screen

The screen this window is fullscreen in.

style

The window style; one of the WINDOW_STYLE_* constants.

visible

True if the window is currently visible.

vsync

True if buffer flips are synchronised to the screen’s vertical retrace.

width

The width of the window, in pixels.

Methods

activate()

Attempt to restore keyboard focus to the window.

add_geometry(name, geometry, **kwargs)

Add a geometry to the viewer.

clear()

Clear the window.

close()

Close the window.

dispatch_events()

Poll the operating system event queue for new events and call attached event handlers.

draw_mouse_cursor()

Draw the custom mouse cursor.

event(*args)

Function decorator for an event handler.

flip()

Swap the OpenGL front and back buffers.

get_location()

Return the current position of the window.

get_size()

Return the current size of the window.

get_system_mouse_cursor(name)

Obtain a system mouse cursor.

get_viewport_size()

Return the size in actual pixels of the viewport.

init_gl()

Perform the magic incantations to create an OpenGL scene using pyglet.

maximize()

Maximize the window.

minimize()

Minimize the window.

on_activate()

The window was activated.

on_close()

The user attempted to close the window.

on_context_lost()

The window’s GL context was lost.

on_context_state_lost()

The state of the window’s GL context was lost.

on_deactivate()

The window was deactivated.

on_draw()

Run the actual draw calls.

on_expose()

A portion of the window needs to be redrawn.

on_hide()

The window was hidden.

on_key_press(symbol, modifiers)

Call appropriate functions given key presses.

on_key_release(modifiers)

A key on the keyboard was released.

on_mouse_drag(x, y, dx, dy, buttons, modifiers)

Pan or rotate the view.

on_mouse_enter(y)

The mouse was moved into the window.

on_mouse_leave(y)

The mouse was moved outside of the window.

on_mouse_motion(y, dx, dy)

The mouse was moved with no buttons held down.

on_mouse_press(x, y, buttons, modifiers)

Set the start point of the drag.

on_mouse_release(y, button, modifiers)

A mouse button was released.

on_mouse_scroll(x, y, dx, dy)

Zoom the view.

on_move(y)

The window was moved.

on_resize(width, height)

Handle resized windows.

on_show()

The window was shown.

on_text()

The user input some text.

on_text_motion()

The user moved the text input cursor.

on_text_motion_select()

The user moved the text input cursor while extending the selection.

pop_handlers()

Pop the top level of event handlers off the stack.

push_handlers(*args, **kwargs)

Push a level onto the top of the handler stack, then attach zero or more event handlers.

register_event_type(name)

Register an event type with the dispatcher.

remove_handler(name, handler)

Remove a single event handler.

remove_handlers(*args, **kwargs)

Remove event handlers from the event stack.

reset_view([flags])

Set view to the default view.

save_image(file_obj)

Save the current color buffer to a file object in PNG format.

set_caption(caption)

Set the window’s caption.

set_exclusive_keyboard([exclusive])

Prevent the user from switching away from this window using keyboard accelerators.

set_exclusive_mouse([exclusive])

Hide the mouse cursor and direct all mouse events to this window.

set_fullscreen([fullscreen, screen, mode, …])

Toggle to or from fullscreen.

set_handler(name, handler)

Attach a single event handler.

set_handlers(*args, **kwargs)

Attach one or more event handlers to the top level of the handler stack.

set_icon(*images)

Set the window icon.

set_location(x, y)

Set the position of the window.

set_maximum_size(width, height)

Set the maximum size of the window.

set_minimum_size(width, height)

Set the minimum size of the window.

set_mouse_cursor([cursor])

Change the appearance of the mouse cursor.

set_mouse_platform_visible([platform_visible])

Set the platform-drawn mouse cursor visibility.

set_mouse_visible([visible])

Show or hide the mouse cursor.

set_size(width, height)

Resize the window.

set_visible([visible])

Show or hide the window.

set_vsync(vsync)

Enable or disable vertical sync control.

switch_to()

Make this window the current OpenGL rendering context.

toggle_axis()

Toggle a rendered XYZ/RGB axis marker: off, world frame, every frame

toggle_culling()

Toggle back face culling.

toggle_fullscreen()

Toggle between fullscreen and windowed mode.

toggle_wireframe()

Toggle wireframe mode

update_flags()

Check the view flags, and call required GL functions.

dispatch_event

add_geometry(name, geometry, **kwargs)

Add a geometry to the viewer.

Parameters
namehashable

Name that references geometry

geometryTrimesh, Path2D, Path3D, PointCloud

Geometry to display in the viewer window

kwargs **

Passed to rendering.convert_to_vertexlist

init_gl()

Perform the magic incantations to create an OpenGL scene using pyglet.

on_draw()

Run the actual draw calls.

on_key_press(symbol, modifiers)

Call appropriate functions given key presses.

on_mouse_drag(x, y, dx, dy, buttons, modifiers)

Pan or rotate the view.

on_mouse_press(x, y, buttons, modifiers)

Set the start point of the drag.

on_mouse_scroll(x, y, dx, dy)

Zoom the view.

on_resize(width, height)

Handle resized windows.

reset_view(flags=None)

Set view to the default view.

Parameters
flagsNone or dict

If any view key passed override the default e.g. {‘cull’: False}

save_image(file_obj)

Save the current color buffer to a file object in PNG format.

Parameters
file_obj: file name, or file- like object
toggle_axis()

Toggle a rendered XYZ/RGB axis marker: off, world frame, every frame

toggle_culling()

Toggle back face culling.

It is on by default but if you are dealing with non- watertight meshes you probably want to be able to see the back sides.

toggle_fullscreen()

Toggle between fullscreen and windowed mode.

toggle_wireframe()

Toggle wireframe mode

Good for looking inside meshes, off by default.

update_flags()

Check the view flags, and call required GL functions.

trimesh.viewer.windowed.geometry_hash(geometry)

Get an MD5 for a geometry object

Parameters
geometryobject
Returns
MD5str
trimesh.viewer.windowed.render_scene(scene, resolution=(1080, 1080), visible=True, **kwargs)

Render a preview of a scene to a PNG.

Parameters
scenetrimesh.Scene

Geometry to be rendered

resolution(2,) int

Resolution in pixels

kwargs**

Passed to SceneViewer

Returns
renderbytes

Image in PNG format

Module contents

viewer

View meshes and scenes via pyglet or inline HTML.

trimesh.viewer.SceneWidget(*args, **kwargs)