3 #include "QnetSetAprioriDialog.h"
19 QnetSetAprioriDialog::QnetSetAprioriDialog(QnetTool *qnetTool,
QWidget *parent) :
QDialog(parent) {
20 m_qnetTool = qnetTool;
24 connect(editLockPointsListBox, SIGNAL(itemChanged(QListWidgetItem *)),
25 this, SLOT(unlockPoint(QListWidgetItem *)));
26 connect(setAprioriButton, SIGNAL(clicked()),
this, SLOT(setApriori()));
46 editLockPointsListBox->clear();
49 m_points = selectedPoints;
50 if (m_points.size() == 1) {
54 userEnteredRadioButton->setEnabled(
false);
58 for (
int i=0; i<m_points.size(); i++) {
59 QString
id = m_points.at(i)->text();
60 ControlPoint *pt = m_qnetTool->controlNet()->GetPoint(
id);
61 if (pt->IsEditLocked()) {
62 QListWidgetItem *item =
new QListWidgetItem(*(m_points[i]));
63 item->setCheckState(Qt::Checked);
64 editLockPointsListBox->addItem(item);
70 void QnetSetAprioriDialog::unlockPoint(QListWidgetItem *pointId) {
72 ControlPoint *pt = m_qnetTool->controlNet()->GetPoint(pointId->text());
73 if (pt->IsEditLocked() && pointId->checkState() == Qt::Unchecked) {
75 editLockPointsListBox->removeItemWidget(pointId);
76 pointId->setHidden(
true);
77 editLockPointsListBox->repaint();
85 void QnetSetAprioriDialog::clearLineEdits() {
86 aprioriLatEdit->setText(
"");
87 aprioriLonEdit->setText(
"");
88 aprioriRadiusEdit->setText(
"");
89 latSigmaEdit->setText(
"");
90 lonSigmaEdit->setText(
"");
91 radiusSigmaEdit->setText(
"");
95 void QnetSetAprioriDialog::fillLineEdits() {
97 QString
id = m_points.at(0)->text();
98 ControlPoint *pt = m_qnetTool->controlNet()->GetPoint(
id);
99 SurfacePoint sPt = pt->GetAprioriSurfacePoint();
100 vector<Distance> targetRadii = m_qnetTool->controlNet()->
GetTargetRadii();
101 sPt.SetRadii(Distance(targetRadii[0]),
102 Distance(targetRadii[1]),
103 Distance(targetRadii[2]));
104 if (sPt.GetLatitude().degrees() !=
Null) {
105 aprioriLatEdit->setText(
106 QString::number(sPt.GetLatitude().degrees()));
108 if (sPt.GetLatSigmaDistance().meters() !=
Null) {
109 latSigmaEdit->setText(
110 QString::number(sPt.GetLatSigmaDistance().meters()));
112 if (sPt.GetLongitude().degrees() !=
Null) {
113 aprioriLonEdit->setText(
114 QString::number(sPt.GetLongitude().degrees()));
116 if (sPt.GetLonSigmaDistance().meters() !=
Null) {
117 lonSigmaEdit->setText(
118 QString::number(sPt.GetLonSigmaDistance().meters()));
120 if (sPt.GetLocalRadius().meters() !=
Null) {
121 aprioriRadiusEdit->setText(
122 QString::number(sPt.GetLocalRadius().meters()));
124 if (sPt.GetLocalRadiusSigma().meters() !=
Null) {
125 radiusSigmaEdit->setText(
126 QString::number(sPt.GetLocalRadiusSigma().meters()));
153 double latSigma =
Null;
155 double lonSigma =
Null;
157 double radiusSigma =
Null;
158 double radius =
Null;
160 if (latitudeConstraintsGroupBox->isChecked()) {
162 if (userEnteredRadioButton->isChecked() && aprioriLatEdit->text() !=
"") {
163 lat = aprioriLatEdit->text().toDouble();
165 if (latSigmaEdit->text() !=
"") {
166 latSigma = latSigmaEdit->text().toDouble();
169 if (longitudeConstraintsGroupBox->isChecked()) {
171 if (userEnteredRadioButton->isChecked() && aprioriLonEdit->text() !=
"") {
172 lon = aprioriLonEdit->text().toDouble();
174 if (lonSigmaEdit->text() !=
"") {
175 lonSigma = lonSigmaEdit->text().toDouble();
179 if (radiusConstraintsGroupBox->isChecked()) {
181 if (userEnteredRadioButton->isChecked() && aprioriRadiusEdit->text() !=
"") {
182 radius = aprioriRadiusEdit->text().toDouble();
184 if (radiusSigmaEdit->text() !=
"") {
185 radiusSigma = radiusSigmaEdit->text().toDouble();
191 for (
int i = 0; i < m_points.size(); i++) {
192 QString
id = m_points.at(i)->text();
193 ControlPoint *pt = m_qnetTool->controlNet()->GetPoint(
id);
194 if (pt->IsEditLocked())
continue;
196 if (!pt->HasAprioriCoordinates()) {
197 QString msg =
"Point [" +
id +
"] does not have an Apriori coordinate. "
198 "Make sure to save the ground source measurement then the Point before "
199 "setting the sigmas. The sigmas for this point will not be set.";
200 QMessageBox::warning((
QWidget *)parent(),
"Warning", msg);
204 if (pointSourceGroupBox->isChecked()) {
205 if (referenceMeasureRadioButton->isChecked()) {
210 Camera *cam = m_qnetTool->controlNet()->
Camera(camIndex);
211 cam->
SetImage(m->GetSample(),m->GetLine());
215 else if (averageMeasuresRadioButton->isChecked()) {
220 else if (userEnteredRadioButton->isChecked()) {
234 vector<Distance> targetRadii = m_qnetTool->controlNet()->
GetTargetRadii();
246 emit pointChanged(
id);
250 QString message =
"Error setting sigmas. \n";
252 QMessageBox::critical((
QWidget *)parent(),
"Error",message);
253 QApplication::restoreOverrideCursor();
255 emit pointChanged(
id);