def set_data(self, data, subset_data=None, **args):
        if data == None:
            return
        ScaleLinProjData3D.setData(self, data, subset_data, **args)
        OWPlot3D.initializeGL(self)

        if hasattr(self, '_value_lines_shader'):
            return

        self.makeCurrent()
        self.before_draw_callback = self.before_draw

        ## Value lines shader
        self._value_lines_shader = QtOpenGL.QGLShaderProgram()
        self._value_lines_shader.addShaderFromSourceFile(QtOpenGL.QGLShader.Vertex,
            os.path.join(os.path.dirname(__file__), 'value-lines.vs'))
        self._value_lines_shader.addShaderFromSourceFile(QtOpenGL.QGLShader.Fragment,
            os.path.join(os.path.dirname(__file__), 'value-lines.fs'))

        self._value_lines_shader.bindAttributeLocation('position', 0)
        self._value_lines_shader.bindAttributeLocation('color', 1)
        self._value_lines_shader.bindAttributeLocation('normal', 2)

        if not self._value_lines_shader.link():
            print('Failed to link value-lines shader!')
Beispiel #2
0
    def set_data(self, data, subset_data=None, **args):
        if data == None:
            return
        ScaleLinProjData3D.setData(self, data, subset_data, **args)
        OWPlot3D.initializeGL(self)

        if hasattr(self, '_value_lines_shader'):
            return

        self.makeCurrent()
        self.before_draw_callback = self.before_draw

        ## Value lines shader
        self._value_lines_shader = QtOpenGL.QGLShaderProgram()
        self._value_lines_shader.addShaderFromSourceFile(
            QtOpenGL.QGLShader.Vertex,
            os.path.join(os.path.dirname(__file__), 'value-lines.vs'))
        self._value_lines_shader.addShaderFromSourceFile(
            QtOpenGL.QGLShader.Fragment,
            os.path.join(os.path.dirname(__file__), 'value-lines.fs'))

        self._value_lines_shader.bindAttributeLocation('position', 0)
        self._value_lines_shader.bindAttributeLocation('color', 1)
        self._value_lines_shader.bindAttributeLocation('normal', 2)

        if not self._value_lines_shader.link():
            print('Failed to link value-lines shader!')