//----------------------------------------------------------------------------------------------
    /// Paint the overlay
    void PeakOverlayMultiCross::paintEvent(QPaintEvent * /*event*/)
    {
      for(size_t i = 0; i < m_viewablePeaks.size(); ++i)
      {
        if(m_viewablePeaks[i]) // Only draw those peaks that are viewable.
        {
          auto drawObject = m_physicalPeaks[i]->draw(height(), width());

          const int xOriginWindows = m_plot->transform( QwtPlot::xBottom, drawObject.peakOrigin.X() );
          const int yOriginWindows = m_plot->transform( QwtPlot::yLeft, drawObject.peakOrigin.Y() );
          QPainter painter(this);
          painter.setRenderHint( QPainter::Antialiasing );
          QPen pen(m_peakColour);

          pen.setWidth(drawObject.peakLineWidth); 
          painter.setPen( pen );  

          pen.setStyle(Qt::SolidLine);
          painter.setOpacity(drawObject.peakOpacityAtDistance); //Set the pre-calculated opacity

          const int halfCrossHeight = drawObject.peakHalfCrossHeight;
          const int halfCrossWidth = drawObject.peakHalfCrossWidth;

          QPoint bottomL(xOriginWindows - halfCrossWidth, yOriginWindows - halfCrossHeight);
          QPoint bottomR(xOriginWindows + halfCrossWidth, yOriginWindows - halfCrossHeight);
          QPoint topL(xOriginWindows - halfCrossWidth, yOriginWindows + halfCrossHeight);
          QPoint topR(xOriginWindows + halfCrossWidth, yOriginWindows + halfCrossHeight);

          painter.drawLine(bottomL, topR);
          painter.drawLine(bottomR, topL);
        }
      }
    }
Example #2
0
void wavesScene::drawBackground(){
    ofMesh mesh;
    mesh.setMode(OF_PRIMITIVE_TRIANGLE_STRIP);
    
    ofColor colTop = bgColorTop;
    ofColor colMiddle = bgColorMid;
    ofColor colBottom = bgColorBot;
    
    float pct = cos(ofGetFrameNum()/bgColorSpeed)*0.5 + 0.5;
    colTop.setHueAngle( bgColorTop.get().getHueAngle() +  pct*bgColorRange );
    colMiddle.setHueAngle(bgColorMid.get().getHueAngle() +  pct*bgColorRange );
    colBottom.setHueAngle(bgColorBot.get().getHueAngle() + pct*bgColorRange );
    
    ofVec2f topL(RM->getRectForScreen(SCREEN_LEFT).x, RM->getRectForScreen(SCREEN_TOP).y);
    ofVec2f topR(RM->getRectForScreen(SCREEN_RIGHT).getRight(), RM->getRectForScreen(SCREEN_TOP).y);
    
    ofVec2f midL(RM->getRectForScreen(SCREEN_LEFT).x, RM->getRectForScreen(SCREEN_LEFT).y + bgGradOffset * sf);
    ofVec2f midR(RM->getRectForScreen(SCREEN_RIGHT).getRight(), RM->getRectForScreen(SCREEN_LEFT).y + bgGradOffset * sf);
    
    ofVec2f botL(RM->getRectForScreen(SCREEN_LEFT).getBottomLeft());
    ofVec2f botR(RM->getRectForScreen(SCREEN_RIGHT).getBottomRight());
    
    mesh.addVertex(topL);
    mesh.addColor(colTop);
    mesh.addVertex(topR);
    mesh.addColor(colTop);
    
    mesh.addVertex(midL);
    mesh.addColor(colMiddle);
    mesh.addVertex(midR);
    mesh.addColor(colMiddle);
    
    mesh.addVertex(botL);
    mesh.addColor(colBottom);
    mesh.addVertex(botR);
    mesh.addColor(colBottom);
    
    mesh.draw();
}