r114: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 19 Jun 2000 20:08:09 +0000 (20:08 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 19 Jun 2000 20:08:09 +0000 (20:08 +0000)
include/phantom.h
libctsim/phantom.cpp
src/phm2if.cpp

index 21b08c40822e0ba769d53b7832fc87ff589abf95..32eedf6e9f933ee8e617e19eeef89b50266c5ba9 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phantom.h,v 1.1 2000/06/19 18:45:36 kevin Exp $
+**  $Id: phantom.h,v 1.2 2000/06/19 20:08:09 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
@@ -137,18 +137,20 @@ class Phantom
 
     void addPElem (const char* const composition, const double cx, const double cy, const double u, const double v, const double rot, const double atten);
 
-    void print (void) const;
+    void convertToImagefile (ImageFile& im, const int in_nsample, const int trace, const int colStart, const int colCount) const;
+
+    void convertToImagefile (ImageFile& im, const int in_nsample, const int trace) const;
 
 #if HAVE_SGP
     void show (void) const;
     void draw (void) const;
 #endif
     
-    void std_herman (void);
+    void addStdHerman (void);
+    void addStdRowland (void);
+    void addStdRowlandBordered (void);
 
-    void std_rowland (void);
-
-    void std_rowland_bordered (void);
+    void print (void) const;
 
     const double maxAxisLength (void) const {return (((m_xmax - m_xmin) > (m_ymax - m_ymin)) ? (m_xmax - m_xmin) : (m_ymax - m_ymin));}
 
index e28074f5917f5555c0c017f9a62a4e6ef3c02d82..ec5d0dcf6e0525cc38af1f1365091dbb81889e4b 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phantom.cpp,v 1.2 2000/06/19 19:54:23 kevin Exp $
+**  $Id: phantom.cpp,v 1.3 2000/06/19 20:08:09 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
@@ -58,13 +58,13 @@ Phantom::create (const int phmid)
   switch (phmid) 
     {
     case O_PHM_HERMAN:
-      std_herman();
+      addStdHerman();
       break;
     case O_PHM_ROWLAND:
-      std_rowland();
+      addStdRowland();
       break;
     case O_PHM_BROWLAND:
-      std_rowland_bordered ();
+      addStdRowlandBordered ();
       break;
     case O_PHM_UNITPULSE:
       m_composition = P_UNIT_PULSE;
@@ -238,21 +238,18 @@ Phantom::show (void) const
  *   draw ()
  */
 
-#ifdef HAVE_SGP
 void 
 Phantom::draw (void) const
 {
+#ifdef HAVE_SGP
   for (PElemIterator i = m_listPElem.begin(); i != m_listPElem.end(); i++)
     sgp2_polyline_abs ((*i)->xOutline(), (*i)->yOutline(), (*i)->nOutlinePoints());
-}
 #endif
+}
 
 
 /* NAME
- *   std_rowland               Make head phantom of S.W. Rowland
- *
- * SYNOPSIS
- *   std_rowland ()
+ *   addStdRowland             Make head phantom of S.W. Rowland
  *
  * REFERENCES
  *   S. W. Rowland, "Computer Implementation of Image Reconstruction
@@ -261,7 +258,7 @@ Phantom::draw (void) const
  */
 
 void 
-Phantom::std_rowland (void)
+Phantom::addStdRowland (void)
 {
   addPElem("ellipse",  0.0000,  0.0000, 0.6900,  0.9200,   0.0,  1.00);
   addPElem("ellipse",  0.0000, -0.0184, 0.6624,  0.8740,   0.0, -0.98);
@@ -277,17 +274,14 @@ Phantom::std_rowland (void)
 }
 
 void 
-Phantom::std_rowland_bordered (void)
+Phantom::addStdRowlandBordered (void)
 {
-  std_rowland ();
+  addStdRowland ();
   addPElem ("ellipse", 0.000, 0.0000, 0.7500, 1.000, 0.0, 0.00);
 }
 
 /* NAME
- *   std_herman                        Standard head phantom of G. T. Herman
- *
- * SYNOPSIS
- *   std_herman ()
+ *   addStdHerman                      Standard head phantom of G. T. Herman
  *
  * REFERENCES
  *   G. T. Herman, "Image Reconstructions from Projections:  The Fundementals
@@ -295,7 +289,7 @@ Phantom::std_rowland_bordered (void)
  */
 
 void 
-Phantom::std_herman (void)
+Phantom::addStdHerman (void)
 {
   addPElem("ellipse",  0.000,  1.50,  0.375, 0.3000,  90.00, -0.003);
   addPElem("ellipse",  0.675, -0.75,  0.225, 0.1500, 140.00,  0.010);
@@ -326,18 +320,24 @@ Phantom::std_herman (void)
  *                             (total samples per pixel = nsample * nsample)
  */
 
+void
+Phantom::convertToImagefile (ImageFile& im, const int in_nsample, const int trace) const
+{
+  convertToImagefile (im, in_nsample, trace, 0, im.nx());
+}
+
 void 
-Phantom::convertToImagefile (ImageFile& im, const int colStart, const int colCount, const int in_nsample, const int trace) const
+Phantom::convertToImagefile (ImageFile& im, const int in_nsample, const int trace, const int colStart, const int colCount) const
 {
   int nx = im.nx();
   int ny = im.ny();
   if (nx < 2 || ny < 2)
       return;
 
+  int nsample = in_nsample;
   if (nsample < 1)  
-        nsample = 1;
+    nsample = 1;
 
-  int nsample = in_nsample;
   double dx = m_xmax - m_xmin;
   double dy = m_ymax - m_ymin;
   double xcent = m_xmin + dx / 2;
@@ -369,7 +369,7 @@ Phantom::convertToImagefile (ImageFile& im, const int colStart, const int colCou
   ImageFileArray v = im.getArray();
 
   double x_start = xmin + (colStart * xinc);
-  for (PElemConstIterator pelem = m_listPElem.begin; pelem != m_listPElem.end; pelem++) {
+  for (PElemConstIterator pelem = m_listPElem.begin(); pelem != m_listPElem.end(); pelem++) {
     double x, y, xi, yi;
     int ix, iy, kx, ky;
     for (ix = 0, x = x_start; ix < colCount; ix++, x += xinc) {
index 0eb5c9e1ebc544c765b6788db92e2cccf4b5ce5e..60e504b193038f01f3f9658480dce78417bbdc6e 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phm2if.cpp,v 1.11 2000/06/19 17:58:13 kevin Exp $
+**  $Id: phm2if.cpp,v 1.12 2000/06/19 20:08:09 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
@@ -324,7 +324,7 @@ phm2if_main (int argc, char* argv[])
     }
   } else {
     TimerCollectiveMPI timerRasterize (mpiWorld.getComm());
-    phm_to_imagefile (phm, *imLocal, mpiWorld.getMyStartWorkUnit(),  mpiWorld.getMyLocalWorkUnits(), opt_nsample, opt_trace);
+    phm.convertToImagefile (*imLocal, opt_nsample, opt_trace, mpiWorld.getMyStartWorkUnit(), mpiWorld.getMyLocalWorkUnits());
     if (opt_verbose)
       timerRasterize.timerEndAndReport ("Time to rasterize phantom");
 
@@ -344,7 +344,7 @@ phm2if_main (int argc, char* argv[])
       if (opt_trace >= TRACE_PHM)
        phm.show();
 #endif
-      phm_to_imagefile (phm, *imGlobal, 0, opt_nx, opt_nsample, opt_trace);
+      phm.convertToImagefile (*imGlobal, opt_nsample, opt_trace);
   }
 #endif