41 std::vector< LineRateChange > &lineRates) :
43 lineRates[0].GetStartEt(),
44 lineRates[0].GetLineScanRate()),
45 p_lineRates(lineRates) {
76 int rateIndex = p_lineRates.size() - 1;
78 while (rateIndex >= 0 && currEt < p_lineRates[rateIndex].GetStartEt() - 0.5) {
86 int rateStartLine = p_lineRates[rateIndex].GetStartLine();
87 double rateStartEt = p_lineRates[rateIndex].GetStartEt();
88 double rate = p_lineRates[rateIndex].GetLineScanRate();
90 double etDiff = currEt - rateStartEt;
91 p_parentLine = etDiff / rate + (rateStartLine - 0.5);
132 const double deltaT) {
139 int rateIndex = p_lineRates.size() - 1;
141 while (rateIndex >= 0 && line < p_lineRates[rateIndex].GetStartLine() - 0.5) {
149 int rateStartLine = p_lineRates[rateIndex].GetStartLine();
150 double rateStartEt = p_lineRates[rateIndex].GetStartEt();
151 double rate = p_lineRates[rateIndex].GetLineScanRate();
160 double et = rateStartEt + (line - (rateStartLine - 0.5)) * rate;
192 const int band)
const {
193 return lineRate(line).GetLineScanRate();
208 int rateIndex = p_lineRates.size() - 1;
210 while (rateIndex >= 0 && line < p_lineRates[rateIndex].GetStartLine() - 0.5) {
221 return p_lineRates[rateIndex];
virtual bool SetParent(const double sample, const double line)
Compute detector position from a parent image coordinate.
VariableLineScanCameraDetectorMap(Camera *parent, std::vector< LineRateChange > &lineRates)
Constructs a VariableLineScanCameraDetectorMap.
void SetLineRate(const double lineRate)
Reset the line rate.
double DetectorLineOffset() const
Return detector line offset.
double Et() const
Returns the ephemeris time (TDB) representation of the time as a double.
Container class for storing timing information for a section of an image.
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.
iTime time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions...
virtual bool SetParent(const double sample, const double line)
Compute detector position from a parent image coordinate.
virtual ~VariableLineScanCameraDetectorMap()
Destructor.
double p_detectorLine
Detector coordinate line value.
void setTime(const iTime &time)
By setting the time you essential set the position of the spacecraft and body as indicated in the cla...
CameraFocalPlaneMap * FocalPlaneMap()
Returns a pointer to the CameraFocalPlaneMap object.
LineRateChange & lineRate(const double line) const
Get the line rate information for a given line.
virtual bool SetDetector(const double sample, const double line)
Compute parent position from a detector coordinate.
Camera * p_camera
Pointer to the camera.
Convert between parent image coordinates and detector coordinates.
virtual bool SetDetector(const double sample, const double line)
Compute parent position from a detector coordinate.