Update copyright date; remove old CVS keyword
[ctsim.git] / tools / phm2if.cpp
index 653e63528c9137f673e6cf2086776626de0d4d45..ce08c25f0ac236c422d3ca0314dd2fe5c0a8c3a4 100644 (file)
@@ -7,9 +7,7 @@
 **   Date Started:  1984
 **
 **  This is part of the CTSim program
-**  Copyright (C) 1983-2000 Kevin Rosenberg
-**
-**  $Id: phm2if.cpp,v 1.24 2001/04/02 03:49:52 kevin Exp $
+**  Copyright (C) 1983-2009 Kevin Rosenberg
 **
 **  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
 #include "timer.h"
 
 
-enum { O_PHANTOM, O_DESC, O_NSAMPLE, O_FILTER, O_VIEW_RATIO, O_TRACE, O_VERBOSE, O_HELP, 
+enum { O_PHANTOM, O_DESC, O_NSAMPLE, O_FILTER, O_VIEW_RATIO, O_TRACE, O_VERBOSE, O_HELP,
 O_PHMFILE, O_FILTER_DOMAIN, O_FILTER_BW, O_FILTER_PARAM, O_DEBUG, O_VERSION };
 
-static struct option my_options[] = 
+static struct option my_options[] =
 {
   {"phantom", 1, 0, O_PHANTOM},
   {"phmfile", 1, 0, O_PHMFILE},
@@ -51,9 +49,9 @@ static struct option my_options[] =
   {0, 0, 0, 0}
 };
 
-static const char* g_szIdStr = "$Id: phm2if.cpp,v 1.24 2001/04/02 03:49:52 kevin Exp $";
+static const char* g_szIdStr = "$Id$";
 
-void 
+void
 phm2if_usage (const char *program)
 {
   std::cout << "phm2if_usage: " << fileBasename(program) << " outfile nx ny [--phantom phantom-name] [--phmfile filename] [--filter filter-name] [OPTIONS]\n";
@@ -89,10 +87,6 @@ phm2if_usage (const char *program)
   std::cout << "     --trace         Trace level to use\n";
   std::cout << "        none         No tracing (default)\n";
   std::cout << "        console      Trace text level\n";
-  std::cout << "        phantom      Trace phantom\n";
-  std::cout << "        proj         Trace projections\n";
-  std::cout << "        plot         Trace plot\n";
-  std::cout << "        clipping     Trace clipping\n";
   std::cout << "     --debug         Debug mode\n";
   std::cout << "     --verbose       Verbose mode\n";
   std::cout << "     --version       Print version\n";
@@ -103,7 +97,7 @@ phm2if_usage (const char *program)
 void mpi_gather_image (MPIWorld& mpiWorld, ImageFile* pImGlobal, ImageFile* pImLocal, const int optDebug);
 #endif
 
-int 
+int
 phm2if_main (int argc, char* const argv[])
 {
   ImageFile* pImGlobal = NULL;
@@ -126,7 +120,7 @@ phm2if_main (int argc, char* const argv[])
   char *endptr = NULL;
   char *endstr;
   Timer timerProgram;
-  
+
 #ifdef HAVE_MPI
   ImageFile* pImLocal = NULL;
   MPIWorld mpiWorld (argc, argv);
@@ -136,7 +130,7 @@ phm2if_main (int argc, char* const argv[])
       int c = getopt_long(argc, argv, "", my_options, NULL);
       if (c == -1)
         break;
-      
+
       switch (c) {
       case O_PHANTOM:
         optPhmName = optarg;
@@ -216,13 +210,13 @@ phm2if_main (int argc, char* const argv[])
         return (1);
       }
     }
-    
+
     if (optPhmName == "" && optFilterName == "" && optPhmFilename == "") {
       std::cerr << "No phantom defined\n" << std::endl;
       phm2if_usage(argv[0]);
       return (1);
     }
-    
+
     if (optind + 3 != argc) {
       phm2if_usage(argv[0]);
       return (1);
@@ -242,7 +236,7 @@ phm2if_main (int argc, char* const argv[])
       phm2if_usage(argv[0]);
       return (1);
     }
-    
+
     std::ostringstream oss;
     oss << "phm2if: nx=" << opt_nx << ", ny=" << opt_ny << ", viewRatio=" << optViewRatio << ", nsample=" << opt_nsample << ", ";
     if (optPhmFilename != "")
@@ -255,7 +249,7 @@ phm2if_main (int argc, char* const argv[])
     if (optDesc != "")
       oss << ": " << optDesc;
     optDesc = oss.str();
-    
+
     if (optPhmName != "") {
       phm.createFromPhantom (optPhmName.c_str());
       if (phm.fail()) {
@@ -264,22 +258,22 @@ phm2if_main (int argc, char* const argv[])
         return (1);
       }
     }
-    
+
     if (optPhmFilename != "") {
       phm.createFromFile(optPhmFilename.c_str());
 #ifdef HAVE_MPI
-      if (mpiWorld.getRank() == 0) 
+      if (mpiWorld.getRank() == 0)
         std::cerr << "Can't use phantom from file in MPI mode\n";
       return (1);
 #endif
     }
-    
+
     if (optVerbose)
       std::cout << "Rasterize Phantom to Image\n" << std::endl;
 #ifdef HAVE_MPI
   }
 #endif
-  
+
 #ifdef HAVE_MPI
   TimerCollectiveMPI timerBcast (mpiWorld.getComm());
   mpiWorld.BcastString (optPhmName);
@@ -292,18 +286,18 @@ phm2if_main (int argc, char* const argv[])
   mpiWorld.getComm().Bcast (&optViewRatio, 1, MPI::DOUBLE, 0);
   mpiWorld.getComm().Bcast (&optFilterParam, 1, MPI::DOUBLE, 0);
   mpiWorld.getComm().Bcast (&optFilterBW, 1, MPI::DOUBLE, 0);
-  
+
   mpiWorld.BcastString (optFilterName);
   mpiWorld.BcastString (optDomainName);
-  
+
   if (optVerbose)
     timerBcast.timerEndAndReport ("Time to broadcast variables");
-  
+
   mpiWorld.setTotalWorkUnits (opt_nx);
-  
+
   if (mpiWorld.getRank() > 0 && optPhmName != "")
     phm.createFromPhantom (optPhmName.c_str());
-  
+
   if (mpiWorld.getRank() == 0) {
     pImGlobal = new ImageFile (opt_nx, opt_ny);
   }
@@ -311,12 +305,12 @@ phm2if_main (int argc, char* const argv[])
 #else
   pImGlobal = new ImageFile (opt_nx, opt_ny);
 #endif
-  
+
   ImageFileArray v = NULL;
 #ifdef HAVE_MPI
   if (mpiWorld.getRank() == 0)
     v = pImGlobal->getArray ();
-  
+
   if (phm.getComposition() == P_UNIT_PULSE) {
     if (mpiWorld.getRank() == 0) {
       v[opt_nx/2][opt_ny/2] = 1.;
@@ -330,7 +324,7 @@ phm2if_main (int argc, char* const argv[])
     phm.convertToImagefile (*pImLocal, optViewRatio, opt_nsample, optTrace, mpiWorld.getMyStartWorkUnit(), mpiWorld.getMyLocalWorkUnits(), false);
     if (optVerbose)
       timerRasterize.timerEndAndReport ("Time to rasterize phantom");
-    
+
     TimerCollectiveMPI timerGather (mpiWorld.getComm());
     mpi_gather_image (mpiWorld, pImGlobal, pImLocal, optDebug);
     if (optVerbose)
@@ -346,9 +340,9 @@ phm2if_main (int argc, char* const argv[])
     phm.convertToImagefile (*pImGlobal, optViewRatio, opt_nsample, optTrace);
   }
 #endif
-  
+
 #ifdef HAVE_MPI
-  if (mpiWorld.getRank() == 0) 
+  if (mpiWorld.getRank() == 0)
 #endif
   {
     double calctime = timerProgram.timerEnd ();
@@ -357,12 +351,12 @@ phm2if_main (int argc, char* const argv[])
     if (optVerbose)
       std::cout << "Time to rasterize phantom: " << calctime << " seconds\n";
   }
-  
+
   delete pImGlobal;
 #ifdef HAVE_MPI
   delete pImLocal;
 #endif
-  
+
   return (0);
 }
 
@@ -374,13 +368,13 @@ void mpi_gather_image (MPIWorld& mpiWorld, ImageFile* pImGlobal, ImageFile* pImL
   ImageFileArray vLocal = pImLocal->getArray();
   ImageFileArray vGlobal = NULL;
   int nyLocal = pImLocal->ny();
-  
+
   if (mpiWorld.getRank() == 0)
     vGlobal = pImGlobal->getArray();
-  
+
   for (int iw = 0; iw < mpiWorld.getMyLocalWorkUnits(); iw++)
     mpiWorld.getComm().Send(vLocal[iw], nyLocal, pImLocal->getMPIDataType(), 0, 0);
-  
+
   if (mpiWorld.getRank() == 0) {
     for (int iProc = 0; iProc < mpiWorld.getNumProcessors(); iProc++) {
       for (int iw = mpiWorld.getStartWorkUnit(iProc); iw <= mpiWorld.getEndWorkUnit(iProc); iw++) {
@@ -389,16 +383,16 @@ void mpi_gather_image (MPIWorld& mpiWorld, ImageFile* pImGlobal, ImageFile* pImL
       }
     }
   }
-  
+
 }
 #endif
 
 #ifndef NO_MAIN
-int 
+int
 main (int argc, char* argv[])
 {
   int retval = 1;
-  
+
   try {
     retval = phm2if_main(argc, argv);
   } catch (exception e) {
@@ -406,7 +400,7 @@ main (int argc, char* argv[])
   } catch (...) {
     std::cerr << "Unknown exception\n";
   }
-  
+
   return (retval);
 }
 #endif