r582: no message
[ctsim.git] / src / views.cpp
index 8203cbc4198af168c8c7fc30dc18942893c66bb3..a4826e0292c0d7137c6ae94144788f9f64ab5335 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: views.cpp,v 1.116 2001/02/23 21:58:32 kevin Exp $
+**  $Id: views.cpp,v 1.118 2001/02/25 10:52:55 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -113,6 +113,7 @@ ImageFileCanvas::OnMouseEvent(wxMouseEvent& event)
 {
   if (! m_pView)
     return;
+
   
   wxClientDC dc(this);
   PrepareDC(dc);
@@ -1901,6 +1902,13 @@ PhantomFileView::OnProjections (wxCommandEvent& event)
         wxMessageBox (msg, "Error");
         return;
       }
+      std::ostringstream os;
+      os << "Projections for " << rPhantom.name() << ": nDet=" << m_iDefaultNDet 
+        << ", nView=" << m_iDefaultNView << ", nSamples=" << m_iDefaultNSample 
+        << ", RotAngle=" << m_dDefaultRotation << ", FocalLengthRatio=" << m_dDefaultFocalLength 
+        << ", ViewRatio=" << m_dDefaultViewRatio << ", ScanRatio=" << m_dDefaultScanRatio 
+        << ", Geometry=" << sGeometry.c_str() << ", FanBeamAngle=" << 
+        convertRadiansToDegrees (theScanner.fanBeamAngle());
       pProj->initFromScanner (theScanner);
       m_dDefaultRotation /= TWOPI;  // convert back to fraction of a circle
       
@@ -1930,15 +1938,8 @@ PhantomFileView::OnProjections (wxCommandEvent& event)
         }
       }
       
-      std::ostringstream os;
-      os << "Projections for " << rPhantom.name() << ": nDet=" << m_iDefaultNDet 
-        << ", nView=" << m_iDefaultNView << ", nSamples=" << m_iDefaultNSample 
-        << ", RotAngle=" << m_dDefaultRotation << ", FocalLengthRatio=" << m_dDefaultFocalLength 
-        << ", ViewRatio=" << m_dDefaultViewRatio << ", ScanRatio=" << m_dDefaultScanRatio 
-        << ", Geometry=" << sGeometry.c_str() << ", FanBeamAngle=" << 
-        convertRadiansToDegrees (theScanner.fanBeamAngle());
-      pProj->setCalcTime (timer.timerEnd());
       pProj->setRemark (os.str());
+      pProj->setCalcTime (timer.timerEnd());
       *theApp->getLog() << os.str().c_str() << "\n";
       
       ::wxYield();
@@ -2438,15 +2439,17 @@ ProjectionFileView::OnReconstructFBP (wxCommandEvent& event)
         
       } else {
         if (theApp->getUseBackgroundTasks() || theApp->getNumberCPU() > 1) {
-          ReconstructorSupervisor* pReconstructor = new ReconstructorSupervisor (this, 
+          ReconstructorSupervisorThread* pReconstructor = new ReconstructorSupervisorThread (this, 
             m_iDefaultNX, m_iDefaultNY, optFilterName.c_str(), 
             m_dDefaultFilterParam, optFilterMethodName.c_str(), m_iDefaultZeropad, optFilterGenerationName.c_str(), 
             optInterpName.c_str(), m_iDefaultInterpParam, optBackprojectName.c_str(), os.str().c_str());
-          if (! pReconstructor->start()) {
+          if (pReconstructor->Create() != wxTHREAD_NO_ERROR) {
+            sys_error (ERR_SEVERE, "Error creating reconstructor thread");
             delete pReconstructor;
             return;
           }
-          // delete pReconstructor;  // reconstructor is still running
+//          pReconstructor->SetPriority (60);
+          pReconstructor->Run();
         } else {
           ImageFile* pImageFile = new ImageFile;
           pImageFile->setArraySize (m_iDefaultNX, m_iDefaultNY);