Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
range.h
1 #ifndef RANGE_H
2 #define RANGE_H
3 
4 #include <QSharedPointer>
5 #include "Kernel_global.h"
6 
7 namespace Ilwis {
8 
9 typedef std::map<quint64, quint64> RenumberMap;
17 class KERNELSHARED_EXPORT Range
18 {
19 public:
20  Range();
21  virtual ~Range() {}
22 
27  virtual bool isValid() const = 0;
32  virtual QString toString() const = 0;
37  virtual IlwisTypes valueType() const;
44  virtual IlwisTypes determineType() const { return itUNKNOWN;}
49  virtual Range *clone() const = 0;
50  template<typename T> T *merge(const QSharedPointer<T>& range1,const QSharedPointer<T>& range2,RenumberMap *rnm=0){
51  T::merge(range1, range2, rnm);
52  }
53 
54  virtual QVariant ensure(const QVariant& v, bool inclusive = true) const { return rUNDEF; }
55 
56  virtual bool contains(const QVariant& v, bool inclusive = true) const = 0;
57 
58  virtual bool isContinuous() const;
59  void interpolation(const QString& ip);
60  virtual QString interpolation() const;
61  virtual QVariant impliedValue(const QVariant& v) const { return v; }
62 protected:
63  IlwisTypes _vt;
64  QString _interpolation;
65 
66 
67 
68 };
69 typedef QSharedPointer<Range> SPRange;
70 }
71 
72 #endif // RANGE_H