33 #include <QApplication> 37 #include <QPushButton> 38 #include <QProgressBar> 41 #include <QTableWidgetItem> 44 #include <QHeaderView> 45 #include <QDesktopWidget> 46 #include <QGridLayout> 47 #include <QWidgetAction> 68 connect (m_vitals, SIGNAL(networkChanged()),
71 connect (m_vitals, SIGNAL(
historyEntry(QString, QString, QVariant, QVariant, QString)),
72 this, SLOT (
historyEntry(QString, QString, QVariant, QVariant, QString)));
88 m_netLabel->setText(
"Control Network: " + m_vitals->
getNetworkId());
89 m_statusLabel->setText(m_vitals->
getStatus());
101 freePercent = ( (int) (freePercent * 100) ) / 100.0;
103 m_pointsFreeProgressbar->setValue(freePercent);
104 m_pointsFreeProgressbar->setFormat(freeFormat);
107 ( (
double) m_vitals->
numPoints() ) * 100;
108 constrainedPercent = ( (int) (constrainedPercent * 100) ) / 100.0;
110 m_pointsConstrainedProgressbar->setValue(constrainedPercent);
111 m_pointsConstrainedProgressbar->setFormat(constrainedFormat);
114 fixedPercent = ( (int) (fixedPercent * 100) ) / 100.0;
116 m_pointsFixedProgressbar->setValue(fixedPercent);
117 m_pointsFixedProgressbar->setFormat(fixedFormat);
121 if (m_vitals->
getStatus() ==
"Broken!") updateStatus(0);
122 else if (m_vitals->
getStatus() ==
"Weak!") updateStatus(1);
123 else if (m_vitals->
getStatus() ==
"Healthy!") updateStatus(2);
163 void ControlHealthMonitorWidget::updateStatus(
int code) {
164 QPalette p = m_statusBar->palette();
167 p.setColor(QPalette::Highlight, Qt::red);
168 p.setColor(QPalette::Text, Qt::black);
171 p.setColor(QPalette::Highlight, Qt::yellow);
172 p.setColor(QPalette::Text, Qt::black);
175 p.setColor(QPalette::Highlight, Qt::green);
176 p.setColor(QPalette::Text, Qt::white);
179 m_statusBar->setPalette(p);
189 setWindowTitle(
"Control Net Health Monitor");
192 QFont fontBig(
"Arial", 18, QFont::Bold);
193 QFont fontNormal(
"Arial", 14);
194 QFont searchFont(
"Seqoe UI Symbol", 12);
197 QVBoxLayout *gridLayout =
new QVBoxLayout;
198 gridLayout->setAlignment(Qt::AlignTop);
199 gridLayout->setSpacing(5);
200 setLayout(gridLayout);
203 QLabel *titleLabel =
new QLabel(
"Control Net Health Monitor");
204 titleLabel->setFont(fontBig);
205 titleLabel->setAlignment(Qt::AlignTop);
208 QHBoxLayout *netLayout =
new QHBoxLayout;
209 netLayout->setAlignment(Qt::AlignLeft);
211 m_netLabel =
new QLabel(
"Control Network:");
212 m_netLabel->setFont(fontNormal);
213 m_netLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
214 gridLayout->addWidget(titleLabel);
216 netLayout->addWidget(m_netLabel);
217 netWidget->setLayout(netLayout);
219 gridLayout->addWidget(netWidget);
223 QHBoxLayout *netStatsLayout =
new QHBoxLayout;
224 netStatsLayout->setAlignment(Qt::AlignLeft);
225 netStatsLayout->setSpacing(25);
226 m_numImagesLabel =
new QLabel(
"Images:");
227 m_numPointsLabel =
new QLabel(
"Points:");
228 m_numMeasuresLabel =
new QLabel(
"Measures:");
230 netStatsLayout->addWidget(m_numImagesLabel);
231 netStatsLayout->addWidget(m_numPointsLabel);
232 netStatsLayout->addWidget(m_numMeasuresLabel);
234 stats->setLayout(netStatsLayout);
235 gridLayout->addWidget(stats);
239 QPalette p = m_statusBar->palette();
240 p.setColor(QPalette::Highlight, Qt::green);
241 p.setColor(QPalette::Text, Qt::red);
242 m_statusBar->setPalette(p);
243 m_statusBar->setRange(0, 0);
245 m_statusBar->setFormat(
"Loading...");
246 gridLayout->addWidget(m_statusBar);
248 m_lastModLabel =
new QLabel(
"Last Modification:");
249 gridLayout->addWidget(m_lastModLabel);
252 line->setFrameShape(QFrame::HLine);
253 line->setFrameShadow(QFrame::Sunken);
254 gridLayout->addSpacing(15);
256 gridLayout->addWidget(line);
257 gridLayout->addSpacing(15);
260 QTabWidget *tabs =
new QTabWidget();
262 QWidget *overviewTab = createOverviewTab();
263 QWidget *imagesTab = createImagesTab();
264 QWidget *pointsTab = createPointsTab();
267 tabs->insertTab(0, overviewTab,
"Overview");
268 tabs->insertTab(1, imagesTab,
"Images");
269 tabs->insertTab(2, pointsTab,
"Points");
272 gridLayout->addWidget(tabs);
281 m_historyTable = NULL;
282 m_imagesHullValue = NULL;
283 m_imagesMeasuresValue = NULL;
284 m_imagesShowingLabel = NULL;
285 m_imagesTable = NULL;
286 m_lastModLabel = NULL;
287 m_numImagesLabel = NULL;
288 m_numMeasuresLabel = NULL;
289 m_numPointsLabel = NULL;
291 m_pointsEditLockedLabel = NULL;
292 m_pointsFewMeasuresLabel = NULL;
293 m_pointsIgnoredLabel = NULL;
294 m_pointsShowingLabel = NULL;
295 m_pointsTable = NULL;
297 m_statusDetails = NULL;
298 m_statusLabel = NULL;
307 QWidget* ControlHealthMonitorWidget::createOverviewTab() {
311 QVBoxLayout *overviewLayout =
new QVBoxLayout;
312 overviewLayout->setAlignment(Qt::AlignTop);
313 overviewLayout->setSpacing(5);
315 QFont fontBig(
"Arial", 16, QFont::Bold);
316 QFont fontNormal(
"Arial", 14);
317 QFont fontSmall(
"Arial", 12);
319 m_statusLabel =
new QLabel(
"Healthy!");
320 m_statusLabel->setFont(fontBig);
321 m_statusLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
323 m_statusDetails =
new QLabel(
"Your network is healthy.");
324 m_statusDetails->setFont(fontNormal);
325 m_statusDetails->setAlignment(Qt::AlignTop | Qt::AlignLeft);
327 m_statusDetails->setFont(fontNormal);
328 m_statusDetails->setAlignment(Qt::AlignTop | Qt::AlignLeft);
330 overviewLayout->addWidget(m_statusLabel);
331 overviewLayout->addWidget(m_statusDetails);
332 overviewLayout->addSpacing(50);
334 QLabel *modLabel =
new QLabel(
"Modification History");
335 modLabel->setFont(fontSmall);
336 overviewLayout->addWidget(modLabel);
339 headers.append(
"Action");
340 headers.append(
"Id");
341 headers.append(
"Old Value");
342 headers.append(
"New Value");
343 headers.append(
"Timestamp");
345 m_historyTable =
new QTableWidget();
346 m_historyTable->setColumnCount(5);
347 m_historyTable->setHorizontalHeaderLabels(headers);
348 m_historyTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
349 m_historyTable->horizontalHeader()->setStretchLastSection(
true);
350 m_historyTable->verticalHeader()->setVisible(
false);
351 m_historyTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
352 m_historyTable->setSelectionBehavior(QAbstractItemView::SelectRows);
353 m_historyTable->setSelectionMode(QAbstractItemView::SingleSelection);
354 m_historyTable->setGeometry(QApplication::desktop()->screenGeometry());
356 overviewLayout->addWidget(m_historyTable);
357 overview->setLayout(overviewLayout);
367 QWidget* ControlHealthMonitorWidget::createImagesTab() {
368 QFont fontSmall(
"Arial", 12);
369 QFont fontMedium(
"Arial", 14);
373 QVBoxLayout *imagesLayout =
new QVBoxLayout;
374 imagesLayout->setAlignment(Qt::AlignTop);
375 imagesLayout->setSpacing(15);
376 imagesLayout->addSpacing(10);
379 QGridLayout *tempLayout =
new QGridLayout;
382 QLabel *threeMeasure =
new QLabel(
"Less than 3 valid Measures:");
383 m_imagesMeasuresValue =
new QLabel(
"");
385 QLabel *withoutMeasures =
new QLabel(
"Exceeding convex hull tolerance:");
386 m_imagesHullValue =
new QLabel(
"");
389 m_imagesMeasuresValue->setFont(fontSmall);
390 threeMeasure->setFont(fontSmall);
391 withoutMeasures->setFont(fontSmall);
392 m_imagesHullValue->setFont(fontSmall);
395 QPushButton *button =
new QPushButton(
"View");
396 QPushButton *button2 =
new QPushButton(
"View");
398 connect(button, SIGNAL(clicked()),
this, SLOT(viewImageFewMeasures()));
399 connect(button2, SIGNAL(clicked()),
this, SLOT(viewImageHullTolerance()));
402 tempLayout->addWidget(threeMeasure, 0, 0);
403 tempLayout->addWidget(m_imagesMeasuresValue, 0, 1);
404 tempLayout->addWidget(button, 0, 2);
406 tempLayout->addWidget(withoutMeasures, 1, 0);
407 tempLayout->addWidget(m_imagesHullValue, 1, 1);
408 tempLayout->addWidget(button2, 1, 2);
410 temp->setLayout(tempLayout);
411 imagesLayout->addWidget(temp);
414 m_imagesTable =
new QTableWidget();
416 connect(m_imagesTable, SIGNAL(itemDoubleClicked(QTableWidgetItem *)),
421 headers.append(
"Cube Serial");
423 m_imagesTable->setColumnCount(2);
424 m_imagesTable->setHorizontalHeaderLabels(headers);
425 m_imagesTable->horizontalHeader()->setStretchLastSection(
true);
426 m_imagesTable->verticalHeader()->setVisible(
false);
427 m_imagesTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
428 m_imagesTable->setSelectionBehavior(QAbstractItemView::SelectRows);
429 m_imagesTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
431 m_imagesTable->setShowGrid(
true);
432 m_imagesTable->setGeometry(QApplication::desktop()->screenGeometry());
433 m_imagesTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
435 imagesLayout->addSpacing(30);
437 m_imagesShowingLabel =
new QLabel(
"");
438 m_imagesShowingLabel->setFont(fontMedium);
440 QPushButton *viewAllButton =
new QPushButton(
"View All");
441 connect(viewAllButton, SIGNAL(clicked()),
442 this, SLOT(viewImageAll()));
444 QGridLayout *showingLayout =
new QGridLayout;
447 showingLayout->addWidget(m_imagesShowingLabel, 0, 0, 1, 2);
448 showingLayout->addWidget(viewAllButton, 0, 2);
449 showingWidget->setLayout(showingLayout);
451 imagesLayout->addWidget(showingWidget);
452 imagesLayout->addWidget(m_imagesTable);
454 imagesTab->setLayout(imagesLayout);
463 QWidget* ControlHealthMonitorWidget::createPointsTab() {
465 QFont fontSmall(
"Arial", 12);
466 QFont fontMedium(
"Arial", 14);
467 QFont searchFont(
"Seqoe UI Symbol", 12);
471 QVBoxLayout *pointsLayout =
new QVBoxLayout;
472 pointsLayout->setAlignment(Qt::AlignTop);
473 pointsLayout->setSpacing(15);
474 pointsLayout->addSpacing(10);
477 QGridLayout *viewLayout =
new QGridLayout;
480 QLabel *pointsIgnored =
new QLabel(
"Points Ignored:");
481 m_pointsIgnoredLabel =
new QLabel(
"");
483 QLabel *freePoints =
new QLabel(
"Points Free:");
484 m_pointsFreeLabel =
new QLabel(
"");
486 QPalette p = m_pointsFreeProgressbar->palette();
487 p.setColor(QPalette::Highlight, Qt::blue);
488 p.setColor(QPalette::Text, Qt::black);
489 m_pointsFreeProgressbar->setPalette(p);
490 m_pointsFreeProgressbar->setRange(0, 100);
492 QLabel *constrainedPoints =
new QLabel(
"Points Constrained:");
493 m_pointsConstrainedLabel =
new QLabel(
"");
495 m_pointsConstrainedProgressbar->setPalette(p);
496 m_pointsConstrainedProgressbar->setRange(0, 100);
498 QLabel *fixedPoints =
new QLabel(
"Points Fixed:");
499 m_pointsFixedLabel =
new QLabel(
"");
501 m_pointsFixedProgressbar->setPalette(p);
502 m_pointsFixedProgressbar->setRange(0, 100);
504 QLabel *pointsLocked =
new QLabel(
"Points Edit Locked:");
505 m_pointsEditLockedLabel =
new QLabel(
"");
507 QLabel *pointsMeasure =
new QLabel(
"Less than 3 valid Measures:");
508 m_pointsFewMeasuresLabel =
new QLabel(
"");
511 pointsLocked->setFont(fontSmall);
512 m_pointsEditLockedLabel->setFont(fontSmall);
513 pointsMeasure->setFont(fontSmall);
514 m_pointsFewMeasuresLabel->setFont(fontSmall);
515 freePoints->setFont(fontSmall);
516 m_pointsFreeLabel->setFont(fontSmall);
517 fixedPoints->setFont(fontSmall);
518 constrainedPoints->setFont(fontSmall);
519 pointsIgnored->setFont(fontSmall);
520 m_pointsFixedLabel->setFont(fontSmall);
521 m_pointsConstrainedLabel->setFont(fontSmall);
522 m_pointsIgnoredLabel->setFont(fontSmall);
525 QPushButton *viewIgnoredButton =
new QPushButton(
"View");
526 QPushButton *viewLockedButton =
new QPushButton(
"View");
527 QPushButton *viewMeasureButton =
new QPushButton(
"View");
528 QPushButton *viewFreePoints =
new QPushButton(
"View");
529 QPushButton *viewFixedPoints =
new QPushButton(
"View");
530 QPushButton *viewConstrainedPoints =
new QPushButton(
"View");
533 connect(viewIgnoredButton, SIGNAL(clicked()),
this, SLOT(viewPointIgnored()));
534 connect(viewLockedButton, SIGNAL(clicked()),
this, SLOT(viewPointEditLocked()));
535 connect(viewMeasureButton, SIGNAL(clicked()),
this, SLOT(viewPointFewMeasures()));
536 connect(viewFreePoints, SIGNAL(clicked()),
this, SLOT(viewPointFree()));
537 connect(viewFixedPoints, SIGNAL(clicked()),
this, SLOT(viewPointFixed()));
538 connect(viewConstrainedPoints, SIGNAL(clicked()),
this, SLOT(viewPointConstrained()));
541 viewLayout->addWidget(freePoints, 0, 0);
542 viewLayout->addWidget(m_pointsFreeProgressbar, 0, 1);
543 viewLayout->addWidget(viewFreePoints, 0, 2);
545 viewLayout->addWidget(fixedPoints, 1, 0);
546 viewLayout->addWidget(m_pointsFixedProgressbar, 1, 1);
547 viewLayout->addWidget(viewFixedPoints, 1, 2);
549 viewLayout->addWidget(constrainedPoints, 2, 0);
550 viewLayout->addWidget(m_pointsConstrainedProgressbar, 2, 1);
551 viewLayout->addWidget(viewConstrainedPoints, 2, 2);
553 viewLayout->addWidget(pointsIgnored, 3, 0);
554 viewLayout->addWidget(m_pointsIgnoredLabel, 3, 1);
555 viewLayout->addWidget(viewIgnoredButton, 3, 2);
557 viewLayout->addWidget(pointsLocked, 4, 0);
558 viewLayout->addWidget(m_pointsEditLockedLabel, 4, 1);
559 viewLayout->addWidget(viewLockedButton, 4, 2);
561 viewLayout->addWidget(pointsMeasure, 5, 0);
562 viewLayout->addWidget(m_pointsFewMeasuresLabel, 5, 1);
563 viewLayout->addWidget(viewMeasureButton, 5, 2);
565 viewWidget->setLayout(viewLayout);
566 pointsLayout->addWidget(viewWidget);
569 m_pointsTable =
new QTableWidget();
572 headers.append(
"Point ID");
573 headers.append(
"Type");
574 headers.append(
"Ignored");
575 headers.append(
"Rejected");
576 headers.append(
"Edit Locked");
578 m_pointsTable->setColumnCount(6);
579 m_pointsTable->setHorizontalHeaderLabels(headers);
580 m_pointsTable->horizontalHeader()->setStretchLastSection(
true);
581 m_pointsTable->verticalHeader()->setVisible(
false);
582 m_pointsTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
583 m_pointsTable->setSelectionBehavior(QAbstractItemView::SelectRows);
584 m_pointsTable->setSelectionMode(QAbstractItemView::SingleSelection);
585 m_pointsTable->setShowGrid(
true);
586 m_pointsTable->setGeometry(QApplication::desktop()->screenGeometry());
587 m_pointsTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
589 connect(m_pointsTable, SIGNAL(itemDoubleClicked(QTableWidgetItem *)),
592 m_pointsShowingLabel =
new QLabel(
"");
593 m_pointsShowingLabel->setFont(fontMedium);
594 QPushButton *showAllButton =
new QPushButton(
"View All");
596 QGridLayout *showLayout =
new QGridLayout;
599 connect(showAllButton, SIGNAL(clicked()),
600 this, SLOT(viewPointAll()));
602 showLayout->addWidget(m_pointsShowingLabel, 0, 0, 1, 2);
603 showLayout->addWidget(showAllButton, 0, 2);
604 showWidget->setLayout(showLayout);
606 pointsLayout->addSpacing(30);
607 pointsLayout->addWidget(showWidget);
608 pointsLayout->addWidget(m_pointsTable);
610 pointsTab->setLayout(pointsLayout);
625 QModelIndexList rows = m_imagesTable->selectionModel()->selectedRows(1);
626 foreach (QModelIndex index, rows) {
627 serials.append(index.data().toString());
629 emit openImageEditor(serials);
643 QModelIndex pointId = m_pointsTable->selectionModel()->selectedIndexes()[1];
645 emit openPointEditor(point);
662 QVariant oldValue, QVariant newValue,
665 m_lastModLabel->setText(
"Last Modification: " + timeStamp);
667 m_historyTable->insertRow(0);
668 m_historyTable->setItem(0, 0,
new QTableWidgetItem(entry));
669 m_historyTable->setItem(0, 1,
new QTableWidgetItem(
id));
670 m_historyTable->setItem(0, 2,
new QTableWidgetItem(oldValue.toString()));
671 m_historyTable->setItem(0, 3,
new QTableWidgetItem(newValue.toString()));
672 m_historyTable->setItem(0, 4,
new QTableWidgetItem(timeStamp));
680 QWidget* ControlHealthMonitorWidget::createGraphTab() {
683 QVBoxLayout *graphLayout =
new QVBoxLayout;
684 graphLayout->setAlignment(Qt::AlignTop);
685 graphLayout->setSpacing(5);
698 graph->setLayout(graphLayout);
708 void ControlHealthMonitorWidget::updateImageTable(
QList<QString> serials) {
709 m_imagesTable->setRowCount(0);
710 for (
int i = 0; i < serials.size(); i++) {
711 m_imagesTable->insertRow(i);
712 m_imagesTable->setItem(i, 0,
new QTableWidgetItem(
toString(i + 1)));
713 m_imagesTable->setItem(i, 1,
new QTableWidgetItem(serials.at(i)));
723 m_pointsTable->setRowCount(0);
724 for (
int i = 0; i < points.size(); i++) {
725 ControlPoint *point = points.at(i);
726 m_pointsTable->insertRow(i);
727 m_pointsTable->setItem(i, 0,
new QTableWidgetItem(
toString(i + 1)));
728 m_pointsTable->setItem(i, 1,
new QTableWidgetItem(point->GetId()));
729 m_pointsTable->setItem(i, 2,
new QTableWidgetItem(point->GetPointTypeString()));
730 m_pointsTable->setItem(i, 3,
new QTableWidgetItem(
toString(point->IsIgnored())));
731 m_pointsTable->setItem(i, 4,
new QTableWidgetItem(
toString(point->IsRejected())));
732 m_pointsTable->setItem(i, 5,
new QTableWidgetItem(
toString(point->IsEditLocked())));
741 void ControlHealthMonitorWidget::viewPointAll() {
743 m_pointsShowingLabel->setText(
"Showing: All Points <sup>" +
753 void ControlHealthMonitorWidget::viewPointIgnored() {
755 m_pointsShowingLabel->setText(
"Showing: Ignored Points <sup>" +
765 void ControlHealthMonitorWidget::viewPointFree() {
767 m_pointsShowingLabel->setText(
"Showing: Free Points <sup>" +
777 void ControlHealthMonitorWidget::viewPointFixed() {
779 m_pointsShowingLabel->setText(
"Showing: Fixed Points <sup>" +
789 void ControlHealthMonitorWidget::viewPointConstrained() {
791 m_pointsShowingLabel->setText(
"Showing: Constrained Points <sup>" +
801 void ControlHealthMonitorWidget::viewPointEditLocked() {
803 m_pointsShowingLabel->setText(
"Showing: Locked Points <sup>" +
814 void ControlHealthMonitorWidget::viewPointFewMeasures() {
816 m_pointsShowingLabel->setText(
"Showing: Points with less than 3 Measures <sup>" +
826 void ControlHealthMonitorWidget::viewImageAll() {
828 m_imagesShowingLabel->setText(
"Showing: All Images <sup>" +
838 void ControlHealthMonitorWidget::viewImageFewMeasures() {
840 m_imagesShowingLabel->setText(
"Showing: Images with less than 3 Measures <sup>" +
850 void ControlHealthMonitorWidget::viewImageHullTolerance() {
852 m_imagesShowingLabel->setText(
"Showing: Images below a hull tolerance of 75% <sup>" +
863 delete m_historyTable;
864 delete m_imagesHullValue;
865 delete m_imagesMeasuresValue;
866 delete m_imagesShowingLabel;
867 delete m_imagesTable;
868 delete m_lastModLabel;
869 delete m_numImagesLabel;
870 delete m_numMeasuresLabel;
871 delete m_numPointsLabel;
873 delete m_pointsEditLockedLabel;
874 delete m_pointsFewMeasuresLabel;
875 delete m_pointsIgnoredLabel;
876 delete m_pointsShowingLabel;
877 delete m_pointsTable;
879 delete m_statusDetails;
880 delete m_statusLabel;
883 m_historyTable = NULL;
884 m_imagesHullValue = NULL;
885 m_imagesMeasuresValue = NULL;
886 m_imagesShowingLabel = NULL;
887 m_imagesTable = NULL;
888 m_lastModLabel = NULL;
889 m_numImagesLabel = NULL;
890 m_numMeasuresLabel = NULL;
891 m_numPointsLabel = NULL;
893 m_pointsEditLockedLabel = NULL;
894 m_pointsFewMeasuresLabel = NULL;
895 m_pointsIgnoredLabel = NULL;
896 m_pointsShowingLabel = NULL;
897 m_pointsTable = NULL;
899 m_statusDetails = NULL;
900 m_statusLabel = NULL;
QList< QString > getImagesBelowMeasureThreshold(int num=3)
This method is designed to return a QList containing cube serials for all images that fall below a me...
QList< ControlPoint * > getLockedPoints()
This method is designed to return all edit locked points in the Control Network.
QList< ControlPoint * > getFreePoints()
This method is designed to return all free points in the Control Network.
int numImagesBelowMeasureThreshold(int num=3)
This method is designed to return the number of images that fall below a measure threshold.
QList< ControlPoint * > getPointsBelowMeasureThreshold(int num=3)
This method is designed to return all points that fall below a measure threshold. ...
QString getStatusDetails()
This method is designed to return details for the status of the network.
QList< ControlPoint * > getAllPoints()
This method is designed to return all points in the Control Network.
QList< QString > getImagesBelowHullTolerance(int num=75)
This method is designed to return a QList containing cube serials for all images that fall below a co...
int numPoints()
This method is designed to return the number of points in the Control Network.
QString getNetworkId()
This method is designed to return networkId of the observed Control Network.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
QString getStatus()
This method is designed to return the current status of the network.
int numFreePoints()
This method is designed to return the number of free points in the Control Network.
int numPointsBelowMeasureThreshold(int num=3)
This method is designed to return the number of points that fall below a measure threshold.
int numIgnoredPoints()
This method is designed to return the number of ignored points in the Control Network.
QList< ControlPoint * > getIgnoredPoints()
This method is designed to return all ignored points in the Control Network.
int numLockedPoints()
This method is designed to return the number of edit locked points in the Control Network...
int numImages()
This method is designed to return the number of images in the Control Network.
QList< ControlPoint * > getConstrainedPoints()
This method is designed to return all constrained points in the Control Network.
QList< ControlPoint * > getFixedPoints()
This method is designed to return all fixed points in the Control Network.
ControlPoint * getPoint(QString id)
This method is designed to return the Control Point with the associated point id from the Control Net...
Namespace for ISIS/Bullet specific routines.
int numConstrainedPoints()
This method is designed to return the number of constrained points in the Control Network...
int numMeasures()
This method is designed to return the number of measures in the Control Network.
QList< QString > getCubeSerials()
This method is designed to return all cube serials present in the Control Network.
int numFixedPoints()
This method is designed to return the number of fixed points in the Control Network.
int numImagesBelowHullTolerance(int tolerance=75)
This method is designed to return the number of images that fall below a hull tolerance.