Isis 3 Developer Reference
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 PvlGroup;
40  class PvlKeyword;
41 
189  class ControlMeasure : public QObject {
190 
191  Q_OBJECT
192 
193  friend class ControlPoint;
194  public:
220  enum MeasureType {
229  };
230 
231  enum Status {
234  };
235 
236 
246  enum ModType {
248  };
249 
250  enum DataField {
256  DateTime = 32,
257  Diameter = 64,
258  EditLock = 128,
259  Rejected = 256,
262  Ignore = 2048,
264  LineResidual = 8192,
265  SampleSigma = 16384,
266  LineSigma = 32768,
267  Type = 65536
268  };
269 
270  ControlMeasure();
271  ControlMeasure(const ControlMeasure &other);
272  ~ControlMeasure();
273 
274  ControlPoint *Parent() { return parentPoint; }
275 
276  Status SetAprioriLine(double aprioriLine);
277  Status SetAprioriSample(double aprioriSample);
278  Status SetCamera(Isis::Camera *camera);
280  Status SetChooserName(QString name);
281  Status SetCoordinate(double sample, double line);
282  Status SetCoordinate(double sample, double line, MeasureType type);
283  Status SetCubeSerialNumber(QString newSerialNumber);
285  Status SetDateTime(QString datetime);
286  Status SetDiameter(double diameter);
287  Status SetEditLock(bool editLock);
288  Status SetFocalPlaneMeasured(double x, double y);
289  Status SetFocalPlaneComputed(double x, double y);
290  Status SetIgnored(bool newIgnoredStatus);
291  Status SetLineSigma(double lineSigma);
292  Status SetRejected(bool rejected);
293  Status SetResidual(double sampResidual, double lineResidual);
294  Status SetSampleSigma(double sampleSigma);
295  Status SetType(MeasureType type);
296 
297  void DeleteLogData(long dataType);
298  QVariant GetLogValue(long dataType) const;
299  bool HasLogData(long dataType) const;
302 
303  double GetAprioriLine() const;
304  double GetAprioriSample() const;
305  Isis::Camera *Camera() const;
306  QString GetChooserName() const;
307  bool HasChooserName() const;
308  QString GetCubeSerialNumber() const;
309  QString GetDateTime() const;
310  bool HasDateTime() const;
311  double GetDiameter() const;
312  ControlMeasureLogData GetLogData(long dataType) const;
313  bool IsEditLocked() const;
314  bool IsRejected() const;
315  double GetFocalPlaneComputedX() const;
316  double GetFocalPlaneComputedY() const;
317  double GetFocalPlaneMeasuredX() const;
318  double GetFocalPlaneMeasuredY() const;
319  double GetMeasureData(QString) const;
320  bool IsIgnored() const;
321  bool IsMeasured() const;
322  bool IsRegistered() const;
323  bool IsStatisticallyRelevant(DataField field) const;
324  double GetLine() const;
325  double GetLineResidual() const;
326  double GetLineSigma() const;
329  double GetResidualMagnitude() const;
330  double GetSample() const;
331  double GetSampleResidual() const;
332  double GetSampleSigma() const;
333  MeasureType GetType() const;
334  QString GetPointId() const;
335 
336  double GetSampleShift() const;
337  double GetLineShift() const;
338  double GetPixelShift() const;
339 
341 
343 
344  static QString MeasureTypeToString(MeasureType type);
345  static MeasureType StringToMeasureType(QString str);
346  QString GetMeasureTypeString() const;
347 
348  const ControlMeasure &operator=(const ControlMeasure &other);
349  bool operator != (const Isis::ControlMeasure &pMeasure) const;
350  bool operator == (const Isis::ControlMeasure &pMeasure) const;
351 
352  private: // methods
353  void InitializeToNull();
354  void MeasureModified();
355 
356  private: // data
357  ControlPoint *parentPoint;
358  // structure connecting measures in an image
359 
360  QString *p_serialNumber;
361  MeasureType p_measureType;
362 
363  QVector<ControlMeasureLogData> * p_loggedData;
364  PvlGroup *p_comments;
365 
370  QString *p_chooserName;
371  QString *p_dateTime;
372  bool p_editLock;
373  bool p_ignore;
374  bool p_jigsawRejected;
375  double p_sample;
376  double p_line;
377  double p_diameter;
378 
379  double p_aprioriSample;
380  double p_aprioriLine;
381 
384 
385  double p_computedEphemerisTime;
386 
387  double p_sampleSigma;
388  double p_lineSigma;
389  double p_sampleResidual;
390  double p_lineResidual;
391  Isis::Camera *p_camera;
392  double p_focalPlaneMeasuredX;
393  double p_focalPlaneMeasuredY;
394  double p_focalPlaneComputedX;
395  double p_focalPlaneComputedY;
396  double p_measuredEphemerisTime;
397  };
398 }
399 
400 #endif
Status SetType(MeasureType type)
Set how the coordinate was obtained.
Definition: ControlMeasure.cpp:433
bool IsRegistered() const
Definition: ControlMeasure.cpp:658
Definition: ControlMeasure.h:252
Definition: ControlMeasure.h:233
QString GetPointId() const
Definition: ControlMeasure.cpp:756
Status SetSampleSigma(double sampleSigma)
Definition: ControlMeasure.cpp:423
double GetFocalPlaneComputedX() const
Definition: ControlMeasure.cpp:623
Definition: ControlMeasure.h:257
(e.g., autoseed, interest) AKA predicted, unmeasured, unverified
Definition: ControlMeasure.h:222
QList< QStringList > PrintableClassData() const
Data accessor method, provides access to string representations of all variable values and names...
Definition: ControlMeasure.cpp:867
Definition: ControlMeasure.h:266
Status SetLineSigma(double lineSigma)
Definition: ControlMeasure.cpp:390
Define a generic Y/X container.
Definition: GruenTypes.h:69
Definition: ControlMeasure.h:263
bool operator!=(const Isis::ControlMeasure &pMeasure) const
Compare 2 Control Measures for inequality.
Definition: ControlMeasure.cpp:1079
Definition: ControlMeasure.h:253
double GetFocalPlaneMeasuredX() const
Definition: ControlMeasure.cpp:633
ModType
Control Measure Modification Types.
Definition: ControlMeasure.h:246
DataField
Definition: ControlMeasure.h:250
double GetSample() const
Definition: ControlMeasure.cpp:736
double GetResidualMagnitude() const
Return Residual magnitude.
Definition: ControlMeasure.cpp:725
Status SetAprioriSample(double aprioriSample)
Definition: ControlMeasure.cpp:157
Statistical and similar ControlMeasure associated information.
Definition: ControlMeasureLogData.h:51
Definition: ControlMeasure.h:265
Definition: ControlMeasure.h:258
Definition: ControlMeasure.h:267
double GetFocalPlaneComputedY() const
Definition: ControlMeasure.cpp:628
Registered to whole pixel (e.g.,pointreg)
Definition: ControlMeasure.h:226
Registered to sub-pixel (e.g., pointreg)
Definition: ControlMeasure.h:228
double GetMeasureData(QString) const
One Getter to rule them all.
Definition: ControlMeasure.cpp:819
static QVector< QString > GetMeasureDataNames()
Returns a list of all valid options to pass to GetMeasureData.
Definition: ControlMeasure.cpp:846
Status SetRejected(bool rejected)
Set "jigsaw" rejected flag for a measure.
Definition: ControlMeasure.cpp:356
bool HasChooserName() const
Returns true if the choosername is not empty.
Definition: ControlMeasure.cpp:565
Status SetDiameter(double diameter)
Set the crater diameter at the coordinate.
Definition: ControlMeasure.cpp:285
QString GetMeasureTypeString() const
Obtain a string representation of the MeasureType.
Definition: ControlMeasure.cpp:1000
const ControlMeasure & operator=(const ControlMeasure &other)
Assignment operator.
Definition: ControlMeasure.cpp:1014
Definition: Camera.h:249
ControlMeasure()
Create a new control measure and initialize it to nulls and zeros.
Definition: ControlMeasure.cpp:43
bool HasLogData(long dataType) const
Test if we have a valid log data value of the specified type.
Definition: ControlMeasure.cpp:499
void UpdateLogData(ControlMeasureLogData)
This updates existing log data information associated with data&#39;s type.
Definition: ControlMeasure.cpp:517
Status
Definition: ControlMeasure.h:231
Status SetResidual(double sampResidual, double lineResidual)
Set the BundleAdjust Residual of the coordinate.
Definition: ControlMeasure.cpp:412
Definition: ControlMeasure.h:254
double GetFocalPlaneMeasuredY() const
Definition: ControlMeasure.cpp:638
Hand Measured (e.g., qnet)
Definition: ControlMeasure.h:224
Definition: ControlMeasure.h:262
Status SetCamera(Isis::Camera *camera)
Set pointer to camera associated with a measure.
Definition: ControlMeasure.cpp:182
Status SetAprioriLine(double aprioriLine)
Definition: ControlMeasure.cpp:147
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
Status SetEditLock(bool editLock)
Definition: ControlMeasure.cpp:294
Definition: ControlMeasure.h:264
void SetLogData(ControlMeasureLogData)
This adds or updates the log data information associated with data&#39;s type.
Definition: ControlMeasure.cpp:448
double GetAprioriSample() const
Definition: ControlMeasure.cpp:544
Status SetIgnored(bool newIgnoredStatus)
Definition: ControlMeasure.cpp:363
A single control point.
Definition: ControlPoint.h:369
double GetPixelShift() const
Definition: ControlMeasure.cpp:778
double GetSampleShift() const
Definition: ControlMeasure.cpp:766
double GetLineShift() const
Definition: ControlMeasure.cpp:772
double GetLineSigma() const
Definition: ControlMeasure.cpp:713
ControlMeasureLogData GetLogData(long dataType) const
Definition: ControlMeasure.cpp:786
ControlPoint * Parent()
Definition: ControlMeasure.h:274
bool operator==(const Isis::ControlMeasure &pMeasure) const
Check for Control Measures equality.
Definition: ControlMeasure.cpp:1100
QString GetChooserName() const
Return the chooser name.
Definition: ControlMeasure.cpp:555
bool HasDateTime() const
Returns true if the datetime is not empty.
Definition: ControlMeasure.cpp:586
MeasureType
Control network measurement types.
Definition: ControlMeasure.h:220
Definition: ControlMeasure.h:247
Definition: ControlMeasure.h:232
Definition: Calculator.h:33
Definition: ControlMeasure.h:251
~ControlMeasure()
Free the memory allocated by a control.
Definition: ControlMeasure.cpp:123
Definition: ControlMeasure.h:256
Definition: ControlMeasure.h:260
Status SetFocalPlaneMeasured(double x, double y)
Set the focal plane x/y for the measured line/sample.
Definition: ControlMeasure.cpp:312
Isis::Camera * Camera() const
Definition: ControlMeasure.cpp:549
QString GetDateTime() const
Return the date/time the coordinate was last changed.
Definition: ControlMeasure.cpp:576
Definition: ControlMeasure.h:261
QVector< ControlMeasureLogData > GetLogDataEntries() const
Return all of the log data for the measure.
Definition: ControlMeasure.cpp:809
double GetLineResidual() const
Definition: ControlMeasure.cpp:708
double GetLine() const
Definition: ControlMeasure.cpp:703
QVector< ControlMeasureLogData > GetLastRunLogDataEntries() const
QVariant GetLogValue(long dataType) const
Get the value of the log data with the specified type as a variant.
Definition: ControlMeasure.cpp:482
Status SetChooserName()
Set chooser name to a user who last changed the coordinate.
Definition: ControlMeasure.cpp:209
double GetAprioriLine() const
Definition: ControlMeasure.cpp:539
Definition: BoxcarCachingAlgorithm.h:29
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
bool IsEditLocked() const
Return value for p_editLock or implicit lock on reference measure.
Definition: ControlMeasure.cpp:614
a control measurement
Definition: ControlMeasure.h:189
Status SetCubeSerialNumber(QString newSerialNumber)
Set cube serial number.
Definition: ControlMeasure.cpp:200
Status SetCoordinate(double sample, double line)
Set the coordinate of the measurement.
Definition: ControlMeasure.cpp:232
bool IsRejected() const
Definition: ControlMeasure.cpp:648
void DeleteLogData(long dataType)
This deletes log data of the specified type.
Definition: ControlMeasure.cpp:468
double GetSampleResidual() const
Definition: ControlMeasure.cpp:741
Status SetDateTime()
Date Time - Creation Time.
Definition: ControlMeasure.cpp:260
bool IsMeasured() const
Definition: ControlMeasure.cpp:653
bool IsIgnored() const
Definition: ControlMeasure.cpp:643
double GetSampleSigma() const
Definition: ControlMeasure.cpp:746
MeasureType GetType() const
Definition: ControlMeasure.cpp:751
double GetDiameter() const
Return the diameter of the crater in pixels (0 implies no crater)
Definition: ControlMeasure.cpp:593
Status SetFocalPlaneComputed(double x, double y)
Set the computed focal plane x/y for the apriori lat/lon.
Definition: ControlMeasure.cpp:332
Definition: ControlMeasure.h:259
QString GetCubeSerialNumber() const
Return the serial number of the cube containing the coordinate.
Definition: ControlMeasure.cpp:570
static MeasureType StringToMeasureType(QString str)
Definition: ControlMeasure.cpp:932
bool IsStatisticallyRelevant(DataField field) const
Definition: ControlMeasure.cpp:663
static QString MeasureTypeToString(MeasureType type)
Return the String Control Measure type.
Definition: ControlMeasure.cpp:964