USGS

Isis 3.0 Developer's Reference (API)

Home

ControlPointEdit.h

Go to the documentation of this file.
00001 #ifndef ControlPointEdit_h
00002 #define ControlPointEdit_h
00003 
00004 // This is the only include allowed in this file!
00005 #include <QWidget>
00006 
00007 
00008 class QCheckBox;
00009 class QDial;
00010 class QDoubleSpinBox;
00011 class QHBoxLayout;
00012 class QLabel;
00013 class QLCDNumber;
00014 class QPalette;
00015 class QPushButton;
00016 class QRadioButton;
00017 class QScrollBar;
00018 class QString;
00019 class QTimer;
00020 class QToolButton;
00021 class QVBoxLayout;
00022 
00023 namespace Isis {
00024   class AutoReg;
00025   class Chip;
00026   class ControlMeasure;
00027   class ControlNet;
00028   class Cube;
00029   class Stretch;
00030   class UniversalGroundMap;
00031 }
00032 
00033 namespace Isis {
00034   class ChipViewport;
00035   class CubeViewport;
00036   class Tool;
00037 
00038 
00110   class ControlPointEdit : public QWidget {
00111       Q_OBJECT
00112 
00113     public:
00114       ControlPointEdit(ControlNet * cnetQ, QWidget *parent = 0,
00115                        bool allowLeftMouse = false);
00116       ~ControlPointEdit();
00117       std::string templateFilename() {
00118         return p_templateFilename;
00119       };
00120       bool setTemplateFile(QString);
00121       void allowLeftMouse(bool allowMouse);
00122 
00123     signals:
00124       void updateLeftView(double sample, double line);
00125       void updateRightView(double sample, double line);
00126       void measureSaved();
00127       void newControlNetwork(ControlNet *);
00128       void stretchChipViewport(Stretch *, CubeViewport *);
00129 
00130     public slots:
00131       void setLeftMeasure(ControlMeasure *leftMeasure,
00132                           Cube *leftCube, std::string pointId);
00133       void setRightMeasure(ControlMeasure *rightMeasure,
00134                            Cube *rightCube, std::string pointId);
00135       void colorizeSaveButton();
00136       void refreshChips();
00137       void saveChips();
00138 
00139     protected slots:
00140 
00141     private slots:
00142 
00143       void setNoGeom();
00144       void setGeom();
00145       void setRotate();
00146       void setCircle(bool);
00147 
00148       void findPoint();
00149       void registerPoint();
00150       void saveMeasure();
00151       void updateLeftPositionLabel(double zoomFactor);
00152       void updateRightGeom();
00153       void updateRightPositionLabel(double zoomFactor);
00154 
00155       void blinkStart();
00156       void blinkStop();
00157       void changeBlinkTime(double interval);
00158       void updateBlink();
00159 
00160     private:
00161       void createPointEditor(QWidget *parent);
00162 
00163       bool p_allowLeftMouse;
00164 
00165       std::string p_templateFilename;
00166       QLabel *p_leftZoomFactor;
00167       QLabel *p_rightZoomFactor;
00168       QLabel *p_leftSampLinePosition;
00169       QLabel *p_rightSampLinePosition;
00170       QLabel *p_leftLatLonPosition;
00171       QLabel *p_rightLatLonPosition;
00172       QRadioButton *p_nogeom;
00173       QRadioButton *p_geom;
00174       QToolButton *p_rightZoomIn;
00175       QToolButton *p_rightZoomOut;
00176       QToolButton *p_rightZoom1;
00177 
00178 
00179       bool p_timerOn;
00180       QTimer *p_timer;
00181       std::vector<ChipViewport *> p_blinkList;
00182       unsigned char p_blinkIndex;
00183 
00184       QDial *p_dial;
00185       QLCDNumber *p_dialNumber;
00186       QDoubleSpinBox *p_blinkTimeBox;
00187 
00188       bool p_circle;
00189       QScrollBar *p_slider;
00190 
00191       QPushButton *p_autoReg;
00192       QWidget *p_autoRegExtension;
00193       QLabel *p_oldPosition;
00194       QLabel *p_goodFit;
00195       bool   p_autoRegShown;
00196       bool   p_autoRegAttempted;
00197 
00198       QPushButton *p_saveMeasure;
00199       QPalette p_saveDefaultPalette;
00200 
00201       ChipViewport *p_leftView;
00202       ChipViewport *p_rightView;
00203 
00204       Cube *p_leftCube;
00205       Cube *p_rightCube;
00206       ControlMeasure *p_leftMeasure;
00207       ControlMeasure *p_rightMeasure;
00208       Chip *p_leftChip;
00209       Chip *p_rightChip;
00210       UniversalGroundMap *p_leftGroundMap;
00211       UniversalGroundMap *p_rightGroundMap;
00212 
00213       AutoReg *p_autoRegFact;
00214       std::string p_pointId;
00215 
00216       int p_rotation;
00217       bool p_geomIt;
00218   };
00219 };
00220 
00221 #endif