|
Isis 3.0 Developer's Reference (API) |
Home |
00001 00024 #ifndef CameraDetectorMap_h 00025 #define CameraDetectorMap_h 00026 00027 #include "Camera.h" 00028 00029 namespace Isis { 00056 class CameraDetectorMap { 00057 public: 00058 CameraDetectorMap(Camera *parent = 0); 00059 00061 virtual ~CameraDetectorMap() {}; 00062 00063 virtual bool SetParent(const double sample, const double line); 00064 00065 virtual bool SetDetector(const double sample, const double line); 00066 00067 double AdjustedStartingSample() const; 00068 00069 double AdjustedStartingLine() const; 00070 00072 inline double ParentSample() const { 00073 return p_parentSample; 00074 } 00075 00077 inline double ParentLine() const { 00078 return p_parentLine; 00079 } 00080 00082 inline double DetectorSample() const { 00083 return p_detectorSample; 00084 } 00085 00087 inline double DetectorLine() const { 00088 return p_detectorLine; 00089 } 00090 00099 inline void SetStartingDetectorSample(const double sample) { 00100 p_startingDetectorSample = sample; 00101 Compute(); 00102 } 00103 00112 inline void SetStartingDetectorLine(const double line) { 00113 p_startingDetectorLine = line; 00114 Compute(); 00115 } 00116 00126 inline void SetDetectorSampleSumming(const double summing) { 00127 p_detectorSampleSumming = summing; 00128 Compute(); 00129 } 00130 00140 inline void SetDetectorLineSumming(const double summing) { 00141 p_detectorLineSumming = summing; 00142 Compute(); 00143 } 00144 00146 virtual double SampleScaleFactor() const { 00147 return p_detectorSampleSumming; 00148 } 00149 00151 virtual double LineScaleFactor() const { 00152 return p_detectorLineSumming; 00153 } 00154 00156 virtual double LineRate() const { 00157 return 0.0; 00158 } 00159 00160 protected: 00161 Camera *p_camera; 00162 00163 double p_parentSample; 00164 double p_parentLine; 00165 double p_detectorLine; 00166 double p_detectorSample; 00167 00168 double p_detectorSampleSumming; 00169 double p_detectorLineSumming; 00170 double p_startingDetectorSample; 00171 double p_startingDetectorLine; 00172 00173 double p_ss; 00174 double p_sl; 00175 00176 private: 00177 void Compute(); 00178 }; 00179 }; 00180 #endif