vpype_viewer.Engine#

class Engine(view_mode: ~vpype_viewer.engine.ViewMode = ViewMode.OUTLINE, show_pen_up: bool = False, show_points: bool = False, show_rulers: bool = True, default_pen_width: float = 1.1, default_pen_opacity: float = 0.8, override_pen_width: bool = False, override_pen_opacity: bool = False, render_cb: ~typing.Callable[[], None] = <function Engine.<lambda>>)#

OpenGL-based rendering engine for vpype.Document.

Methods

_get_projection

_rebuild

_update

fit_to_viewport

Fit the current document in the viewport, allowing for a 2.5% margin on either sides.

layer_visible

True if the corresponding layer is currently visible.

pan

Pan the viewport.

post_init

Post-init configuration to provide a GL context.

render

Execute a render.

resize

Resizes the viewport.

toggle_layer_visibility

Toggles the visibility of the provided layer.

viewport_to_model

Converts viewport coordinates to model coordinates in pixels.

zoom

Zoom the viewport.

Attributes

debug

Debug mode for display.

default_pen_opacity

Pen opacity used for rendering (preview only).

default_pen_width

Pen width used for rendering (preview only).

document

vpype.Document being displayed.

height

origin

Current origin (document coordinates corresponding to the display window's top-left corner.

override_pen_opacity

Disregard pen opacity from properties (preview only).

override_pen_width

Disregard pen opacity from properties (preview only).

pixel_factor

scale

Current scale (ratio screen pixel per document pixel)

scale_spec

show_pen_up

True if pen-up trajectories are rendered.

show_points

True if points are rendered.

show_rulers

unit_type

view_mode

Current view mode.

width

Parameters:
  • view_mode (ViewMode) --

  • show_pen_up (bool) --

  • show_points (bool) --

  • show_rulers (bool) --

  • default_pen_width (float) --

  • default_pen_opacity (float) --

  • override_pen_width (bool) --

  • override_pen_opacity (bool) --

  • render_cb (Callable[[], None]) --

Methods#

Engine._get_projection() ndarray#
Return type:

ndarray

Engine._rebuild() None#
Return type:

None

Engine._update(rebuild=True)#
Engine.fit_to_viewport()#

Fit the current document in the viewport, allowing for a 2.5% margin on either sides.

Engine.layer_visible(layer_id: int) bool#

True if the corresponding layer is currently visible.

Parameters:

layer_id (int) -- layer to check

Return type:

bool

Engine.pan(dx: float, dy: float) None#

Pan the viewport.

Parameters:
  • dx (float) -- horizontal distance to pan

  • dy (float) -- vertical distance to pan

Return type:

None

Engine.post_init(ctx: Context, width: int = 100, height: int = 100)#

Post-init configuration to provide a GL context.

Parameters:
  • ctx (Context) --

  • width (int) --

  • height (int) --

Engine.render()#

Execute a render.

Engine.resize(width: int, height: int) None#

Resizes the viewport.

Parameters:
  • width (int) -- new viewport width

  • height (int) -- new viewport height

Return type:

None

Engine.toggle_layer_visibility(layer_id: int) None#

Toggles the visibility of the provided layer.

Parameters:

layer_id (int) -- layer to toggle

Return type:

None

Engine.viewport_to_model(x: float, y: float) tuple[float, float]#

Converts viewport coordinates to model coordinates in pixels.

Parameters:
Return type:

tuple[float, float]

Engine.zoom(delta_zoom: float, mouse_x: float, mouse_y: float) None#

Zoom the viewport.

Coordinates must be provided to specify the point about which to zoom. This typically should be the mouse position when used in GUI.

Parameters:
  • delta_zoom (float) -- zoom adjustment value (the scale is multiplied by (1 + delta_zoom)

  • mouse_x (float) -- mouse X coordinate

  • mouse_y (float) -- mouse Y coordinate

Return type:

None

Attributes#

Engine.debug#

Debug mode for display.

Engine.default_pen_opacity#

Pen opacity used for rendering (preview only).

Engine.default_pen_width#

Pen width used for rendering (preview only).

Engine.document#

vpype.Document being displayed.

Engine.height#
Engine.origin#

Current origin (document coordinates corresponding to the display window’s top-left corner.

Engine.override_pen_opacity#

Disregard pen opacity from properties (preview only).

Engine.override_pen_width#

Disregard pen opacity from properties (preview only).

Engine.pixel_factor#
Engine.scale#

Current scale (ratio screen pixel per document pixel)

Engine.scale_spec#
Engine.show_pen_up#

True if pen-up trajectories are rendered.

Engine.show_points#

True if points are rendered.

Engine.show_rulers#
Engine.unit_type#
Engine.view_mode#

Current view mode.

Engine.width#