r154: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 18 Jul 2000 16:20:53 +0000 (16:20 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 18 Jul 2000 16:20:53 +0000 (16:20 +0000)
src/dialogs.h
src/views.cpp
src/views.h

index 6c5c727a63164aa9f09928dcab771a48fcfd2daf..efdc3fac207bf3965f22aaa6c04999300906fa7a 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: dialogs.h,v 1.2 2000/07/18 14:51:06 kevin Exp $
+**  $Id: dialogs.h,v 1.3 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
@@ -37,7 +37,7 @@ class DialogGetImageMinMax : public wxDialog
 {
  public:
     DialogGetImageMinMax (wxFrame* pParent, const ImageFile& rImagefile, double dDefaultMin = 0., double dDefaultMax = 0.);
-    ~DialogGetImageMinMax (void);
+    virtual ~DialogGetImageMinMax (void);
 
     double getMinimum (void);
     double getMaximum (void);
@@ -55,7 +55,7 @@ class DialogGetRasterParameters : public wxDialog
 {
  public:
     DialogGetRasterParameters (wxFrame* pParent, int iDefaultXSize = 0, int iDefaultYSize = 0, int iDefaultNSamples = 1);
-    ~DialogGetRasterParameters (void);
+    virtual ~DialogGetRasterParameters (void);
 
     unsigned int getXSize (void);
     unsigned int getYSize (void);
@@ -98,5 +98,44 @@ class DialogGetProjectionParameters : public wxDialog
     string m_sDefaultGeometry;
 };
 
+
+class DialogGetReconstructionParameters : public wxDialog
+{
+ public:
+    DialogGetReconstructionParameters (wxFrame* pParent, int iDefaultXSize = 0, int iDefaultYSize = 0, const char* szDefaultFilterName = NULL, double dDefaultFilterParam = 1., const char* szDefaultFilterMethodName = NULL, int iDefaultZeropad = 3, const char* szDefaultInterpName = NULL, int iDefaultInterpParam = 1, const char* szDefaultBackprojName = NULL);
+    virtual ~DialogGetReconstructionParameters (void);
+
+    unsigned int getXSize(void);
+    unsigned int getYSize(void);
+    const string& getFilterName(void);
+    double getFilterParam(void);
+    const string& getFilterMethodName(void);
+    unsigned int getZeropad(void);
+    const string& getInterpName(void);
+    unsigned int getInterpParam(void);
+    const string& getBackprojName(void);
+
+ private:
+    wxTextCtrl* m_pTextCtrlXSize;
+    wxTextCtrl* m_pTextCtrlYSize;
+    wxTextCtrl* m_pTextCtrlFilterName;
+    wxTextCtrl* m_pTextCtrlFilterParam;
+    wxTextCtrl* m_pTextCtrlFilterMethodName;
+    wxTextCtrl* m_pTextCtrlZeropad;
+    wxTextCtrl* m_pTextCtrlInterpName;
+    wxTextCtrl* m_pTextCtrlInterpParam;
+    wxTextCtrl* m_pTextCtrlBackprojName;
+
+    int m_iDefaultXSize;
+    int m_iDefaultYSize;
+    string m_sDefaultFilterName;
+    double m_dDefaultFilterParam;
+    string m_sDefaultFilterMethodName;
+    int m_iDefaultZeropad;
+    string m_sInterpName;
+    int m_iDefaultInterpParam;
+    string m_sBackprojName;
+};
+
 #endif
 
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();
+  }
 }
 
 
index 99ae2756280488f801487289ccd98f180c1f90bc..43751338e6ea68c031241c70d379154c114335ee 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: views.h,v 1.4 2000/07/18 14:51:06 kevin Exp $
+**  $Id: views.h,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
@@ -57,7 +57,7 @@ private:
 
 public:
     ImageFileView(void);
-    ~ImageFileView(void);
+    virtual ~ImageFileView(void);
 
     bool OnCreate(wxDocument *doc, long flags);
     void OnDraw(wxDC* dc);
@@ -103,7 +103,7 @@ private:
 
 public:
     ProjectionFileView(void);
-    ~ProjectionFileView(void);
+    virtual ~ProjectionFileView(void);
 
     bool OnCreate(wxDocument *doc, long flags);
     void OnDraw(wxDC* dc);
@@ -141,7 +141,7 @@ private:
 
 public:
     PhantomView(void);
-    ~PhantomView(void);
+    virtual ~PhantomView(void);
 
     bool OnCreate(wxDocument *doc, long flags);
     void OnDraw(wxDC* dc);