Changeset 8743:2e7c35754ea9 in orange


Ignore:
Timestamp:
08/23/11 16:30:06 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
a5e2e4139ac3d05480ff1848ceec89e1d614c0a1
Message:

Added center camera

Location:
orange/OrangeWidgets
Files:
3 edited

Legend:

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

    r8742 r8743  
    180180            box = OWGUI.widgetBox(smallWidget.widget, orientation = "horizontal") 
    181181            OWGUI.checkBox(box, self, 'graph.spaceBetweenCells', 'Show space between cells', callback = self.updateGraph) 
     182        else: 
     183            OWGUI.checkBox(box, self, 'graph.camera_in_center', 'Camera in center', callback = self.updateGraph, tooltip = "Look at the data from the center") 
    182184 
    183185        box = OWGUI.widgetBox(self.SettingsTab, "Colors", orientation = "horizontal") 
  • orange/OrangeWidgets/Visualize Qt/OWSphereviz3D.py

    r8742 r8743  
    3939 
    4040        self._point_width_to_symbol_scale = 1.5 
     41        self.camera_in_center = False 
    4142 
    4243        self.gui = OWPlotGUI(self) 
     
    164165            noperspective in vec3 dist; 
    165166 
     167            uniform bool invert_transparency; 
    166168            const vec4 wire_color = vec4(0.5, 0.5, 0.5, 0.5); 
    167169            const vec4 fill_color = vec4(1., 1., 1., 0.5); 
     
    171173                float d = min(dist[0], min(dist[1], dist[2])); 
    172174                gl_FragColor = mix(wire_color, fill_color, 1. - exp2(-1*d*d)); 
    173                 gl_FragColor.a = 1. - transparency - 0.6; 
     175                if (invert_transparency) 
     176                    gl_FragColor.a = transparency; 
     177                else 
     178                    gl_FragColor.a = 1. - transparency - 0.6; 
    174179            } 
    175180            ''' 
     
    288293            # look good with sphere) 
    289294            modelview = QMatrix4x4() 
    290             modelview.lookAt( 
    291                 QVector3D(self.camera[0]*self.camera_distance, 
    292                           self.camera[1]*self.camera_distance, 
    293                           self.camera[2]*self.camera_distance), 
    294                 QVector3D(0, 0, 0), 
    295                 QVector3D(0, 1, 0)) 
     295            if self.camera_in_center: 
     296                modelview.lookAt( 
     297                    QVector3D(0, 0, 0), 
     298                    QVector3D(self.camera[0]*self.camera_distance, 
     299                              self.camera[1]*self.camera_distance, 
     300                              self.camera[2]*self.camera_distance), 
     301                    QVector3D(0, 1, 0)) 
     302                projection = QMatrix4x4() 
     303                projection.perspective(90., float(self.width()) / self.height(), 
     304                                       self.perspective_near, self.perspective_far) 
     305                self.projection = projection 
     306            else: 
     307                modelview.lookAt( 
     308                    QVector3D(self.camera[0]*self.camera_distance, 
     309                              self.camera[1]*self.camera_distance, 
     310                              self.camera[2]*self.camera_distance), 
     311                    QVector3D(0, 0, 0), 
     312                    QVector3D(0, 1, 0)) 
    296313            self.modelview = modelview 
    297314            self.draw_sphere() 
     
    313330        self.sphere_shader.setUniformValue('modelview', self.modelview) 
    314331        self.sphere_shader.setUniformValue('cam_position', QVector3D(*self.camera)*self.camera_distance) 
     332        self.sphere_shader.setUniformValue('invert_transparency', self.camera_in_center) 
    315333        glBindVertexArray(self.sphere_vao_id) 
    316334 
     
    447465        pass 
    448466 
    449     # TODO: catch mouseEvents 
     467    def mouseMoveEvent(self, event): 
     468        self.invert_mouse_x = self.camera_in_center 
     469        OWPlot3D.mouseMoveEvent(self, event) 
    450470 
    451471class OWSphereviz3D(OWLinProjQt): 
  • orange/OrangeWidgets/plot/owplot3d.py

    r8742 r8743  
    366366        self.mouseover_callback = None 
    367367        self.mouse_pos = QPoint(0, 0) 
     368        self.invert_mouse_x = False 
    368369        self.before_draw_callback = None 
    369370        self.after_draw_callback = None 
     
    615616        if self.feedback_generated: 
    616617            self.symbol_program.bind() 
    617             self.symbol_program.setUniformValue('modelview', modelview) 
    618             self.symbol_program.setUniformValue('projection', projection) 
     618            self.symbol_program.setUniformValue('modelview', self.modelview) 
     619            self.symbol_program.setUniformValue('projection', self.projection) 
    619620            self.symbol_program.setUniformValue(self.symbol_program_use_2d_symbols, self.use_2d_symbols) 
    620621            self.symbol_program.setUniformValue(self.symbol_program_fade_outside,   self.fade_outside) 
     
    12421243        dy = pos.y() - self.mouse_pos.y() 
    12431244 
     1245        if self.invert_mouse_x: 
     1246            dx = -dx 
     1247 
    12441248        if self.state == PlotState.SELECTING and self.new_selection != None: 
    12451249            self.new_selection.current_vertex = [pos.x(), pos.y()] 
Note: See TracChangeset for help on using the changeset viewer.