From a8d3155ae2d0eae8bc3d50625a1402c2ca96a5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Pe=C3=B1aranda?= Date: Tue, 21 Jan 2014 12:11:50 -0200 Subject: [PATCH] added controls for Zorin-Barr transformation Only when using the compilation flag PANO_EXTENDED_CONTROLS. It is not yet working, it remains to implement in the vertex shader. --- extended_controls.ui | 606 +++++++++++++++++++++++++++++++++++++++++++ openglcanvas.cpp | 12 + openglcanvas.h | 2 + pano_interface_1.pro | 6 +- panowindow1.cpp | 4 + 5 files changed, 629 insertions(+), 1 deletion(-) create mode 100644 extended_controls.ui diff --git a/extended_controls.ui b/extended_controls.ui new file mode 100644 index 0000000..bf63cd5 --- /dev/null +++ b/extended_controls.ui @@ -0,0 +1,606 @@ + + + PanoWindow1 + + + + 0 + 0 + 1278 + 691 + + + + Panoramic + + + + + + + + + + + Close + + + + + + + Shrink all + + + + + + + 1 + + + 359 + + + 60 + + + Qt::Vertical + + + QSlider::NoTicks + + + 10 + + + + + + + 1 + + + 359 + + + 60 + + + Qt::Vertical + + + + + + + Shrink computation + + + + + + + FOV + + + + + + + Visualization + + + + + + + FOV max + + + + + + + false + + + 0 + + + + Simple + + + + + Square Root + + + + + Linear + + + + + Square Power + + + + + Cubic Power + + + + + Logarithm + + + + + + + + QFrame::NoFrame + + + 3 + + + QLCDNumber::Flat + + + + + + + QFrame::NoFrame + + + 3 + + + QLCDNumber::Flat + + + + + + + Input Image + + + + + + + true + + + + 0 + 0 + + + + Auto FOV max + + + + + + + + Moebius + + + + + 3D Sphere + + + + + Equi-Rectangular + + + + + Perspective + + + + + Stereographic + + + + + Orthographic + + + + + Mercator + + + + + Zorin-Barr + + + + + + + + + 0 + 0 + + + + 1 + + + 1000 + + + 100 + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + + + + Re-center + + + + + + + + 0 + 0 + + + + 1 + + + 1000 + + + 100 + + + Qt::Horizontal + + + + + + + + + OpenGLCanvas + QWidget +
openglcanvas.h
+ 1 + + fov_changed(int) + max_fov_changed(int) + change_fov(double) + change_scale(double) + change_center_lambda(double) + change_center_phi(double) + change_fov_scale_relation(QString) + change_visualization(QString) + change_input_image() + change_fov_max(int) + change_fov(int) + re_center() + automaxbutton(bool) + shrinkallbutton(bool) + change_zb_lambda(int) + change_zb_R(int) + +
+
+ + + + pushButton + clicked() + PanoWindow1 + close() + + + 640 + 490 + + + 629 + 364 + + + + + comboBox + activated(QString) + GLCanvas + change_fov_scale_relation(QString) + + + 603 + 50 + + + 492 + 77 + + + + + comboBox_2 + activated(QString) + GLCanvas + change_visualization(QString) + + + 554 + 106 + + + 492 + 132 + + + + + chooseFile + clicked() + GLCanvas + change_input_image() + + + 640 + 457 + + + 247 + 249 + + + + + changefov + sliderMoved(int) + GLCanvas + change_fov(int) + + + 607 + 352 + + + 250 + 249 + + + + + GLCanvas + fov_changed(int) + changefov + setValue(int) + + + 250 + 249 + + + 607 + 324 + + + + + reCenter + clicked() + GLCanvas + re_center() + + + 640 + 424 + + + 250 + 249 + + + + + changefovmax + sliderMoved(int) + GLCanvas + change_fov_max(int) + + + 546 + 391 + + + 250 + 249 + + + + + GLCanvas + max_fov_changed(int) + changefovmax + setValue(int) + + + 250 + 249 + + + 532 + 262 + + + + + changefov + valueChanged(int) + fovled + display(int) + + + 606 + 245 + + + 629 + 236 + + + + + changefovmax + valueChanged(int) + fovmaxled + display(int) + + + 532 + 248 + + + 555 + 236 + + + + + GLCanvas + fov_changed(int) + fovled + display(int) + + + 250 + 249 + + + 629 + 236 + + + + + GLCanvas + max_fov_changed(int) + fovmaxled + display(int) + + + 250 + 249 + + + 555 + 236 + + + + + automax + toggled(bool) + GLCanvas + automaxbutton(bool) + + + 504 + 174 + + + 454 + 172 + + + + + shrinkAll + toggled(bool) + GLCanvas + shrinkallbutton(bool) + + + 540 + 185 + + + 247 + 249 + + + + + changezblambda + sliderMoved(int) + GLCanvas + change_zb_lambda(int) + + + 1197 + 165 + + + 564 + 345 + + + + + changezbR + sliderMoved(int) + GLCanvas + change_zb_R(int) + + + 1197 + 200 + + + 564 + 345 + + + + +
diff --git a/openglcanvas.cpp b/openglcanvas.cpp index 47d5a0e..a9a0ed9 100644 --- a/openglcanvas.cpp +++ b/openglcanvas.cpp @@ -96,6 +96,18 @@ void OpenGLCanvas::change_fov_max(int new_fov_max){ updateGL(); } +void OpenGLCanvas::change_zb_lambda(int new_zb_lambda){ + zblambda=(float)new_zb_lambda/1000; + fprintf(stderr,"zb_lambda=%f\n",zblambda); + updateGL(); +} + +void OpenGLCanvas::change_zb_R(int new_zb_R){ + zbR=(float)new_zb_R/1000; + fprintf(stderr,"zb_R=%f\n",zbR); + updateGL(); +} + //void OpenGLCanvas::change_scale(double s){ // if (scale!=s && s>=0.0 && s<=1.0) scale = s; diff --git a/openglcanvas.h b/openglcanvas.h index f3d7b56..cf58a68 100644 --- a/openglcanvas.h +++ b/openglcanvas.h @@ -53,6 +53,8 @@ public slots: void change_fov(double f); void change_fov(int new_fov); void change_fov_max(int new_fov_max); + void change_zb_lambda(int new_zb_lambda); + void change_zb_R(int new_zb_R); // void change_scale(double s); void change_center_lambda(double lambda); void change_center_phi(double phi); diff --git a/pano_interface_1.pro b/pano_interface_1.pro index 73d7999..9d2cbd0 100644 --- a/pano_interface_1.pro +++ b/pano_interface_1.pro @@ -6,6 +6,9 @@ QT += core gui opengl +# uncomment to show in the main window controls for other methods +DEFINES += PANO_EXTENDED_CONTROLS + # compiler specific settings darwin-g++*|macx-g++*|linux-g++*|win32-g++*|cygwin-g++* { QMAKE_CXXFLAGS += -ansi -pedantic -Wno-long-long @@ -75,7 +78,8 @@ HEADERS += panowindow1.h \ image_read.h \ files.h -FORMS += panowindow1.ui +FORMS += panowindow1.ui \ + extended_controls.ui OTHER_FILES += \ shaders/fragment_shader.frag \ diff --git a/panowindow1.cpp b/panowindow1.cpp index 0b4f5e7..b3b7889 100644 --- a/panowindow1.cpp +++ b/panowindow1.cpp @@ -1,5 +1,9 @@ #include "panowindow1.h" +#ifdef PANO_EXTENDED_CONTROLS +#include "ui_extended_controls.h" +#else #include "ui_panowindow1.h" +#endif PanoWindow1::PanoWindow1(QWidget *parent) : QWidget(parent), -- GitLab