//---------------------------------------------------------------------------------------------- /// 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); } } }
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(); }