r385: no message
[ctsim.git] / src / views.cpp
index cf8497bd9b894b7237275c67a5b89c36dbd02071..f8efe44f6949a45e748e8dc7c00c611734c8846c 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.cpp,v 1.54 2001/01/07 23:18:13 kevin Exp $
+**  $Id: views.cpp,v 1.60 2001/01/12 21:53:27 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
@@ -1056,7 +1056,8 @@ ImageFileView::OnPlotRow (wxCommandEvent& event)
   if (v != NULL && yCursor < ny) {
     double* pX = new double [nx];
     double* pYReal = new double [nx];
-    double *pYImag, *pYMag;
+    double *pYImag = NULL;
+    double *pYMag = NULL;
     if (rIF.isComplex()) {
       pYImag = new double [nx];
       pYMag = new double [nx];
@@ -1103,7 +1104,7 @@ ImageFileView::OnPlotRow (wxCommandEvent& event)
         rPlotFile.addColumn (2, pYImag);
         rPlotFile.addColumn (3, pYMag);
       }
-      for (int iL = 0; iL < rIF.nLabels(); iL++)
+      for (unsigned int iL = 0; iL < rIF.nLabels(); iL++)
         rPlotFile.addDescription (rIF.labelGet(iL).getLabelString().c_str());
       os << " Plot of " << GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str();
       *theApp->getLog() << os.str().c_str() << "\n";
@@ -1139,7 +1140,8 @@ ImageFileView::OnPlotCol (wxCommandEvent& event)
   if (v != NULL && xCursor < nx) {
     double* pX = new double [ny];
     double* pYReal = new double [ny];
-    double *pYImag, *pYMag;
+    double* pYImag = NULL;
+    double* pYMag = NULL;
     if (rIF.isComplex()) {
       pYImag = new double [ny];
       pYMag = new double [ny];
@@ -1186,7 +1188,7 @@ ImageFileView::OnPlotCol (wxCommandEvent& event)
         rPlotFile.addColumn (2, pYImag);
         rPlotFile.addColumn (3, pYMag);
       }
-      for (int iL = 0; iL < rIF.nLabels(); iL++)
+      for (unsigned int iL = 0; iL < rIF.nLabels(); iL++)
         rPlotFile.addDescription (rIF.labelGet(iL).getLabelString().c_str());
       os << " Plot of " << GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str();
       *theApp->getLog() << os.str().c_str() << "\n";
@@ -1460,19 +1462,19 @@ ImageFileView::OnCompareCol (wxCommandEvent& event)
 
         unsigned int iL;
         for (iL = 0; iL < rIF.nLabels(); iL++) {
-          std::string s = GetDocument()->GetFirstView()->GetFrame()->GetTitle();
+          std::string s = GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str();
           s += ": ";
           s += rIF.labelGet(iL).getLabelString();
           rPlotFile.addDescription (s.c_str());
         }
-        for (iL = 0; iL < rIF.nLabels(); iL++) {
-          std::string s = pCompareDoc->GetFirstView()->GetFrame()->GetTitle();
+        for (iL = 0; iL < rCompareIF.nLabels(); iL++) {
+          std::string s = pCompareDoc->GetFirstView()->GetFrame()->GetTitle().c_str();
           s += ": ";
           s += rCompareIF.labelGet(iL).getLabelString();
           rPlotFile.addDescription (s.c_str());
         }
-        os << " Between " << GetDocument()->GetFirstView()->GetFrame()->GetTitle() << " and "
-          << pCompareDoc->GetFirstView()->GetFrame()->GetTitle();
+        os << " Between " << GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str() << " and "
+          << pCompareDoc->GetFirstView()->GetFrame()->GetTitle().c_str();
         *theApp->getLog() << os.str().c_str() << "\n";
         rPlotFile.addDescription (os.str().c_str());
       }
@@ -1550,19 +1552,19 @@ ImageFileView::OnCompareRow (wxCommandEvent& event)
         rPlotFile.addColumn (2, pY2);
         unsigned int iL;
         for (iL = 0; iL < rIF.nLabels(); iL++) {
-          std::string s = GetDocument()->GetFirstView()->GetFrame()->GetTitle();
+          std::string s = GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str();
           s += ": ";
           s += rIF.labelGet(iL).getLabelString();
           rPlotFile.addDescription (s.c_str());
         }
-        for (iL = 0; iL < rIF.nLabels(); iL++) {
-          std::string s = pCompareDoc->GetFirstView()->GetFrame()->GetTitle();
+        for (iL = 0; iL < rCompareIF.nLabels(); iL++) {
+          std::string s = pCompareDoc->GetFirstView()->GetFrame()->GetTitle().c_str();
           s += ": ";
           s += rCompareIF.labelGet(iL).getLabelString();
           rPlotFile.addDescription (s.c_str());
         }
-        os << " Between " << GetDocument()->GetFirstView()->GetFrame()->GetTitle() << " and "
-          << pCompareDoc->GetFirstView()->GetFrame()->GetTitle();
+        os << " Between " << GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str() << " and "
+          << pCompareDoc->GetFirstView()->GetFrame()->GetTitle().c_str();
         *theApp->getLog() << os.str().c_str() << "\n";
         rPlotFile.addDescription (os.str().c_str());
       }
@@ -1624,12 +1626,12 @@ ImageFileView::OnPlotHistogram (wxCommandEvent& event)
     rPlotFile.addColumn (0, pX);
     rPlotFile.addColumn (1, pY);
     for (unsigned int iL = 0; iL < rIF.nLabels(); iL++) {
-      std::string s = GetDocument()->GetFirstView()->GetFrame()->GetTitle();
+      std::string s = GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str();
       s += ": ";
       s += rIF.labelGet(iL).getLabelString();
       rPlotFile.addDescription (s.c_str());
     }
-    os << " Plot of " << GetDocument()->GetFirstView()->GetFrame()->GetTitle();
+    os << " Plot of " << GetDocument()->GetFirstView()->GetFrame()->GetTitle().c_str();
     *theApp->getLog() << os.str().c_str() << "\n";
     rPlotFile.addDescription (os.str().c_str());
     delete pX;
@@ -2007,7 +2009,7 @@ ProjectionFileView::ProjectionFileView(void)
   m_dDefaultFilterParam = 1.;
 #if HAVE_FFTW
   m_iDefaultFilterMethod = ProcessSignal::FILTER_METHOD_RFFTW;
-  m_iDefaultFilterGeneration = ProcessSignal::FILTER_GENERATION_INVERSE_FOURIER;
+  m_iDefaultFilterGeneration = ProcessSignal::FILTER_GENERATION_DIRECT;
 #else
   m_iDefaultFilterMethod = ProcessSignal::FILTER_METHOD_CONVOLUTION;
   m_iDefaultFilterGeneration = ProcessSignal::FILTER_GENERATION_DIRECT;
@@ -2145,11 +2147,6 @@ ProjectionFileView::OnReconstructFBP (wxCommandEvent& event)
       const Projections& rProj = GetDocument()->getProjections();
       imageFile.setArraySize (m_iDefaultNX, m_iDefaultNY);
       
-      if (m_iDefaultFilterMethod != ProcessSignal::FILTER_METHOD_CONVOLUTION && m_iDefaultFilterGeneration == ProcessSignal::FILTER_GENERATION_DIRECT && rProj.geometry() != Scanner::GEOMETRY_PARALLEL) {
-        wxMessageBox ("Sorry!\nCurrently, frequency-based filtering with direct filter generation is not support for geometries other than parallel.\nAborting command.", "Not Supported", wxOK | wxICON_WARNING, m_frame);
-        return;
-      }
-
       Reconstructor* pReconstruct = new Reconstructor (rProj, imageFile, optFilterName.c_str(), m_dDefaultFilterParam, optFilterMethodName.c_str(), m_iDefaultZeropad, optFilterGenerationName.c_str(), optInterpName.c_str(), m_iDefaultInterpParam, optBackprojectName.c_str(), m_iDefaultTrace);
 
       Timer timerRecon;