Loading openglcanvas.cpp +22 −20 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ OpenGLCanvas::OpenGLCanvas(QWidget *parent) : time_timer.setInterval(0); connect(&time_timer, SIGNAL(timeout()), this, SLOT(slotTimer())); time_start = time_time.time(); } void OpenGLCanvas::slotTimer(void) { Loading Loading @@ -108,10 +107,23 @@ void OpenGLCanvas::change_visualization(QString name){ } void OpenGLCanvas::load_image(const char *new_image){ const char * const progname=(char*)(PROGNAME); int textureSize=getTextureSize(progname,new_image); unsigned char * textureBytes=(unsigned char*)malloc(textureSize); int width,height; readTextureBytes(progname,new_image,textureBytes,&width,&height); glPixelStorei(GL_UNPACK_ALIGNMENT,1); GLuint tex; glGenTextures(1,&tex); glBindTexture(GL_TEXTURE_2D,tex); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexImage2D(GL_TEXTURE_2D,0, GL_RGB, width,height,0,GL_RGB,GL_UNSIGNED_BYTE,textureBytes); } void OpenGLCanvas::change_input_image(){ QString path = QFileDialog::getExistingDirectory(this,tr("Choose directory"),directory.path()); if(path.isNull()==false) directory.setPath(path); load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File")).toStdString().c_str()); updateGL(); } Loading @@ -137,27 +149,17 @@ void OpenGLCanvas::initializeGL(){ #endif fprintf(stderr,"progname=%s\n",progname); fprintf(stderr,"image=%s\n",input_image); // exit if the input file does not exist fprintf(stderr,"default image=%s\n",input_image); // what to do if the input file does not exist struct stat testbuf; if(stat(input_image,&testbuf)){ fprintf(stderr,"the file does not exist!\n"); fprintf(stderr,"the default image file does not exist!\n"); free(input_image); exit(-1); load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File")).toStdString().c_str()); }else{ load_image(input_image); } int textureSize = getTextureSize(progname,input_image); unsigned char * textureBytes = (unsigned char*)malloc(textureSize); int width, height; readTextureBytes(progname, input_image, textureBytes, &width, &height); glPixelStorei(GL_UNPACK_ALIGNMENT,1); GLuint tex; glGenTextures(1,&tex); glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D,0, GL_RGB, width,height,0,GL_RGB,GL_UNSIGNED_BYTE,textureBytes); // mesh resolution int m,n; m = n = 100; Loading openglcanvas.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ extern "C" { #include <GL/glext.h> #endif #include <QDir> #include <QFile> #include <QFileDialog> class OpenGLCanvas : public QGLWidget Loading @@ -43,6 +43,7 @@ public: explicit OpenGLCanvas(QWidget *parent = 0); protected: void load_image(const char *new_image); void initializeGL(); void resizeGL(int w, int h); void paintGL(); Loading Loading @@ -76,7 +77,6 @@ private: double center_phi; QString fov_scale_relation; QString visualization; QDir directory; Chronos time_time; QTimer time_timer; Loading panowindow1.h +0 −1 Original line number Diff line number Diff line Loading @@ -18,5 +18,4 @@ public: private: Ui::PanoWindow1 *ui; }; #endif // PANOWINDOW1_H panowindow1.ui +29 −6 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ <string>PanoWindow1</string> </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0" rowspan="10"> <item row="0" column="0" rowspan="12"> <widget class="OpenGLCanvas" name="GLCanvas" native="true"/> </item> <item row="0" column="1" colspan="2"> Loading Loading @@ -115,7 +115,7 @@ </property> </widget> </item> <item row="7" column="1"> <item row="8" column="1"> <widget class="QDoubleSpinBox" name="doubleSpinBox_3"> <property name="maximumSize"> <size> Loading @@ -134,7 +134,7 @@ </property> </widget> </item> <item row="7" column="2"> <item row="8" column="2"> <widget class="QDoubleSpinBox" name="doubleSpinBox_4"> <property name="maximumSize"> <size> Loading @@ -153,7 +153,14 @@ </property> </widget> </item> <item row="8" column="2"> <item row="9" column="1" colspan="2"> <widget class="QPushButton" name="chooseFile"> <property name="text"> <string>Input Image</string> </property> </widget> </item> <item row="10" column="2"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> Loading @@ -166,7 +173,7 @@ </property> </spacer> </item> <item row="9" column="1" colspan="2"> <item row="11" column="1" colspan="2"> <widget class="QPushButton" name="pushButton"> <property name="text"> <string>Close</string> Loading @@ -180,7 +187,7 @@ <customwidget> <class>OpenGLCanvas</class> <extends>QWidget</extends> <header>openglcanvas.h</header> <header location="global">openglcanvas.h</header> <container>1</container> <slots> <slot>change_fov(double)</slot> Loading Loading @@ -290,5 +297,21 @@ </hint> </hints> </connection> <connection> <sender>chooseFile</sender> <signal>clicked()</signal> <receiver>GLCanvas</receiver> <slot>change_input_image()</slot> <hints> <hint type="sourcelabel"> <x>566</x> <y>258</y> </hint> <hint type="destinationlabel"> <x>247</x> <y>249</y> </hint> </hints> </connection> </connections> </ui> Loading
openglcanvas.cpp +22 −20 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ OpenGLCanvas::OpenGLCanvas(QWidget *parent) : time_timer.setInterval(0); connect(&time_timer, SIGNAL(timeout()), this, SLOT(slotTimer())); time_start = time_time.time(); } void OpenGLCanvas::slotTimer(void) { Loading Loading @@ -108,10 +107,23 @@ void OpenGLCanvas::change_visualization(QString name){ } void OpenGLCanvas::load_image(const char *new_image){ const char * const progname=(char*)(PROGNAME); int textureSize=getTextureSize(progname,new_image); unsigned char * textureBytes=(unsigned char*)malloc(textureSize); int width,height; readTextureBytes(progname,new_image,textureBytes,&width,&height); glPixelStorei(GL_UNPACK_ALIGNMENT,1); GLuint tex; glGenTextures(1,&tex); glBindTexture(GL_TEXTURE_2D,tex); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexImage2D(GL_TEXTURE_2D,0, GL_RGB, width,height,0,GL_RGB,GL_UNSIGNED_BYTE,textureBytes); } void OpenGLCanvas::change_input_image(){ QString path = QFileDialog::getExistingDirectory(this,tr("Choose directory"),directory.path()); if(path.isNull()==false) directory.setPath(path); load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File")).toStdString().c_str()); updateGL(); } Loading @@ -137,27 +149,17 @@ void OpenGLCanvas::initializeGL(){ #endif fprintf(stderr,"progname=%s\n",progname); fprintf(stderr,"image=%s\n",input_image); // exit if the input file does not exist fprintf(stderr,"default image=%s\n",input_image); // what to do if the input file does not exist struct stat testbuf; if(stat(input_image,&testbuf)){ fprintf(stderr,"the file does not exist!\n"); fprintf(stderr,"the default image file does not exist!\n"); free(input_image); exit(-1); load_image(QFileDialog::getOpenFileName(this,tr("Choose Panorama File")).toStdString().c_str()); }else{ load_image(input_image); } int textureSize = getTextureSize(progname,input_image); unsigned char * textureBytes = (unsigned char*)malloc(textureSize); int width, height; readTextureBytes(progname, input_image, textureBytes, &width, &height); glPixelStorei(GL_UNPACK_ALIGNMENT,1); GLuint tex; glGenTextures(1,&tex); glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D,0, GL_RGB, width,height,0,GL_RGB,GL_UNSIGNED_BYTE,textureBytes); // mesh resolution int m,n; m = n = 100; Loading
openglcanvas.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ extern "C" { #include <GL/glext.h> #endif #include <QDir> #include <QFile> #include <QFileDialog> class OpenGLCanvas : public QGLWidget Loading @@ -43,6 +43,7 @@ public: explicit OpenGLCanvas(QWidget *parent = 0); protected: void load_image(const char *new_image); void initializeGL(); void resizeGL(int w, int h); void paintGL(); Loading Loading @@ -76,7 +77,6 @@ private: double center_phi; QString fov_scale_relation; QString visualization; QDir directory; Chronos time_time; QTimer time_timer; Loading
panowindow1.h +0 −1 Original line number Diff line number Diff line Loading @@ -18,5 +18,4 @@ public: private: Ui::PanoWindow1 *ui; }; #endif // PANOWINDOW1_H
panowindow1.ui +29 −6 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ <string>PanoWindow1</string> </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0" rowspan="10"> <item row="0" column="0" rowspan="12"> <widget class="OpenGLCanvas" name="GLCanvas" native="true"/> </item> <item row="0" column="1" colspan="2"> Loading Loading @@ -115,7 +115,7 @@ </property> </widget> </item> <item row="7" column="1"> <item row="8" column="1"> <widget class="QDoubleSpinBox" name="doubleSpinBox_3"> <property name="maximumSize"> <size> Loading @@ -134,7 +134,7 @@ </property> </widget> </item> <item row="7" column="2"> <item row="8" column="2"> <widget class="QDoubleSpinBox" name="doubleSpinBox_4"> <property name="maximumSize"> <size> Loading @@ -153,7 +153,14 @@ </property> </widget> </item> <item row="8" column="2"> <item row="9" column="1" colspan="2"> <widget class="QPushButton" name="chooseFile"> <property name="text"> <string>Input Image</string> </property> </widget> </item> <item row="10" column="2"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> Loading @@ -166,7 +173,7 @@ </property> </spacer> </item> <item row="9" column="1" colspan="2"> <item row="11" column="1" colspan="2"> <widget class="QPushButton" name="pushButton"> <property name="text"> <string>Close</string> Loading @@ -180,7 +187,7 @@ <customwidget> <class>OpenGLCanvas</class> <extends>QWidget</extends> <header>openglcanvas.h</header> <header location="global">openglcanvas.h</header> <container>1</container> <slots> <slot>change_fov(double)</slot> Loading Loading @@ -290,5 +297,21 @@ </hint> </hints> </connection> <connection> <sender>chooseFile</sender> <signal>clicked()</signal> <receiver>GLCanvas</receiver> <slot>change_input_image()</slot> <hints> <hint type="sourcelabel"> <x>566</x> <y>258</y> </hint> <hint type="destinationlabel"> <x>247</x> <y>249</y> </hint> </hints> </connection> </connections> </ui>