|
Isis 3.0 Developer's Reference (API) |
Home |
00001 00024 #ifndef PushFrameCameraDetectorMap_h 00025 #define PushFrameCameraDetectorMap_h 00026 00027 #include "CameraDetectorMap.h" 00028 00029 namespace Isis { 00051 class PushFrameCameraDetectorMap : public CameraDetectorMap { 00052 public: 00064 PushFrameCameraDetectorMap(Camera *parent, const double etStart, 00065 const double frameletRate, int frameletHeight) : 00066 CameraDetectorMap(parent) { 00067 p_etStart = etStart; 00068 p_exposureDuration = 0.0; 00069 p_frameletRate = frameletRate; 00070 p_frameletHeight = frameletHeight; 00071 p_frameletOffset = 0; 00072 p_flippedFramelets = true; 00073 p_timeAscendingFramelets = true; 00074 p_nframelets = 0; 00075 p_bandStartDetector = 0; 00076 } 00077 00079 virtual ~PushFrameCameraDetectorMap() {}; 00080 00091 void SetStartTime(const double etStart) { 00092 p_etStart = etStart; 00093 }; 00094 00095 00103 void SetExposureDuration(double exposureDuration) { 00104 p_exposureDuration = exposureDuration; 00105 } 00106 00107 00117 void SetFrameletRate(const double frameletRate) { 00118 p_frameletRate = frameletRate; 00119 }; 00120 00122 double FrameletRate() const { 00123 return p_frameletRate; 00124 }; 00125 00134 void SetFrameletOffset(int frameletOffset) { 00135 p_frameletOffset = frameletOffset; 00136 }; 00137 00139 int FrameletOffset() const { 00140 return p_frameletOffset; 00141 }; 00142 00143 virtual bool SetParent(const double sample, const double line); 00144 00145 virtual bool SetDetector(const double sample, const double line); 00146 00147 void SetFramelet(int framelet); 00148 00155 int Framelet() { 00156 return p_framelet; 00157 } 00158 00159 00170 void SetBandFirstDetectorLine(int firstLine) { 00171 p_bandStartDetector = firstLine; 00172 } 00173 00175 int GetBandFirstDetectorLine() { 00176 return p_bandStartDetector; 00177 } 00178 00189 void SetFlippedFramelets(bool frameletsFlipped, int nframelets) { 00190 p_timeAscendingFramelets = !frameletsFlipped; 00191 p_nframelets = nframelets; 00192 } 00193 00202 void SetGeometricallyFlippedFramelets(bool frameletsFlipped) { 00203 p_flippedFramelets = frameletsFlipped; 00204 } 00205 00212 double StartEphemerisTime() const { 00213 return p_etStart; 00214 }; 00215 00221 int TotalFramelets() const { 00222 return (int)(p_camera->ParentLines() / (p_frameletHeight / LineScaleFactor())); 00223 }; 00224 00225 00231 double frameletSample() const { 00232 return p_frameletSample; 00233 }; 00234 00240 double frameletLine() const { 00241 return p_frameletLine; 00242 }; 00243 00249 int frameletHeight() const { 00250 return p_frameletHeight; 00251 }; 00252 00253 bool timeAscendingFramelets() { 00254 return p_timeAscendingFramelets; 00255 } 00256 00257 private: 00258 double p_etStart; 00259 double p_exposureDuration; 00260 double p_frameletRate; 00261 int p_frameletHeight; 00262 int p_bandStartDetector; 00263 int p_frameletOffset; 00264 int p_framelet; 00265 int p_nframelets; 00266 00267 double p_frameletSample; 00268 double p_frameletLine; 00269 00270 bool p_flippedFramelets; 00271 bool p_timeAscendingFramelets; 00272 00273 }; 00274 }; 00275 #endif