ScatterDraw: Replaced VectorDouble with VectorXY

git-svn-id: svn://ultimatepp.org/upp/trunk@15147 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2020-09-25 20:29:16 +00:00
parent 3524d46198
commit ebacdb9e9b
3 changed files with 39 additions and 14 deletions

View file

@ -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<double> *xData, *yData;
public:
VectorXY(const Vector<double> &_xData, Vector<double> &_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<double> *xData, *yData;
public:
ArrayXY(const Upp::Array<double> &_xData, Upp::Array<double> &_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<double> *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<T>& orig, const Ei
dest *= factor;
return dest;
}
//#include "deprecated.h"
}
#endif

View file

@ -598,11 +598,11 @@ ScatterDraw &ScatterDraw::InsertSeries(int index, double *xData, double *yData,
}
ScatterDraw &ScatterDraw::InsertSeries(int index, Vector<double> &xData, Vector<double> &yData) {
return InsertSeries<VectorDouble>(index, xData, yData);
return InsertSeries<VectorXY>(index, xData, yData);
}
ScatterDraw &ScatterDraw::InsertSeries(int index, Upp::Array<double> &xData, Upp::Array<double> &yData) {
return InsertSeries<ArrayDouble>(index, xData, yData);
return InsertSeries<ArrayXY>(index, xData, yData);
}
ScatterDraw &ScatterDraw::InsertSeries(int index, Vector<Pointf> &points) {

View file

@ -479,11 +479,11 @@ public:
ScatterDraw &AddSeries(Eigen::VectorXd &yData, double x0, double deltaX)
{return AddSeries<EigenVector>(yData, x0, deltaX);}
ScatterDraw &AddSeries(Eigen::VectorXd &xData, Eigen::VectorXd &yData)
{return AddSeries<EigenVector>(yData, xData);}
{return AddSeries<EigenVector>(xData, yData);}
ScatterDraw &AddSeries(Vector<double> &xData, Vector<double> &yData)
{return AddSeries<VectorDouble>(yData, xData);}
{return AddSeries<VectorXY>(xData, yData);}
ScatterDraw &AddSeries(Upp::Array<double> &xData, Upp::Array<double> &yData)
{return AddSeries<ArrayDouble>(yData, xData);}
{return AddSeries<ArrayXY>(xData, yData);}
ScatterDraw &AddSeries(Vector<Pointf> &points) {return AddSeries<VectorPointf>(points);}
ScatterDraw &AddSeries(Upp::Array<Pointf> &points) {return AddSeries<ArrayPointf>(points);}
template <class Y>
@ -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;}