Changeset 11865


Ignore:
Timestamp:
08/09/11 17:23:41 (13 years ago)
Author:
lyard
Message:
added coloured selected patch and a first preliminary text drawing
Location:
trunk/FACT++/gui
Files:
4 edited

Legend:

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

    r11861 r11865  
    8989            l++;
    9090        }
     91
     92        //now construct the correspondance between pixels and patches
     93        for (int i=0;i<NTMARK;i++)
     94            for (int j=0;j<9;j++)
     95                pixelsPatch[softwareMapping[patches[i][j]]] = i;
    9196
    9297        for (int i=0;i<1440;i++)
     
    209214    void BasicGlCamera::drawPatches()
    210215    {
    211 //        cout << "*************************DRAWING PATCHES**************************" << endl;
    212 //        for (int i=0;i<NTMARK;i++)
    213 //        {
    214 //            cout << ".....................patch " << i << endl;
    215 //            for (unsigned int j=0;patchesIndices[i].size();j++)
    216 //            {
    217 //                cout << patchesIndices[i][j].first << " and " << patchesIndices[i][j].second << endl;
    218 //            }
    219 //        }
    220216        glLineWidth(2.0f);
    221217        float backupRadius = hexRadius;
     
    491487            for (int j=0;j<9;j++)//for all cells of the current patch
    492488            {
     489                if (softwareMapping[patches[i][j]] >= ACTUAL_NUM_PIXELS)
     490                    continue;
    493491                for (int k=0;k<6;k++)//for all sides of the current cell
    494492                {
  • trunk/FACT++/gui/BasicGlCamera.h

    r11861 r11865  
    5151    virtual void mouseDoubleClickEvent(QMouseEvent *event);
    5252    virtual void drawCamera(bool alsoWire);
    53     void drawPatches();
     53    virtual void drawPatches();
    5454    int PixelAtPosition(const QPoint &pos);
    5555    void drawHexagon(int index, bool solid);
     
    6868    vector<edge> patchesIndices[160];
    6969    int verticesIndices[NPIX][6];
     70    int pixelsPatch[NPIX];
     71    int softwareMapping[NPIX];
     72    int patches[160][9];
     73    float shownSizex;
     74    float shownSizey;
    7075private:
    7176    void updateNeighbors(int currentPixel);
     
    7883    float viewSize;
    7984    float pixelSize;
    80     float shownSizex;
    81     float shownSizey;
    8285    GLfloat pixelsCoords[MAX_NUM_PIXELS][3];
    8386    PixelsNeighbors neighbors[MAX_NUM_PIXELS];
     
    8588
    8689    int hardwareMapping[NPIX];
    87     int softwareMapping[NPIX];
    88     int patches[160][9];
    8990    int numVertices;
    9091
  • 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     }
  • trunk/FACT++/gui/QCameraWidget.h

    r11828 r11865  
    2020
    2121    int fWhite;
     22    int fWhitePatch;
    2223
    2324    int64_t fMin;
     
    2728
    2829    bool pixelColorUpToDate;
     30
     31    GLfloat patchColour[3];
    2932
    3033public:
     
    3639    void Reset();
    3740    void drawCamera(bool alsoWire);
     41    void drawPatches();
    3842     void SetBold(int idx);
    3943     void SetWhite(int idx);
     
    5761private:
    5862     void CalculatePixelsColor();
     63     void CalculatePatchColor();
     64     void DrawCameraText();
    5965};
    6066
Note: See TracChangeset for help on using the changeset viewer.