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