|
Isis 3.0 Object Programmers' Reference |
Home |
00001 00023 #if !defined(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 { return p_alphaLines; }; 00068 inline int AlphaSamples () const { return p_alphaSamples; }; 00070 inline int BetaLines () const { return p_betaLines; }; 00072 inline int BetaSamples () const { return p_betaSamples; }; 00074 inline double AlphaLine(double betaLine) { 00075 return p_lineSlope * (betaLine - 0.5) + p_alphaStartingLine; 00076 } 00078 inline double AlphaSample(double betaSample) { 00079 return p_sampSlope * (betaSample - 0.5) + p_alphaStartingSample; 00080 } 00082 inline double BetaLine(double alphaLine) { 00083 return (alphaLine - p_alphaStartingLine) / p_lineSlope + 0.5; 00084 } 00086 inline double BetaSample(double alphaSample) { 00087 return (alphaSample - p_alphaStartingSample) / p_sampSlope + 0.5; 00088 } 00089 00090 void UpdateGroup (Isis::Pvl &pvl); 00091 00092 void Rehash (AlphaCube &alphaCube); 00093 00094 private: 00095 void ComputeSlope(); 00096 int p_alphaLines; 00097 int p_alphaSamples; 00098 int p_betaLines; 00099 int p_betaSamples; 00100 double p_alphaStartingLine; 00101 double p_alphaStartingSample; 00102 double p_alphaEndingLine; 00103 double p_alphaEndingSample; 00104 double p_lineSlope; 00105 double p_sampSlope; 00106 }; 00107 }; 00108 00109 #endif