Changeset 8960:eddd61249115 in orange


Ignore:
Timestamp:
09/13/11 12:58:12 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
1eb75e6c9b51c8206bf5c11956f65031e0d845f3
Message:

Improved line tooltips in linproj3D: values moved to the ends of arrows, they have a better chance at being visible there; also discrete attr values are now shown

File:
1 edited

Legend:

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

    r8959 r8960  
    9191                x, y, z, label = anchor 
    9292 
    93                 glDepthMask(GL_TRUE) 
    9493                self.qglColor(self._theme.axis_values_color) 
    9594                self.renderText(x*1.2, y*1.2, z*1.2, label) 
     
    10099                    QVector3D(x, y, z), 
    101100                    color=self._theme.axis_color) 
    102  
    103         glDepthMask(GL_TRUE) 
    104  
    105         if self.tooltipKind == 0: 
     101                glDepthMask(GL_TRUE) 
     102 
     103        if self.tooltipKind == 0 and self._arrow_lines: 
    106104            glEnable(GL_DEPTH_TEST) 
    107             if self._arrow_lines: 
    108                 glLineWidth(3) 
    109                 for x, y, z, value, factor, color in self._arrow_lines: 
    110                     self.renderer.draw_line( 
    111                         QVector3D(0, 0, 0), 
    112                         QVector3D(x, y, z), 
    113                         color=color) 
    114  
    115                     self.qglColor(self._theme.axis_color) 
    116                     # TODO: discrete 
    117                     self.renderText(x,y,z, ('%f' % (value if self.tooltipValue == 0 else factor)).rstrip('0').rstrip('.'), 
    118                                     font=self._theme.labels_font) 
    119  
    120                 glLineWidth(1) 
     105            glLineWidth(2) 
     106            for x, y, z, value, factor, color in self._arrow_lines: 
     107                self.renderer.draw_line( 
     108                    QVector3D(0, 0, 0), 
     109                    QVector3D(x*factor, y*factor, z*factor), 
     110                    color=color) 
     111                if not isinstance(value, str): 
     112                    value = ('%.3f' % (value if self.tooltipValue == 0 else factor)).rstrip('0').rstrip('.') 
     113                self.renderText( 
     114                    x * 1.1, y * 1.1, z * 1.1, 
     115                    value, 
     116                    font=self._theme.labels_font) 
     117            glLineWidth(1) 
    121118 
    122119        self._draw_value_lines() 
     
    385382            max_value = self.attr_values[attribute][1] 
    386383            factor = value / max_value 
     384            if self.data_domain[attribute].varType == Discrete: 
     385                value = get_variable_values_sorted(self.data_domain[attribute])[int(value)] 
    387386            if self.useDifferentColors and self.data_has_discrete_class: 
    388387                color = self.discrete_palette.getColor(example[self.data_class_index]) 
    389388            else: 
    390389                color = QColor(0, 0, 0) 
    391             self._arrow_lines.append([x*factor, y*factor, z*factor, value, factor, color]) 
     390            self._arrow_lines.append([x, y, z, value, factor, color]) 
    392391        self._mouseover_called = True 
    393392        self.update() 
Note: See TracChangeset for help on using the changeset viewer.