8#include "VariableLineScanCameraDetectorMap.h"
9#include "CameraFocalPlaneMap.h"
25 std::vector< LineRateChange > &lineRates) :
27 lineRates[0].GetStartEt(),
28 lineRates[0].GetLineScanRate()),
29 p_lineRates(lineRates) {
60 int rateIndex = p_lineRates.size() - 1;
62 while (rateIndex >= 0 && currEt < p_lineRates[rateIndex].GetStartEt() - 0.5) {
70 int rateStartLine = p_lineRates[rateIndex].GetStartLine();
71 double rateStartEt = p_lineRates[rateIndex].GetStartEt();
72 double rate = p_lineRates[rateIndex].GetLineScanRate();
74 double etDiff = currEt - rateStartEt;
116 const double deltaT) {
123 int rateIndex = p_lineRates.size() - 1;
125 while (rateIndex >= 0 && line < p_lineRates[rateIndex].GetStartLine() - 0.5) {
133 int rateStartLine = p_lineRates[rateIndex].GetStartLine();
134 double rateStartEt = p_lineRates[rateIndex].GetStartEt();
135 double rate = p_lineRates[rateIndex].GetLineScanRate();
144 double et = rateStartEt + (line - (rateStartLine - 0.5)) * rate;
176 const int band)
const {
177 return lineRate(line).GetLineScanRate();
192 int rateIndex = p_lineRates.size() - 1;
194 while (rateIndex >= 0 && line < p_lineRates[rateIndex].GetStartLine() - 0.5) {
205 return p_lineRates[rateIndex];
double p_parentLine
The parent line calculated from the detector.
virtual bool SetParent(const double sample, const double line)
Compute detector position from a parent image coordinate.
double p_detectorLine
Detector coordinate line value.
virtual bool SetDetector(const double sample, const double line)
Compute parent position from a detector coordinate.
Camera * p_camera
Pointer to the camera.
double DetectorLineOffset() const
CameraFocalPlaneMap * FocalPlaneMap()
Returns a pointer to the CameraFocalPlaneMap object.
Container class for storing timing information for a section of an image.
Convert between parent image coordinates and detector coordinates.
void SetLineRate(const double lineRate)
Reset the line rate.
void setTime(const iTime &time)
By setting the time you essential set the position of the spacecraft and body as indicated in the cla...
virtual iTime time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
virtual bool SetDetector(const double sample, const double line)
Compute parent position from a detector coordinate.
virtual bool SetParent(const double sample, const double line)
Compute detector position from a parent image coordinate.
LineRateChange & lineRate(const double line) const
Get the line rate information for a given line.
virtual double exposureDuration(const double sample, const double line, const int band) const
This virtual method is for returning the exposure duration of a given pixel.
VariableLineScanCameraDetectorMap(Camera *parent, std::vector< LineRateChange > &lineRates)
Constructs a VariableLineScanCameraDetectorMap.
virtual ~VariableLineScanCameraDetectorMap()
Destructor.
This is free and unencumbered software released into the public domain.