USGS

Isis 3.0 Developer's Reference (API)

Home

PushFrameCameraDetectorMap.h

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