- const Phantom& rPhantom = GetDocument()->getPhantom();
- ProjectionFileDocument* pProjectionDoc = dynamic_cast<ProjectionFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.pj", wxDOC_SILENT));
- Projections& rProj = pProjectionDoc->getProjections();
- Scanner theScanner (rPhantom, "parallel", 367, 320, 2, PI);
- rProj.initFromScanner (theScanner);
- theScanner.collectProjections (rProj, rPhantom, 0, TRACE_NONE);
- pProjectionDoc->Modify(true);
- pProjectionDoc->UpdateAllViews(this);
+ DialogGetProjectionParameters dialogProjection (m_frame, 367, 320, 1, 1., Scanner::GEOMETRY_PARALLEL_STR);
+ int retVal = dialogProjection.ShowModal();
+ if (retVal == wxID_OK) {
+ int nDet = dialogProjection.getNDet();
+ int nView = dialogProjection.getNView();
+ int nSamples = dialogProjection.getNSamples();
+ double dRotAngle = dialogProjection.getRotAngle();
+ string sGeometry = dialogProjection.getGeometry();
+ if (nDet > 0 && nView > 0 && sGeometry != "") {
+ const Phantom& rPhantom = GetDocument()->getPhantom();
+ ProjectionFileDocument* pProjectionDoc = dynamic_cast<ProjectionFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.pj", wxDOC_SILENT));
+ Projections& rProj = pProjectionDoc->getProjections();
+ Scanner theScanner (rPhantom, sGeometry.c_str(), nDet, nView, nSamples, dRotAngle);
+ rProj.initFromScanner (theScanner);
+ theScanner.collectProjections (rProj, rPhantom, 0, TRACE_NONE);
+ pProjectionDoc->Modify(true);
+ pProjectionDoc->UpdateAllViews(this);
+ }
+ }