mirror of
https://gitlab.ethz.ch/gfattori/glocalize.git
synced 2026-05-03 13:44:26 +02:00
36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
#include "DicomScanWorker.h"
|
|
|
|
DicomScanWorker::DicomScanWorker(QObject* parent)
|
|
: QObject(parent)
|
|
{
|
|
DicomScanService::Callbacks cb;
|
|
cb.folderIsEmpty = [&]() { emit folderIsEmpty(); };
|
|
cb.statusInfo = [&](QString msg) { emit statusInfo(msg); };
|
|
cb.parse_result = [&](int r, gPatientRTGeneralInfos* infos) { emit parse_result(r, infos); };
|
|
cb.loadFail = [&](QString msg) { emit loadFail(msg); };
|
|
cb.loadEnd = [&](vtkImageData* vol) { emit loadEnd(vol); };
|
|
cb.loadedRTIso = [&](double* iso) { emit loadedRTIso(iso); };
|
|
cb.loadedVolBBox = [&](double* bbox, double* spacing, int* dim) { emit loadedVolBBox(bbox, spacing, dim); };
|
|
cb.referenceChange = [&](double dx, double dy, double dz) { emit referenceChange(dx, dy, dz); };
|
|
cb.virtualIsoTested = [&](bool b) { emit virtualIsoTested(b); };
|
|
svc.setCallbacks(std::move(cb));
|
|
}
|
|
|
|
void DicomScanWorker::load(QString p_loadDir)
|
|
{
|
|
m_abort.store(false);
|
|
if (m_abort.load()) { emit aborted(); return; }
|
|
svc.load(p_loadDir);
|
|
if (m_abort.load()) emit aborted();
|
|
}
|
|
|
|
void DicomScanWorker::changeRef(int selectedRef)
|
|
{
|
|
svc.changeRef(selectedRef);
|
|
}
|
|
|
|
void DicomScanWorker::abort()
|
|
{
|
|
m_abort.store(true);
|
|
}
|