Commit 97f1e67e authored by Luis Penaranda's avatar Luis Penaranda
Browse files

now the controls for the ZB transformation work

parent a8d3155a
Loading
Loading
Loading
Loading
+204 −148
Original line number Diff line number Diff line
@@ -18,88 +18,99 @@
    <normaloff/>
   </iconset>
  </property>
  <layout class="QGridLayout" name="gridLayout">
   <item row="23" column="1" colspan="2">
    <widget class="QPushButton" name="pushButton">
     <property name="text">
      <string>Close</string>
  <widget class="OpenGLCanvas" name="GLCanvas" native="true">
   <property name="geometry">
    <rect>
     <x>9</x>
     <y>9</y>
     <width>1110</width>
     <height>673</height>
    </rect>
   </property>
   <property name="sizePolicy">
    <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="baseSize">
    <size>
     <width>0</width>
     <height>0</height>
    </size>
   </property>
  </widget>
   </item>
   <item row="16" column="1">
    <widget class="QCheckBox" name="shrinkAll">
  <widget class="QWidget" name="layoutWidget">
   <property name="geometry">
    <rect>
     <x>1120</x>
     <y>9</y>
     <width>150</width>
     <height>671</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_4">
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
      <item>
       <widget class="QLabel" name="label_3">
        <property name="text">
      <string>Shrink all</string>
         <string>Visualization</string>
        </property>
       </widget>
      </item>
   <item row="20" column="1" alignment="Qt::AlignHCenter">
    <widget class="QSlider" name="changefovmax">
     <property name="minimum">
      <number>1</number>
     </property>
     <property name="maximum">
      <number>359</number>
     </property>
     <property name="sliderPosition">
      <number>60</number>
     </property>
     <property name="orientation">
      <enum>Qt::Vertical</enum>
     </property>
     <property name="tickPosition">
      <enum>QSlider::NoTicks</enum>
     </property>
     <property name="tickInterval">
      <number>10</number>
      <item>
       <widget class="QComboBox" name="comboBox_2">
        <item>
         <property name="text">
          <string>Moebius</string>
         </property>
    </widget>
        </item>
   <item row="20" column="2" alignment="Qt::AlignHCenter">
    <widget class="QSlider" name="changefov">
     <property name="minimum">
      <number>1</number>
        <item>
         <property name="text">
          <string>3D Sphere</string>
         </property>
     <property name="maximum">
      <number>359</number>
        </item>
        <item>
         <property name="text">
          <string>Equi-Rectangular</string>
         </property>
     <property name="value">
      <number>60</number>
        </item>
        <item>
         <property name="text">
          <string>Perspective</string>
         </property>
     <property name="orientation">
      <enum>Qt::Vertical</enum>
        </item>
        <item>
         <property name="text">
          <string>Stereographic</string>
         </property>
    </widget>
        </item>
   <item row="3" column="1" colspan="2">
    <widget class="QLabel" name="label">
        <item>
         <property name="text">
      <string>Shrink computation</string>
          <string>Orthographic</string>
         </property>
    </widget>
        </item>
   <item row="18" column="2" alignment="Qt::AlignHCenter">
    <widget class="QLabel" name="label_6">
        <item>
         <property name="text">
      <string>FOV</string>
          <string>Mercator</string>
         </property>
    </widget>
        </item>
   <item row="0" column="1" colspan="2">
    <widget class="QLabel" name="label_3">
        <item>
         <property name="text">
      <string>Visualization</string>
          <string>Zorin-Barr</string>
         </property>
        </item>
       </widget>
      </item>
   <item row="18" column="1">
    <widget class="QLabel" name="label_5">
      <item>
       <widget class="QLabel" name="label">
        <property name="text">
      <string>FOV max</string>
         <string>Shrink computation</string>
        </property>
       </widget>
      </item>
   <item row="6" column="1" colspan="2">
      <item>
       <widget class="QComboBox" name="comboBox">
        <property name="editable">
         <bool>false</bool>
