OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimHsiRemapper.h
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2002 ImageLinks Inc.
3 //
4 // License: MIT
5 //
6 // See LICENSE.txt file in the top level directory for more details.
7 //
8 // Author: David Burken
9 //
10 // Description:
11 //
12 // Remapper to adjust hue, saturation and intensity.
13 //
14 //*************************************************************************
15 // $Id: ossimHsiRemapper.h 19689 2011-05-31 15:55:21Z gpotts $
16 
17 #ifndef ossimHsiRemapper_HEADER
18 #define ossimHsiRemapper_HEADER
19 
21 
23 {
24 public:
25  enum
26  {
27  RED = 0,
28  YELLOW = 1,
29  GREEN = 2,
30  CYAN = 3,
31  BLUE = 4,
32  MAGENTA = 5,
33  ALL = 6
34  };
35 
37 
38  virtual ossimString getLongName() const;
39  virtual ossimString getShortName() const;
40 
41  virtual void initialize();
42  /*---------------------- PROPERTY INTERFACE ---------------------------*/
43  virtual void setProperty(ossimRefPtr<ossimProperty> property);
44  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
45  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
46  /*---------------------- END PROPERTY INTERFACE ---------------------------*/
47 
48  virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tile_rect,
49  ossim_uint32 resLevel=0);
50 
51  virtual bool saveState(ossimKeywordlist& kwl,
52  const char* prefix=0)const;
53 
58  virtual bool loadState(const ossimKeywordlist& kwl,
59  const char* prefix=0);
60 
61 
63 
64  virtual ostream& print(ostream& os) const;
65 
66  friend ostream& operator << (ostream& os, const ossimHsiRemapper& hr);
67 
68  void setHueOffset (int color_group, double offset);
69  void setHueLowRange (int color_group, double range);
70  void setHueHighRange (int color_group, double range);
71  void setHueBlendRange (int color_group, double range);
72  void setSaturationOffset (int color_group, double offset);
73  void setIntensityOffset (int color_group, double offset);
74 
75  void setMasterHueOffset (double offset);
76  void setMasterSaturationOffset (double offset);
77  void setMasterIntensityOffset (double offset);
78  void setMasterIntensityLowClip (double clip);
79  void setMasterIntensityHighClip (double clip);
80 
81  void setRedHueOffset (double offset);
82  void setRedHueLowRange (double range);
83  void setRedHueHighRange (double range);
84  void setRedHueBlendRange (double range);
85  void setRedSaturationOffset (double offset);
86  void setRedIntensityOffset (double offset);
87 
88  void setYellowHueOffset (double offset);
89  void setYellowHueLowRange (double range);
90  void setYellowHueHighRange (double range);
91  void setYellowHueBlendRange (double range);
92  void setYellowSaturationOffset (double offset);
93  void setYellowIntensityOffset (double offset);
94 
95  void setGreenHueOffset (double offset);
96  void setGreenHueLowRange (double range);
97  void setGreenHueHighRange (double range);
98  void setGreenHueBlendRange (double range);
99  void setGreenSaturationOffset (double offset);
100  void setGreenIntensityOffset (double offset);
101 
102  void setCyanHueOffset (double offset);
103  void setCyanHueLowRange (double range);
104  void setCyanHueHighRange (double range);
105  void setCyanHueBlendRange (double range);
106  void setCyanSaturationOffset (double offset);
107  void setCyanIntensityOffset (double offset);
108 
109  void setBlueHueOffset (double offset);
110  void setBlueHueLowRange (double range);
111  void setBlueHueHighRange (double range);
112  void setBlueHueBlendRange (double range);
113  void setBlueSaturationOffset (double offset);
114  void setBlueIntensityOffset (double offset);
115 
116  void setMagentaHueOffset (double offset);
117  void setMagentaHueLowRange (double range);
118  void setMagentaHueHighRange (double range);
119  void setMagentaHueBlendRange (double range);
120  void setMagentaSaturationOffset (double offset);
121  void setMagentaIntensityOffset (double offset);
122 
123  double getHueOffset (int color_group) const;
124  double getHueLowRange (int color_group) const;
125  double getHueHighRange (int color_group) const;
126  double getHueBlendRange (int color_group) const;
127  double getSaturationOffset (int color_group) const;
128  double getIntensityOffset (int color_group) const;
129 
130  double getMasterHueOffset () const;
131  double getMasterSaturationOffset () const;
132  double getMasterIntensityOffset () const;
133  double getMasterIntensityLowClip () const;
134  double getMasterIntensityHighClip () const;
135 
136  double getRedHueOffset () const;
137  double getRedHueLowRange () const;
138  double getRedHueHighRange () const;
139  double getRedHueBlendRange () const;
140  double getRedSaturationOffset () const;
141  double getRedIntensityOffset () const;
142 
143  double getYellowHueOffset () const;
144  double getYellowHueLowRange () const;
145  double getYellowHueHighRange () const;
146  double getYellowHueBlendRange () const;
147  double getYellowSaturationOffset () const;
148  double getYellowIntensityOffset () const;
149 
150  double getGreenHueOffset () const;
151  double getGreenHueLowRange () const;
152  double getGreenHueHighRange () const;
153  double getGreenHueBlendRange () const;
154  double getGreenSaturationOffset () const;
155  double getGreenIntensityOffset () const;
156 
157  double getCyanHueOffset () const;
158  double getCyanHueLowRange () const;
159  double getCyanHueHighRange () const;
160  double getCyanHueBlendRange () const;
161  double getCyanSaturationOffset () const;
162  double getCyanIntensityOffset () const;
163 
164  double getBlueHueOffset () const;
165  double getBlueHueLowRange () const;
166  double getBlueHueHighRange () const;
167  double getBlueHueBlendRange () const;
168  double getBlueSaturationOffset () const;
169  double getBlueIntensityOffset () const;
170 
171  double getMagentaHueOffset () const;
172  double getMagentaHueLowRange () const;
173  double getMagentaHueHighRange () const;
174  double getMagentaHueBlendRange () const;
175  double getMagentaSaturationOffset () const;
176  double getMagentaIntensityOffset () const;
177 
178  void setWhiteObjectClip (double clip);
179  double getWhiteObjectClip () const;
180  void resetWhiteObjectClip ();
181 
182  void resetGroup(int color_group);
183  void resetAll();
184  void resetMaster();
185  void resetRed();
186  void resetYellow();
187  void resetGreen();
188  void resetCyan();
189  void resetBlue();
190  void resetMagenta();
191 
192 protected:
193  virtual ~ossimHsiRemapper();
194  void allocate(const ossimIrect& rect);
195  void verifyEnabled();
196  double calculateMinNormValue();
197 
200  double* theBuffer;
202 
208 
215 
222 
229 
236 
243 
250 
252 
253  TYPE_DATA
254 };
255 
256 #endif
double theMagentaIntensityOffset
virtual void setProperty(ossimRefPtr< ossimProperty > property)
#define OSSIMDLLEXPORT
double theMagentaSaturationOffset
Represents serializable keyword/value map.
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
double theCyanSaturationOffset
double theBlueSaturationOffset
double theMasterIntensityHighClip
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
double theMasterIntensityOffset
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
ossimRefPtr< ossimImageData > theTile
double theYellowIntensityOffset
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
double theMagentaHueBlendRange
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossimString getLongName() const
Definition: ossimObject.cpp:53
double theGreenSaturationOffset
double theYellowSaturationOffset
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
friend OSSIMDLLEXPORT std::ostream & operator<<(std::ostream &out, const ossimErrorStatusInterface &obj)
double theMasterSaturationOffset
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
double theMasterIntensityLowClip
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
double theGreenIntensityOffset