USGS

Isis 3.0 Developer's Reference (API)

Home

MosaicGridTool.h

Go to the documentation of this file.
00001 #ifndef MosaicGridTool_h
00002 #define MosaicGridTool_h
00003 
00004 #include "MosaicTool.h"
00005 
00006 #include <QPointer>
00007 
00008 #include "Angle.h"
00009 #include "Latitude.h"
00010 #include "Longitude.h"
00011 
00012 class QAction;
00013 class QCheckBox;
00014 class QDialog;
00015 class QGraphicsItem;
00016 class GridGraphicsItem;
00017 class QLabel;
00018 class Projection;
00019 class QPushButton;
00020 class QToolButton;
00021 
00022 namespace Isis {
00049   class MosaicGridTool : public MosaicTool {
00050       Q_OBJECT
00051 
00052     public:
00053       enum GridExtentSource {
00057         Map,
00062         Cubes,
00066         Manual
00067       };
00068 
00069       MosaicGridTool(MosaicSceneWidget *);
00070       void addToMenu(QMenu *menu);
00071 
00072       //Accessors
00073       bool autoGridCheckBox();
00074       Latitude baseLat();
00075       Longitude baseLon();
00076       int density();
00077       Angle latInc();
00078       GridExtentSource latExtents();
00079       QString  latType();
00080       QString lonDomain();
00081       GridExtentSource lonExtents();
00082       Angle lonInc();
00083       Latitude maxLat();
00084       Longitude maxLon();
00085       Latitude minLat();
00086       Longitude minLon();
00087       MosaicSceneWidget* sceneWidget();
00088       bool showGrid();
00089 
00090       //Mutators
00091       void setAutoGridCheckBox(bool checked);
00092       void setBaseLat(Latitude baseLat);
00093       void setBaseLon(Longitude baseLon);
00094       void setDensity(int density);
00095       void setLatExtents(GridExtentSource source, Latitude minLat, Latitude maxLat);
00096       void setLatInc(Angle latInc);
00097       void setLonExtents(GridExtentSource source, Longitude minLon, Longitude maxLon);
00098       void setLonInc(Angle lonInc);
00099       void setShowGrid(bool show);
00100 
00101       //Processors
00102       void fromPvl(const PvlObject &obj);
00103       QString projectPvlObjectName() const;
00104       PvlObject toPvl() const;
00105 
00106     signals:
00107       void boundingRectChanged();
00108 
00109 
00110     public slots:
00111       void autoGrid(bool draw);
00112       void clearGrid();
00113       void configure();
00114       void drawGrid();
00115       void drawGrid(bool draw);
00116       void onCubesChanged();
00117       void onToolOpen(bool check);
00118 
00119     protected:
00120       QWidget *createToolBarWidget();
00121       QAction *getPrimaryAction();
00122       QWidget *getToolBarWidget();
00123 
00124     private:
00125       QPointer<QLabel> m_autoGridLabel; 
00126       QPointer<QCheckBox> m_autoGridCheckBox; 
00127       QPointer<QCheckBox> m_drawGridCheckBox; 
00128       bool m_shouldCheckBoxes; 
00129 
00130       Latitude m_baseLat; 
00131       Longitude m_baseLon; 
00132 
00133       Angle m_latInc; 
00134       Angle m_lonInc; 
00135 
00136       GridExtentSource m_latExtents; 
00137       Latitude m_maxLat; 
00138       Latitude m_minLat; 
00139 
00140       GridExtentSource m_lonExtents; 
00141       Longitude m_maxLon; 
00142       Longitude m_minLon; 
00143 
00144       int m_density; 
00145 
00146       QAction *m_action;
00147       QGraphicsItem *m_gridItem;
00148       QRectF m_previousBoundingRect; 
00149   };
00150 };
00151 
00152 #endif
00153