@@ -139,40 +150,86 @@
        </item>
       </widget>
      </item>
   <item row="19" column="2" alignment="Qt::AlignHCenter">
    <widget class="QLCDNumber" name="fovled">
     <property name="frameShape">
      <enum>QFrame::NoFrame</enum>
     </layout>
    </item>
    <item>
     <layout class="QFormLayout" name="formLayout">
      <item row="0" column="0">
       <widget class="QSlider" name="changezblambda">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
     <property name="numDigits">
      <number>3</number>
        <property name="minimum">
         <number>1</number>
        </property>
     <property name="segmentStyle">
      <enum>QLCDNumber::Flat</enum>
        <property name="maximum">
         <number>1000</number>
        </property>
        <property name="pageStep">
         <number>100</number>
        </property>
        <property name="value">
         <number>100</number>
        </property>
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
       </widget>
      </item>
   <item row="19" column="1" alignment="Qt::AlignHCenter">
    <widget class="QLCDNumber" name="fovmaxled">
     <property name="frameShape">
      <enum>QFrame::NoFrame</enum>
      <item row="0" column="1">
       <widget class="QLabel" name="label_2">
        <property name="text">
         <string>lambda</string>
        </property>
     <property name="numDigits">
      <number>3</number>
       </widget>
      </item>
      <item row="1" column="0">
       <widget class="QSlider" name="changezbR">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
     <property name="segmentStyle">
      <enum>QLCDNumber::Flat</enum>
        <property name="minimum">
         <number>1</number>
        </property>
        <property name="maximum">
         <number>1000</number>
        </property>
        <property name="pageStep">
         <number>100</number>
        </property>
        <property name="value">
         <number>100</number>
        </property>
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
       </widget>
      </item>
   <item row="22" column="1" colspan="2">
    <widget class="QPushButton" name="chooseFile">
      <item row="1" column="1">
       <widget class="QLabel" name="label_4">
        <property name="text">
      <string>Input Image</string>
         <string>R</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_3">
      <item>
       <widget class="QCheckBox" name="shrinkAll">
        <property name="text">
         <string>Shrink all</string>
        </property>
       </widget>
      </item>
   <item row="17" column="1" colspan="2">
      <item>
       <widget class="QCheckBox" name="automax">
        <property name="enabled">
         <bool>true</bool>
@@ -188,118 +245,117 @@
        </property>
       </widget>
      </item>
   <item row="1" column="1" colspan="2">
    <widget class="QComboBox" name="comboBox_2">
     <item>
      <property name="text">
       <string>Moebius</string>
      </property>
     </layout>
    </item>
    <item>
     <layout class="QGridLayout" name="gridLayout">
      <item row="0" column="1">
       <widget class="QLabel" name="label_6">
        <property name="text">
       <string>3D Sphere</string>
         <string>FOV</string>
        </property>
       </widget>
      </item>
     <item>
      <property name="text">
       <string>Equi-Rectangular</string>
      <item row="1" column="0">
       <widget class="QLCDNumber" name="fovmaxled">
        <property name="frameShape">
         <enum>QFrame::NoFrame</enum>
        </property>
     </item>
     <item>
      <property name="text">
       <string>Perspective</string>
        <property name="numDigits">
         <number>3</number>
        </property>
     </item>
     <item>
      <property name="text">
       <string>Stereographic</string>
        <property name="segmentStyle">
         <enum>QLCDNumber::Flat</enum>
        </property>
       </widget>
      </item>
     <item>
      <property name="text">
       <string>Orthographic</string>
      <item row="2" column="1" alignment="Qt::AlignHCenter">
       <widget class="QSlider" name="changefov">
        <property name="minimum">
         <number>1</number>
        </property>
     </item>
     <item>
      <property name="text">
       <string>Mercator</string>
        <property name="maximum">
         <number>359</number>
        </property>
     </item>
     <item>
      <property name="text">
       <string>Zorin-Barr</string>
        <property name="value">
         <number>60</number>
        </property>
        <property name="orientation">
         <enum>Qt::Vertical</enum>
        </property>
     </item>
       </widget>
      </item>
   <item row="9" column="1" colspan="2">
    <widget class="QSlider" name="changezblambda">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
      <item row="1" column="1">
       <widget class="QLCDNumber" name="fovled">
        <property name="frameShape">
         <enum>QFrame::NoFrame</enum>
        </property>
        <property name="numDigits">
         <number>3</number>
        </property>
        <property name="segmentStyle">
         <enum>QLCDNumber::Flat</enum>
        </property>
       </widget>
      </item>
      <item row="2" column="0" alignment="Qt::AlignHCenter">
       <widget class="QSlider" name="changefovmax">
        <property name="minimum">
         <number>1</number>
        </property>
        <property name="maximum">
      <number>1000</number>
         <number>359</number>
        </property>
     <property name="pageStep">
      <number>100</number>
        <property name="sliderPosition">
         <number>60</number>
        </property>
        <property name="orientation">
      <enum>Qt::Horizontal</enum>
         <enum>Qt::Vertical</enum>
        </property>
        <property name="tickPosition">
         <enum>QSlider::NoTicks</enum>
        </property>
        <property name="tickInterval">
         <number>10</number>
        </property>
       </widget>
      </item>
   <item row="0" column="0" rowspan="24">
    <widget class="OpenGLCanvas" name="GLCanvas" native="true">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <property name="baseSize">
      <size>
       <width>0</width>
       <height>0</height>
      </size>
      <item row="0" column="0">
       <widget class="QLabel" name="label_5">
        <property name="text">
         <string>FOV max</string>
        </property>
       </widget>
      </item>
   <item row="21" column="1" colspan="2">
     </layout>
    </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout">
      <item>
       <widget class="QPushButton" name="reCenter">
        <property name="text">
         <string>Re-center</string>
        </property>
       </widget>
      </item>
   <item row="10" column="1" colspan="2">
    <widget class="QSlider" name="changezbR">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <property name="minimum">
      <number>1</number>
     </property>
     <property name="maximum">
      <number>1000</number>
     </property>
     <property name="pageStep">
      <number>100</number>
      <item>
       <widget class="QPushButton" name="chooseFile">
        <property name="text">
         <string>Input Image</string>
        </property>
     <property name="orientation">
      <enum>Qt::Horizontal</enum>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="pushButton">
        <property name="text">
         <string>Close</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <customwidgets>
