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) {
59 double currEt =
p_camera->time().Et();
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.
Container class for storing timing information for a section of an image.
LineScanCameraDetectorMap(Camera *parent, const double etStart, const double lineRate)
Construct a detector map for line scan cameras.
void SetLineRate(const double lineRate)
Reset the line rate.
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.