Ignore:
Timestamp:
08/09/11 17:23:41 (13 years ago)
Author:
lyard
Message:
added coloured selected patch and a first preliminary text drawing
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/gui/QCameraWidget.cc

    r11861 r11865  
    66    {
    77        fWhite = 0;
     8        fWhitePatch = pixelsPatch[0];
    89        fBold.resize(1440);
    910        fEnable.resize(1440);
     
    2930        glColor3f(1,1,1);
    3031        drawHexagon(fWhite, false);
     32
     33        DrawCameraText();
    3134    }
    3235    void QCameraWidget::drawCamera(bool alsoWire)
     
    4952        }
    5053    }
     54    void QCameraWidget::drawPatches()
     55    {
     56        glLineWidth(2.0f);
     57        glColor3f(patchColour[0],patchColour[1],patchColour[2]);//0.5f, 0.5f, 0.3f);
     58        glBegin(GL_LINES);
     59//        for (int i=0;i<NTMARK;i++)
     60//        {
     61            for (unsigned int j=0;j<patchesIndices[fWhitePatch].size();j++)
     62            {
     63                glVertex2fv(verticesList[patchesIndices[fWhitePatch][j].first]);
     64                glVertex2fv(verticesList[patchesIndices[fWhitePatch][j].second]);
     65            }
     66//        }
     67        glEnd();
     68    }
    5169    void QCameraWidget::Reset()
    5270    {
     
    5876        if (face != -1) {
    5977            fWhite = face;
     78            fWhitePatch = pixelsPatch[fWhite];
     79            CalculatePatchColor();
    6080            emit signalCurrentPixel(face);
    6181            updateGL();
     
    7595        if (face != -1) {
    7696            fWhite = face;
     97            fWhitePatch = pixelsPatch[fWhite];
     98            CalculatePatchColor();
    7799            emit signalPixelDoubleClick(face);
    78100            updateGL();
     
    86108     {
    87109         fWhite = idx;
     110         fWhitePatch = pixelsPatch[fWhite];
     111         CalculatePatchColor();
    88112     }
    89113     void QCameraWidget::SetEnable(int idx, bool b)
     
    163187               index--;
    164188               if (index < 0) index = 0;
    165 //               if (index > 3) index = 3;
    166189               float weight0 = (color-ss[index]) / (ss[index+1]-ss[index]);
    167190               if (weight0 > 1.0f) weight0 = 1.0f;
     
    172195               pixelsColor[i][2] = weight1*bb[index] + weight0*bb[index+1];
    173196          }
     197          CalculatePatchColor();
    174198          pixelColorUpToDate = true;
     199     }
     200     void QCameraWidget::CalculatePatchColor()
     201     {
     202         //calculate the patch contour color. let's use the anti-colour of the pixels
     203         GLfloat averagePatchColour[3] = {0.0f,0.0f,0.0f};
     204         for (int i=0;i<9;i++)
     205             for (int j=0;j<3;j++)
     206                 averagePatchColour[j] += pixelsColor[softwareMapping[patches[fWhitePatch][i]]][j];
     207         for (int j=0;j<3;j++)
     208             averagePatchColour[j] /= 9;
     209         for (int j=0;j<3;j++)
     210             patchColour[j] = 1.0f - averagePatchColour[j];
    175211     }
    176212     void QCameraWidget::SetData(const valarray<double> &ddata)
     
    183219             updateGL();
    184220     }
     221     void QCameraWidget::DrawCameraText()
     222     {
     223         glPushMatrix();
     224         glLoadIdentity();
     225         cout << width() << " " << height() << endl;
     226         int textSize = (int)(height()*14/600);
     227         setFont(QFont("Times", textSize));
     228         qglColor(QColor(255,223,127));
     229         float shiftx = 0.01f;//0.55f;
     230         float shifty = 0.01f;//0.65f;
     231         renderText(-shownSizex/2.f + shiftx, -shownSizey/2.f + shifty, 0.f, QString("This is a first text that is scaled according to the drawing size"));
     232         glPopMatrix();
     233     }
Note: See TracChangeset for help on using the changeset viewer.