Subversion Repositories seema-scanner

Rev

Rev 36 | Rev 42 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 36 Rev 41
Line 15... Line 15...
15
    qRegisterMetaType<SMCalibrationSet>("SMCalibrationSet");
15
    qRegisterMetaType<SMCalibrationSet>("SMCalibrationSet");
16
    qRegisterMetaType<SMCalibrationParameters>("SMCalibrationParameters");
16
    qRegisterMetaType<SMCalibrationParameters>("SMCalibrationParameters");
17
    qRegisterMetaTypeStreamOperators<SMCalibrationParameters>("SMCalibrationParameters");
17
    qRegisterMetaTypeStreamOperators<SMCalibrationParameters>("SMCalibrationParameters");
18
    qRegisterMetaType< std::vector<SMCalibrationSet> >("std::vector<SMCalibrationSet>");
18
    qRegisterMetaType< std::vector<SMCalibrationSet> >("std::vector<SMCalibrationSet>");
19
    qRegisterMetaType<SMFrameSequence>("SMFrameSequence");
19
    qRegisterMetaType<SMFrameSequence>("SMFrameSequence");
-
 
20
    qRegisterMetaType<pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr>("pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr");
20
 
21
 
21
    // Restore geometry
22
    // Restore geometry
22
    this->restoreGeometry(settings.value("geometry/mainwindow").toByteArray());
23
    this->restoreGeometry(settings.value("geometry/mainwindow").toByteArray());
23
    this->restoreState(settings.value("state/mainwindow").toByteArray());
24
    this->restoreState(settings.value("state/mainwindow").toByteArray());
24
 
25
 
Line 315... Line 316...
315
    for(int i=0; i<frameSequence.frames0.size(); i++){
316
    for(int i=0; i<frameSequence.frames0.size(); i++){
316
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
317
        QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
317
        subItem->setText(0, QString("frames %1").arg(i));
318
        subItem->setText(0, QString("frames %1").arg(i));
318
        subItem->setData(0, Qt::UserRole, QPoint(idx, i));
319
        subItem->setData(0, Qt::UserRole, QPoint(idx, i));
319
    }
320
    }
-
 
321
 
-
 
322
    ui->reconstructButton->setEnabled(true);
320
}
323
}
321
 
324
 
322
void SMScanner::on_captureTreeWidget_itemSelectionChanged(){
325
void SMScanner::on_captureTreeWidget_itemSelectionChanged(){
323
 
326
 
324
    // if selection is just cleared
327
    // if selection is just cleared
Line 386... Line 389...
386
            cv::cvtColor(captureData[i].frames1[j], frameBGR, CV_RGB2BGR);
389
            cv::cvtColor(captureData[i].frames1[j], frameBGR, CV_RGB2BGR);
387
            cv::imwrite(fileName.toStdString(), frameBGR);
390
            cv::imwrite(fileName.toStdString(), frameBGR);
388
        }
391
        }
389
    }
392
    }
390
}
393
}
-
 
394
 
-
 
395
void SMScanner::on_reconstructButton_clicked(){
-
 
396
 
-
 
397
//    // set checked flags
-
 
398
//    for(int i=0; i<captureData.size(); i++){
-
 
399
//        captureData[i].checked = (ui->captureTreeWidget->item(i)->checkState() == Qt::Checked);
-
 
400
//    }
-
 
401
 
-
 
402
 
-
 
403
    // Set up reconstruction thread
-
 
404
    reconstructionWorker = new SMReconstructionWorker;
-
 
405
    reconstructionWorkerThread = new QThread(this);
-
 
406
    reconstructionWorkerThread->setObjectName("reconstructionWorkerThread");
-
 
407
    reconstructionWorker->moveToThread(reconstructionWorkerThread);
-
 
408
    reconstructionWorkerThread->start();
-
 
409
 
-
 
410
    // Connections
-
 
411
    connect(reconstructionWorker, SIGNAL(newPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr)), this, SLOT(onNewPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr)));
-
 
412
    connect(reconstructionWorker, SIGNAL(done()), reconstructionWorkerThread, SLOT(quit()));
-
 
413
    connect(reconstructionWorker, SIGNAL(done()), reconstructionWorker, SLOT(deleteLater()));
-
 
414
 
-
 
415
    // Start reconstructing
-
 
416
    QMetaObject::invokeMethod(reconstructionWorker, "reconstruct", Q_ARG(std::vector<SMFrameSequence>, captureData));
-
 
417
 
-
 
418
}
-
 
419
 
-
 
420
void SMScanner::onNewPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr pc){
-
 
421
 
-
 
422
    SMPointCloud smCloud;
-
 
423
    //smCloud.pointCloud = pc;
-
 
424
    pointCloudData.push_back(smCloud);
-
 
425
 
-
 
426
    ui->pointCloudWidget->updatePointCloud(pc);
-
 
427
}