|
Isis 3.0 Developer's Reference (API) |
Home |
00001 00023 #ifndef AlphaCube_h 00024 #define AlphaCube_h 00025 00026 #include "Pvl.h" 00027 00028 namespace Isis { 00053 class AlphaCube { 00054 public: 00055 AlphaCube(Isis::Pvl &pvl); 00056 AlphaCube(int alphaSamples, int alphaLines, 00057 int betaSamples, int betaLines); 00058 AlphaCube(int alphaSamples, int alphaLines, 00059 int betaSamples, int betaLines, 00060 double alphaSs, double alphaSl, 00061 double alphaEs, double alphaEl); 00063 ~AlphaCube() {}; 00064 00066 inline int AlphaLines() const { 00067 return p_alphaLines; 00068 }; 00070 inline int AlphaSamples() const { 00071 return p_alphaSamples; 00072 }; 00074 inline int BetaLines() const { 00075 return p_betaLines; 00076 }; 00078 inline int BetaSamples() const { 00079 return p_betaSamples; 00080 }; 00082 inline double AlphaLine(double betaLine) { 00083 return p_lineSlope * (betaLine - 0.5) + p_alphaStartingLine; 00084 } 00086 inline double AlphaSample(double betaSample) { 00087 return p_sampSlope * (betaSample - 0.5) + p_alphaStartingSample; 00088 } 00090 inline double BetaLine(double alphaLine) { 00091 return (alphaLine - p_alphaStartingLine) / p_lineSlope + 0.5; 00092 } 00094 inline double BetaSample(double alphaSample) { 00095 return (alphaSample - p_alphaStartingSample) / p_sampSlope + 0.5; 00096 } 00097 00098 void UpdateGroup(Isis::Pvl &pvl); 00099 00100 void Rehash(AlphaCube &alphaCube); 00101 00102 private: 00103 void ComputeSlope(); 00104 int p_alphaLines; 00105 int p_alphaSamples; 00106 int p_betaLines; 00107 int p_betaSamples; 00108 double p_alphaStartingLine; 00109 double p_alphaStartingSample; 00110 double p_alphaEndingLine; 00111 double p_alphaEndingSample; 00112 double p_lineSlope; 00113 double p_sampSlope; 00114 }; 00115 }; 00116 00117 #endif