From ebacdb9e9bd097103902d9eb00a1f9196c3cd3ba Mon Sep 17 00:00:00 2001 From: koldo Date: Fri, 25 Sep 2020 20:29:16 +0000 Subject: [PATCH] ScatterDraw: Replaced VectorDouble with VectorXY git-svn-id: svn://ultimatepp.org/upp/trunk@15147 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ScatterDraw/DataSource.h | 37 +++++++++++++++++++++++++----- uppsrc/ScatterDraw/ScatterDraw.cpp | 4 ++-- uppsrc/ScatterDraw/ScatterDraw.h | 12 +++++----- 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/uppsrc/ScatterDraw/DataSource.h b/uppsrc/ScatterDraw/DataSource.h index 3ca69e070..cee462b33 100644 --- a/uppsrc/ScatterDraw/DataSource.h +++ b/uppsrc/ScatterDraw/DataSource.h @@ -360,15 +360,15 @@ public: class EigenVector : public DataSource { private: - const Eigen::VectorXd *yData, *xData, *zData; + const Eigen::VectorXd *xData, *yData, *zData; double x0, deltaX; public: EigenVector(const Eigen::VectorXd &_yData, double _x0, double _deltaX) : yData(&_yData), x0(_x0), deltaX(_deltaX) {xData = nullptr;} - EigenVector(const Eigen::VectorXd &_yData, const Eigen::VectorXd &_xData) : yData(&_yData), xData(&_xData) {zData = nullptr; x0 = deltaX = 0;} - EigenVector(const Eigen::VectorXd &_yData, const Eigen::VectorXd &_xData, const Eigen::VectorXd &_zData) : yData(&_yData), xData(&_xData), zData(&_zData) {x0 = deltaX = 0;} - virtual inline double y(int64 id) {return (*yData)(Eigen::Index(id));} + EigenVector(const Eigen::VectorXd &_xData, const Eigen::VectorXd &_yData) : xData(&_xData), yData(&_yData) {zData = nullptr; x0 = deltaX = 0;} + EigenVector(const Eigen::VectorXd &_xData, const Eigen::VectorXd &_yData, const Eigen::VectorXd &_zData) : xData(&_xData), yData(&_yData), zData(&_zData) {x0 = deltaX = 0;} virtual inline double x(int64 id) {return xData ? (*xData)(Eigen::Index(id)) : id*deltaX + x0;} + virtual inline double y(int64 id) {return (*yData)(Eigen::Index(id));} virtual double znFixed(int n, int64 id) { if (n == 0) return (*zData)(Eigen::Index(id)); @@ -502,6 +502,29 @@ public: virtual int GetznFixedCount() const {return idsFixed.GetCount();} }; +class VectorXY : public DataSource { +private: + const Vector *xData, *yData; + +public: + VectorXY(const Vector &_xData, Vector &_yData) : xData(&_xData), yData(&_yData) {} + virtual inline double x(int64 id) {return (*xData)[int(id)];} + virtual inline double y(int64 id) {return (*yData)[int(id)];} + virtual inline int64 GetCount() const {return min(xData->GetCount(), yData->GetCount());} +}; + +class ArrayXY : public DataSource { +private: + const Upp::Array *xData, *yData; + +public: + ArrayXY(const Upp::Array &_xData, Upp::Array &_yData) : xData(&_xData), yData(&_yData) {} + virtual inline double x(int64 id) {return (*xData)[int(id)];} + virtual inline double y(int64 id) {return (*yData)[int(id)];} + virtual inline int64 GetCount() const {return min(xData->GetCount(), yData->GetCount());} +}; + +/* Replaced by VectorXY and ArrayXY class VectorDouble : public DataSource { private: const Vector *xData, *yData; @@ -522,7 +545,7 @@ public: virtual inline double y(int64 id) {return (*yData)[int(id)];} virtual inline double x(int64 id) {return (*xData)[int(id)];} virtual inline int64 GetCount() const {return min(xData->GetCount(), yData->GetCount());} -}; +};*/ class VectorPointf : public DataSource { private: @@ -1003,7 +1026,9 @@ typename T::PlainObject Convolution2D(const Eigen::MatrixBase& orig, const Ei dest *= factor; return dest; } - + +//#include "deprecated.h" + } #endif diff --git a/uppsrc/ScatterDraw/ScatterDraw.cpp b/uppsrc/ScatterDraw/ScatterDraw.cpp index 3fa12aae6..a0befedfa 100644 --- a/uppsrc/ScatterDraw/ScatterDraw.cpp +++ b/uppsrc/ScatterDraw/ScatterDraw.cpp @@ -598,11 +598,11 @@ ScatterDraw &ScatterDraw::InsertSeries(int index, double *xData, double *yData, } ScatterDraw &ScatterDraw::InsertSeries(int index, Vector &xData, Vector &yData) { - return InsertSeries(index, xData, yData); + return InsertSeries(index, xData, yData); } ScatterDraw &ScatterDraw::InsertSeries(int index, Upp::Array &xData, Upp::Array &yData) { - return InsertSeries(index, xData, yData); + return InsertSeries(index, xData, yData); } ScatterDraw &ScatterDraw::InsertSeries(int index, Vector &points) { diff --git a/uppsrc/ScatterDraw/ScatterDraw.h b/uppsrc/ScatterDraw/ScatterDraw.h index c54557f4c..9cd20435d 100644 --- a/uppsrc/ScatterDraw/ScatterDraw.h +++ b/uppsrc/ScatterDraw/ScatterDraw.h @@ -479,11 +479,11 @@ public: ScatterDraw &AddSeries(Eigen::VectorXd &yData, double x0, double deltaX) {return AddSeries(yData, x0, deltaX);} ScatterDraw &AddSeries(Eigen::VectorXd &xData, Eigen::VectorXd &yData) - {return AddSeries(yData, xData);} + {return AddSeries(xData, yData);} ScatterDraw &AddSeries(Vector &xData, Vector &yData) - {return AddSeries(yData, xData);} + {return AddSeries(xData, yData);} ScatterDraw &AddSeries(Upp::Array &xData, Upp::Array &yData) - {return AddSeries(yData, xData);} + {return AddSeries(xData, yData);} ScatterDraw &AddSeries(Vector &points) {return AddSeries(points);} ScatterDraw &AddSeries(Upp::Array &points) {return AddSeries(points);} template @@ -684,9 +684,9 @@ public: ScatterDraw &SetDrawXReticleNumbers(bool set = true) {drawXReticleNumbers = set; return *this;} ScatterDraw &SetDrawYReticleNumbers(bool set = true) {drawYReticleNumbers = set; return *this;} ScatterDraw &SetDrawY2ReticleNumbers(bool set = true){drawY2ReticleNumbers = set; return *this;} - bool GetDrawXReticleNumbers() {return drawXReticleNumbers;} - bool GetDrawYReticleNumbers() {return drawYReticleNumbers;} - bool GetDrawY2ReticleNumbers() {return drawY2ReticleNumbers;} + bool GetDrawXReticleNumbers() {return drawXReticleNumbers;} + bool GetDrawYReticleNumbers() {return drawYReticleNumbers;} + bool GetDrawY2ReticleNumbers() {return drawY2ReticleNumbers;} ScatterDraw &SetReticleFont(const Font &fnt) {reticleFont = fnt; return *this;} Font &GetReticleFont() {return reticleFont;} ScatterDraw &SetReticleColor(const Color &col) {reticleColor = col; return *this;}