Changeset 8749:4ccc743a8f86 in orange


Ignore:
Timestamp:
08/23/11 21:41:40 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
d3ea776da22d863495864580297b001c0b5480e7
Message:

Scaled down anchor cones; added anchor arrows to LinProj3D; enabled normalization for Sphereviz

Location:
orange/OrangeWidgets/Visualize Qt
Files:
3 edited

Legend:

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

    r8748 r8749  
    3636        self.makeCurrent() 
    3737        self.state = PlotState.IDLE # Override for now, apparently this is modified by OWPlotGUI 
     38        self.before_draw_callback = lambda: self.before_draw() 
    3839 
    3940        cone_data = parse_obj('cone_hq.obj') 
     
    7879                gl_Position = projection * modelview * vec4(position, 1.); 
    7980                float diffuse = clamp(dot(light_direction, normalize((modelview * vec4(normal, 0.)).xyz)), 0., 1.); 
    80                 color = vec4(vec3(0., 1., 0.) * diffuse, 1.); 
     81                color = vec4(vec3(1., 1., 1.) * diffuse + 0.1, 1.); 
    8182            } 
    8283            ''' 
     
    100101        if not self.cone_shader.link(): 
    101102            print('Failed to link cone shader!') 
     103 
     104    def before_draw(self): 
     105        modelview = QMatrix4x4() 
     106        modelview.lookAt( 
     107            QVector3D(self.camera[0]*self.camera_distance, 
     108                      self.camera[1]*self.camera_distance, 
     109                      self.camera[2]*self.camera_distance), 
     110            QVector3D(0, 0, 0), 
     111            QVector3D(0, 1, 0)) 
     112        self.modelview = modelview 
     113 
     114        glEnable(GL_DEPTH_TEST) 
     115        glDisable(GL_BLEND) 
     116        glMatrixMode(GL_PROJECTION) 
     117        glLoadIdentity() 
     118        glMultMatrixd(numpy.array(self.projection.data(), dtype=float)) 
     119        glMatrixMode(GL_MODELVIEW) 
     120        glLoadIdentity() 
     121        glMultMatrixd(numpy.array(self.modelview.data(), dtype=float)) 
     122 
     123        if self.showAnchors: 
     124            for anchor in self.anchor_data: 
     125                x, y, z, label = anchor 
     126 
     127                direction = QVector3D(x, y, z) 
     128                up = QVector3D(0, 1, 0) 
     129                right = QVector3D.crossProduct(direction, up).normalized() 
     130                up = QVector3D.crossProduct(right, direction) 
     131                rotation = QMatrix4x4() 
     132                rotation.setColumn(0, QVector4D(right, 0)) 
     133                rotation.setColumn(1, QVector4D(up, 0)) 
     134                rotation.setColumn(2, QVector4D(direction, 0)) 
     135 
     136                self.cone_shader.bind() 
     137                self.cone_shader.setUniformValue('projection', self.projection) 
     138                modelview = QMatrix4x4(self.modelview) 
     139                modelview.translate(x, y, z) 
     140                modelview = modelview * rotation 
     141                modelview.rotate(-90, 1, 0, 0) 
     142                modelview.translate(0, -0.02, 0) 
     143                modelview.scale(-0.02, -0.02, -0.02) 
     144                self.cone_shader.setUniformValue('modelview', modelview) 
     145 
     146                glBindVertexArray(self.cone_vao_id) 
     147                glDrawArrays(GL_TRIANGLES, 0, self.cone_vao_id.num_vertices) 
     148                glBindVertexArray(0) 
     149 
     150                self.cone_shader.release() 
     151 
     152                glColor4f(0, 0, 0, 1) 
     153                self.renderText(x*1.2, y*1.2, z*1.2, label) 
     154 
     155                glBegin(GL_LINES) 
     156                glVertex3f(0, 0, 0) 
     157                glVertex3f(x, y, z) 
     158                glEnd() 
    102159 
    103160    def updateData(self, labels=None, setAnchors=0, **args): 
  • orange/OrangeWidgets/Visualize Qt/OWLinProjQt.py

    r8743 r8749  
    103103        self.optimizationDlg = self.vizrank  # for backward compatibility 
    104104 
    105         self.graph.normalizeExamples = ("radviz" in name.lower())       # ignore settings!! if we have radviz then normalize, otherwise not. 
     105        self.graph.normalizeExamples = ("radviz" in name.lower() or "sphereviz" in name.lower())       # ignore settings!! if we have radviz then normalize, otherwise not. 
    106106 
    107107        #GUI 
  • orange/OrangeWidgets/Visualize Qt/OWSphereviz3D.py

    r8748 r8749  
    189189                modelview = modelview * rotation 
    190190                modelview.rotate(-90, 1, 0, 0) 
    191                 modelview.translate(0, -0.03, 0) 
    192                 modelview.scale(-0.03, -0.03, -0.03) 
     191                modelview.translate(0, -0.02, 0) 
     192                modelview.scale(-0.02, -0.02, -0.02) 
    193193                self.cone_shader.setUniformValue('modelview', modelview) 
    194194 
Note: See TracChangeset for help on using the changeset viewer.