Loading [MathJax]/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
MosaicGridToolConfigDialog.cpp
1 #include "MosaicGridToolConfigDialog.h"
2 
3 #include <QCheckBox>
4 #include <QComboBox>
5 #include <QDebug>
6 #include <QDialog>
7 #include <QDoubleValidator>
8 #include <QElapsedTimer>
9 #include <QGridLayout>
10 #include <QLabel>
11 #include <QLineEdit>
12 #include <QMessageBox>
13 #include <QPushButton>
14 #include <QSlider>
15 #include <QtWidgets>
16 
17 #include "Angle.h"
18 #include "IException.h"
19 #include "Latitude.h"
20 #include "Longitude.h"
21 #include "MosaicGridTool.h"
22 #include "MosaicGridToolConfigDialog.h"
23 #include "MosaicSceneWidget.h"
24 #include "Projection.h"
25 #include "PvlGroup.h"
26 
27 namespace Isis {
35  MosaicGridTool *tool, QWidget *parent) : QDialog(parent) {
36 
37  /*
38  * What's This' provided here were written by Tammy Becker (2011-12-05) with
39  * help from Steven Lambright.
40  */
41  m_tool = tool;
42 
43  setWindowTitle("Grid Options");
44 
45  QGridLayout *mainLayout = new QGridLayout;
46  setLayout(mainLayout);
47 
48  int row = 0;
49 
50  QString showGridWhatsThis =
51  "Check or uncheck to draw or clear the grid.";
52  QLabel *showGridLabel = new QLabel("&Show Grid");
53  showGridLabel->setWhatsThis(showGridWhatsThis);
54  mainLayout->addWidget(showGridLabel, row, 0, 1, 2);
55 
56  m_showGridCheckBox = new QCheckBox;
57  showGridLabel->setBuddy(m_showGridCheckBox);
58  m_showGridCheckBox->setWhatsThis(showGridWhatsThis);
59  connect(m_showGridCheckBox, SIGNAL(toggled(bool)),
60  this, SLOT(refreshWidgetStates()));
61  mainLayout->addWidget(m_showGridCheckBox, row, 3, 1, 2, Qt::AlignRight);
62  row++;
63 
64  QString autoGridWhatsThis =
65  "Draws a grid based on the current lat/lon extents (from the cubes, map, or user).";
66  QLabel *autoGridLabel = new QLabel("Auto &Grid");
67  autoGridLabel->setWhatsThis(autoGridWhatsThis);
68  mainLayout->addWidget(autoGridLabel, row, 0, 1, 2);
69 
70  m_autoGridCheckBox = new QCheckBox;
71  autoGridLabel->setBuddy(m_autoGridCheckBox);
72  m_autoGridCheckBox->setWhatsThis(autoGridWhatsThis);
73  connect(m_autoGridCheckBox, SIGNAL(toggled(bool)),
74  this, SLOT(refreshWidgetStates()));
75  mainLayout->addWidget(m_autoGridCheckBox, row, 3, 1, 2, Qt::AlignRight);
76  row++;
77 
78  QString baseLatWhatsThis =
79  "The origin for the first latitude line. The first line of the grid "
80  "will be drawn at the base latitude. Successive latitude lines will "
81  "then be drawn relative to base latitude at an increment defined by "
82  "the latitude increment. Base latitude can be outside the range of "
83  "the image data.";
84  m_baseLatLabel = new QLabel("Base Latitude");
85  m_baseLatLabel->setWhatsThis(baseLatWhatsThis);
86  mainLayout->addWidget(m_baseLatLabel, row, 0, 1, 2);
87 
88  m_baseLatSlider = new QSlider(Qt::Horizontal);
89  m_baseLatSlider->setRange(0, 100);
90  m_baseLatSlider->setWhatsThis(baseLatWhatsThis);
91  connect(m_baseLatSlider, SIGNAL(valueChanged(int)),
92  this, SLOT(onBaseLatSliderChanged()));
93  mainLayout->addWidget(m_baseLatSlider, row, 2, 1, 1);
94 
95  m_baseLatLineEdit = new QLineEdit("0");
96  m_baseLatLineEdit->setValidator(new QDoubleValidator(-90.0, 90.0, 99, this));
97  m_baseLatLineEdit->setWhatsThis(baseLatWhatsThis);
98  connect(m_baseLatLineEdit, SIGNAL(textChanged(const QString &)),
99  this, SLOT(refreshWidgetStates()));
100  mainLayout->addWidget(m_baseLatLineEdit, row, 3, 1, 1);
101 
102  m_baseLatTypeLabel = new QLabel("Degrees");
103  mainLayout->addWidget(m_baseLatTypeLabel, row, 4, 1, 1);
104  row++;
105 
106  QString baseLonWhatsThis =
107  "The origin for the first longitude line. The first line of the grid"
108  " will be drawn at the base longitude. Successive longitude lines will"
109  " then be drawn relative to base longitude at an increment defined by"
110  " the longitude increment. Base longitude can be outside the range of"
111  " the image data.";
112  m_baseLonLabel = new QLabel("Base Longitude");
113  m_baseLonLabel->setWhatsThis(baseLonWhatsThis);
114  mainLayout->addWidget(m_baseLonLabel, row, 0, 1, 2);
115 
116  m_baseLonSlider = new QSlider(Qt::Horizontal);
117  m_baseLonSlider->setRange(0, 100);
118  m_baseLonSlider->setWhatsThis(baseLonWhatsThis);
119  connect(m_baseLonSlider, SIGNAL(valueChanged(int)),
120  this, SLOT(onBaseLonSliderChanged()));
121  mainLayout->addWidget(m_baseLonSlider, row, 2, 1, 1);
122 
123  m_baseLonLineEdit = new QLineEdit("0");
124  m_baseLonLineEdit->setValidator(new QDoubleValidator(this));
125  m_baseLonLineEdit->setWhatsThis(baseLonWhatsThis);
126  connect(m_baseLonLineEdit, SIGNAL(textChanged(const QString &)),
127  this, SLOT(refreshWidgetStates()));
128  mainLayout->addWidget(m_baseLonLineEdit, row, 3, 1, 1);
129 
130  m_baseLonTypeLabel = new QLabel("Degrees");
131  mainLayout->addWidget(m_baseLonTypeLabel, row, 4, 1, 1);
132  row++;
133 
134  QString latIncWhatsThis =
135  "The latitude increment is how often a line is drawn as the latitude "
136  "values change. A latitude increment of 45 will result in a line at "
137  "latitude = -90, -45, 0, 45, 90 for the entire longitude range.";
138  m_latIncLabel = new QLabel("Latitude Increment");
139  m_latIncLabel->setWhatsThis(latIncWhatsThis);
140  mainLayout->addWidget(m_latIncLabel, row, 0, 1, 2);
141 
142  m_latIncSlider = new QSlider(Qt::Horizontal);
143  m_latIncSlider->setRange(1, 180);
144  m_latIncSlider->setWhatsThis(latIncWhatsThis);
145  connect(m_latIncSlider, SIGNAL(valueChanged(int)),
146  this, SLOT(onLatIncSliderChanged()));
147  mainLayout->addWidget(m_latIncSlider, row, 2, 1, 1);
148 
149  m_latIncLineEdit = new QLineEdit("45");
150  m_latIncLineEdit->setValidator(new QDoubleValidator(0, 180.0, 15, this));
151  m_latIncLineEdit->setWhatsThis(latIncWhatsThis);
152  connect(m_latIncLineEdit, SIGNAL(textChanged(const QString &)),
153  this, SLOT(refreshWidgetStates()));
154  mainLayout->addWidget(m_latIncLineEdit, row, 3, 1, 1);
155 
156  m_latIncTypeLabel = new QLabel("Degrees");
157  mainLayout->addWidget(m_latIncTypeLabel, row, 4, 1, 1);
158  row++;
159 
160  QString lonIncWhatsThis =
161  "The longitude increment is how often a line is drawn as the longitude "
162  "values change. A longitude increment of 180 will result in a line at "
163  "longitude = 0, 180, 360 for the entire latitude range.";
164  m_lonIncLabel = new QLabel("Longitude Increment");
165  m_lonIncLabel->setWhatsThis(lonIncWhatsThis);
166  mainLayout->addWidget(m_lonIncLabel, row, 0, 1, 2);
167 
168  m_lonIncSlider = new QSlider(Qt::Horizontal);
169  m_lonIncSlider->setRange(1, 360);
170  m_lonIncSlider->setWhatsThis(lonIncWhatsThis);
171  connect(m_lonIncSlider, SIGNAL(valueChanged(int)),
172  this, SLOT(onLonIncSliderChanged()));
173  mainLayout->addWidget(m_lonIncSlider, row, 2, 1, 1);
174 
175  m_lonIncLineEdit = new QLineEdit("45");
176  m_lonIncLineEdit->setValidator(new QDoubleValidator(this));
177  m_lonIncLineEdit->setWhatsThis(lonIncWhatsThis);
178  connect(m_lonIncLineEdit, SIGNAL(textChanged(const QString &)),
179  this, SLOT(refreshWidgetStates()));
180  mainLayout->addWidget(m_lonIncLineEdit, row, 3, 1, 1);
181 
182  m_lonIncTypeLabel = new QLabel("Degrees");
183  mainLayout->addWidget(m_lonIncTypeLabel, row, 4, 1, 1);
184  row++;
185  mainLayout->setRowMinimumHeight(row, 10);
186  row++;
187 
188  QString latExtentWhatsThis =
189  "The longitude range determines the extents of the grid. The \"Read Map File\" option will "
190  "derive the extents from the loaded map's projection. The \"Compute From Images\" option "
191  "will use the ranges covered by the open cubes. The \"Manual\" option allows you to enter "
192  "values of your choice.";
193  m_latExtentLabel = new QLabel("Latitude Range");
194  m_latExtentLabel->setWhatsThis(latExtentWhatsThis);
195  mainLayout->addWidget(m_latExtentLabel, row, 0, 1, 2);
196 
197  m_latExtentCombo = new QComboBox;
198  m_latExtentCombo->addItem("Read Map File", MosaicGridTool::Map);
199  m_latExtentCombo->addItem("Compute From Images", MosaicGridTool::Cubes);
200  m_latExtentCombo->addItem("Manual", MosaicGridTool::Manual);
201  m_latExtentCombo->setCurrentIndex(m_latExtentCombo->findData(m_tool->latExtents()));
202  m_latExtentCombo->setWhatsThis(latExtentWhatsThis);
203  connect(m_latExtentCombo, SIGNAL(currentIndexChanged(int)),
204  this, SLOT(onExtentTypeChanged()));
205  mainLayout->addWidget(m_latExtentCombo, row, 2, 1, 2);
206  m_latExtentTypeLabel = new QLabel(m_tool->latType());
207  mainLayout->addWidget(m_latExtentTypeLabel, row, 4, 1, 1);
208  row++;
209 
210 
211  QString minLatWhatsThis =
212  "The minimum latitude will be the lower edge of the grid. This parameter currently "
213  "expects degree input.";
214  m_minLatExtentLabel = new QLabel("Minimum Latitude");
215  m_minLatExtentLabel->setWhatsThis(minLatWhatsThis);
216  mainLayout->addWidget(m_minLatExtentLabel, row, 1, 1, 1);
217 
218  m_minLatExtentSlider = new QSlider(Qt::Horizontal);
219  m_minLatExtentSlider->setRange(-90, 90);
220  m_minLatExtentSlider->setWhatsThis(minLatWhatsThis);
221  connect(m_minLatExtentSlider, SIGNAL(valueChanged(int)),
222  this, SLOT(onMinLatExtentSliderChanged()));
223  mainLayout->addWidget(m_minLatExtentSlider, row, 2, 1, 1);
224 
225  m_minLatExtentLineEdit = new QLineEdit("0");
226  m_minLatExtentLineEdit->setValidator(new QDoubleValidator(this));
227  m_minLatExtentLineEdit->setWhatsThis(minLatWhatsThis);
228  connect(m_minLatExtentLineEdit, SIGNAL(textChanged(const QString &)),
229  this, SLOT(refreshWidgetStates()));
230  mainLayout->addWidget(m_minLatExtentLineEdit, row, 3, 1, 1);
231  m_minLatExtentTypeLabel = new QLabel("Degrees");
232  mainLayout->addWidget(m_minLatExtentTypeLabel, row, 4, 1, 1);
233  row++;
234 
235  QString maxLatWhatsThis =
236  "The maximum latitude will be the upper edge of the grid. This parameter currently "
237  "expects degree input.";
238  m_maxLatExtentLabel = new QLabel("Maximum Latitude");
239  m_maxLatExtentLabel->setWhatsThis(maxLatWhatsThis);
240  mainLayout->addWidget(m_maxLatExtentLabel, row, 1, 1, 1);
241 
242  m_maxLatExtentSlider = new QSlider(Qt::Horizontal);
243  m_maxLatExtentSlider->setRange(-90, 90);
244  m_maxLatExtentSlider->setWhatsThis(maxLatWhatsThis);
245  connect(m_maxLatExtentSlider, SIGNAL(valueChanged(int)),
246  this, SLOT(onMaxLatExtentSliderChanged()));
247  mainLayout->addWidget(m_maxLatExtentSlider, row, 2, 1, 1);
248 
249  m_maxLatExtentLineEdit = new QLineEdit("0");
250  m_maxLatExtentLineEdit->setValidator(new QDoubleValidator(this));
251  m_maxLatExtentLineEdit->setWhatsThis(maxLatWhatsThis);
252  connect(m_maxLatExtentLineEdit, SIGNAL(textChanged(const QString &)),
253  this, SLOT(refreshWidgetStates()));
254  mainLayout->addWidget(m_maxLatExtentLineEdit, row, 3, 1, 1);
255  m_maxLatExtentTypeLabel = new QLabel("Degrees");
256  mainLayout->addWidget(m_maxLatExtentTypeLabel, row, 4, 1, 1);
257  row++;
258  mainLayout->setRowMinimumHeight(row, 10);
259  row++;
260 
261  QString lonExtentWhatsThis =
262  "The longitude range determines the extents of the grid. The \"<b>Read Map File</b>\" "
263  "option will derive the extents from the loaded map's projection. The"
264  "\"Compute From Images\" option will use the ranges covered by the open cubes. The "
265  "\"Manual\" option allows you to enter "
266  "values of your choice. The domain is that of the map projection.";
267  m_lonExtentLabel = new QLabel("Longitude Range");
268  m_lonExtentLabel->setWhatsThis(lonExtentWhatsThis);
269  mainLayout->addWidget(m_lonExtentLabel, row, 0, 1, 2);
270 
271  m_lonExtentCombo = new QComboBox;
272  m_lonExtentCombo->addItem("Read Map File", MosaicGridTool::Map);
273  m_lonExtentCombo->addItem("Compute From Images", MosaicGridTool::Cubes);
274  m_lonExtentCombo->addItem("Manual", MosaicGridTool::Manual);
275 
276  m_lonExtentCombo->setCurrentIndex(m_lonExtentCombo->findData(m_tool->lonExtents()));
277  m_lonExtentCombo->setWhatsThis(lonExtentWhatsThis);
278  connect(m_lonExtentCombo, SIGNAL(currentIndexChanged(int)),
279  this, SLOT(onExtentTypeChanged()));
280  mainLayout->addWidget(m_lonExtentCombo, row, 2, 1, 2);
281 
282  m_lonDomainLabel = new QLabel(m_tool->lonDomain() + " Domain");
283  mainLayout->addWidget(m_lonDomainLabel, row, 4, 1, 1);
284  row++;
285 
286  QString minLonWhatsThis =
287  "The maximum longitude will be the left edge of the grid. This parameter currently "
288  "expects degree input.";
289  m_minLonExtentLabel = new QLabel("Minimum Longitude");
290  m_minLonExtentLabel->setWhatsThis(minLonWhatsThis);
291  mainLayout->addWidget(m_minLonExtentLabel, row, 1, 1, 1);
292 
293  m_minLonExtentSlider = new QSlider(Qt::Horizontal);
294  m_minLonExtentSlider->setRange(0, 360);
295  m_minLonExtentSlider->setWhatsThis(minLonWhatsThis);
296  connect(m_minLonExtentSlider, SIGNAL(valueChanged(int)),
297  this, SLOT(onMinLonExtentSliderChanged()));
298  mainLayout->addWidget(m_minLonExtentSlider, row, 2, 1, 1);
299 
300  m_minLonExtentLineEdit = new QLineEdit("0");
301  m_minLonExtentLineEdit->setValidator(new QDoubleValidator(this));
302  m_minLonExtentLineEdit->setWhatsThis(minLonWhatsThis);
303  connect(m_minLonExtentLineEdit, SIGNAL(textChanged(const QString &)),
304  this, SLOT(refreshWidgetStates()));
305  mainLayout->addWidget(m_minLonExtentLineEdit, row, 3, 1, 1);
306  m_minLonExtentTypeLabel = new QLabel("Degrees");
307  mainLayout->addWidget(m_minLonExtentTypeLabel, row, 4, 1, 1);
308  row++;
309 
310  QString maxLonWhatsThis =
311  "The maximum longitude will be the right edge of the grid. This parameter currently "
312  "expects degree input.";
313  m_maxLonExtentLabel = new QLabel("Maximum Longitude");
314  m_maxLonExtentLabel->setWhatsThis(maxLonWhatsThis);
315  mainLayout->addWidget(m_maxLonExtentLabel, row, 1, 1, 1);
316 
317  m_maxLonExtentSlider = new QSlider(Qt::Horizontal);
318  m_maxLonExtentSlider->setRange(0, 360);
319  m_maxLonExtentSlider->setWhatsThis(maxLonWhatsThis);
320  connect(m_maxLonExtentSlider, SIGNAL(valueChanged(int)),
321  this, SLOT(onMaxLonExtentSliderChanged()));
322  mainLayout->addWidget(m_maxLonExtentSlider, row, 2, 1, 1);
323 
324  m_maxLonExtentLineEdit = new QLineEdit("0");
325  m_maxLonExtentLineEdit->setValidator(new QDoubleValidator(this));
326  m_maxLonExtentLineEdit->setWhatsThis(maxLonWhatsThis);
327  connect(m_maxLonExtentLineEdit, SIGNAL(textChanged(const QString &)),
328  this, SLOT(refreshWidgetStates()));
329  mainLayout->addWidget(m_maxLonExtentLineEdit, row, 3, 1, 1);
330  m_maxLonExtentTypeLabel = new QLabel("Degrees");
331  mainLayout->addWidget(m_maxLonExtentTypeLabel, row, 4, 1, 1);
332  row++;
333  mainLayout->setRowMinimumHeight(row, 10);
334  row++;
335 
336  QString densityWhatsThis =
337  "The density is the estimated total number of straight lines used "
338  "to create the grid. Increasing this number will significantly slow "
339  "down the drawing of the grid while making curves more accurate. If "
340  "the grid does not look accurate then try increasing this number.";
341  m_densityLabel = new QLabel("Grid Line Density");
342  m_densityLabel->setWhatsThis(densityWhatsThis);
343  mainLayout->addWidget(m_densityLabel, row, 0, 1, 2);
344 
345  m_densityEdit = new QLineEdit("10000");
346  m_densityEdit->setValidator(new QIntValidator(1, INT_MAX, this));
347  m_densityEdit->setWhatsThis(densityWhatsThis);
348  connect(m_densityEdit, SIGNAL(textChanged(const QString &)),
349  this, SLOT(refreshWidgetStates()));
350  mainLayout->addWidget(m_densityEdit, row, 2, 1, 2);
351  row++;
352  mainLayout->setRowMinimumHeight(row, 10);
353  row++;
354 
355  QHBoxLayout *buttonsAreaLayout = new QHBoxLayout;
356  mainLayout->addLayout(buttonsAreaLayout, row, 0, 1, 4);
357 
358  QString autoApplyWhatsThis =
359  "Automatically updates the grid when parameters are changed.";
360  m_autoApplyCheckBox = new QCheckBox("Auto Apply");
361  m_autoApplyCheckBox->setChecked(true);
362  buttonsAreaLayout->addWidget(m_autoApplyCheckBox);
363 
364  buttonsAreaLayout->addStretch();
365 
366  QPushButton *okayButton = new QPushButton("&Ok");
367  okayButton->setIcon(QIcon::fromTheme("dialog-ok"));
368  connect(okayButton, SIGNAL(clicked()),
369  this, SLOT(applySettings()));
370  connect(okayButton, SIGNAL(clicked()),
371  this, SLOT(accept()));
372  buttonsAreaLayout->addWidget(okayButton);
373 
374  QPushButton *applyButton = new QPushButton("&Apply");
375  applyButton->setIcon(QIcon::fromTheme("dialog-ok-apply"));
376  connect(applyButton, SIGNAL(clicked()),
377  this, SLOT(applySettings()));
378  buttonsAreaLayout->addWidget(applyButton);
379 
380  QPushButton *cancelButton = new QPushButton("&Cancel");
381  cancelButton->setIcon(QIcon::fromTheme("dialog-cancel"));
382  connect(cancelButton, SIGNAL(clicked()),
383  this, SLOT(reject()));
384  buttonsAreaLayout->addWidget(cancelButton);
385 
386  connect(m_tool, SIGNAL(boundingRectChanged()), this, SLOT(readSettings()));
387 
388  readSettings();
389  }
390 
395  }
396 
397 
402  void MosaicGridToolConfigDialog::applySettings(bool shouldReadSettings) {
403 
404  int cursorPos = 0;
405 
406  // Validate base latitude value
407  QString baseLatitude = m_baseLatLineEdit->text();
408  if (m_baseLatLineEdit->isEnabled()) {
409  QValidator::State validBaseLat =
410  m_baseLatLineEdit->validator()->validate(baseLatitude, cursorPos);
411  if (validBaseLat != QValidator::Acceptable) {
413  "Base Latitude value must be in the range -90 to 90",
414  _FILEINFO_);
415  }
416  }
417 
418  // Validate base longitude value
419  QString baseLongitude = m_baseLonLineEdit->text();
420  QValidator::State validBaseLon =
421  m_baseLonLineEdit->validator()->validate(baseLongitude, cursorPos);
422  if (validBaseLon != QValidator::Acceptable) {
424  "Base Longitude value must be a double",
425  _FILEINFO_);
426  }
427 
428  // Validate latitudeInc value
429  QString latitudeInc = m_latIncLineEdit->text();
430  QValidator::State validLatInc = m_latIncLineEdit->validator()->validate(latitudeInc,
431  cursorPos);
432  if (validLatInc != QValidator::Acceptable) {
434  "Latitude increment must be in the range 0 to 180",
435  _FILEINFO_);
436  }
437 
438  // Validate longitudeInc value
439  QString longitudeInc = m_lonIncLineEdit->text();
440  QValidator::State validLonInc =
441  m_lonIncLineEdit->validator()->validate(longitudeInc, cursorPos);
442  if (validLonInc != QValidator::Acceptable) {
444  "Longitude increment must be a double",
445  _FILEINFO_);
446  }
447 
448  // Validate minLatExtent value
449  QString minLatExtent = m_minLatExtentLineEdit->text();
450  QValidator::State validMinLatExtent =
451  m_minLatExtentLineEdit->validator()->validate(minLatExtent, cursorPos);
452  if (validMinLatExtent != QValidator::Acceptable) {
454  "Minimum latitude extent must be a double",
455  _FILEINFO_);
456  }
457 
458  // Validate maxLatExtent value
459  QString maxLatExtent = m_maxLatExtentLineEdit->text();
460  QValidator::State validMaxLatExtent =
461  m_maxLatExtentLineEdit->validator()->validate(maxLatExtent, cursorPos);
462  if (validMaxLatExtent != QValidator::Acceptable) {
464  "Maximum latitude extent must be a double",
465  _FILEINFO_);
466  }
467 
468  // Validate minLonExtent value
469  QString minLonExtent = m_minLonExtentLineEdit->text();
470  QValidator::State validMinLonExtent =
471  m_minLonExtentLineEdit->validator()->validate(minLonExtent, cursorPos);
472  if (validMinLonExtent != QValidator::Acceptable) {
474  "Minimum longitude extent must be a double",
475  _FILEINFO_);
476  }
477 
478  // Validate maxLonExtent value
479  QString maxLonExtent = m_maxLonExtentLineEdit->text();
480  QValidator::State validMaxLonExtent =
481  m_maxLonExtentLineEdit->validator()->validate(maxLonExtent, cursorPos);
482  if (validMaxLonExtent != QValidator::Acceptable) {
484  "Maximum longitude extent must be a double",
485  _FILEINFO_);
486  }
487 
488  // Validate density value
489  QString density = m_densityEdit->text();
490  QValidator::State validDensity =
491  m_densityEdit->validator()->validate(density, cursorPos);
492  if (validDensity != QValidator::Acceptable) {
494  "Density must be a non-zero positive integer",
495  _FILEINFO_);
496  }
497 
498  if (m_tool->sceneWidget()->getProjection()) {
499  PvlGroup mapGroup(m_tool->sceneWidget()->getProjection()->Mapping());
500 
501  m_tool->setShowGrid(m_showGridCheckBox->isChecked());
502  m_tool->setAutoGridCheckBox(m_autoGridCheckBox->isChecked());
503 
504  m_tool->setBaseLat(Latitude(baseLatitude.toDouble(), mapGroup, Angle::Degrees));
505  m_tool->setBaseLon(Longitude(baseLongitude.toDouble(), Angle::Degrees));
506  m_tool->setLatInc(Angle(latitudeInc.toDouble(), Angle::Degrees));
507  m_tool->setLonInc(Angle(longitudeInc.toDouble(), Angle::Degrees));
508 
510  m_latExtentCombo->itemData(m_latExtentCombo->currentIndex()).toInt(),
511  Latitude(minLatExtent.toDouble(), mapGroup, Angle::Degrees),
512  Latitude(maxLatExtent.toDouble(), mapGroup, Angle::Degrees));
514  m_lonExtentCombo->itemData(m_lonExtentCombo->currentIndex()).toInt(),
515  Longitude(minLonExtent.toDouble(), Angle::Degrees),
516  Longitude(maxLonExtent.toDouble(), Angle::Degrees));
517 
518  m_tool->setDensity(density.toInt());
519 
520  if (m_showGridCheckBox->isChecked() && m_autoGridCheckBox->isChecked())
521  m_tool->autoGrid(m_autoGridCheckBox->isChecked());
522  else if (m_showGridCheckBox->isChecked())
523  m_tool->drawGrid();
524  else
525  m_tool->clearGrid();
526 
527  if (shouldReadSettings)
528  readSettings();
529  }
530  }
531 
532 
537  applySettings(true);
538  }
539 
540 
545 
546  if (m_tool->sceneWidget()->getProjection()) {
547  // Don't auto apply until we're done
548  bool autoApply = m_autoApplyCheckBox->isChecked();
549  m_autoApplyCheckBox->setChecked(false);
550 
551  m_showGridCheckBox->setChecked(m_tool->showGrid());
552  m_autoGridCheckBox->setChecked(m_tool->autoGridCheckBox());
553  m_baseLonLineEdit->setText(QString::number(m_tool->baseLon().degrees()));
554 
555  m_latIncLineEdit->setText(QString::number(m_tool->latInc().degrees()));
556  m_lonIncLineEdit->setText(QString::number(m_tool->lonInc().degrees()));
557 
558  Latitude minLat = m_tool->minLat();
559  Latitude maxLat = m_tool->maxLat();
560  m_latExtentCombo->setCurrentIndex(m_latExtentCombo->findData(m_tool->latExtents()));
561  if (m_tool->sceneWidget()->getProjection()->Mapping()["LatitudeType"][0] ==
562  "Planetocentric") {
563 
564  m_baseLatLineEdit->setText(QString::number(m_tool->baseLat().degrees()));
565  m_minLatExtentLineEdit->setText(QString::number(minLat.degrees()));
566  m_maxLatExtentLineEdit->setText(QString::number(maxLat.degrees()));
567  }
568  else {
569  m_baseLatLineEdit->setText(QString::number(
571  m_minLatExtentLineEdit->setText(QString::number(
572  minLat.planetographic(Angle::Degrees)));
573  m_maxLatExtentLineEdit->setText(QString::number(
574  maxLat.planetographic(Angle::Degrees)));
575  }
576 
577  Angle minLon = m_tool->minLon();
578  Angle maxLon = m_tool->maxLon();
579  m_lonExtentCombo->setCurrentIndex(m_lonExtentCombo->findData(m_tool->lonExtents()));
580  m_minLonExtentLineEdit->setText(QString::number(minLon.degrees()));
581  m_maxLonExtentLineEdit->setText(QString::number(maxLon.degrees()));
582 
583  m_densityEdit->setText(QString::number(m_tool->density()));
584 
585  // Now we can restore auto apply
586  m_autoApplyCheckBox->setChecked(autoApply);
587  }
588  else {
589  refreshWidgetStates(false);
590  }
591  }
592 
593 
599  refreshWidgetStates(true);
600  }
601 
602 
608 
609  QElapsedTimer timer;
610  timer.start();
611 
612  bool enabled = m_tool->sceneWidget()->getProjection();
613  bool showGrid = enabled && m_showGridCheckBox->isChecked();
614  bool autoGrid = enabled && m_autoGridCheckBox->isChecked();
615  bool enableLatExtents = ( (MosaicGridTool::GridExtentSource)
616  m_latExtentCombo->itemData(m_latExtentCombo->currentIndex()).toInt() ==
617  MosaicGridTool::Manual ) && showGrid;
618  bool enableLonExtents = ( (MosaicGridTool::GridExtentSource)
619  m_lonExtentCombo->itemData(m_lonExtentCombo->currentIndex()).toInt() ==
620  MosaicGridTool::Manual ) && showGrid;
621 
622  m_autoGridCheckBox->setEnabled(showGrid);
623 
624  m_baseLatLabel->setEnabled(showGrid);
625  m_baseLatSlider->setEnabled(showGrid);
626  m_baseLatSlider->blockSignals(true);
627  m_baseLatSlider->setValue(
628  qRound(100 * m_baseLatLineEdit->text().toDouble() / m_latIncLineEdit->text().toDouble()));
629  m_baseLatSlider->blockSignals(false);
630  m_baseLatLineEdit->setEnabled(showGrid);
631  m_baseLatTypeLabel->setEnabled(showGrid);
632 
633  m_baseLonLabel->setEnabled(showGrid);
634  m_baseLonSlider->setEnabled(showGrid);
635  m_baseLonSlider->blockSignals(true);
636  m_baseLonSlider->setValue(
637  qRound(100 * m_baseLonLineEdit->text().toDouble() / m_lonIncLineEdit->text().toDouble()));
638  m_baseLonSlider->blockSignals(false);
639  m_baseLonLineEdit->setEnabled(showGrid);
640  m_baseLonTypeLabel->setEnabled(showGrid);
641 
642  m_latIncLabel->setEnabled(showGrid && !autoGrid);
643  m_latIncLineEdit->setEnabled(!autoGrid && showGrid);
644  m_latIncSlider->blockSignals(true);
645  m_latIncSlider->setEnabled(showGrid && !autoGrid);
646  m_latIncSlider->setValue(m_latIncLineEdit->text().toDouble());
647  m_latIncSlider->blockSignals(false);
648  m_latIncTypeLabel->setEnabled(showGrid && !autoGrid);
649 
650  m_lonIncLabel->setEnabled(showGrid && !autoGrid);
651  m_lonIncLineEdit->setEnabled(showGrid && !autoGrid);
652  m_lonIncSlider->blockSignals(true);
653  m_lonIncSlider->setEnabled(!autoGrid);
654  m_lonIncSlider->setValue(m_lonIncLineEdit->text().toDouble());
655  m_lonIncSlider->blockSignals(false);
656  m_lonIncTypeLabel->setEnabled(showGrid && !autoGrid);
657 
658  m_latExtentLabel->setEnabled(showGrid);
659  m_latExtentCombo->setEnabled(showGrid);
660  m_latExtentTypeLabel->setEnabled(showGrid);
661 
662  m_minLatExtentLabel->setEnabled(enableLatExtents);
663  m_minLatExtentLabel->setEnabled(enableLatExtents);
664  m_minLatExtentSlider->blockSignals(true);
665  m_minLatExtentSlider->setValue(
666  qRound(m_minLatExtentLineEdit->text().toDouble()));
667  m_minLatExtentSlider->blockSignals(false);
668  m_minLatExtentLineEdit->setEnabled(enableLatExtents);
669  m_minLatExtentTypeLabel->setEnabled(enableLatExtents);
670 
671  m_maxLatExtentLabel->setEnabled(enableLatExtents);
672  m_maxLatExtentSlider->setEnabled(enableLatExtents);
673  m_maxLatExtentSlider->blockSignals(true);
674  m_maxLatExtentSlider->setValue(
675  qRound(m_maxLatExtentLineEdit->text().toDouble()));
676  m_maxLatExtentSlider->blockSignals(false);
677  m_maxLatExtentLineEdit->setEnabled(enableLatExtents);
678  m_maxLatExtentTypeLabel->setEnabled(enableLatExtents);
679 
680  m_lonExtentLabel->setEnabled(showGrid);
681  m_lonExtentCombo->setEnabled(showGrid);
682  m_lonDomainLabel->setEnabled(showGrid);
683 
684  m_minLonExtentLabel->setEnabled(enableLonExtents);
685  m_minLonExtentSlider->setRange(m_tool->domainMinLon().degrees(),
686  m_tool->domainMaxLon().degrees());
687  m_minLonExtentSlider->setEnabled(enableLonExtents);
688  m_minLonExtentSlider->blockSignals(true);
689  m_minLonExtentSlider->setValue(m_minLonExtentLineEdit->text().toDouble());
690  m_minLonExtentSlider->blockSignals(false);
691  m_minLonExtentLineEdit->setEnabled(enableLonExtents);
692  m_minLonExtentTypeLabel->setEnabled(enableLonExtents);
693 
694  m_maxLonExtentLabel->setEnabled(enableLonExtents);
695  m_maxLonExtentSlider->setRange(m_tool->domainMinLon().degrees(),
696  m_tool->domainMaxLon().degrees());
697  m_maxLonExtentSlider->setEnabled(enableLonExtents);
698  m_maxLonExtentSlider->blockSignals(true);
699  m_maxLonExtentSlider->setValue(m_maxLonExtentLineEdit->text().toDouble());
700  m_maxLonExtentSlider->blockSignals(false);
701  m_maxLonExtentLineEdit->setEnabled(enableLonExtents);
702  m_maxLonExtentTypeLabel->setEnabled(enableLonExtents);
703 
704  m_densityLabel->setEnabled(showGrid);
705  m_densityEdit->setEnabled(showGrid);
706 
707  if (m_autoApplyCheckBox->isChecked() && canAutoApply) {
708  try {
709  if(m_autoGridCheckBox->isChecked())
710  applySettings(true);
711  else
712  applySettings(false);
713  }
714  catch (IException &) {
715  }
716 
717  //Time in milliseconds
718  if (timer.elapsed() > 250) {
719  m_densityEdit->setText(QString::number(
720  qMax(1000, qRound(m_densityEdit->text().toInt() * 0.75))));
721  }
722  }
723  }
724 
729  m_baseLatLineEdit->setText(
730  QString::number( (m_baseLatSlider->value() / 100.0) * m_latIncLineEdit->text().toDouble() ));
731  }
732 
733 
738  m_baseLonLineEdit->setText(
739  QString::number( (m_baseLonSlider->value() / 100.0) * m_lonIncLineEdit->text().toDouble() ));
740  }
741 
742 
747  m_latIncLineEdit->setText(QString::number(m_latIncSlider->value()));
748  }
749 
750 
755  m_lonIncLineEdit->setText(QString::number(m_lonIncSlider->value()));
756  }
757 
758 
763  if (m_minLatExtentSlider->value() < m_maxLatExtentSlider->value()) {
764  m_minLatExtentLineEdit->setText(QString::number(m_minLatExtentSlider->value()));
765  }
766  else {
767  m_minLatExtentSlider->setValue(m_maxLatExtentSlider->value() - 1);
768  }
769  }
770 
771 
776  if (m_maxLatExtentSlider->value() > m_minLatExtentSlider->value()) {
777  m_maxLatExtentLineEdit->setText(QString::number(m_maxLatExtentSlider->value()));
778  }
779  else {
780  m_maxLatExtentSlider->setValue(m_minLatExtentSlider->value() + 1);
781  }
782  }
783 
784 
791  QElapsedTimer timer;
792  timer.start();
793  refreshWidgetStates(false);
794  applySettings(true);
795  //Time in milliseconds
796  if (timer.elapsed() > 250)
797  m_densityEdit->setText(QString::number(1000));
798  }
799 
800 
805  if (m_minLonExtentSlider->value() < m_maxLonExtentSlider->value()) {
806  m_minLonExtentLineEdit->setText(QString::number(m_minLonExtentSlider->value()));
807  }
808  else {
809  m_minLonExtentSlider->setValue(m_maxLonExtentSlider->value() - 1);
810  }
811  }
812 
813 
818  if (m_maxLonExtentSlider->value() > m_minLonExtentSlider->value()) {
819  m_maxLonExtentLineEdit->setText(QString::number(m_maxLonExtentSlider->value()));
820  }
821  else {
822  m_maxLonExtentSlider->setValue(m_minLonExtentSlider->value() + 1);
823  }
824  }
825 }
Isis::MosaicGridToolConfigDialog::onMinLonExtentSliderChanged
void onMinLonExtentSliderChanged()
Updates the corresponding line edit when the minLonSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:804
Isis::MosaicGridTool::setBaseLon
void setBaseLon(Longitude baseLon)
Modify the base longitude.
Definition: MosaicGridTool.cpp:281
Isis::MosaicGridToolConfigDialog::onMaxLonExtentSliderChanged
void onMaxLonExtentSliderChanged()
Updates the corresponding line edit when the maxLonSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:817
Isis::Angle::Degrees
@ Degrees
Degrees are generally considered more human readable, 0-360 is one circle, however most math does not...
Definition: Angle.h:56
Isis::MosaicGridTool::density
int density()
The density or resolution of the grid.
Definition: MosaicGridTool.cpp:113
Isis::MosaicGridToolConfigDialog::m_baseLonTypeLabel
QPointer< QLabel > m_baseLonTypeLabel
Label for the baselon type (degrees/radians)
Definition: MosaicGridToolConfigDialog.h:78
QWidget
Isis::MosaicGridTool::maxLon
Longitude maxLon()
The maximum longitude used to determine the grid's extents and increments.
Definition: MosaicGridTool.cpp:211
Isis::MosaicGridToolConfigDialog::m_densityEdit
QPointer< QLineEdit > m_densityEdit
Input for grid density.
Definition: MosaicGridToolConfigDialog.h:121
Isis::MosaicGridTool::latExtents
GridExtentSource latExtents()
The extent type (Map, Cubes, Manual) for the latitude.
Definition: MosaicGridTool.cpp:133
Isis::MosaicGridTool::setBaseLat
void setBaseLat(Latitude baseLat)
Modify the base latitude.
Definition: MosaicGridTool.cpp:271
Isis::MosaicGridToolConfigDialog::m_baseLonLineEdit
QPointer< QLineEdit > m_baseLonLineEdit
Input for base longitude.
Definition: MosaicGridToolConfigDialog.h:76
Isis::MosaicGridToolConfigDialog::m_minLonExtentLineEdit
QPointer< QLineEdit > m_minLonExtentLineEdit
Input for the minimum longitude.
Definition: MosaicGridToolConfigDialog.h:111
Isis::Latitude
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
Isis::MosaicGridToolConfigDialog::m_densityLabel
QPointer< QLabel > m_densityLabel
Label for the grid density.
Definition: MosaicGridToolConfigDialog.h:120
Isis::MosaicGridTool
This controls the 'Grid' abilities in the MosaicSceneWidget.
Definition: MosaicGridTool.h:53
Isis::MosaicGridToolConfigDialog::MosaicGridToolConfigDialog
MosaicGridToolConfigDialog(MosaicGridTool *tool, QWidget *parent)
Create a config dialog that configures the given MosaicGridTool.
Definition: MosaicGridToolConfigDialog.cpp:34
Isis::MosaicGridToolConfigDialog::m_minLatExtentLabel
QPointer< QLabel > m_minLatExtentLabel
Label for the minimum latitude.
Definition: MosaicGridToolConfigDialog.h:95
Isis::MosaicGridTool::clearGrid
void clearGrid()
Clears the grid from the scene.
Definition: MosaicGridTool.cpp:781
Isis::Latitude::planetographic
double planetographic(Angle::Units units=Angle::Radians) const
Get the latitude in the planetographic coordinate system.
Definition: Latitude.cpp:315
Isis::MosaicGridToolConfigDialog::onLatIncSliderChanged
void onLatIncSliderChanged()
Updates the corresponding line edit when the latIncSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:746
Isis::MosaicGridTool::Manual
@ Manual
The grid will be drawn using the extents that the user specifies.
Definition: MosaicGridTool.h:70
Isis::MosaicGridToolConfigDialog::m_maxLonExtentSlider
QPointer< QSlider > m_maxLonExtentSlider
Input for the maximum longitude.
Definition: MosaicGridToolConfigDialog.h:117
Isis::IException::Unknown
@ Unknown
A type of error that cannot be classified as any of the other error types.
Definition: IException.h:118
Isis::MosaicGridTool::drawGrid
void drawGrid()
Creates the GridGraphicsItem that will draw the grid.
Definition: MosaicGridTool.cpp:835
Isis::MosaicGridToolConfigDialog::m_maxLonExtentLabel
QPointer< QLabel > m_maxLonExtentLabel
Label for the maximum longitude.
Definition: MosaicGridToolConfigDialog.h:115
Isis::MosaicGridTool::GridExtentSource
GridExtentSource
Definition: MosaicGridTool.h:57
Isis::MosaicGridToolConfigDialog::m_latIncLineEdit
QPointer< QLineEdit > m_latIncLineEdit
Input for latitude increment.
Definition: MosaicGridToolConfigDialog.h:81
Isis::MosaicGridToolConfigDialog::m_latIncLabel
QPointer< QLabel > m_latIncLabel
Label for the latitude increment.
Definition: MosaicGridToolConfigDialog.h:80
Isis::MosaicGridTool::autoGrid
void autoGrid(bool draw)
Calculates the lat/lon increments from the bounding rectangle of the open cubes.
Definition: MosaicGridTool.cpp:715
Isis::MosaicGridTool::setDensity
void setDensity(int density)
Modify the density.
Definition: MosaicGridTool.cpp:291
Isis::MosaicGridToolConfigDialog::~MosaicGridToolConfigDialog
~MosaicGridToolConfigDialog()
Clean up allocated memory.
Definition: MosaicGridToolConfigDialog.cpp:394
Isis::MosaicGridToolConfigDialog::onLonIncSliderChanged
void onLonIncSliderChanged()
Updates the corresponding line edit when the lonIncSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:754
Isis::MosaicGridToolConfigDialog::m_latIncSlider
QPointer< QSlider > m_latIncSlider
Input for latitude increment.
Definition: MosaicGridToolConfigDialog.h:82
Isis::MosaicGridTool::showGrid
bool showGrid()
True if grid is displayed.
Definition: MosaicGridTool.cpp:251
Isis::MosaicGridToolConfigDialog::onBaseLonSliderChanged
void onBaseLonSliderChanged()
Updates the corresponding line edit when the baseLonSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:737
Isis::MosaicGridToolConfigDialog::m_baseLatLineEdit
QPointer< QLineEdit > m_baseLatLineEdit
Input for base latitude.
Definition: MosaicGridToolConfigDialog.h:71
Isis::MosaicGridToolConfigDialog::onMaxLatExtentSliderChanged
void onMaxLatExtentSliderChanged()
Updates the corresponding line edit when the maxLatSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:775
Isis::MosaicGridTool::setLatInc
void setLatInc(Angle latInc)
Modify the latitude increment.
Definition: MosaicGridTool.cpp:413
Isis::MosaicGridToolConfigDialog::m_minLatExtentSlider
QPointer< QSlider > m_minLatExtentSlider
Input for the minimum latitude.
Definition: MosaicGridToolConfigDialog.h:97
QComboBox
Isis::MosaicGridToolConfigDialog::m_minLatExtentLineEdit
QPointer< QLineEdit > m_minLatExtentLineEdit
Input for the minimum latitude.
Definition: MosaicGridToolConfigDialog.h:96
Isis::Longitude
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
Isis::MosaicGridToolConfigDialog::m_showGridCheckBox
QPointer< QCheckBox > m_showGridCheckBox
The tool we're configuring.
Definition: MosaicGridToolConfigDialog.h:67
Isis::MosaicGridToolConfigDialog::m_minLonExtentSlider
QPointer< QSlider > m_minLonExtentSlider
Input for the minimumlongitude.
Definition: MosaicGridToolConfigDialog.h:112
Isis::MosaicGridToolConfigDialog::m_maxLonExtentLineEdit
QPointer< QLineEdit > m_maxLonExtentLineEdit
Input for the maximum longitude.
Definition: MosaicGridToolConfigDialog.h:116
Isis::MosaicGridTool::setLatExtents
void setLatExtents(GridExtentSource source, Latitude minLat, Latitude maxLat)
Set the maximum and minimum latitude of the grid.
Definition: MosaicGridTool.cpp:303
Isis::MosaicGridTool::setShowGrid
void setShowGrid(bool show)
Modify the check state of the checkbox.
Definition: MosaicGridTool.cpp:549
Isis::MosaicGridToolConfigDialog::m_lonIncLineEdit
QPointer< QLineEdit > m_lonIncLineEdit
Input for longitude increment.
Definition: MosaicGridToolConfigDialog.h:86
Isis::MosaicGridTool::setLonExtents
void setLonExtents(GridExtentSource source, Longitude minLon, Longitude maxLon)
Set the maximum and minimum longitude of the grid.
Definition: MosaicGridTool.cpp:427
Isis::MosaicGridTool::Map
@ Map
The grid will be drawn using the extents from the map projection.
Definition: MosaicGridTool.h:61
Isis::MosaicGridToolConfigDialog::m_baseLatLabel
QPointer< QLabel > m_baseLatLabel
Label for the base latitude.
Definition: MosaicGridToolConfigDialog.h:70
Isis::MosaicGridTool::latInc
Angle latInc()
The angle of the latitude increment.
Definition: MosaicGridTool.cpp:123
Isis::MosaicGridToolConfigDialog::m_latExtentLabel
QPointer< QLabel > m_latExtentLabel
Label for the latitude range Selection for the latitude extent source (Map, Cube, Manual)
Definition: MosaicGridToolConfigDialog.h:90
Isis::PvlGroup
Contains multiple PvlContainers.
Definition: PvlGroup.h:41
Isis::MosaicGridToolConfigDialog::onExtentTypeChanged
void onExtentTypeChanged()
Updates the dialog when the lat or lon extent source is changed.
Definition: MosaicGridToolConfigDialog.cpp:790
Isis::MosaicGridToolConfigDialog::onBaseLatSliderChanged
void onBaseLatSliderChanged()
Updates the corresponding line edit when the baseLatSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:728
Isis::MosaicGridToolConfigDialog::m_autoApplyCheckBox
QPointer< QCheckBox > m_autoApplyCheckBox
True to applySettings on state change.
Definition: MosaicGridToolConfigDialog.h:123
Isis::toInt
int toInt(const QString &string)
Global function to convert from a string to an integer.
Definition: IString.cpp:93
Isis::MosaicGridTool::lonDomain
QString lonDomain()
The longitude domain of the projection of the scene.
Definition: MosaicGridTool.cpp:162
Isis::MosaicGridToolConfigDialog::m_baseLonLabel
QPointer< QLabel > m_baseLonLabel
Label for the base longitude.
Definition: MosaicGridToolConfigDialog.h:75
Isis::MosaicGridToolConfigDialog::applySettings
void applySettings()
Slot that calls applySettings with true to call readSettings also.
Definition: MosaicGridToolConfigDialog.cpp:536
Isis::MosaicGridToolConfigDialog::m_latIncTypeLabel
QPointer< QLabel > m_latIncTypeLabel
Label for the increment type (degrees/radians)
Definition: MosaicGridToolConfigDialog.h:83
Isis::MosaicGridToolConfigDialog::m_baseLonSlider
QPointer< QSlider > m_baseLonSlider
Input for base longitude.
Definition: MosaicGridToolConfigDialog.h:77
Isis::MosaicGridTool::baseLat
Latitude baseLat()
The base latitude.
Definition: MosaicGridTool.cpp:92
Isis::MosaicGridToolConfigDialog::m_maxLatExtentSlider
QPointer< QSlider > m_maxLatExtentSlider
Input for the maximum latitude.
Definition: MosaicGridToolConfigDialog.h:102
Isis::MosaicGridTool::maxLat
Latitude maxLat()
The maximum latitude used to determine the grid's extents and increments.
Definition: MosaicGridTool.cpp:201
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::MosaicGridToolConfigDialog::m_baseLatTypeLabel
QPointer< QLabel > m_baseLatTypeLabel
Label for the baselat type (degrees/radians)
Definition: MosaicGridToolConfigDialog.h:73
Isis::Angle
Defines an angle and provides unit conversions.
Definition: Angle.h:45
Isis::MosaicGridToolConfigDialog::refreshWidgetStates
void refreshWidgetStates()
Calls the private method refreshWidgetStates with true as the argument in order to have refreshWidget...
Definition: MosaicGridToolConfigDialog.cpp:598
Isis::MosaicGridToolConfigDialog::m_lonIncLabel
QPointer< QLabel > m_lonIncLabel
Label for the longitude increment.
Definition: MosaicGridToolConfigDialog.h:85
Isis::MosaicGridTool::autoGridCheckBox
bool autoGridCheckBox()
True if checked.
Definition: MosaicGridTool.cpp:82
Isis::MosaicGridTool::minLat
Latitude minLat()
The minimum latitude used to determine the grid's extents and increments.
Definition: MosaicGridTool.cpp:221
Isis::MosaicGridToolConfigDialog::m_maxLatExtentLineEdit
QPointer< QLineEdit > m_maxLatExtentLineEdit
Input for the maximum latitude.
Definition: MosaicGridToolConfigDialog.h:101
Isis::MosaicGridTool::setAutoGridCheckBox
void setAutoGridCheckBox(bool checked)
Modify the check state of the checkbox.
Definition: MosaicGridTool.cpp:261
Isis::MosaicGridToolConfigDialog::m_autoGridCheckBox
QPointer< QCheckBox > m_autoGridCheckBox
True if grid properties come form open cubes.
Definition: MosaicGridToolConfigDialog.h:68
Isis::MosaicGridTool::setLonInc
void setLonInc(Angle lonInc)
Modify the longitude increment.
Definition: MosaicGridTool.cpp:534
Isis::MosaicGridToolConfigDialog::m_lonIncTypeLabel
QPointer< QLabel > m_lonIncTypeLabel
Label for the increment type (degrees/radians)
Definition: MosaicGridToolConfigDialog.h:88
Isis::Angle::degrees
double degrees() const
Get the angle in units of Degrees.
Definition: Angle.h:232
Isis::MosaicGridToolConfigDialog::m_baseLatSlider
QPointer< QSlider > m_baseLatSlider
Input for base latitude.
Definition: MosaicGridToolConfigDialog.h:72
Isis::MosaicGridToolConfigDialog::readSettings
void readSettings()
Read the tool's current settings and set the widget states to match.
Definition: MosaicGridToolConfigDialog.cpp:544
Isis::MosaicGridToolConfigDialog::m_lonDomainLabel
QPointer< QLabel > m_lonDomainLabel
Label for the longitude domain.
Definition: MosaicGridToolConfigDialog.h:108
QDialog
Isis::MosaicGridTool::Cubes
@ Cubes
The grid will be drawn using the extents from the bounding rectangle of the open cubes.
Definition: MosaicGridTool.h:66
Isis::MosaicGridTool::latType
QString latType()
The latitude type (planetocentric/planetographic) of the projection of the scene.
Definition: MosaicGridTool.cpp:143
Isis::MosaicGridToolConfigDialog::m_lonExtentLabel
QPointer< QLabel > m_lonExtentLabel
Label for the longitude range Selection for the longitude extent source (Map, Cube,...
Definition: MosaicGridToolConfigDialog.h:105
Isis::MosaicGridTool::minLon
Longitude minLon()
The minimum longitude used to determine the grid's extents and increments.
Definition: MosaicGridTool.cpp:231
Isis::MosaicGridTool::lonExtents
GridExtentSource lonExtents()
The extent type (Map, Cubes, Manual) for the longitude.
Definition: MosaicGridTool.cpp:181
Isis::MosaicGridToolConfigDialog::m_maxLatExtentLabel
QPointer< QLabel > m_maxLatExtentLabel
Label for the maximum latitude.
Definition: MosaicGridToolConfigDialog.h:100
Isis::MosaicGridToolConfigDialog::m_lonIncSlider
QPointer< QSlider > m_lonIncSlider
Input for longitude increment.
Definition: MosaicGridToolConfigDialog.h:87
Isis::MosaicGridToolConfigDialog::onMinLatExtentSliderChanged
void onMinLatExtentSliderChanged()
Updates the corresponding line edit when the minLatSlider changes.
Definition: MosaicGridToolConfigDialog.cpp:762
Isis::MosaicGridTool::lonInc
Angle lonInc()
The angle of the longitude increment.
Definition: MosaicGridTool.cpp:191
Isis::MosaicGridTool::sceneWidget
MosaicSceneWidget * sceneWidget()
Definition: MosaicGridTool.cpp:241
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::MosaicGridToolConfigDialog::m_minLonExtentLabel
QPointer< QLabel > m_minLonExtentLabel
Label for the minimum longitude.
Definition: MosaicGridToolConfigDialog.h:110
Isis::MosaicGridTool::baseLon
Longitude baseLon()
The base longitude.
Definition: MosaicGridTool.cpp:102

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:53