Ignore:
Timestamp:
11/04/11 23:59:08 (13 years ago)
Author:
lyard
Message:
fixed various things with the viewer
File:
1 edited

Legend:

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

    r12373 r12390  
    358358    if (!nRoi)
    359359        return;
    360 
    361360    float xZoom, yZoom;
    362361    xZoom = yZoom = 1.0f;
     
    387386
    388387    const int hw = hardwareMapping[selectedPixel];
    389 
     388    const PixelMapEntry& mapEntry = fPixelMap.index(selectedPixel);
     389    const int pixelIdInPatch = mapEntry.pixel();
     390    const int patchId = mapEntry.patch();
     391
     392    if (selectedPixel != -1)
     393    {
    390394    for (int i=0;i<nRoi-1;i++)
    391395    {
    392 #ifdef LOAD_RAW
    393         glVertex2f(bboxMin[0] + xRange*i/(float)nRoi,
    394                    bboxMin[1] + yRange*(eventsData[eventNum][selectedPixel][i]+plusMe) /divideMe);
    395         glVertex2f(bboxMin[0] + xRange*(i+1)/(float)nRoi,
    396                    bboxMin[1] + yRange*(eventsData[eventNum][selectedPixel][i+1]+plusMe) /divideMe);
    397 #else
    398 
    399 
    400396        float d1 = eventData[nRoi*hw + i]+plusMe;
    401397        float d2 = eventData[nRoi*hw + i+1]+plusMe;
    402398        if (!finite(d1)) d1 = 20000;
    403399        if (!finite(d2)) d2 = 20000;
    404         glVertex2f(bboxMin[0] + xRange*i/(float)nRoi,
     400        glVertex2f(bboxMin[0] + xRange*i/(float)(nRoi+nRoiTM),
    405401                   bboxMin[1] + yRange*(d1) /divideMe);
    406         glVertex2f(bboxMin[0] + xRange*(i+1)/(float)nRoi,
     402        glVertex2f(bboxMin[0] + xRange*(i+1)/(float)(nRoi+nRoiTM),
    407403                   bboxMin[1] + yRange*(d2) /divideMe);
    408 #endif
     404    }
     405
     406    if (pixelIdInPatch == 8)//this channel has a time marker
     407    {
     408        for (int i=0;i<nRoiTM-1;i++)
     409        {
     410            float d1 = eventData[nRoi*1440 + nRoiTM*patchId + i] + plusMe;
     411            float d2 = eventData[nRoi*1440 + nRoiTM*patchId + i+1] + plusMe;
     412            if (!finite(d1)) d1 = 20000;
     413            if (!finite(d2)) d2 = 20000;
     414            glVertex2f(bboxMin[0] + xRange*(i+nRoi)/(float)(nRoi+nRoiTM),
     415                       bboxMin[1] + yRange*(d1)/divideMe);
     416            glVertex2f(bboxMin[0] + xRange*(i+1+nRoi)/(float)(nRoi+nRoiTM),
     417                       bboxMin[1] + yRange*(d2) / divideMe);
     418        }
     419    }
    409420    }
    410421    glEnd();
     
    473484    inputFile = NULL;
    474485    eventData = NULL;
    475     drawPatch = true;
     486    drawPatch = false;
    476487    drawImpulse = true;
    477488    drawBlur = false;
     
    528539void RawDataViewer::paintGL()
    529540{
     541    glFinish();
     542    makeCurrent();
    530543    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    531544    glLoadIdentity();
     
    547560        drawPatches();
    548561    glTranslatef(0,0,0.1f);
    549    if (!drawBlur)
     562   if (!drawBlur && (selectedPixel != -1))
    550563   {
    551564        glLineWidth(1.0f);
     
    576589    }
    577590    lastPos = cEvent->pos();
    578     setCorrectSlice(cEvent);
     591    if (setCorrectSlice(cEvent))
     592        return;
    579593    int face = PixelAtPosition(cEvent->pos());
    580     if (face != -1) {
     594 //   if (face != -1) {
    581595        selectedPixel = face;
    582596        emit signalCurrentPixel(face);
    583         }
     597 //       }
    584598    updateGL();
    585599}
     
    589603 * clicked, and if so, which slice should be displayed
    590604 ************************************************************/
    591 void RawDataViewer::setCorrectSlice(QMouseEvent* cEvent)
     605bool RawDataViewer::setCorrectSlice(QMouseEvent* cEvent)
    592606{
    593607    if (!drawImpulse)
    594         return;
     608        return false;
    595609    float cx = (float)cEvent->x() * pixelSize - shownSizex/2;
    596610    float cy = ((float)height()-(float)cEvent->y())*pixelSize - shownSizey/2;
     
    599613        cy < bboxMin[1] ||
    600614        cy > bboxMax[1])
    601         return;
    602     whichSlice = (cx - bboxMin[0])*nRoi/(bboxMax[0] - bboxMin[0]);
     615        return false;
     616    whichSlice = (cx - bboxMin[0])*(nRoi+nRoiTM)/(bboxMax[0] - bboxMin[0]);
     617    if (whichSlice >= nRoi)
     618        whichSlice = nRoi-1;
    603619    emit signalCurrentSlice(whichSlice);
     620    return true;
    604621}
    605622
     
    721738        delete[] waveLetArray;
    722739    }
    723     eventData = new float[(1440+160)*nRoi];
    724 
    725     rawEventData = new int16_t[(1440+160)*nRoi];
     740    eventData = new float[1440*nRoi + 160*nRoiTM];//(1440+160)*nRoi];
     741
     742    rawEventData = new int16_t[1440*nRoi + 160*nRoiTM];//(1440+160)*nRoi];
    726743    waveLetArray = new int16_t[1024*1440];
    727744    try
     
    11071124void RawDataViewer::ApplyCalibration()
    11081125{
    1109     for (int i=0;i<(1440+160)*nRoi;i++)
     1126    for (int i=0;i<1440*nRoi + 160*nRoiTM;i++)//(1440+160)*nRoi;i++)
    11101127        eventData[i] = (float)rawEventData[i];
    11111128
     
    11141131        fDrsCalib.Apply(eventData, rawEventData, startPix, nRoi);
    11151132        DrsCalibrate::RemoveSpikes(eventData, nRoi);
     1133        //TODO apply calibration to the Time markers
    11161134    }
    11171135
     
    11901208void RawDataViewer::setCurrentPixel(int pix)
    11911209{
    1192     if (pix == -1)
    1193         return;
     1210 //   if (pix == -1)
     1211 //       return;
    11941212    selectedPixel = pix;
    11951213    if (isVisible())
     
    12151233///        {
    12161234    int j = selectedPixel;
     1235    if (j == -1)
     1236        return;
    12171237            for (int i=0;i<nRoi;i++)
    12181238            {
     
    15321552    if (!GLWindow->nRoi)
    15331553        return;
    1534 
     1554    if (GLWindow->selectedPixel == -1)
     1555    {
     1556        ostringstream str;
     1557        str << " Current Pixel val.: --";
     1558        currentPixelValue->setText(QString(str.str().c_str()));
     1559        return;
     1560    }
    15351561    const int idx =
    15361562        GLWindow->nRoi*GLWindow->hardwareMapping[GLWindow->selectedPixel]
     
    15751601
    15761602//    GLWindow->updateGL();
     1603}
     1604void UIConnector::on_slicesPerSecValue_valueChanged(double value)
     1605{
     1606    timer.setInterval(1000.0/value);
    15771607}
    15781608void UIConnector::on_displayingSliceBox_valueChanged(int cSlice)
     
    20832113{
    20842114    GLWindow_2->fWhite = pixel;
    2085     GLWindow_2->fWhitePatch = GLWindow_2->pixelsPatch[pixel];
    2086 
     2115    if (pixel != -1)
     2116        GLWindow_2->fWhitePatch = GLWindow_2->pixelsPatch[pixel];
     2117    else
     2118        GLWindow_2->fWhitePatch = -1;
     2119    if (pixel == -1)
     2120        return;
    20872121
    20882122    pixel = GLWindow->hardwareMapping[pixel];
     
    21952229        start = GLWindow->selectedPixel;
    21962230        end   = GLWindow->selectedPixel+1;
     2231        if (end == 0)
     2232        {
     2233            start = 0;
     2234            end = 1440;
     2235        }
    21972236    }
    21982237
Note: See TracChangeset for help on using the changeset viewer.