Loading isis/src/control/objs/BundleSettings/BundleSettings.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,12 @@ namespace Isis { } /** * Retrieves solve settings for the observation corresponding to the given index. * * @return QList<BundleObservationSolveSettings> The QList of BundleObservationSolveSettings * objects */ QList<BundleObservationSolveSettings> BundleSettings::observationSolveSettings() const { return m_observationSolveSettings; } Loading isis/src/control/objs/BundleSettings/BundleSettings.h +2 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,8 @@ namespace Isis { * is for creating and displaying the correlation matrix, which is * currently not working. * 2) commented out hdf5 header includes in cpp * @history 2018-06-26 Christopher Combs - Added observationSolveSettings() method to retrieve * m_observationSolveSettings. Fixes #497. * * @todo Determine which XmlStackedHandlerReader constructor is preferred * @todo Determine which XmlStackedHandler needs a Project pointer (see constructors) Loading isis/src/qisis/objs/JigsawSetupDialog/JigsawSetupDialog.cpp +13 −77 Original line number Diff line number Diff line Loading @@ -381,8 +381,6 @@ namespace Isis { void JigsawSetupDialog::fillFromSettings(const BundleSettingsQsp settings) { BundleObservationSolveSettings observationSolveSettings = settings->observationSolveSettings(0); // general tab m_ui->observationModeCheckBox->setChecked(settings->solveObservationMode()); m_ui->pointRadiusSigmaCheckBox->setChecked(settings->solveRadius()); Loading @@ -393,37 +391,6 @@ namespace Isis { m_ui->sigma0ThresholdLineEdit->setText(toString(settings->convergenceCriteriaThreshold())); m_ui->maximumIterationsLineEdit->setText(toString(settings->convergenceCriteriaMaximumIterations())); // m_ui->positionComboBox->setCurrentIndex(observationSolveSettings.instrumentPositionSolveOption()); m_ui->hermiteSplineCheckBox->setChecked(observationSolveSettings.solvePositionOverHermite()); m_ui->spkDegreeSpinBox->setValue(observationSolveSettings.spkDegree()); m_ui->spkSolveDegreeSpinBox->setValue(observationSolveSettings.spkSolveDegree()); int pointingOption = observationSolveSettings.instrumentPointingSolveOption(); if (pointingOption == 0) { pointingOption = 1; } if (pointingOption == 1) { pointingOption = 0; } if ( pointingOption > 0 ) { m_ui->twistCheckBox->setEnabled(true); } else { m_ui->twistCheckBox->setEnabled(true); } // m_ui->pointingComboBox->setCurrentIndex(pointingOption); // m_ui->pointingComboBox->setCurrentIndex(observationSolveSettings.instrumentPointingSolveOption()); m_ui->twistCheckBox->setChecked(observationSolveSettings.solveTwist()); m_ui->fitOverPointingCheckBox->setChecked(observationSolveSettings.solvePolyOverPointing()); m_ui->ckDegreeSpinBox->setValue(observationSolveSettings.ckDegree()); m_ui->ckSolveDegreeSpinBox->setValue(observationSolveSettings.ckSolveDegree()); // weighting tab if ( !IsNullPixel(settings->globalLatitudeAprioriSigma()) ) { m_ui->pointLatitudeSigmaLineEdit->setText(toString(settings->globalLatitudeAprioriSigma())); Loading @@ -439,46 +406,6 @@ namespace Isis { } QList<double> aprioriPositionSigmas = observationSolveSettings.aprioriPositionSigmas(); if ( aprioriPositionSigmas.size() > 0 && !IsNullPixel(aprioriPositionSigmas[0]) ) { m_ui->positionSigmaLineEdit->setText(toString(aprioriPositionSigmas[0])); m_ui->positionSigmaLineEdit->setModified(true); } if ( aprioriPositionSigmas.size() > 1 && !IsNullPixel(aprioriPositionSigmas[1]) ) { m_ui->velocitySigmaLineEdit->setText(toString(aprioriPositionSigmas[1])); m_ui->velocitySigmaLineEdit->setModified(true); } if ( aprioriPositionSigmas.size() > 2 && !IsNullPixel(aprioriPositionSigmas[2]) ) { m_ui->accelerationSigmaLineEdit->setText(toString(aprioriPositionSigmas[2])); m_ui->accelerationSigmaLineEdit->setModified(true); } QList<double> aprioriPointingSigmas = observationSolveSettings.aprioriPointingSigmas(); if ( aprioriPointingSigmas.size() > 0 && !IsNullPixel(aprioriPointingSigmas[0]) ) { m_ui->pointingAnglesSigmaLineEdit->setText(toString(aprioriPointingSigmas[0])); m_ui->pointingAnglesSigmaLineEdit->setModified(true); } if ( aprioriPointingSigmas.size() > 1 && !IsNullPixel(aprioriPointingSigmas[1]) ) { m_ui->pointingAngularVelocitySigmaLineEdit->setText(toString(aprioriPointingSigmas[1])); m_ui->pointingAngularVelocitySigmaLineEdit->setModified(true); } if ( aprioriPointingSigmas.size() > 2 && !IsNullPixel(aprioriPointingSigmas[2]) ) { m_ui->pointingAngularAccelerationSigmaLineEdit->setText(toString(aprioriPointingSigmas[2])); m_ui->pointingAngularAccelerationSigmaLineEdit->setModified(true); } // maximum liklihood tab // self-calibration tab // target body tab update(); } Loading Loading @@ -1365,6 +1292,13 @@ namespace Isis { } /** * Slot for handling the Observation Solve Settings tab's Apply button. Retrieve's the selected * ProjectItems and adds their images' serial numbers to a new BundleObservationSolveSettings * object. Serial numbers will be removed from all other BOSS objects, and empty BOSS objects will * be removed. */ void JigsawSetupDialog::on_applySettingsPushButton_clicked() { // Get the current selected images and the item models Loading @@ -1386,10 +1320,12 @@ namespace Isis { selectedObservationNumbers.append(projItem->image()->serialNumber()); } else if (projItem->isImageList()) { foreach (Image *image, *projItem->imageList()) { // issue: if we pick an imagelist from treeview, we append all of its sources' chldrens' // serial numbers, even if they arent on the proxy selectedObservationNumbers.append(image->serialNumber()); // Use the proxymodel's children as it might not include all of the sourcemodel's children for (int i = 0; i < proxyModel->rowCount(index); i++) { QModelIndex childProxyIndex = proxyModel->index(i, 0, index); QModelIndex childSourceIndex = proxyModel->mapToSource(childProxyIndex); ProjectItem * childItem = sourceModel->itemFromIndex(childSourceIndex); selectedObservationNumbers.append(childItem->image()->serialNumber()); } } } Loading isis/src/qisis/objs/JigsawSetupDialog/JigsawSetupDialog.h +3 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ namespace Isis { * (BOSS) tab for displaying user-selected images from the main Project * treeview. All changes were made in the * createObservationSolveSettingsTreeView() function. References #497. * @history 2018-06-26 Christopher Combs - Implemented pseudocode in on_applySettings... method. * References #497. */ class JigsawSetupDialog : public QDialog { Loading Loading @@ -157,7 +159,7 @@ namespace Isis { private: Ui::JigsawSetupDialog *m_ui; Project *m_project; BundleSettingsQsp m_bundleSettings; BundleSettingsQsp m_bundleSettings; /**< The BundleSettings Object created by this dialog */ }; }; #endif // JigsawSetupDialog_h Loading
isis/src/control/objs/BundleSettings/BundleSettings.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,12 @@ namespace Isis { } /** * Retrieves solve settings for the observation corresponding to the given index. * * @return QList<BundleObservationSolveSettings> The QList of BundleObservationSolveSettings * objects */ QList<BundleObservationSolveSettings> BundleSettings::observationSolveSettings() const { return m_observationSolveSettings; } Loading
isis/src/control/objs/BundleSettings/BundleSettings.h +2 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,8 @@ namespace Isis { * is for creating and displaying the correlation matrix, which is * currently not working. * 2) commented out hdf5 header includes in cpp * @history 2018-06-26 Christopher Combs - Added observationSolveSettings() method to retrieve * m_observationSolveSettings. Fixes #497. * * @todo Determine which XmlStackedHandlerReader constructor is preferred * @todo Determine which XmlStackedHandler needs a Project pointer (see constructors) Loading
isis/src/qisis/objs/JigsawSetupDialog/JigsawSetupDialog.cpp +13 −77 Original line number Diff line number Diff line Loading @@ -381,8 +381,6 @@ namespace Isis { void JigsawSetupDialog::fillFromSettings(const BundleSettingsQsp settings) { BundleObservationSolveSettings observationSolveSettings = settings->observationSolveSettings(0); // general tab m_ui->observationModeCheckBox->setChecked(settings->solveObservationMode()); m_ui->pointRadiusSigmaCheckBox->setChecked(settings->solveRadius()); Loading @@ -393,37 +391,6 @@ namespace Isis { m_ui->sigma0ThresholdLineEdit->setText(toString(settings->convergenceCriteriaThreshold())); m_ui->maximumIterationsLineEdit->setText(toString(settings->convergenceCriteriaMaximumIterations())); // m_ui->positionComboBox->setCurrentIndex(observationSolveSettings.instrumentPositionSolveOption()); m_ui->hermiteSplineCheckBox->setChecked(observationSolveSettings.solvePositionOverHermite()); m_ui->spkDegreeSpinBox->setValue(observationSolveSettings.spkDegree()); m_ui->spkSolveDegreeSpinBox->setValue(observationSolveSettings.spkSolveDegree()); int pointingOption = observationSolveSettings.instrumentPointingSolveOption(); if (pointingOption == 0) { pointingOption = 1; } if (pointingOption == 1) { pointingOption = 0; } if ( pointingOption > 0 ) { m_ui->twistCheckBox->setEnabled(true); } else { m_ui->twistCheckBox->setEnabled(true); } // m_ui->pointingComboBox->setCurrentIndex(pointingOption); // m_ui->pointingComboBox->setCurrentIndex(observationSolveSettings.instrumentPointingSolveOption()); m_ui->twistCheckBox->setChecked(observationSolveSettings.solveTwist()); m_ui->fitOverPointingCheckBox->setChecked(observationSolveSettings.solvePolyOverPointing()); m_ui->ckDegreeSpinBox->setValue(observationSolveSettings.ckDegree()); m_ui->ckSolveDegreeSpinBox->setValue(observationSolveSettings.ckSolveDegree()); // weighting tab if ( !IsNullPixel(settings->globalLatitudeAprioriSigma()) ) { m_ui->pointLatitudeSigmaLineEdit->setText(toString(settings->globalLatitudeAprioriSigma())); Loading @@ -439,46 +406,6 @@ namespace Isis { } QList<double> aprioriPositionSigmas = observationSolveSettings.aprioriPositionSigmas(); if ( aprioriPositionSigmas.size() > 0 && !IsNullPixel(aprioriPositionSigmas[0]) ) { m_ui->positionSigmaLineEdit->setText(toString(aprioriPositionSigmas[0])); m_ui->positionSigmaLineEdit->setModified(true); } if ( aprioriPositionSigmas.size() > 1 && !IsNullPixel(aprioriPositionSigmas[1]) ) { m_ui->velocitySigmaLineEdit->setText(toString(aprioriPositionSigmas[1])); m_ui->velocitySigmaLineEdit->setModified(true); } if ( aprioriPositionSigmas.size() > 2 && !IsNullPixel(aprioriPositionSigmas[2]) ) { m_ui->accelerationSigmaLineEdit->setText(toString(aprioriPositionSigmas[2])); m_ui->accelerationSigmaLineEdit->setModified(true); } QList<double> aprioriPointingSigmas = observationSolveSettings.aprioriPointingSigmas(); if ( aprioriPointingSigmas.size() > 0 && !IsNullPixel(aprioriPointingSigmas[0]) ) { m_ui->pointingAnglesSigmaLineEdit->setText(toString(aprioriPointingSigmas[0])); m_ui->pointingAnglesSigmaLineEdit->setModified(true); } if ( aprioriPointingSigmas.size() > 1 && !IsNullPixel(aprioriPointingSigmas[1]) ) { m_ui->pointingAngularVelocitySigmaLineEdit->setText(toString(aprioriPointingSigmas[1])); m_ui->pointingAngularVelocitySigmaLineEdit->setModified(true); } if ( aprioriPointingSigmas.size() > 2 && !IsNullPixel(aprioriPointingSigmas[2]) ) { m_ui->pointingAngularAccelerationSigmaLineEdit->setText(toString(aprioriPointingSigmas[2])); m_ui->pointingAngularAccelerationSigmaLineEdit->setModified(true); } // maximum liklihood tab // self-calibration tab // target body tab update(); } Loading Loading @@ -1365,6 +1292,13 @@ namespace Isis { } /** * Slot for handling the Observation Solve Settings tab's Apply button. Retrieve's the selected * ProjectItems and adds their images' serial numbers to a new BundleObservationSolveSettings * object. Serial numbers will be removed from all other BOSS objects, and empty BOSS objects will * be removed. */ void JigsawSetupDialog::on_applySettingsPushButton_clicked() { // Get the current selected images and the item models Loading @@ -1386,10 +1320,12 @@ namespace Isis { selectedObservationNumbers.append(projItem->image()->serialNumber()); } else if (projItem->isImageList()) { foreach (Image *image, *projItem->imageList()) { // issue: if we pick an imagelist from treeview, we append all of its sources' chldrens' // serial numbers, even if they arent on the proxy selectedObservationNumbers.append(image->serialNumber()); // Use the proxymodel's children as it might not include all of the sourcemodel's children for (int i = 0; i < proxyModel->rowCount(index); i++) { QModelIndex childProxyIndex = proxyModel->index(i, 0, index); QModelIndex childSourceIndex = proxyModel->mapToSource(childProxyIndex); ProjectItem * childItem = sourceModel->itemFromIndex(childSourceIndex); selectedObservationNumbers.append(childItem->image()->serialNumber()); } } } Loading
isis/src/qisis/objs/JigsawSetupDialog/JigsawSetupDialog.h +3 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ namespace Isis { * (BOSS) tab for displaying user-selected images from the main Project * treeview. All changes were made in the * createObservationSolveSettingsTreeView() function. References #497. * @history 2018-06-26 Christopher Combs - Implemented pseudocode in on_applySettings... method. * References #497. */ class JigsawSetupDialog : public QDialog { Loading Loading @@ -157,7 +159,7 @@ namespace Isis { private: Ui::JigsawSetupDialog *m_ui; Project *m_project; BundleSettingsQsp m_bundleSettings; BundleSettingsQsp m_bundleSettings; /**< The BundleSettings Object created by this dialog */ }; }; #endif // JigsawSetupDialog_h