Changeset 8477:b170f434aa2c in orange


Ignore:
Timestamp:
07/27/11 11:21:04 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
c7d7b959075f0562c6453ce0e6e92fbf111bee8a
Message:

Removed background, rotation now widget-size independent

Location:
orange/OrangeWidgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Prototypes/OWScatterPlot3D.py

    r8454 r8477  
    1919class OWScatterPlot3D(OWWidget): 
    2020    settingsList = ['plot.show_legend', 'plot.symbol_size', 'plot.show_x_axis_title', 'plot.show_y_axis_title', 
    21                     'plot.show_z_axis_title', 'plot.show_legend', 'plot.face_symbols', 'plot.filled_symbols', 
     21                    'plot.show_z_axis_title', 'plot.show_legend', 'plot.use_2d_symbols', 
    2222                    'plot.transparency', 'plot.show_grid', 'plot.pitch', 'plot.yaw', 'plot.use_ortho', 
    2323                    'auto_send_selection', 'auto_send_selection_update', 
     
    129129        OWGUI.checkBox(box, self, 'plot.show_legend',         'Show legend',    callback=self.on_checkbox_update) 
    130130        OWGUI.checkBox(box, self, 'plot.use_ortho',           'Use ortho',      callback=self.on_checkbox_update) 
    131         OWGUI.checkBox(box, self, 'plot.filled_symbols',      'Filled symbols', callback=self.on_checkbox_update) 
    132         OWGUI.checkBox(box, self, 'plot.face_symbols',        'Face symbols',   callback=self.on_checkbox_update) 
     131        OWGUI.checkBox(box, self, 'plot.use_2d_symbols',      'Filled symbols', callback=self.on_checkbox_update) 
    133132        OWGUI.checkBox(box, self, 'plot.show_grid',           'Show grid',      callback=self.on_checkbox_update) 
    134133        OWGUI.rubber(box) 
  • orange/OrangeWidgets/plot/owplot3d.py

    r8458 r8477  
    340340 
    341341        self.yaw = self.pitch = -pi / 4. 
    342         self.rotation_factor = 100. 
     342        self.rotation_factor = 0.3 
    343343        self.camera = [ 
    344344            sin(self.pitch)*cos(self.yaw), 
     
    363363        self.show_x_axis_title = self.show_y_axis_title = self.show_z_axis_title = True 
    364364 
    365         self.color_plane = numpy.array([0.95, 0.95, 0.95, 0.3]) 
    366365        self.color_grid = numpy.array([0.8, 0.8, 0.8, 1.0]) 
    367366 
     
    374373        self.legend = Legend(self) 
    375374 
    376         self.face_symbols = True 
    377         self.filled_symbols = True 
     375        self.use_2d_symbols = True 
    378376        self.symbol_scale = 1. 
    379377        self.transparency = 255 
     
    427425            attribute vec4 color; 
    428426 
    429             uniform bool face_symbols; 
     427            uniform bool use_2d_symbols; 
    430428            uniform bool tooltip_mode; 
    431429            uniform float symbol_scale; 
     
    460458              offset_rotated.y *= symbol_scale; 
    461459 
    462               if (face_symbols) 
     460              if (use_2d_symbols) 
    463461                offset_rotated = invs * offset_rotated; 
    464462 
     
    507505        else: 
    508506            print('Symbol shader linked.') 
    509         self.symbol_shader_face_symbols = self.symbol_shader.uniformLocation('face_symbols') 
    510         self.symbol_shader_symbol_scale = self.symbol_shader.uniformLocation('symbol_scale') 
    511         self.symbol_shader_transparency = self.symbol_shader.uniformLocation('transparency') 
    512         self.symbol_shader_view_edge    = self.symbol_shader.uniformLocation('view_edge') 
    513         self.symbol_shader_scale        = self.symbol_shader.uniformLocation('scale') 
    514         self.symbol_shader_translation  = self.symbol_shader.uniformLocation('translation') 
    515         self.symbol_shader_tooltip_mode = self.symbol_shader.uniformLocation('tooltip_mode') 
     507        self.symbol_shader_use_2d_symbols = self.symbol_shader.uniformLocation('use_2d_symbols') 
     508        self.symbol_shader_symbol_scale   = self.symbol_shader.uniformLocation('symbol_scale') 
     509        self.symbol_shader_transparency   = self.symbol_shader.uniformLocation('transparency') 
     510        self.symbol_shader_view_edge      = self.symbol_shader.uniformLocation('view_edge') 
     511        self.symbol_shader_scale          = self.symbol_shader.uniformLocation('scale') 
     512        self.symbol_shader_translation    = self.symbol_shader.uniformLocation('translation') 
     513        self.symbol_shader_tooltip_mode   = self.symbol_shader.uniformLocation('tooltip_mode') 
    516514 
    517515        # TODO: map mouse coordinates properly (instead of using larger FBO) 
     
    568566 
    569567                self.symbol_shader.bind() 
    570                 self.symbol_shader.setUniformValue(self.symbol_shader_tooltip_mode, False) 
    571                 self.symbol_shader.setUniformValue(self.symbol_shader_face_symbols, self.face_symbols) 
    572                 self.symbol_shader.setUniformValue(self.symbol_shader_view_edge,    float(self.view_cube_edge)) 
    573                 self.symbol_shader.setUniformValue(self.symbol_shader_symbol_scale, float(self.symbol_scale)) 
    574                 self.symbol_shader.setUniformValue(self.symbol_shader_transparency, self.transparency / 255.) 
    575                 self.symbol_shader.setUniformValue(self.symbol_shader_scale,        *scale) 
    576                 self.symbol_shader.setUniformValue(self.symbol_shader_translation,  *self.translation) 
    577  
    578                 if self.filled_symbols: 
    579                     glBindVertexArray(vao_id) 
    580                     glDrawArrays(GL_TRIANGLES, 0, vao_id.num_vertices) 
    581                     glBindVertexArray(0) 
    582                 else: 
     568                self.symbol_shader.setUniformValue(self.symbol_shader_tooltip_mode,   False) 
     569                self.symbol_shader.setUniformValue(self.symbol_shader_use_2d_symbols, self.use_2d_symbols) 
     570                self.symbol_shader.setUniformValue(self.symbol_shader_view_edge,      float(self.view_cube_edge)) 
     571                self.symbol_shader.setUniformValue(self.symbol_shader_symbol_scale,   float(self.symbol_scale)) 
     572                self.symbol_shader.setUniformValue(self.symbol_shader_transparency,   self.transparency / 255.) 
     573                self.symbol_shader.setUniformValue(self.symbol_shader_scale,          *scale) 
     574                self.symbol_shader.setUniformValue(self.symbol_shader_translation,    *self.translation) 
     575 
     576                glBindVertexArray(vao_id) 
     577                glDrawArrays(GL_TRIANGLES, 0, vao_id.num_vertices) 
     578                glBindVertexArray(0) 
     579                if self.use_2d_symbols: 
    583580                    glLineWidth(1) 
    584581                    glBindVertexArray(outline_vao_id) 
     
    777774                            font=self.axis_title_font) 
    778775 
    779         def draw_axis_plane(axis_plane, sub=10): 
     776        def draw_axis_plane(axis_plane, sub=5): 
    780777            normal = normal_from_points(*axis_plane[:3]) 
    781778            camera_vector = normalize(axis_plane[0] - cam_in_space) 
    782779            cos = max(0.7, numpy.dot(normal, camera_vector)) 
    783             glColor4f(*(self.color_plane * cos)) 
    784780            p11, p12, p21, p22 = numpy.asarray(axis_plane) 
    785             # Draw background quad first. 
    786             glBegin(GL_QUADS) 
    787             glVertex3f(*p11) 
    788             glVertex3f(*p12) 
    789             glVertex3f(*p21) 
    790             glVertex3f(*p22) 
    791             glEnd() 
    792781 
    793782            p22, p21 = p21, p22 
     
    12581247                #self.data_center += off_x 
    12591248            else: 
    1260                 self.yaw += dx / self.rotation_factor 
    1261                 self.pitch += dy / self.rotation_factor 
     1249                self.yaw += dx / (self.rotation_factor*self.width()) 
     1250                self.pitch += dy / (self.rotation_factor*self.height()) 
    12621251                self.pitch = clamp(self.pitch, -3., -0.1) 
    12631252                self.camera = [ 
Note: See TracChangeset for help on using the changeset viewer.