mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
.ScatterDraw: Added new data source
git-svn-id: svn://ultimatepp.org/upp/trunk@5871 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
4299695eff
commit
fc0f80ceb7
1 changed files with 54 additions and 0 deletions
|
|
@ -76,6 +76,60 @@ public:
|
|||
virtual inline ptrdiff_t GetCount() {return yData->GetCount();}
|
||||
};
|
||||
|
||||
template <class Y>
|
||||
class VectorVectorY : public DataSource {
|
||||
private:
|
||||
Vector<Vector<Y> > *data;
|
||||
bool useCols;
|
||||
int idX, idY, idZ;
|
||||
int beginData;
|
||||
ptrdiff_t numData;
|
||||
|
||||
public:
|
||||
VectorVectorY() : data(0), useCols(true), idX(0), idY(1), idZ(2), beginData(0), numData(Null) {}
|
||||
VectorVectorY(Vector<Vector<Y> > &data, bool useCols = true, int idX = 0, int idY = 1,
|
||||
int idZ = 2, int beginData = 0, int numData = Null) :
|
||||
data(&data), useCols(useCols), idX(idX), idY(idY), idZ(idZ), beginData(beginData), numData(numData)
|
||||
{
|
||||
Init(data, useCols, idX, idY, idZ, beginData, numData);
|
||||
}
|
||||
void Init(Vector<Vector<Y> > &_data, bool _useCols = true, int _idX = 0, int _idY = 1,
|
||||
int _idZ = 2, int _beginData = 0, int _numData = Null)
|
||||
{
|
||||
data = &_data;
|
||||
useCols = _useCols;
|
||||
idX = _idX;
|
||||
idY = _idY;
|
||||
idZ = _idZ;
|
||||
beginData = _beginData;
|
||||
numData = _numData;
|
||||
if (IsNull(_numData)) {
|
||||
if (!useCols) {
|
||||
if (data->IsEmpty())
|
||||
numData = 0;
|
||||
else
|
||||
numData = (*data)[0].GetCount() - beginData;
|
||||
} else
|
||||
numData = data->GetCount() - beginData;
|
||||
}
|
||||
}
|
||||
virtual inline double z(int id) {return useCols ? (*data)[beginData + id][idZ] : (*data)[idZ][beginData + id];}
|
||||
virtual inline double y(int id) {return useCols ? (*data)[beginData + id][idY] : (*data)[idY][beginData + id];}
|
||||
virtual inline double x(int id) {
|
||||
if (IsNull(idX))
|
||||
return id;
|
||||
else
|
||||
return useCols ? (*data)[beginData + id][idX] : (*data)[idX][beginData + id];
|
||||
}
|
||||
virtual inline ptrdiff_t GetCount() {return numData;};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class VectorDouble : public DataSource {
|
||||
private:
|
||||
const Vector<double> *xData, *yData;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue