|
Isis 3.0 Developer's Reference (API) |
Home |
00001 #ifndef _ControlNetValidMeasure_h_ 00002 #define _ControlNetValidMeasure_h_ 00003 00004 #include "CubeManager.h" 00005 #include "IString.h" 00006 #include "Pvl.h" 00007 #include "PvlGroup.h" 00008 #include "Progress.h" 00009 #include "SerialNumberList.h" 00010 00034 namespace Isis { 00035 class Camera; 00036 class Cube; 00037 class ControlNet; 00038 class MeasureValidationResults; 00039 class ControlMeasure; 00040 00077 class ControlNetValidMeasure { 00078 public: 00079 ControlNetValidMeasure(Pvl *pvl = 0); 00080 ControlNetValidMeasure(Pvl &pvl); 00081 00083 void InitStdOptions(void); 00084 00086 void InitStdOptionsGroup(void); 00087 00088 virtual ~ControlNetValidMeasure(); 00089 00091 void Parse(Pvl &pvlDef); 00092 00094 virtual Pvl &GetLogPvl(void) { 00095 return mPvlLog; 00096 }; 00097 00099 virtual void FindCnetRef(ControlNet &pNewNet) {}; 00100 00102 bool ValidEmissionAngle(double pdEmissionAngle); 00103 00105 bool ValidIncidenceAngle(double pdIncidenceAngle); 00106 00108 bool ValidDnValue(double pdDnValue); 00109 00111 bool ValidResolution(double pdResolution); 00112 00114 bool ValidResidualTolerances(double pdSampleResidual, double pdLineResidual, 00115 double pdResidualMagnitude, MeasureValidationResults & pResults); 00116 00117 bool ValidShiftTolerances(double sampleShift, double lineShift, 00118 double pixelShift, MeasureValidationResults &results); 00119 00121 bool ValidLatLon(Isis::Camera *pCamera, int piSample, int piLine); 00122 00124 PvlGroup &GetStdOptions(void) { 00125 return mStdOptionsGrp; 00126 }; 00127 00129 PvlGroup &GetStatistics(void) { 00130 return mStatisticsGrp; 00131 }; 00132 00134 double GetMinDN(void) { 00135 return mdMinDN; 00136 }; 00137 00139 double GetMaxDN(void) { 00140 return mdMaxDN; 00141 }; 00142 00144 double GetMinEmissionAngle(void) { 00145 return mdMinEmissionAngle; 00146 }; 00147 00149 double GetMaxEmissionAngle(void) { 00150 return mdMaxEmissionAngle; 00151 }; 00152 00154 double GetMinIncidenceAngle(void) { 00155 return mdMinIncidenceAngle; 00156 }; 00157 00159 double GetMaxIncidenceAngle(void) { 00160 return mdMaxIncidenceAngle; 00161 }; 00162 00164 double GetPixelsFromEdge(void) { 00165 return miPixelsFromEdge; 00166 }; 00167 00169 double GetMetersFromEdge(void) { 00170 return mdMetersFromEdge; 00171 }; 00172 00174 QString LocationString(double pdSample, double pdLine) const { 00175 return toString((int)pdSample) + "," + toString((int)pdLine); 00176 }; 00177 00179 bool PixelsFromEdge(int piSample, int piLine, Cube *pCube); 00180 00182 bool MetersFromEdge(int piSample, int piLine, Cube *pCube); 00183 00185 MeasureValidationResults ValidStandardOptions(const ControlMeasure *pMeasure, 00186 Cube *pCube, PvlGroup *pMeasureGrp = NULL); 00187 00189 MeasureValidationResults ValidStandardOptions(const ControlMeasure *pMeasure, 00190 Cube *pCube, Camera *camera, PvlGroup *pMeasureGrp = NULL); 00191 00193 MeasureValidationResults ValidStandardOptions(double pSample, double pLine, 00194 const ControlMeasure *pMeasure, Cube *pCube, PvlGroup *pMeasureGrp = NULL); 00195 00196 MeasureValidationResults ValidStandardOptions(double pSample, double pLine, 00197 const ControlMeasure *pMeasure, Cube *pCube, Camera *measureCamera, 00198 PvlGroup *pMeasureGrp = NULL); 00199 00201 MeasureValidationResults ValidStandardOptions(double pSample, double pLine, 00202 Cube *pCube, PvlGroup *pMeasureGrp = NULL); 00203 00204 bool IsCubeRequired() { 00205 return IsCameraRequired() || mbValidateDN || mbValidateFromEdge; 00206 } 00207 00215 bool IsCameraRequired() { 00216 return mbCameraRequired; 00217 } 00218 00219 protected: 00221 void ValidatePvlDN(void); 00222 00224 void ValidatePvlEmissionAngle(void); 00225 00227 void ValidatePvlIncidenceAngle(void); 00228 00230 void ValidatePvlResolution(void); 00231 00233 void ValidatePvlFromEdge(void); 00234 00236 void ValidatePvlResidualTolerances(void); 00237 00238 void ValidatePvlShiftTolerances(); 00239 00241 void ReadSerialNumbers(QString psSerialNumfile); 00242 00252 void SetCameraRequiredFlag(bool pbFlag){ 00253 mbCameraRequired = pbFlag; 00254 } 00255 00256 double mdMinDN; 00257 double mdMaxDN; 00258 double mdMinResolution; 00259 double mdMaxResolution; 00260 double mdMinEmissionAngle; 00261 double mdMaxEmissionAngle; 00262 double mdMinIncidenceAngle; 00263 double mdMaxIncidenceAngle; 00264 double mdMetersFromEdge; 00265 int miPixelsFromEdge; 00266 double mdSampleResTolerance; 00267 double mdLineResTolerance; 00268 double mdResidualTolerance; 00269 00270 double m_sampleShiftTolerance; 00271 double m_lineShiftTolerance; 00272 double m_pixelShiftTolerance; 00273 00274 double mdEmissionAngle; 00275 double mdIncidenceAngle; 00276 double mdResolution; 00277 double mdDnValue; 00278 double mdSampleResidual; 00279 double mdLineResidual; 00280 double mdResidualMagnitude; 00281 00282 double m_sampleShift; 00283 double m_lineShift; 00284 double m_pixelShift; 00285 00286 PvlGroup mPvlOpGrp; 00287 PvlGroup mStdOptionsGrp; 00288 PvlGroup mStatisticsGrp; 00289 Pvl mPvlLog; 00290 Progress mStatus; 00291 CubeManager mCubeMgr; 00292 SerialNumberList mSerialNumbers; 00293 00294 bool mbCameraRequired; 00295 00296 bool mbValidateDN; 00297 bool mbValidateFromEdge; 00298 }; 00299 }; 00300 #endif 00301