USGS

Isis 3.0 Object Programmers' Reference

Home

AlphaCube.h

Go to the documentation of this file.
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