r460: no message
[ctsim.git] / libctsim / reconstruct.cpp
index 8e09a16b55be487ecba1c568ad835bdcfb3dd7b6..4b1b4a81b4b0a40b0f16ed786a0a107180feb3db 100644 (file)
@@ -6,9 +6,9 @@
 **   Date Started: Aug 84
 **
 **  This is part of the CTSim program
-**  Copyright (C) 1983-2000 Kevin Rosenberg
+**  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: reconstruct.cpp,v 1.1 2000/09/02 05:13:57 kevin Exp $
+**  $Id: reconstruct.cpp,v 1.9 2001/01/28 19:10:18 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
@@ -108,7 +108,7 @@ Reconstructor::plotFilter (SGP* pSGP)
 {
 #if HAVE_SGP
   int nVecFilter = m_pProcessSignal->getNFilterPoints();
-  double adPlotXAxis [nVecFilter];
+  double* adPlotXAxis = new double [nVecFilter];
 
   if (nVecFilter > 0 && pSGP)  {
     double f = m_pProcessSignal->getFilterMin();
@@ -117,13 +117,14 @@ Reconstructor::plotFilter (SGP* pSGP)
       adPlotXAxis[i] = f;
 
     if (m_pProcessSignal->getFilter()) {
-      EZPlot ezplot (*pSGP);
+      EZPlot ezplot;
 
       ezplot.ezset ("title Filter Response");
       ezplot.addCurve (adPlotXAxis, m_pProcessSignal->getFilter(), nVecFilter);
-      ezplot.plot();
+      ezplot.plot (pSGP);
     }
   }
+  delete adPlotXAxis;
 #endif
 }
 
@@ -137,16 +138,16 @@ Reconstructor::reconstructAllViews ()
 
 
 void
-Reconstructor::reconstructView (int iStartView, int iViewCount, SGP* pSGP)
+Reconstructor::reconstructView (int iStartView, int iViewCount, SGP* pSGP, bool bBackprojectView)
 {
-  double adFilteredProj [m_nFilteredProjections];   // filtered projections
+  double* adFilteredProj = new double [m_nFilteredProjections];   // filtered projections
 
   if (iViewCount <= 0)
     iViewCount = m_rProj.nView() - iStartView;
       
   for (int iView = iStartView; iView < (iStartView + iViewCount); iView++)  {
     if (m_iTrace == Trace::TRACE_CONSOLE) 
-      cout <<"Reconstructing view " << iView << " (last = " << m_rProj.nView() - 1 << ")\n";
+               std::cout <<"Reconstructing view " << iView << " (last = " << m_rProj.nView() - 1 << ")\n";
       
     const DetectorArray& rDetArray = m_rProj.getDetectorArray (iView);
     const DetectorValue* detval = rDetArray.detValues();
@@ -165,35 +166,43 @@ Reconstructor::reconstructView (int iStartView, int iViewCount, SGP* pSGP)
 #endif
 #endif
 
-    m_pBackprojector->BackprojectView (adFilteredProj, rDetArray.viewAngle());
+       if (bBackprojectView)
+      m_pBackprojector->BackprojectView (adFilteredProj, rDetArray.viewAngle());
 
 #ifdef HAVE_SGP
     if (m_iTrace >= Trace::TRACE_PLOT && pSGP) {
-      EZPlot ezplotProj (*pSGP);
+      EZPlot ezplotProj;
 
       ezplotProj.ezset ("clear");
       ezplotProj.ezset ("title Raw Projection");
       ezplotProj.ezset ("xticks major 5");
       ezplotProj.ezset ("xlabel ");
       ezplotProj.ezset ("ylabel ");
-      ezplotProj.ezset ("yporigin .5");
-      ezplotProj.ezset ("ylength .5");
+      ezplotProj.ezset ("yporigin 0.1");
+      ezplotProj.ezset ("ylength 0.45");
+      ezplotProj.ezset ("xlength 0.66");
       ezplotProj.ezset ("box.");
       ezplotProj.ezset ("grid.");
       ezplotProj.addCurve (m_adPlotXAxis, detval, m_rProj.nDet());
-      ezplotProj.plot();
+      pSGP->setTextPointSize(12);
+      ezplotProj.plot (pSGP);
       ezplotProj.ezset ("clear");
       ezplotProj.ezset ("title Filtered Projection");
       ezplotProj.ezset ("xticks major 5");
       ezplotProj.ezset ("xlabel ");
       ezplotProj.ezset ("ylabel ");
-      ezplotProj.ezset ("ylength .5");
+      ezplotProj.ezset ("yporigin 0.55");
+      ezplotProj.ezset ("ylength 0.45");
+      ezplotProj.ezset ("xlength 0.66");
       ezplotProj.ezset ("box");
       ezplotProj.ezset ("grid");
       ezplotProj.addCurve (m_adPlotXAxis, adFilteredProj,  m_nFilteredProjections);
-      ezplotProj.plot();
+      pSGP->setTextPointSize(12);
+      ezplotProj.plot (pSGP);
     } 
 #endif  //HAVE_SGP
   }
+
+  delete adFilteredProj;
 }