USGS

Isis 3.0 Developer's Reference (API)

Home

AlphaCube.h
Go to the documentation of this file.
1 
23 #ifndef AlphaCube_h
24 #define AlphaCube_h
25 
26 #include "Pvl.h"
27 
28 namespace Isis {
29  class Cube;
30 
61  class AlphaCube {
62  public:
63  AlphaCube(Cube &cube);
64  AlphaCube(int alphaSamples, int alphaLines,
65  int betaSamples, int betaLines);
66  AlphaCube(int alphaSamples, int alphaLines,
67  int betaSamples, int betaLines,
68  double alphaSs, double alphaSl,
69  double alphaEs, double alphaEl);
71  ~AlphaCube() {};
72 
74  inline int AlphaLines() const {
75  return p_alphaLines;
76  };
78  inline int AlphaSamples() const {
79  return p_alphaSamples;
80  };
82  inline int BetaLines() const {
83  return p_betaLines;
84  };
86  inline int BetaSamples() const {
87  return p_betaSamples;
88  };
90  inline double AlphaLine(double betaLine) {
91  return p_lineSlope * (betaLine - 0.5) + p_alphaStartingLine;
92  }
94  inline double AlphaSample(double betaSample) {
95  return p_sampSlope * (betaSample - 0.5) + p_alphaStartingSample;
96  }
98  inline double BetaLine(double alphaLine) {
99  return (alphaLine - p_alphaStartingLine) / p_lineSlope + 0.5;
100  }
102  inline double BetaSample(double alphaSample) {
103  return (alphaSample - p_alphaStartingSample) / p_sampSlope + 0.5;
104  }
105 
106  void UpdateGroup(Cube &cube);
107 
108  void Rehash(AlphaCube &alphaCube);
109 
110  private:
111  void ComputeSlope();
112  int p_alphaLines;
113  int p_alphaSamples;
114  int p_betaLines;
115  int p_betaSamples;
116  double p_alphaStartingLine;
117  double p_alphaStartingSample;
118  double p_alphaEndingLine;
119  double p_alphaEndingSample;
120  double p_lineSlope;
121  double p_sampSlope;
122  };
123 };
124 
125 #endif