49 virtual QRectF
cellRect(
const QPoint &p)
const=0;
50 virtual bool onClick(
const QPointF &world_coord)
const { Q_UNUSED(world_coord);
return false; }
53 virtual const QVector<LayeredGridBase::LayerElement> &
names()=0;
55 virtual int indexOf(
const QString &layer_name)
57 for(
int i=0;i<
names().count();++i)
58 if (
names().at(i).name == layer_name)
64 for(
int i=0;i<
names().count();++i)
65 l.append(
names().at(i).name);
71 virtual void range(
double &rMin,
double &rMax,
const int index)
const=0;
74 virtual double value(
const float x,
const float y,
const int index)
const = 0;
75 virtual double value(
const QPointF &world_coord,
const int index)
const = 0;
76 virtual double value(
const int ix,
const int iy,
const int index)
const = 0;
77 virtual double value(
const int grid_index,
const int index)
const = 0;
83 return QLatin1Literal(
"-");
106 virtual double value(
const T& data,
const int index)
const = 0;
107 double value(
const T* ptr,
const int index)
const {
return value(
mGrid->constValueAtIndex(
mGrid->indexOf(ptr)), index); }
108 double value(
const int grid_index,
const int index)
const {
return value(
mGrid->constValueAtIndex(grid_index), index); }
109 double value(
const float x,
const float y,
const int index)
const {
return value(
mGrid->constValueAt(x,y), index); }
110 double value(
const QPointF &world_coord,
const int index)
const {
return mGrid->coordValid(world_coord)?
value(
mGrid->constValueAt(world_coord), index) : 0.; }
111 double value(
const int ix,
const int iy,
const int index)
const {
return value(
mGrid->constValueAtIndex(ix, iy), index); }
112 void range(
double &rMin,
double &rMax,
const int index)
const { rMin=9999999999.; rMax=-99999999999.;
113 for (
int i=0;i<
mGrid->count(); ++i) {
114 rMin=qMin(rMin,
value(i, index));
115 rMax=qMax(rMax,
value(i,index));}}
122 double *p = data_grid->
begin();
123 for (
int i=0;i<
mGrid->count();++i)
124 *p++ =
value(i, index);
147 QString result = QString(
"ncols %1\r\nnrows %2\r\nxllcorner %3\r\nyllcorner %4\r\ncellsize %5\r\nNODATA_value %6\r\n")
150 .arg(world.
x(),0,
'f').arg(world.
y(),0,
'f')
154 QTextStream ts(&res);
155 QChar sep = QChar(
' ');
156 for (
int y=grid.
sizeY()-1;y>=0;--y){
157 for (
int x=0;x<grid.
sizeX();x++){
158 ts << grid.
value(x,y,index) << sep;
Grid class (template).
Definition: grid.h:44
T * begin() const
get "iterator" pointer
Definition: grid.h:150
Definition: layeredgrid.h:35
QString name
Definition: layeredgrid.h:39
GridViewType view_type
Definition: layeredgrid.h:41
LayerElement()
Definition: layeredgrid.h:37
LayerElement(QString aname, QString adesc, GridViewType type)
Definition: layeredgrid.h:38
QString description
Definition: layeredgrid.h:40
Definition: layeredgrid.h:32
virtual QStringList layerNames()
Definition: layeredgrid.h:62
virtual double value(const float x, const float y, const int index) const =0
virtual int sizeY() const =0
virtual const QString labelvalue(const int value, const int index) const
Definition: layeredgrid.h:79
virtual bool onClick(const QPointF &world_coord) const
Definition: layeredgrid.h:50
virtual void range(double &rMin, double &rMax, const int index) const =0
retrieve min and max of variable 'index'
virtual double value(const QPointF &world_coord, const int index) const =0
virtual QRectF cellRect(const QPoint &p) const =0
virtual int sizeX() const =0
virtual double value(const int ix, const int iy, const int index) const =0
virtual QRectF metricRect() const =0
virtual double value(const int grid_index, const int index) const =0
virtual int indexOf(const QString &layer_name)
get layer index by name of the layer. returns -1 if layer is not available.
Definition: layeredgrid.h:55
virtual const QVector< LayeredGridBase::LayerElement > & names()=0
list of stored layers
virtual ~LayeredGridBase()
Definition: layeredgrid.h:43
This is the base class for multi-layer grids in iLand.
Definition: layeredgrid.h:95
float cellsize() const
Definition: layeredgrid.h:102
double value(const int ix, const int iy, const int index) const
Definition: layeredgrid.h:111
int sizeX() const
Definition: layeredgrid.h:103
Grid< double > * copyGrid(const int index) const
extract a (newly created) grid filled with the value of the variable given by 'index' caller need to ...
Definition: layeredgrid.h:119
void range(double &rMin, double &rMax, const int index) const
retrieve min and max of variable 'index'
Definition: layeredgrid.h:112
bool isValid() const
Definition: layeredgrid.h:99
double value(const int grid_index, const int index) const
Definition: layeredgrid.h:108
int sizeY() const
Definition: layeredgrid.h:104
LayeredGrid(const Grid< T > &grid)
Definition: layeredgrid.h:97
const Grid< T > * mGrid
Definition: layeredgrid.h:130
LayeredGrid()
Definition: layeredgrid.h:98
double value(const QPointF &world_coord, const int index) const
Definition: layeredgrid.h:110
double value(const T *ptr, const int index) const
Definition: layeredgrid.h:107
double value(const float x, const float y, const int index) const
Definition: layeredgrid.h:109
QRectF metricRect() const
Definition: layeredgrid.h:101
QRectF cellRect(const QPoint &p) const
Definition: layeredgrid.h:100
virtual double value(const T &data, const int index) const =0
simple 3d vector.
Definition: grid.h:249
double y() const
get y-coordinate
Definition: grid.h:254
double x() const
get x-coordinate
Definition: grid.h:253
GridViewType
Definition: grid.h:193
void modelToWorld(const Vector3D &From, Vector3D &To)
Definition: gisgrid.cpp:54
QString gridToESRIRaster(const LayeredGrid< T > &grid, const QString name)
translate
Definition: layeredgrid.h:139