6.1.1.4.1.7. thyrsis.meshlayer.opengl_layer module

class thyrsis.meshlayer.opengl_layer.OpenGlLayer(type_=None, name=None)

Bases: qgis._core.QgsPluginLayer

Base class to encapsulate the tricks to create OpenGL layers Be careful, the layer is drawn in main thread due to current Qt limitations care must be taken not to stall the event loop while requesting a render job since since the rendering thread signal will not be passed to the main thread.

Child class must implement the image method

LAYER_TYPE = 'opengl_layer'
createMapRenderer(rendererContext)

create the renderer for the open_gl layer

Parameters

rendererContext (QOpenGLContext) – openGL context

Returns

OpenGlRenderer

Return type

OpenGlRenderer

draw(rendererContext)

This function is called by the rendering thread. GlMesh must be created in the main thread.

Parameters

rendererContext (QOpenGLContext) – openGL context

Returns

success state

Return type

bool

image(rendererContext, size)

This is the function that should be overwritten the rendererContext does not have a painter and an image must be returned instead

Parameters
  • rendererContext (QOpenGLContext) – openGL context

  • size (QSize) – size

setTransformContext(context)

Contains information about the context in which a coordinate transform is executed. UNUSED

class thyrsis.meshlayer.opengl_layer.OpenGlLayerType(type_=None)

Bases: qgis._core.QgsPluginLayerType

Type for opengl layer

createLayer()

Create a OpenGlLayer

Returns

OpenGlLayer

Return type

OpenGlLayer

showLayerProperties(layer)

Open the mesh layer property dialog

Parameters

layer (QgsMapLayer) – QgsMapLayer

Returns

success state

Return type

bool

class thyrsis.meshlayer.opengl_layer.OpenGlRenderer(layerId, rendererContext, layer)

Bases: qgis._core.QgsMapLayerRenderer

render()

Render the opengl mesh

Returns

image

Return type

QImage