Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
coverage.h
1 #ifndef BASELAYER_H
2 #define BASELAYER_H
3 
4 #include "Kernel_global.h"
5 #include "geos/geom/Geometry.h"
6 #include "geometries.h"
7 #include "ilwisobject.h"
8 #include "ilwisdata.h"
9 #include "domain.h"
10 #include "coordinatesystem.h"
11 #include "datadefinition.h"
12 #include "connectorinterface.h"
13 #include "containerstatistics.h"
14 #include "commandhandler.h"
15 
16 namespace Ilwis {
17 
18 class Table;
19 class ItemRange;
20 
21 typedef IlwisData<Table> ITable;
22 typedef ITable AttributeTable;
29 class KERNELSHARED_EXPORT Coverage : public IlwisObject
30 {
31 
32 public:
39  enum AttributeType{atCOVERAGE, atINDEX};
40 
44  Coverage();
45 
55  Coverage(const Resource& source);
56 
57  virtual ~Coverage();
58 
65  ICoordinateSystem coordinateSystem() const;
66 
75  void coordinateSystem(const ICoordinateSystem& csy);
76 
85  Envelope envelope() const;
86 
96  void envelope(const Envelope &bnds);
97 
106  AttributeTable attributeTable(AttributeType attType=atCOVERAGE) const ;
107 
115  AttributeTable &attributeTable(AttributeType attType=atCOVERAGE);
116 
124  bool hasAttributes(AttributeType attType=atCOVERAGE) const;
125 
136  void attributeTable(const ITable& tbl, AttributeType attType=atCOVERAGE );
137 
144  NumericStatistics& statistics();
145 
153  const DataDefinition& datadefIndex() const;
154 
162  DataDefinition& datadefIndex();
163 
175  QVariant value(const QString& colName, quint32 itemid, qint32 layerIndex = -1);
176 
177  //@override
178  Resource source(int mode=cmINPUT) const;
179 
194  double layerIndex(const QString& value);
195 
204  void setLayerIndexes(const ItemRange &items);
205 
214  void setName(const QString &nam);
215 
216  bool prepare();
217 protected:
218  void copyTo(IlwisObject *obj) ;
219 private:
220 
221  ICoordinateSystem _coordinateSystem;
222  Envelope _envelope;
223  AttributeTable _attTable;
224  AttributeTable _attTableIndex;
225  NumericStatistics _statistics;
226  DataDefinition _indexdefinition;
227  std::vector<quint32> _indexValues;
228 
229 };
230 
231 typedef IlwisData<Coverage> ICoverage;
232 
233 
234 }
235 
236 
237 
238 
239 
240 #endif // BASELAYER_H