From 8a44cab4d2b734ada93bf75919fc354e803f0ff0 Mon Sep 17 00:00:00 2001 From: koldo Date: Fri, 29 May 2020 21:23:06 +0000 Subject: [PATCH] ScatterDraw: Added SetDataSourceInternal() git-svn-id: svn://ultimatepp.org/upp/trunk@14512 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ScatterDraw/Equation.h | 6 +++++- uppsrc/ScatterDraw/ScatterDraw.cpp | 12 ++++++++++++ uppsrc/ScatterDraw/ScatterDraw.h | 17 +++++++++++------ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/uppsrc/ScatterDraw/Equation.h b/uppsrc/ScatterDraw/Equation.h index a23be1e96..b085619a0 100644 --- a/uppsrc/ScatterDraw/Equation.h +++ b/uppsrc/ScatterDraw/Equation.h @@ -418,6 +418,10 @@ public: class Spline { public: + Spline() {} + Spline(const Vector &x, const Vector &y) {Fit(x, y);} + Spline(const Eigen::VectorXd &x, const Eigen::VectorXd &y) {Fit(x, y);} + Spline(const double *x, const double *y, int n) {Fit(x, y, n);} void Fit(const Vector &x, const Vector &y) {Fit(x.begin(), y.begin(), x.GetCount());} void Fit(const Eigen::VectorXd &x, const Eigen::VectorXd &y) {Fit(x.data(), y.data(), int(x.size()));} void Fit(const double *x, const double *y, int n); @@ -426,7 +430,7 @@ public: private: struct Coeff {double a, b, c, d, x;}; Buffer coeff; - int ncoeff; + int ncoeff = 0; }; class SplineEquation : public ExplicitEquation, public Spline { diff --git a/uppsrc/ScatterDraw/ScatterDraw.cpp b/uppsrc/ScatterDraw/ScatterDraw.cpp index ab32232b2..c761bab30 100644 --- a/uppsrc/ScatterDraw/ScatterDraw.cpp +++ b/uppsrc/ScatterDraw/ScatterDraw.cpp @@ -1104,7 +1104,19 @@ bool ScatterDraw::IsDataPrimaryY(int index) { return series[index].primaryY; } +/* +void ScatterDraw::SetDataSourceInternal() { + for (int i = 0; i < series.GetCount(); ++i) + series[i].SetDataSource_Internal(true); +}*/ +bool ScatterDraw::ThereAreSecondaryY() { + for (int i = 0; i < series.GetCount(); ++i) + if (!series[i].primaryY) + return true; + return false; +} + void ScatterDraw::SetSequentialX(int index, bool sequential) { ASSERT(IsValid(index)); ASSERT(!series[index].IsDeleted()); diff --git a/uppsrc/ScatterDraw/ScatterDraw.h b/uppsrc/ScatterDraw/ScatterDraw.h index 6e9696876..a5cfb8025 100644 --- a/uppsrc/ScatterDraw/ScatterDraw.h +++ b/uppsrc/ScatterDraw/ScatterDraw.h @@ -229,10 +229,12 @@ protected: pD = pointsData; owns = ownsData; } - void SetDataSource_Internal(bool copy = true) { + void SetDataSourceInternal() { + CopyInternal(); + DeletePD(); pD = &dataS; - if (copy) - CopyInternal(); + serializeData = true; + owns = false; } DataSource &Data() {return *(~pD);} const DataSource &Data() const {return *(~pD);} @@ -707,8 +709,11 @@ public: void SetDataPrimaryY(int index, bool primary = true); ScatterDraw &SetDataPrimaryY(bool primary = true); void SetDataSecondaryY(int index, bool secondary = true); - ScatterDraw &SetDataSecondaryY(bool secondary = true); + ScatterDraw &SetDataSecondaryY(bool secondary = true); + void SetRightY(int index) {SetDataSecondaryY(index);} + ScatterDraw &SetRightY() {return SetDataSecondaryY();} bool IsDataPrimaryY(int index); + bool ThereAreSecondaryY(); void SetSequentialX(int index, bool sequential); ScatterDraw &SetSequentialX(bool sequential = true); @@ -847,12 +852,12 @@ public: return *this; } - ScatterDraw& SetDataSource_Internal(bool copy = true) { + ScatterDraw& SetDataSourceInternal() { for (int i = 0; i < series.GetCount(); ++i) { ScatterSeries &serie = series[i]; if (serie.IsDeleted()) continue; - serie.SetDataSource_Internal(copy); + serie.SetDataSourceInternal(); } return *this; }