Isis 3.0
Home
QnetTool.h
Go to the documentation of this file.
1 #ifndef QnetTool_h
2 #define QnetTool_h
3 
4 #include "Tool.h"
5 #include "ControlPoint.h"
6 
7 #include <QCloseEvent>
8 #include <QPalette>
9 #include <QPointer>
10 #include <QStringList>
11 
12 class QAction;
13 class QBoxLayout;
14 class QCheckBox;
15 class QComboBox;
16 class QGroupBox;
17 class QLabel;
18 class QMainWindow;
19 class QObject;
20 class QPainter;
21 class QPoint;
22 class QPushButton;
23 class QSplitter;
24 class QStackedWidget;
25 class QString;
26 class QTableWidget;
27 class QTextEdit;
28 class QWidget;
29 
30 namespace Isis {
31  class ControlMeasure;
32  class ControlNet;
33  class ControlPointEdit;
34  class Cube;
35  class CubeViewport;
36  class MainWindow;
37  class MdiCubeViewport;
38  class QnetHoldPointDialog;
39  class SerialNumberList;
40  class Stretch;
41  class ToolPad;
42  class UniversalGroundMap;
43 
251  class QnetTool : public Tool {
252  Q_OBJECT
253 
254  public:
255  QnetTool (QWidget *parent);
256  virtual ~QnetTool ();
257  void paintViewport (MdiCubeViewport *cvp,QPainter *painter);
258 
259  // measure column values
277  };
278  static const int NUMCOLUMNS = 16;
279 
280  QString measureColumnToString(MeasureColumns column);
281 
283  const ControlNet *controlNet() const;
284 
286  const SerialNumberList *serialNumberList() const;
287 
288  Workspace *workspace() const;
289 
290  signals:
291  void qnetToolSave();
292  void qnetToolSaveAs();
293  void refreshNavList();
294  void editPointChanged(QString pointId);
295  void netChanged();
296  void ignorePointChanged();
297  void ignoreLeftChanged();
298  void ignoreRightChanged();
299  void showNavTool();
302  void measureChanged();
303 
304  public slots:
305  void updateList();
306  void updateNet(QString cNetFileName);
307  void createPoint(double lat,double lon);
308  void createFixedPoint(double lat,double lon);
309  void modifyPoint(ControlPoint *point);
310  void deletePoint(ControlPoint *point);
311  void updatePointInfo(QString pointId);
312  void refresh();
313 
314  protected:
316  bool eventFilter(QObject *o,QEvent *e);
317 
318  protected slots:
319  void mouseButtonRelease(QPoint p, Qt::MouseButton s);
320  QWidget *createToolBarWidget (QStackedWidget *parent);
321 
322  private slots:
323  void enterWhatsThisMode();
324  void paintAllViewports (QString pointId );
325  void saveNet();
326  void saveAsNet();
327  void addMeasure();
328  void setPointType (int pointType);
329  void setLockPoint (bool ignore);
330  void setIgnorePoint (bool ignore);
331  void setLockLeftMeasure (bool ignore);
332  void setIgnoreLeftMeasure (bool ignore);
333  void setLockRightMeasure (bool ignore);
334  void setIgnoreRightMeasure (bool ignore);
335  void showNavWindow (bool checked);
336 
337  void updateSurfacePointInfo ();
338 
339  void nextRightMeasure();
340  void previousRightMeasure();
341  void selectLeftMeasure (int index);
342  void selectRightMeasure (int index);
343  void updateLeftMeasureInfo ();
344  void updateRightMeasureInfo ();
345 
346  void measureSaved();
347  bool checkReference();
348  void updateGroundPosition();
349  void savePoint();
350  void colorizeSaveButton();
351 
352  void openTemplateFile();
353  void viewTemplateFile();
354  void saveChips();
355 
356  void openGround();
357  void groundViewportClosed(CubeViewport *);
358  void openDem();
359  void openReferenceRadius();
360  void showHideTemplateEditor();
361  void saveTemplateFile();
362  void saveTemplateFileAs();
363  void setTemplateModified();
364  void writeTemplateFile(QString);
365 
366  private:
367  void createActions();
368  void createMenus();
369  ControlMeasure *createTemporaryGroundMeasure();
370  void createToolBars();
371  bool findPointLocation();
372  void loadPoint();
373  void loadGroundMeasure();
374  void loadMeasureTable();
375  void drawAllMeasurments (MdiCubeViewport *vp,QPainter *painter);
376  void drawGroundMeasures (MdiCubeViewport *vp,QPainter *painter);
377 // void drawMeasures (MdiCubeViewport *vp,QPainter *painter,ControlPoint &point);
378  void createQnetTool(QWidget *parent);
379  QSplitter * createTopSplitter();
380  QGroupBox * createControlPointGroupBox();
381  QGroupBox * createLeftMeasureGroupBox();
382  QGroupBox * createRightMeasureGroupBox();
383  void createTemplateEditorWidget();
384  void loadTemplateFile(QString);
385  bool okToContinue();
386  void initDem(QString demFile);
387  double demRadius(double latitude, double longitude);
388  void clearGroundSource();
389  bool IsMeasureLocked(QString serialNumber);
390 
391  void readSettings();
392  void writeSettings() const;
393 
394  QPointer<MainWindow> m_qnetTool;
395 
396  QString m_cnetFileName;
397 
398  QStringList findPointFiles(double lat, double lon);
399 
400  QPointer<QAction> m_createPoint;
401  QPointer<QAction> m_modifyPoint;
402  QPointer<QAction> m_deletePoint;
403 
404  QPointer<QAction> m_openGround;
405  QPointer<QAction> m_openDem;
406  QPointer<QAction> m_saveNet;
407  QPointer<QToolBar> toolBar;
408  QPointer<QAction> m_saveAsNet;
409  QPointer<QAction> m_closeQnetTool;
410 
411  QPointer<QAction> m_saveChips;
412  QPointer<QAction> m_showHideTemplateEditor;
413  QPointer<QAction> m_openTemplateFile;
414  QPointer<QAction> m_saveTemplateFile;
415  QPointer<QAction> m_saveTemplateFileAs;
416 
417  QPointer<QAction> m_whatsThis;
418 
419  QPointer<QMainWindow> m_mw;
420  QPointer<ControlPointEdit> m_pointEditor;
421 
422  QPushButton *m_savePoint;
423  QPalette m_saveDefaultPalette;
424 
425  QTextEdit *m_templateEditor;
426  QWidget *m_templateEditorWidget;
427  bool m_templateModified;
428 
429  QPointer<QLabel> m_templateFileNameLabel;
430  QPointer<QLabel> m_groundFileNameLabel;
431  QPointer<QLabel> m_radiusFileNameLabel;
432  QPointer<QLabel> m_ptIdValue;
433  QPointer<QComboBox> m_pointType;
434  QPointer<QLabel> m_numMeasures;
435  QPointer<QLabel> m_pointAprioriLatitude;
436  QPointer<QLabel> m_pointAprioriLongitude;
437  QPointer<QLabel> m_pointAprioriRadius;
438  QPointer<QLabel> m_pointAprioriLatitudeSigma;
439  QPointer<QLabel> m_pointAprioriLongitudeSigma;
440  QPointer<QLabel> m_pointAprioriRadiusSigma;
441  QPointer<QLabel> m_pointLatitude;
442  QPointer<QLabel> m_pointLongitude;
443  QPointer<QLabel> m_pointRadius;
444 
445  QPointer<QCheckBox> m_lockPoint;
446  QPointer<QCheckBox> m_ignorePoint;
447  QPointer<QLabel> m_leftReference;
448  QPointer<QLabel> m_leftMeasureType;
449  QPointer<QLabel> m_leftSampError;
450  QPointer<QLabel> m_leftLineError;
451  QPointer<QLabel> m_leftSampShift;
452  QPointer<QLabel> m_leftLineShift;
453  QPointer<QLabel> m_leftGoodness;
454  QPointer<QLabel> m_rightGoodness;
455  QPointer<QLabel> m_rightReference;
456  QPointer<QLabel> m_rightMeasureType;
457  QPointer<QLabel> m_rightSampError;
458  QPointer<QLabel> m_rightLineError;
459  QPointer<QLabel> m_rightSampShift;
460  QPointer<QLabel> m_rightLineShift;
461  QPointer<QCheckBox> m_lockLeftMeasure;
462  QPointer<QCheckBox> m_ignoreLeftMeasure;
463  QPointer<QCheckBox> m_lockRightMeasure;
464  QPointer<QCheckBox> m_ignoreRightMeasure;
465 
466  QPointer<QComboBox> m_leftCombo;
467  QPointer<QComboBox> m_rightCombo;
468 
469  QPointer<QMainWindow> m_measureWindow;
470  QPointer<QTableWidget> m_measureTable;
471 
472  QPointer<ControlPoint> m_editPoint;
473 
474  QStringList m_pointFiles;
475 
476  QString m_leftFile;
477  QPointer<ControlMeasure> m_leftMeasure;
478  QPointer<ControlMeasure> m_rightMeasure;
479  QScopedPointer<Cube> m_leftCube;
480  QScopedPointer<Cube> m_rightCube;
481 
482  QString m_groundFile;
483  QScopedPointer<Cube> m_groundCube;
484  QString m_groundSN;
485  QScopedPointer<UniversalGroundMap> m_groundGmap;
486  bool m_groundOpen;
487  ControlPoint::SurfacePointSource::Source m_groundSurfacePointSource;
488  ControlPoint::RadiusSource::Source m_groundRadiusSource;
489  // TODO: Combine the following m_groundSourceFile, m_radiusSourceFile
490  // with m_groundFile and m_demFile. Is it just a matter of
491  // full path vs filename only?
492  QString m_groundSourceFile;
493  QString m_radiusSourceFile;
494  QString m_demFile;
495  bool m_demOpen;
496  QScopedPointer<Cube> m_demCube;
497 
498  QString m_lastUsedPointId;
499  QPointer<ControlNet> m_controlNet;
500  SerialNumberList *m_serialNumberList;
501  QPointer<Workspace> m_workspace;
502  };
503 };
504 
505 #endif
Cube display widget for certain Isis MDI applications.
Definition: MdiCubeViewport.h:53
void measureChanged()
Definition: moc_QnetTool.cpp:556
Definition: QnetTool.h:265
QString measureColumnToString(MeasureColumns column)
Definition: QnetTool.cpp:2541
Source
Definition: ControlPoint.h:429
void updateNet(QString cNetFileName)
Updates the Control Network displayed in the Qnet Tool title bar.
Definition: QnetTool.cpp:1457
Workspace * workspace() const
Definition: QnetTool.cpp:2601
void modifyPoint(ControlPoint *point)
Modify control point.
Definition: QnetTool.cpp:2111
QWidget * createToolBarWidget(QStackedWidget *parent)
This method creates the widgets for the tool bar.
Definition: QnetTool.cpp:3612
void mouseButtonRelease(QPoint p, Qt::MouseButton s)
Handle mouse events on CubeViewport.
Definition: QnetTool.cpp:1523
Definition: QnetTool.h:269
Definition: QnetTool.h:273
void newControlNetwork(ControlNet *)
Definition: moc_QnetTool.cpp:542
Source
Definition: ControlPoint.h:418
void qnetToolSave()
Definition: moc_QnetTool.cpp:487
void paintViewport(MdiCubeViewport *cvp, QPainter *painter)
Take care of drawing things on a viewPort.
Definition: QnetTool.cpp:3123
Widget to display Isis cubes for qt apps.
Definition: CubeViewport.h:121
void refresh()
Refresh all necessary widgets in QnetTool including the PointEditor and CubeViewports.
Definition: QnetTool.cpp:3560
virtual ~QnetTool()
Definition: QnetTool.cpp:94
void createFixedPoint(double lat, double lon)
Create new Fixed control point.
Definition: QnetTool.cpp:1788
Definition: QnetTool.h:276
void qnetToolSaveAs()
Definition: moc_QnetTool.cpp:493
QAction * toolPadAction(ToolPad *pad)
Adds the Tie tool action to the tool pad.
Definition: QnetTool.cpp:1478
a control network
Definition: ControlNet.h:207
void stretchChipViewport(Stretch *, CubeViewport *)
Definition: moc_QnetTool.cpp:549
void refreshNavList()
Definition: moc_QnetTool.cpp:499
Pixel value mapper.
Definition: Stretch.h:72
QnetTool(QWidget *parent)
Consructs the Qnet Tool window.
Definition: QnetTool.cpp:67
SerialNumberList * serialNumberList()
Definition: QnetTool.cpp:2591
void createPoint(double lat, double lon)
Create new control point.
Definition: QnetTool.cpp:1675
void netChanged()
Definition: moc_QnetTool.cpp:512
A single control point.
Definition: ControlPoint.h:339
ControlNet * controlNet()
Definition: QnetTool.cpp:2581
void ignorePointChanged()
Definition: moc_QnetTool.cpp:518
bool eventFilter(QObject *o, QEvent *e)
Event filter for QnetTool.
Definition: QnetTool.cpp:3102
Definition: QnetTool.h:267
void deletePoint(ControlPoint *point)
Delete control point.
Definition: QnetTool.cpp:1962
Definition: QnetTool.h:263
Definition: QnetTool.h:266
Definition: QnetTool.h:268
Definition: QnetTool.h:270
Definition: Workspace.h:81
Definition: QnetTool.h:271
Definition: QnetTool.h:274
void ignoreRightChanged()
Definition: moc_QnetTool.cpp:530
Definition: QnetTool.h:261
void ignoreLeftChanged()
Definition: moc_QnetTool.cpp:524
Base class for the Qisis tools.
Definition: Tool.h:81
a control measurement
Definition: ControlMeasure.h:171
Definition: QnetTool.h:275
void editPointChanged(QString pointId)
Definition: moc_QnetTool.cpp:505
Qnet tool operations.
Definition: QnetTool.h:251
Definition: QnetTool.h:264
MeasureColumns
Definition: QnetTool.h:260
Serial Number list generator.
Definition: SerialNumberList.h:78
void updatePointInfo(QString pointId)
Update the current editPoint information in the Point Editor labels.
Definition: QnetTool.cpp:3520
void showNavTool()
Definition: moc_QnetTool.cpp:536
static const int NUMCOLUMNS
Definition: QnetTool.h:278
void updateList()
Definition: QnetTool.cpp:1434
Definition: QnetTool.h:272
Definition: ToolPad.h:14
Definition: QnetTool.h:262