Commit b9a7cf0f authored by Luis Peñaranda's avatar Luis Peñaranda
Browse files

move image with the mouse

parent 5e76ac41
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -446,7 +446,9 @@ int OpenGLCanvas::getTextureSize(const char * const progname, const char * textu
    pnm_readpaminit(in_file,&inpam,sizeof(struct pam));
#endif

    int size = inpam.width*inpam.height*inpam.depth*inpam.bytes_per_sample;
    image_size_x=inpam.width;
    image_size_y=inpam.height;
    int size = image_size_x*image_size_y*inpam.depth*inpam.bytes_per_sample;
    pm_close(in_file);

    //fprintf(stderr,"size=%d\n",size);
@@ -590,6 +592,22 @@ void OpenGLCanvas::setShaders() {

}

void OpenGLCanvas::mousePressEvent(QMouseEvent *event){
    lastPos=event->pos();
    //fprintf(stderr,"mouse click\n");
}

void OpenGLCanvas::mouseMoveEvent(QMouseEvent *event){
    // scroll with the left button
    if(event->buttons()==Qt::LeftButton){
        // compute the delta and move the image
        center_lambda+=(event->x()-lastPos.x())*3.1415926f/image_size_x;
        center_phi+=(event->y()-lastPos.y())*3.1415926f/image_size_y;
        lastPos=event->pos();
        updateGL();
    }
}

void OpenGLCanvas::paintGL(){

    float fov_rads = (fov/180.f)*1.5708f;
+8 −0
Original line number Diff line number Diff line
@@ -55,6 +55,8 @@ protected:
    void readTextureBytes(const char * const progname, const char * texturePath,unsigned char * textureBytes,int * outImageWidth, int * outImageHeight);
    char *textFileRead(char *fn);
    void setShaders();
    void mousePressEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);

signals:
    void fps(QString newFPS);
@@ -93,6 +95,12 @@ private:
    // options set in the rc file
    char* shader_dir;
    char* input_image_file;

    // input image size (determined automatically)
    int image_size_x;
    int image_size_y;

    QPoint lastPos; // mouse click position
};

#endif // OPENGLCANVAS_H