USGS

Isis 3.0 Object Programmers' Reference

Home

ControlMeasure.h
Go to the documentation of this file.
1 #ifndef ControlMeasure_h
2 #define ControlMeasure_h
3 
26 #include <QObject>
27 
28 template< class A> class QVector;
29 template< class A> class QList;
30 class QString;
31 class QStringList;
32 class QVariant;
33 
34 namespace Isis {
35  class Application;
36  class Camera;
37  class ControlMeasureLogData;
38  class ControlPoint;
39  class ControlPointFileEntryV0002_Measure;
40  class ControlCubeGraphNode;
41  class PvlGroup;
42  class PvlKeyword;
43 
171  class ControlMeasure : public QObject {
172 
173  Q_OBJECT
174 
175  friend class ControlPoint;
176  friend class ControlCubeGraphNode;
177  public:
203  enum MeasureType {
212  };
213 
214  enum Status {
215  Success,
216  MeasureLocked
217  };
218 
219  enum DataField {
220  AprioriLine = 1,
221  AprioriSample = 2,
222  ChooserName = 4,
223  CubeSerialNumber = 8,
224  Coordinate = 16,
225  DateTime = 32,
226  Diameter = 64,
227  EditLock = 128,
228  Rejected = 256,
229  FocalPlaneMeasured = 512,
230  FocalPlaneComputed = 1024,
231  Ignore = 2048,
232  SampleResidual = 4096,
233  LineResidual = 8192,
234  SampleSigma = 16384,
235  LineSigma = 32768,
236  Type = 65536
237  };
238 
239  ControlMeasure();
240  ControlMeasure(const ControlPointFileEntryV0002_Measure &);
241  ControlMeasure(const ControlMeasure &other);
242  ~ControlMeasure();
243 
244  ControlPoint *Parent() { return parentPoint; }
245  ControlCubeGraphNode *ControlSN() { return associatedCSN; }
246 
247  Status SetAprioriLine(double aprioriLine);
248  Status SetAprioriSample(double aprioriSample);
249  Status SetCamera(Isis::Camera *camera);
250  Status SetChooserName();
251  Status SetChooserName(QString name);
252  Status SetCoordinate(double sample, double line);
253  Status SetCoordinate(double sample, double line, MeasureType type);
254  Status SetCubeSerialNumber(QString newSerialNumber);
255  Status SetDateTime();
256  Status SetDateTime(QString datetime);
257  Status SetDiameter(double diameter);
258  Status SetEditLock(bool editLock);
259  Status SetFocalPlaneMeasured(double x, double y);
260  Status SetFocalPlaneComputed(double x, double y);
261  Status SetIgnored(bool newIgnoredStatus);
262  Status SetLineSigma(double lineSigma);
263  Status SetRejected(bool rejected);
264  Status SetResidual(double sampResidual, double lineResidual);
265  Status SetSampleSigma(double sampleSigma);
266  Status SetType(MeasureType type);
267 
268  void DeleteLogData(long dataType);
269  QVariant GetLogValue(long dataType) const;
270  bool HasLogData(long dataType) const;
271  void SetLogData(ControlMeasureLogData);
272  void UpdateLogData(ControlMeasureLogData);
273 
274  double GetAprioriLine() const;
275  double GetAprioriSample() const;
276  Isis::Camera *Camera() const;
277  QString GetChooserName() const;
278  QString GetCubeSerialNumber() const;
279  QString GetDateTime() const;
280  double GetDiameter() const;
281  ControlMeasureLogData GetLogData(long dataType) const;
282  bool IsEditLocked() const;
283  bool IsRejected() const;
284  double GetFocalPlaneComputedX() const;
285  double GetFocalPlaneComputedY() const;
286  double GetFocalPlaneMeasuredX() const;
287  double GetFocalPlaneMeasuredY() const;
288  double GetMeasureData(QString) const;
289  bool IsIgnored() const;
290  bool IsMeasured() const;
291  bool IsRegistered() const;
292  bool IsStatisticallyRelevant(DataField field) const;
293  double GetLine() const;
294  double GetLineResidual() const;
295  double GetLineSigma() const;
296  QVector<ControlMeasureLogData> GetLogDataEntries() const;
297  QVector<ControlMeasureLogData> GetLastRunLogDataEntries() const;
298  double GetResidualMagnitude() const;
299  double GetSample() const;
300  double GetSampleResidual() const;
301  double GetSampleSigma() const;
302  MeasureType GetType() const;
303  QString GetPointId() const;
304 
305  double GetSampleShift() const;
306  double GetLineShift() const;
307  double GetPixelShift() const;
308 
309  static QVector<QString> GetMeasureDataNames();
310 
312 
313  static QString MeasureTypeToString(MeasureType type);
314  static MeasureType StringToMeasureType(QString str);
315  QString GetMeasureTypeString() const;
316 
317  const ControlMeasure &operator=(const ControlMeasure &other);
318  bool operator != (const Isis::ControlMeasure &pMeasure) const;
319  bool operator == (const Isis::ControlMeasure &pMeasure) const;
320 
321  ControlPointFileEntryV0002_Measure ToProtocolBuffer() const;
322 
323  private: // methods
324  void InitializeToNull();
325  void MeasureModified();
326 
327  private: // data
330  // structure connecting measures in an image
331 
332  QString *p_serialNumber;
333  MeasureType p_measureType;
334 
335  QVector<ControlMeasureLogData> * p_loggedData;
336  PvlGroup *p_comments;
337 
342  QString *p_chooserName;
343  QString *p_dateTime;
344  bool p_editLock;
345  bool p_ignore;
347  double p_sample;
348  double p_line;
349  double p_diameter;
350 
352  double p_aprioriLine;
353 
354 
355 
356 
357  double p_computedEphemerisTime;
358 
359  double p_sampleSigma;
360  double p_lineSigma;
362  double p_lineResidual;
363  Isis::Camera *p_camera;
364  double p_focalPlaneMeasuredX;
365  double p_focalPlaneMeasuredY;
366  double p_focalPlaneComputedX;
367  double p_focalPlaneComputedY;
368  double p_measuredEphemerisTime;
369  };
370 }
371 
372 #endif