Isis 3.0
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 {
217  };
218 
219  enum DataField {
225  DateTime = 32,
226  Diameter = 64,
227  EditLock = 128,
228  Rejected = 256,
231  Ignore = 2048,
233  LineResidual = 8192,
234  SampleSigma = 16384,
235  LineSigma = 32768,
236  Type = 65536
237  };
238 
239  ControlMeasure();
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);
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);
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;
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;
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 
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 
322 
323  private: // methods
324  void InitializeToNull();
325  void MeasureModified();
326 
327  private: // data
328  ControlPoint *parentPoint;
329  ControlCubeGraphNode *associatedCSN;
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;
346  bool p_jigsawRejected;
347  double p_sample;
348  double p_line;
349  double p_diameter;
350 
351  double p_aprioriSample;
352  double p_aprioriLine;
353 
356 
357  double p_computedEphemerisTime;
358 
359  double p_sampleSigma;
360  double p_lineSigma;
361  double p_sampleResidual;
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
Status SetType(MeasureType type)
Set how the coordinate was obtained.
Definition: ControlMeasure.cpp:491
bool IsRegistered() const
Definition: ControlMeasure.cpp:705
QString GetDateTime() const
Return the date/time the coordinate was last changed.
Definition: ControlMeasure.cpp:629
Definition: ControlMeasure.h:221
bool IsStatisticallyRelevant(DataField field) const
Definition: ControlMeasure.cpp:710
ControlMeasureLogData GetLogData(long dataType) const
Definition: ControlMeasure.cpp:827
Definition: ControlMeasure.h:216
Serial Number with added functionality for Control Networks.
Definition: ControlCubeGraphNode.h:67
Status SetSampleSigma(double sampleSigma)
Definition: ControlMeasure.cpp:481
Definition: ControlMeasure.h:226
QVector< ControlMeasureLogData > GetLogDataEntries() const
double GetPixelShift() const
Definition: ControlMeasure.cpp:819
(e.g., autoseed, interest) AKA predicted, unmeasured, unverified
Definition: ControlMeasure.h:205
double GetFocalPlaneComputedX() const
Definition: ControlMeasure.cpp:670
Definition: ControlMeasure.h:235
Status SetLineSigma(double lineSigma)
Definition: ControlMeasure.cpp:450
Define a generic Y/X container.
Definition: GruenTypes.h:69
Definition: ControlMeasure.h:232
double GetFocalPlaneComputedY() const
Definition: ControlMeasure.cpp:675
double GetResidualMagnitude() const
Return Residual magnitude.
Definition: ControlMeasure.cpp:766
Definition: ControlMeasure.h:222
DataField
Definition: ControlMeasure.h:219
double GetAprioriSample() const
Definition: ControlMeasure.cpp:601
QVariant GetLogValue(long dataType) const
Get the value of the log data with the specified type as a variant.
Definition: ControlMeasure.cpp:539
Status SetAprioriSample(double aprioriSample)
Definition: ControlMeasure.cpp:226
bool operator!=(const Isis::ControlMeasure &pMeasure) const
Compare 2 Control Measures for inequality.
Definition: ControlMeasure.cpp:1101
Statistical and similar ControlMeasure associated information.
Definition: ControlMeasureLogData.h:51
Definition: ControlMeasure.h:234
QString GetPointId() const
Definition: ControlMeasure.cpp:797
Definition: ControlMeasure.h:227
Definition: ControlMeasure.h:236
QList< QStringList > PrintableClassData() const
Data accessor method, provides access to string representations of all variable values and names...
Definition: ControlMeasure.cpp:888
Registered to whole pixel (e.g.,pointreg)
Definition: ControlMeasure.h:209
Registered to sub-pixel (e.g., pointreg)
Definition: ControlMeasure.h:211
static QVector< QString > GetMeasureDataNames()
Returns a list of all valid options to pass to GetMeasureData.
Definition: ControlMeasure.cpp:867
Status SetRejected(bool rejected)
Set &quot;jigsaw&quot; rejected flag for a measure.
Definition: ControlMeasure.cpp:422
double GetAprioriLine() const
Definition: ControlMeasure.cpp:596
double GetSampleShift() const
Definition: ControlMeasure.cpp:807
Status SetDiameter(double diameter)
Set the crater diameter at the coordinate.
Definition: ControlMeasure.cpp:351
const ControlMeasure & operator=(const ControlMeasure &other)
Assignment operator.
Definition: ControlMeasure.cpp:1035
Definition: Camera.h:240
ControlMeasure()
Create a new control measure and initialize it to nulls and zeros.
Definition: ControlMeasure.cpp:45
double GetMeasureData(QString) const
One Getter to rule them all.
Definition: ControlMeasure.cpp:846
void UpdateLogData(ControlMeasureLogData)
This updates existing log data information associated with data&#39;s type.
Definition: ControlMeasure.cpp:574
double GetFocalPlaneMeasuredX() const
Definition: ControlMeasure.cpp:680
double GetSampleResidual() const
Definition: ControlMeasure.cpp:782
bool IsIgnored() const
Definition: ControlMeasure.cpp:690
Status
Definition: ControlMeasure.h:214
QString GetMeasureTypeString() const
Obtain a string representation of the MeasureType.
Definition: ControlMeasure.cpp:1021
Status SetResidual(double sampResidual, double lineResidual)
Set the BundleAdjust Residual of the coordinate.
Definition: ControlMeasure.cpp:472
Definition: ControlMeasure.h:223
bool operator==(const Isis::ControlMeasure &pMeasure) const
Check for Control Measures equality.
Definition: ControlMeasure.cpp:1122
Hand Measured (e.g., qnet)
Definition: ControlMeasure.h:207
Definition: ControlMeasure.h:231
ControlCubeGraphNode * ControlSN()
Definition: ControlMeasure.h:245
Status SetCamera(Isis::Camera *camera)
Set pointer to camera associated with a measure.
Definition: ControlMeasure.cpp:250
Status SetAprioriLine(double aprioriLine)
Definition: ControlMeasure.cpp:217
double GetLine() const
Definition: ControlMeasure.cpp:750
QVector< ControlMeasureLogData > GetLastRunLogDataEntries() const
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
Isis::Camera * Camera() const
Definition: ControlMeasure.cpp:606
Status SetEditLock(bool editLock)
Definition: ControlMeasure.cpp:360
Definition: ControlMeasure.h:233
void SetLogData(ControlMeasureLogData)
This adds or updates the log data information associated with data&#39;s type.
Definition: ControlMeasure.cpp:505
Status SetIgnored(bool newIgnoredStatus)
Definition: ControlMeasure.cpp:429
Definition: ControlNetFileV0002.pb.h:504
A single control point.
Definition: ControlPoint.h:339
double GetSample() const
Definition: ControlMeasure.cpp:777
double GetLineSigma() const
Definition: ControlMeasure.cpp:760
bool IsMeasured() const
Definition: ControlMeasure.cpp:700
ControlPoint * Parent()
Definition: ControlMeasure.h:244
bool IsEditLocked() const
Return value for p_editLock or implicit lock on reference measure.
Definition: ControlMeasure.cpp:661
MeasureType
Control network measurement types.
Definition: ControlMeasure.h:203
Definition: ControlMeasure.h:215
Definition: Calculator.h:33
Definition: ControlMeasure.h:220
~ControlMeasure()
Free the memory allocated by a control.
Definition: ControlMeasure.cpp:192
MeasureType GetType() const
Definition: ControlMeasure.cpp:792
Definition: ControlMeasure.h:225
Definition: ControlMeasure.h:229
Status SetFocalPlaneMeasured(double x, double y)
Set the focal plane x/y for the measured line/sample.
Definition: ControlMeasure.cpp:378
Definition: ControlMeasure.h:230
double GetLineShift() const
Definition: ControlMeasure.cpp:813
double GetFocalPlaneMeasuredY() const
Definition: ControlMeasure.cpp:685
bool IsRejected() const
Definition: ControlMeasure.cpp:695
Status SetChooserName()
Set chooser name to a user who last changed the coordinate.
Definition: ControlMeasure.cpp:277
Definition: BoxcarCachingAlgorithm.h:29
a control measurement
Definition: ControlMeasure.h:171
QString GetCubeSerialNumber() const
Return the serial number of the cube containing the coordinate.
Definition: ControlMeasure.cpp:623
Status SetCubeSerialNumber(QString newSerialNumber)
Set cube serial number.
Definition: ControlMeasure.cpp:268
Status SetCoordinate(double sample, double line)
Set the coordinate of the measurement.
Definition: ControlMeasure.cpp:300
void DeleteLogData(long dataType)
This deletes log data of the specified type.
Definition: ControlMeasure.cpp:525
ControlPointFileEntryV0002_Measure ToProtocolBuffer() const
Definition: ControlMeasure.cpp:1148
Status SetDateTime()
Date Time - Creation Time.
Definition: ControlMeasure.cpp:326
double GetLineResidual() const
Definition: ControlMeasure.cpp:755
double GetDiameter() const
Return the diameter of the crater in pixels (0 implies no crater)
Definition: ControlMeasure.cpp:640
QString GetChooserName() const
Return the chooser name.
Definition: ControlMeasure.cpp:612
double GetSampleSigma() const
Definition: ControlMeasure.cpp:787
Status SetFocalPlaneComputed(double x, double y)
Set the computed focal plane x/y for the apriori lat/lon.
Definition: ControlMeasure.cpp:398
Definition: ControlMeasure.h:228
bool HasLogData(long dataType) const
Test if we have a valid log data value of the specified type.
Definition: ControlMeasure.cpp:556
static MeasureType StringToMeasureType(QString str)
Definition: ControlMeasure.cpp:953
static QString MeasureTypeToString(MeasureType type)
Return the String Control Measure type.
Definition: ControlMeasure.cpp:986