+13 −8
Original line number Diff line number Diff line
@@ -28,6 +28,15 @@
//#define CONST_PI_F      (0x1.921fb6p+1f)
//#define CONST_PI_2_F    (0x1.921fb6p+0f)

// These definitions specify which attributes should be used to store some
// parameters passed to the vertex shader. Nvidia hardware
// only leaves attributes 1 and 7 unreserved; attributes 8 to 15 are
// reserved for textures.
// TODO: we use attributes 14 and 15, which work for Nvidia; we need to
// test with other hardware.
#define ZBL_ATTR 14
#define ZBR_ATTR 15

OpenGLCanvas::OpenGLCanvas(QWidget *parent) :
    QGLWidget(parent)
{
@@ -99,12 +108,14 @@ void OpenGLCanvas::change_fov_max(int new_fov_max){
void OpenGLCanvas::change_zb_lambda(int new_zb_lambda){
    zblambda=(float)new_zb_lambda/1000;
    fprintf(stderr,"zb_lambda=%f\n",zblambda);
    glVertexAttrib1f(ZBL_ATTR,zblambda);
    updateGL();
}

void OpenGLCanvas::change_zb_R(int new_zb_R){
    zbR=(float)new_zb_R/1000;
    zbR=(float)new_zb_R/100;
    fprintf(stderr,"zb_R=%f\n",zbR);
    glVertexAttrib1f(ZBR_ATTR,zbR);
    updateGL();
}

@@ -728,13 +739,7 @@ void OpenGLCanvas::setShaders() {

    GLuint p = glCreateProgram();

    // Bind attributes zblambda and zbR to the vertex shader. Nvidia hardware
    // only leaves attributes 1 and 7 unreserved; attributes 8 to 15 are
    // reserved for textures.
    // TODO: we use attributes 14 and 15, which work for Nvidia; we need to
    // test with other hardware.
#define ZBL_ATTR 14
#define ZBR_ATTR 15
    // Bind attributes zblambda and zbR to the vertex shader.
    glVertexAttrib1f(ZBL_ATTR,zblambda);
    glBindAttribLocation(p,ZBL_ATTR,"zblambda");
    glVertexAttrib1f(ZBR_ATTR,zbR);
+198 −104

File changed.

Preview size limit exceeded, changes collapsed.