Changeset 8724:2fabb0409d47 in orange


Ignore:
Timestamp:
08/17/11 22:46:51 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
06e0c8321043688881925028a7733db8a219e442
Message:

Fixed tooltips, removed window size limits

Location:
orange/OrangeWidgets
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Visualize Qt/OWScatterPlot3D.py

    r8722 r8724  
    474474        text = '<b>Attributes:</b><br>' 
    475475        for index in indices[:max_indices]: 
    476             attr = self.attribute_names[index] 
     476            attr = self.plot.data_domain[index].name 
    477477            if attr not in example.domain:  text += '&nbsp;'*4 + '%s = ?<br>' % (attr) 
    478478            elif example[attr].isSpecial(): text += '&nbsp;'*4 + '%s = ?<br>' % (attr) 
  • orange/OrangeWidgets/plot/generator.gs

    r8721 r8724  
    2929out vec3 out_color; 
    3030out vec3 out_normal; 
    31 out int out_index; 
     31out float out_index; 
    3232 
    3333void main() 
     
    3636    const float scale = 0.003; 
    3737 
    38     out_index = int(position.x); 
    39     int index = out_index * example_size; 
     38    out_index = position.x; 
     39    int index = int(out_index * example_size); 
    4040 
    4141    out_position = vec3(texelFetch(data_buffer, index+x_index).x, 
  • orange/OrangeWidgets/plot/owplot3d.py

    r8721 r8724  
    366366        self.setMouseTracking(True) 
    367367        self.mouseover_callback = None 
     368        self.mouse_pos = QPoint(0, 0) 
    368369        self.before_draw_callback = None 
    369370        self.after_draw_callback = None 
     
    392393 
    393394        self.tooltip_fbo_dirty = True 
     395        self.tooltip_win_center = [0, 0] 
    394396        self.selection_fbo_dirty = True 
    395397 
     
    462464        self.symbol_program_hide_outside   = self.symbol_program.uniformLocation('hide_outside') 
    463465        self.symbol_program_force_color    = self.symbol_program.uniformLocation('force_color') 
     466        self.symbol_program_encode_color   = self.symbol_program.uniformLocation('encode_color') 
    464467 
    465468        # TODO: if not self.use_geometry_shader 
     
    520523        glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, vertex_size, c_void_p(6*4)) 
    521524        glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, vertex_size, c_void_p(9*4)) 
    522         glVertexAttribPointer(4, 1, GL_INT,  GL_FALSE, vertex_size, c_void_p(12*4)) 
     525        glVertexAttribPointer(4, 1, GL_FLOAT, GL_FALSE, vertex_size, c_void_p(12*4)) 
    523526        glEnableVertexAttribArray(0) 
    524527        glEnableVertexAttribArray(1) 
     
    551554 
    552555    def resizeGL(self, width, height): 
    553         glViewport(0, 0, width, height) 
     556        pass 
    554557 
    555558    def update_camera(self): 
     
    588591            return 
    589592 
     593        glViewport(0, 0, self.width(), self.height()) 
    590594        glClearColor(*self._theme.background_color) 
    591595        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 
     
    606610        self.symbol_program.setUniformValue(self.symbol_program_use_2d_symbols, self.use_2d_symbols) 
    607611        self.symbol_program.setUniformValue(self.symbol_program_hide_outside,   self.hide_outside) 
     612        self.symbol_program.setUniformValue(self.symbol_program_encode_color,   False) 
    608613        # Specifying float uniforms with vec2 because of a weird bug in PyQt 
    609614        self.symbol_program.setUniformValue(self.symbol_program_symbol_scale,   self.symbol_scale, self.symbol_scale) 
     
    632637            glClearDepth(1) 
    633638            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 
    634             # Draw data the same as to the screen, but with 
    635             # disabled blending and enabled depth testing. 
    636639            glDisable(GL_BLEND) 
    637640            glEnable(GL_DEPTH_TEST) 
    638641 
    639             # TODO: scissors 
     642            glViewport(-self.mouse_pos.x()+128, -(self.height()-self.mouse_pos.y())+128, self.width(), self.height()) 
     643            self.tooltip_win_center = [self.mouse_pos.x(), self.mouse_pos.y()] 
    640644 
    641645            self.symbol_program.bind() 
    642             # Most uniforms retain their values. 
    643             #self.symbol_program.setUniformValue(self.symbol_program_encode_color, True) 
    644             #self.symbol_program.setUniformValue(self.symbol_program_shrink_symbols, False) 
    645             #glBindVertexArray(vao_id) 
    646             #glDrawArrays(GL_TRIANGLES, 0, vao_id.num_3d_vertices) 
    647             #glBindVertexArray(0) 
     646            self.symbol_program.setUniformValue(self.symbol_program_encode_color, True) 
     647            glBindVertexArray(self.feedback_vao) 
     648            glDrawArrays(GL_TRIANGLES, 0, self.num_primitives_generated*3) 
     649            glBindVertexArray(0) 
    648650            self.symbol_program.release() 
    649651            self.tooltip_fbo.release() 
    650652            self.tooltip_fbo_dirty = False 
     653            glViewport(0, 0, self.width(), self.height()) 
    651654 
    652655        if self.selection_fbo_dirty: 
     
    11881191        if self.mouseover_callback != None and self.state == PlotState.IDLE and\ 
    11891192            (not self.show_legend or not self.legend.contains(pos.x(), pos.y())): 
     1193            if abs(pos.x() - self.tooltip_win_center[0]) > 100 or\ 
     1194               abs(pos.y() - self.tooltip_win_center[1]) > 100: 
     1195                self.tooltip_fbo_dirty = True 
     1196                self.updateGL() 
    11901197            # Use pixel-color-picking to read example index under mouse cursor. 
    11911198            self.tooltip_fbo.bind() 
    1192             value = glReadPixels(pos.x(), self.height() - pos.y(), 
     1199            value = glReadPixels(pos.x() - self.tooltip_win_center[0] + 128, 
     1200                                 self.tooltip_win_center[1] - pos.y() + 128, 
    11931201                                 1, 1, 
    11941202                                 GL_RGBA, 
  • orange/OrangeWidgets/plot/symbol.vs

    r8721 r8724  
    99in vec3 color; 
    1010in vec3 normal; 
    11 in int index; 
     11in float index; 
    1212 
    1313uniform bool use_2d_symbols; 
    14 //uniform bool encode_color; 
    15 //uniform bool selection_check; 
    16 //uniform sampler2D stencil_mask; 
    17 //out int out_index; 
     14uniform bool encode_color; 
    1815uniform bool hide_outside; 
    1916uniform vec4 force_color; 
     
    6865        var_color = force_color; 
    6966    } 
    70     /*else if (encode_color) 
     67    else if (encode_color) 
    7168    { 
    72         var_color = vec4(float((index & 0xFF)) / 255., 
    73                          float((index & 0xFF00) >> 8) / 255., 
    74                          float((index & 0xFF0000) >> 16) / 255., 
    75                          float((index & 0xFF000000) >> 24) / 255.); 
    76     }*/ 
     69        var_color = vec4(float((int(index) & 0xFF)) / 255., 
     70                         float((int(index) & 0xFF00) >> 8) / 255., 
     71                         float((int(index) & 0xFF0000) >> 16) / 255., 
     72                         float((int(index) & 0xFF000000) >> 24) / 255.); 
     73    } 
    7774    else 
    7875    { 
Note: See TracChangeset for help on using the changeset viewer.