USGS

Isis 3.0 Developer's Reference (API)

Home

Stretch.h

Go to the documentation of this file.
00001 #ifndef Stretch_h
00002 #define Stretch_h
00003 
00025 #include <vector>
00026 #include <string>
00027 #include "Pvl.h"
00028 #include "Histogram.h"
00029 
00030 namespace Isis {
00072   class Stretch {
00073     private:
00074       std::vector<double> p_input;   
00075       std::vector<double> p_output;  
00076       int p_pairs;                   
00077 
00078       double p_null; 
00080       double p_lis;  
00082       double p_lrs;  
00084       double p_his;  
00086       double p_hrs;  
00088       double p_minimum; 
00089       double p_maximum; 
00090 
00091       std::pair<double, double> NextPair(Isis::iString &pairs);
00092 
00093     public:
00094       Stretch();
00095 
00097       ~Stretch() {};
00098 
00099       void AddPair(const double input, const double output);
00100 
00108       void SetNull(const double value) {
00109         p_null = value;
00110       }
00111 
00119       void SetLis(const double value) {
00120         p_lis = value;
00121       }
00122 
00130       void SetLrs(const double value) {
00131         p_lrs = value;
00132       }
00133 
00141       void SetHis(const double value) {
00142         p_his = value;
00143       }
00144 
00152       void SetHrs(const double value) {
00153         p_hrs = value;
00154       }
00155 
00156       void SetMinimum(const double value) {
00157         p_minimum = value;
00158       }
00159       void SetMaximum(const double value) {
00160         p_maximum = value;
00161       }
00162 
00163       void Load(Pvl &pvl, std::string &grpName);
00164       void Save(Pvl &pvl, std::string &grpName);
00165       void Load(std::string &file, std::string &grpName);
00166       void Save(std::string &file, std::string &grpName);
00167 
00168       double Map(const double value) const;
00169 
00170       void Parse(const std::string &pairs);
00171       void Parse(const std::string &pairs, const Isis::Histogram *hist);
00172 
00173       std::string Text() const;
00174 
00176       int Pairs() const {
00177         return p_pairs;
00178       };
00179 
00180       double Input(const int index) const;
00181       double Output(const int index) const;
00182 
00184       void ClearPairs() {
00185         p_pairs = 0;
00186         p_input.clear();
00187         p_output.clear();
00188       };
00189 
00190       void CopyPairs(const Stretch &other);
00191   };
00192 };
00193 
00194 #endif
00195