Aerolab::Aerolab( AerolabWindow *parent, MainWindow *mainWindow ): QwtPlot(parent), mainWindow(mainWindow), parent(parent), rideItem(NULL), smooth(1), bydist(true), autoEoffset(true) { crr = 0.005; cda = 0.500; totalMass = 85.0; rho = 1.236; eta = 1.0; eoffset = 0.0; useMetricUnits = mainWindow->useMetricUnits; insertLegend(new QwtLegend(), QwtPlot::BottomLegend); setCanvasBackground(Qt::white); canvas()->setFrameStyle(QFrame::NoFrame); setXTitle(); setAxisTitle(yLeft, tr("Elevation (m)")); setAxisScale(yLeft, -300, 300); setAxisTitle(xBottom, tr("Distance (km)")); setAxisScale(xBottom, 0, 60); veCurve = new QwtPlotCurve(tr("V-Elevation")); altCurve = new QwtPlotCurve(tr("Elevation")); // get rid of nasty blank space on right of the plot veCurve->setYAxis( yLeft ); altCurve->setYAxis( yLeft ); intervalHighlighterCurve = new QwtPlotCurve(); intervalHighlighterCurve->setBaseline(-5000); intervalHighlighterCurve->setYAxis( yLeft ); intervalHighlighterCurve->setData( new IntervalAerolabData( this, mainWindow ) ); intervalHighlighterCurve->attach( this ); this->legend()->remove( intervalHighlighterCurve ); // don't show in legend grid = new QwtPlotGrid(); grid->enableX(false); grid->attach(this); configChanged(); }
Aerolab::Aerolab( AerolabWindow *parent, Context *context ): QwtPlot(parent), context(context), parent(parent), rideItem(NULL), smooth(1), bydist(true), autoEoffset(true) { crr = 0.005; cda = 0.500; totalMass = 85.0; rho = 1.236; eta = 1.0; eoffset = 0.0; constantAlt = false; insertLegend(new QwtLegend(), QwtPlot::BottomLegend); setCanvasBackground(Qt::white); static_cast<QwtPlotCanvas*>(canvas())->setFrameStyle(QFrame::NoFrame); setXTitle(); setAxisTitle(yLeft, tr("Elevation (m)")); setAxisScale(yLeft, -300, 300); setAxisTitle(xBottom, tr("Distance (km)")); setAxisScale(xBottom, 0, 60); veCurve = new QwtPlotCurve(tr("V-Elevation")); altCurve = new QwtPlotCurve(tr("Elevation")); // get rid of nasty blank space on right of the plot veCurve->setYAxis( yLeft ); altCurve->setYAxis( yLeft ); intervalHighlighterCurve = new QwtPlotCurve(); intervalHighlighterCurve->setBaseline(-5000); intervalHighlighterCurve->setYAxis( yLeft ); intervalHighlighterCurve->setSamples( new IntervalAerolabData( this, context ) ); intervalHighlighterCurve->attach( this ); //XXX broken this->legend()->remove( intervalHighlighterCurve ); // don't show in legend grid = new QwtPlotGrid(); grid->enableX(false); grid->attach(this); configChanged(CONFIG_APPEARANCE); }
AllPlot::AllPlot(AllPlotWindow *parent, MainWindow *mainWindow): QwtPlot(parent), rideItem(NULL), unit(0), shade_zones(true), showPowerState(3), showHrState(Qt::Checked), showSpeedState(Qt::Checked), showCadState(Qt::Checked), showAltState(Qt::Checked), bydist(false), parent(parent) { boost::shared_ptr<QSettings> settings = GetApplicationSettings(); unit = settings->value(GC_UNIT); referencePlot = NULL; useMetricUnits = (unit.toString() == "Metric"); // options for turning off/on shading on all plot // will come in with a future patch, for now we // enable zone shading by default, since this is // the current default behaviour if (false) shade_zones = false; else shade_zones = true; smooth = settings->value(GC_RIDE_PLOT_SMOOTHING).toInt(); if (smooth < 1) smooth = 1; // create a background object for shading bg = new AllPlotBackground(this); bg->attach(this); insertLegend(new QwtLegend(), QwtPlot::BottomLegend); setCanvasBackground(GColor(CPLOTBACKGROUND)); setXTitle(); wattsCurve = new QwtPlotCurve(tr("Power")); hrCurve = new QwtPlotCurve(tr("Heart Rate")); hrCurve->setYAxis(yLeft2); speedCurve = new QwtPlotCurve(tr("Speed")); speedCurve->setYAxis(yRight); cadCurve = new QwtPlotCurve(tr("Cadence")); cadCurve->setYAxis(yLeft2); altCurve = new QwtPlotCurve(tr("Altitude")); // altCurve->setRenderHint(QwtPlotItem::RenderAntialiased); altCurve->setYAxis(yRight2); intervalHighlighterCurve = new QwtPlotCurve(); intervalHighlighterCurve->setYAxis(yLeft); intervalHighlighterCurve->setData(IntervalPlotData(this, mainWindow)); intervalHighlighterCurve->attach(this); this->legend()->remove(intervalHighlighterCurve); // don't show in legend grid = new QwtPlotGrid(); grid->enableX(false); grid->attach(this); // get rid of nasty blank space on right of the plot plotLayout()->setAlignCanvasToScales(true); configChanged(); // set colors }
HrPwPlot::HrPwPlot(Context *context, HrPwWindow *hrPwWindow) : QwtPlot(hrPwWindow), hrPwWindow(hrPwWindow), context(context), bg(NULL), delay(-1), minHr(50), minWatt(50), maxWatt(500) { setCanvasBackground(Qt::white); static_cast<QwtPlotCanvas*>(canvas())->setFrameStyle(QFrame::NoFrame); setXTitle(); // Power (Watts) // Linear Regression Curve regCurve = new QwtPlotCurve("reg"); regCurve->setPen(QPen(GColor(CPLOTMARKER))); regCurve->attach(this); // Power distribution wattsStepCurve = new QwtPlotCurve("Power"); wattsStepCurve->setStyle(QwtPlotCurve::Steps); wattsStepCurve->setRenderHint(QwtPlotItem::RenderAntialiased); QColor wattsColor = QColor(200,200,255); QColor wattsColor2 = QColor(100,100,255); wattsStepCurve->setPen(QPen(wattsColor2)); wattsStepCurve->setBrush(QBrush(wattsColor)); wattsStepCurve->attach(this); // Hr distribution hrStepCurve = new QwtPlotCurve("Hr"); hrStepCurve->setStyle(QwtPlotCurve::Steps); hrStepCurve->setRenderHint(QwtPlotItem::RenderAntialiased); QColor hrColor = QColor(255,200,200); QColor hrColor2 = QColor(255,100,100); hrStepCurve->setPen(QPen(hrColor2)); hrStepCurve->setBrush(QBrush(hrColor)); hrStepCurve->attach(this); // Heart Rate Curve hrCurves.resize(36); for (int i = 0; i < 36; ++i) { hrCurves[i] = new QwtPlotCurve; hrCurves[i]->attach(this); } // Grid grid = new QwtPlotGrid(); grid->enableX(true); grid->enableY(true); grid->attach(this); // axis markers r_mrk1 = new QwtPlotMarker; r_mrk2 = new QwtPlotMarker; r_mrk1->attach(this); r_mrk2->attach(this); shade_zones = true; connect(context, SIGNAL(configChanged(qint32)), this, SLOT(configChanged(qint32))); // setup colors on first run configChanged(CONFIG_APPEARANCE); }