Isis 3.0 Developer's Reference (API) |
Home |
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(QString &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, QString &grpName); 00164 void Save(Pvl &pvl, QString &grpName); 00165 void Load(QString &file, QString &grpName); 00166 void Save(QString &file, QString &grpName); 00167 00168 double Map(const double value) const; 00169 00170 void Parse(const QString &pairs); 00171 void Parse(const QString &pairs, const Isis::Histogram *hist); 00172 00173 QString 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