9 #include "ApolloPanoramicDetectorMap.h"
10 #include "Application.h"
12 #include "SerialNumber.h"
29 bool ApolloPanoramicDetectorMap::SetDetector(
const double sample,
const double line) {
35 p_detectorLine = -line;
36 p_detectorSample = -sample;
39 double fidL = (p_camera->time().Et() - m_etMiddle)/m_lineRate;
43 p_intOri.image2Machine(p_detectorSample, fidL, &p_parentSample, &p_parentLine);
58 bool ApolloPanoramicDetectorMap::SetParent(
const double sample,
const double line) {
63 p_parentSample = sample;
67 p_intOri.machine2Image(sample,line,&p_detectorSample, &p_detectorLine);
71 iTime isisTime(m_etMiddle + p_detectorLine*m_lineRate);
72 p_camera->setTime(isisTime);
96 int ApolloPanoramicDetectorMap::initializeInteriorOrientation() {
101 Table tableFid(
"Fiducial Measurement", m_lab->fileName());
106 throw IException(IException::User,
"No FID_MEASURES table found in cube blobs.\n",
111 throw IException(IException::User,
"Less than four FID_MEASURES found in cube blobs.\n",
115 p_intOri.initialize();
118 p_intOri.fiducialObservation(tableFid[i][0], tableFid[i][1], tableFid[i][2]);
120 i = p_intOri.computeInteriorOrienation();
123 throw IException(IException::User,
"Insufficient Fiducial Observations for computation of "
124 "the interior orientation.\nAt least one vertical pair "
125 "must be measured, many more is recomented.\n",