File indexing completed on 2025-01-26 03:34:13

0001 /*
0002     File                 : QQPlotPrivate.h
0003     Project              : LabPlot
0004     Description          : Private members of QQPlot
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2023 Alexander Semke <alexander.semke@web.de>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef QQPLOTPRIVATE_H
0011 #define QQPLOTPRIVATE_H
0012 
0013 #include "backend/worksheet/plots/cartesian/PlotPrivate.h"
0014 
0015 class Column;
0016 class Line;
0017 class QQPlot;
0018 
0019 class QQPlotPrivate : public PlotPrivate {
0020 public:
0021     explicit QQPlotPrivate(QQPlot* owner);
0022     ~QQPlotPrivate() override;
0023 
0024     void retransform() override;
0025     void recalc();
0026     void updateDistribution();
0027     void recalcShapeAndBoundingRect() override;
0028 
0029     XYCurve* referenceCurve{nullptr};
0030     Column* xReferenceColumn{nullptr};
0031     QString xReferenceColumnPath;
0032     Column* yReferenceColumn{nullptr};
0033     QString yReferenceColumnPath;
0034 
0035     XYCurve* percentilesCurve{nullptr};
0036     Column* xPercentilesColumn{nullptr};
0037     QString xPercentilesColumnPath;
0038     Column* yPercentilesColumn{nullptr};
0039     QString yPercentilesColumnPath;
0040 
0041     // General
0042     const AbstractColumn* dataColumn{nullptr};
0043     QString dataColumnPath;
0044     nsl_sf_stats_distribution distribution{nsl_sf_stats_gaussian};
0045 
0046     QQPlot* const q;
0047 
0048 private:
0049     void copyValidData(QVector<double>&) const;
0050 };
0051 
0052 #endif