Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
colorrange.h
1 #ifndef COLORRANGE_H
2 #define COLORRANGE_H
3 
4 namespace Ilwis{
5 
6 class ColorItem;
7 typedef QSharedPointer<ColorItem> SPColorItem;
8 
9 class KERNELSHARED_EXPORT ColorRange : public Range
10 {
11 public:
12  enum ColorModel{cmRGBA, cmHSLA, cmCYMKA, cmGREYSCALE};
13 
14  ColorRange(IlwisTypes tp, ColorModel clrmodel);
15  ColorModel defaultColorModel() const;
16  void defaultColorModel(ColorModel m);
17 
18  static QColor toColor(quint64 clrint, ColorModel clrModel) ;
19  static QColor toColor(const QVariant &v, ColorModel colormodel);
20  static QString toString(const QColor& clr, ColorModel clrModel);
21 
22 
23 protected:
24 private:
25  IlwisTypes _valuetype;
26  ColorModel _defaultModel = cmRGBA;
27 
28 };
29 
30 class KERNELSHARED_EXPORT ContinousColorRange : public ColorRange{
31 public:
33  ContinousColorRange(const QColor& clr1=QColor("#000000"), const QColor& clr2=QColor("(#ffffff"), ColorModel colormodel=ColorRange::cmRGBA);
34  bool isValid() const;
35  QString toString() const;
36  Range *clone() const;
37  QVariant ensure(const QVariant& v, bool inclusive = true) const;
38  bool contains(const QVariant& v, bool inclusive = true) const;
39  bool contains(ColorRange *v, bool inclusive = true) const;
40  QVariant impliedValue(const QVariant& v) const;
41  IlwisTypes valueType() const;
42 private:
43  QColor _limit1;
44  QColor _limit2;
45 };
46 
47 class ColorPalette : public ItemRange, public ColorRange {
48 public:
49  QVariant impliedValue(const QVariant& v) const;
50 
51  SPDomainItem item(quint32 raw) const;
52  SPDomainItem item(const QString &nam) const;
53  SPDomainItem itemByOrder(quint32 index) const;
54  QColor color(int index) const;
55 
56  void add(DomainItem *item);
57  void add(SPDomainItem item);
58  void remove(const QString& nm);
59  void clear();
60 
61  bool contains(const QVariant& color, bool inclusive = true) const;
62  bool contains(SPRange rng, bool inclusive=true) const;
63  bool contains(ItemRange *rng, bool inclusive=true) const;
64 
65  QVariant ensure(const QVariant& v, bool inclusive = true) const;
66  quint32 count() const;
67  IlwisTypes valueType() const;
68 
69  bool isValid() const;
70 
71 private:
72  std::vector<SPColorItem> _colors;
73 
74 };
75 
76 
77 }
78 
79 #endif // COLORRANGE_H