r154: *** empty log message ***
[ctsim.git] / src / views.cpp
index 3d46d0493394ea6da58162b9ef5cdffbe261c941..9939b1f07873030923f0441fee3709d590d09190 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.cpp,v 1.4 2000/07/18 14:51:06 kevin Exp $
+**  $Id: views.cpp,v 1.5 2000/07/18 16:20:53 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
@@ -406,6 +406,9 @@ PhantomView::OnProjections (wxCommandEvent& event)
       theScanner.collectProjections (rProj, rPhantom, 0, TRACE_NONE);
       pProjectionDoc->Modify(true);
       pProjectionDoc->UpdateAllViews(this);
+      ostringstream os;
+      os << "Projections for " << rPhantom.name() << ": nDet=" << nDet << ", nView=" << nView << ", nSamples=" << nSamples << ", RotAngle=" << dRotAngle << ", Geometry=" << sGeometry << "\n";
+      *theApp->getLog() << os.str().c_str();
     }
   }
 }
@@ -603,20 +606,28 @@ ProjectionFileView::OnProperties (wxCommandEvent& event)
 void
 ProjectionFileView::OnReconstruct (wxCommandEvent& event)
 {
-  ImageFileDocument* pReconDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
-  ImageFile& imageFile = pReconDoc->getImageFile();
-  const Projections& rProj = GetDocument()->getProjections();
-  string optFilterName = "abs_bandlimit";
+  int xSize, ySize;
+  xSize = 256;
+  ySize = 256;
+  const char* optFilterName = "abs_bandlimit";
   double optFilterParam = 1.;
-  string optFilterMethodName = "convolution";
+  const char*optFilterMethodName = "convolution";
   int optZeropad = 3;
-  string optInterpName = "linear";
+  const char* optInterpName = "linear";
   int optInterpParam = 1;
-  string optBackprojectName = "idiff3";
-  imageFile.setArraySize (256, 256);
-  rProj.reconstruct (imageFile, optFilterName.c_str(), optFilterParam, optFilterMethodName.c_str(), optZeropad, optInterpName.c_str(), optInterpParam, optBackprojectName.c_str(), TRACE_NONE);
-  pReconDoc->Modify(true);
-  pReconDoc->UpdateAllViews(this);
+  const char* optBackprojectName = "idiff3";
+  if (xSize > 0 && ySize > 0) {
+    ImageFileDocument* pReconDoc = dynamic_cast<ImageFileDocument*>(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT));
+    ImageFile& imageFile = pReconDoc->getImageFile();
+    const Projections& rProj = GetDocument()->getProjections();
+    imageFile.setArraySize (xSize, ySize);
+    rProj.reconstruct (imageFile, optFilterName, optFilterParam, optFilterMethodName, optZeropad, optInterpName, optInterpParam, optBackprojectName, TRACE_NONE);
+    pReconDoc->Modify(true);
+    pReconDoc->UpdateAllViews(this);
+    ostringstream os;
+    os << "Reconstruct " << rProj.getFilename() << ": xSize=" << xSize << ", ySize=" << ySize << ", Filter=" << optFilterName << ", FilterParam=" << optFilterParam << ", FilterMethod=" << optFilterMethodName << ", Zeropad=" << optZeropad << ", Interpolation=" << optInterpName << ", InterpolationParam=" << optInterpParam << ", Backprojection=" << optBackprojectName << "\n";
+    *theApp->getLog() << os.str().c_str();
+  }
 }