USGS

Isis 3.0 Developer's Reference (API)

Home

AlphaCube.h

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