r369: Improvements in ctsimtext
[ctsim.git] / tools / phm2pj.cpp
index 80e55662e8a22706b7c8d4a6d9eacad21a076a29..313045a7262858637d1946447c3ae5866264da42 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phm2pj.cpp,v 1.17 2000/12/16 07:28:25 kevin Exp $
+**  $Id: phm2pj.cpp,v 1.22 2001/01/09 22:31:47 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
@@ -50,7 +50,7 @@ static struct option phm2pj_options[] =
   {0, 0, 0, 0}
 };
 
-static const char* g_szIdStr = "$Id: phm2pj.cpp,v 1.17 2000/12/16 07:28:25 kevin Exp $";
+static const char* g_szIdStr = "$Id: phm2pj.cpp,v 1.22 2001/01/09 22:31:47 kevin Exp $";
 
 
 void 
@@ -98,7 +98,7 @@ void GatherProjectionsMPI (MPIWorld& mpiWorld, Projections& pjGlobal, Projection
 #endif
 
 int 
-phm2pj_main (int argc, char* argv[])
+phm2pj_main (int argc, char* const argv[])
 {
   Phantom phm;
   std::string optGeometryName = Scanner::convertGeometryIDToName(Scanner::GEOMETRY_PARALLEL);
@@ -160,7 +160,7 @@ phm2pj_main (int argc, char* argv[])
        opt_rotangle = strtod(optarg, &endptr);
        endstr = optarg + strlen(optarg);
        if (endptr != endstr) {
-         cerr << "Error setting --rotangle to " << optarg << endl;
+         std::cerr << "Error setting --rotangle to " << optarg << std::endl;
          phm2pj_usage(argv[0]);
          return (1);
        }
@@ -172,7 +172,7 @@ phm2pj_main (int argc, char* argv[])
        dOptFocalLength = strtod(optarg, &endptr);
        endstr = optarg + strlen(optarg);
        if (endptr != endstr) {
-         cerr << "Error setting --focal-length to " << optarg << endl;
+         std::cerr << "Error setting --focal-length to " << optarg << std::endl;
          phm2pj_usage(argv[0]);
          return (1);
        }
@@ -181,7 +181,7 @@ phm2pj_main (int argc, char* argv[])
        dOptFieldOfView = strtod(optarg, &endptr);
        endstr = optarg + strlen(optarg);
        if (endptr != endstr) {
-         cerr << "Error setting --field-of-view to " << optarg << endl;
+         std::cerr << "Error setting --field-of-view to " << optarg << std::endl;
          phm2pj_usage(argv[0]);
          return (1);
        }
@@ -190,14 +190,14 @@ phm2pj_main (int argc, char* argv[])
        opt_nray = strtol(optarg, &endptr, 10);
        endstr = optarg + strlen(optarg);
        if (endptr != endstr) {
-         cerr << "Error setting --nray to %s" << optarg << endl;
+         std::cerr << "Error setting --nray to %s" << optarg << std::endl;
          phm2pj_usage(argv[0]);
          return (1);
        }
        break;
         case O_VERSION:
 #ifdef VERSION
-         std::cout << "Version: " << VERSION << endl << g_szIdStr << endl;
+         std::cout << "Version: " << VERSION << std::endl << g_szIdStr << std::endl;
 #else
           std::cout << "Unknown version number\n";
 #endif
@@ -213,7 +213,7 @@ phm2pj_main (int argc, char* argv[])
     }
   
     if (optPhmName == "" && optPhmFileName == "") {
-      cerr << "No phantom defined\n" << endl;
+      std::cerr << "No phantom defined\n" << std::endl;
       phm2pj_usage(argv[0]);
       return (1);
     }
@@ -226,14 +226,14 @@ phm2pj_main (int argc, char* argv[])
     opt_ndet = strtol(argv[optind+1], &endptr, 10);
     endstr = argv[optind+1] + strlen(argv[optind+1]);
     if (endptr != endstr) {
-      cerr << "Error setting --ndet to " << argv[optind+1] << endl;
+      std::cerr << "Error setting --ndet to " << argv[optind+1] << std::endl;
       phm2pj_usage(argv[0]);
       return (1);
     }
     opt_nview = strtol(argv[optind+2], &endptr, 10);
     endstr = argv[optind+2] + strlen(argv[optind+2]);
     if (endptr != endstr) {
-      cerr << "Error setting --nview to " << argv[optind+2] << endl;
+      std::cerr << "Error setting --nview to " << argv[optind+2] << std::endl;
       phm2pj_usage(argv[0]);
       return (1);
     }
@@ -253,7 +253,7 @@ phm2pj_main (int argc, char* argv[])
     if (optPhmName != "") {
       phm.createFromPhantom (optPhmName.c_str());
       if (phm.fail()) {
-       std::cout << phm.failMessage() << endl << endl;
+       std::cout << phm.failMessage() << std::endl << std::endl;
        phm2pj_usage(argv[0]);
        return (1);
       }
@@ -261,7 +261,7 @@ phm2pj_main (int argc, char* argv[])
 
     if (optPhmFileName != "") {
 #ifdef HAVE_MPI
-      cerr << "Can not read phantom from file in MPI mode\n";
+      std::cerr << "Can not read phantom from file in MPI mode\n";
       return (1);
 #endif
       phm.createFromFile (optPhmFileName.c_str());
@@ -290,7 +290,7 @@ phm2pj_main (int argc, char* argv[])
   opt_rotangle *= PI;
   Scanner scanner (phm, optGeometryName.c_str(), opt_ndet, opt_nview, opt_nray, opt_rotangle, dOptFocalLength, dOptFieldOfView);
   if (scanner.fail()) {
-    std::cout << "Scanner Creation Error: " << scanner.failMessage() << endl;
+    std::cout << "Scanner Creation Error: " << scanner.failMessage() << std::endl;
     return (1);
   }
 #ifdef HAVE_MPI
@@ -324,26 +324,8 @@ phm2pj_main (int argc, char* argv[])
 
 #else
   Projections pjGlobal (scanner);
-#if HAVE_SGP
-  SGPDriver* pSGPDriver = NULL;
-  SGP* pSGP = NULL;
-  if (opt_trace >= Trace::TRACE_PHANTOM) {
-    pSGPDriver = new SGPDriver ("phm2pj", 600, 600);
-    pSGP = new SGP (*pSGPDriver);
-  }
-  scanner.collectProjections (pjGlobal, phm, opt_trace, pSGP);
-  if (opt_trace >= Trace::TRACE_PHANTOM) {
-    std::cout << "Press enter to continue\n";
-    cio_kb_getc();
-    delete pSGP;  pSGP = NULL;
-    delete pSGPDriver;  pSGPDriver = NULL;
-  }
-
-#else
   scanner.collectProjections (pjGlobal, phm, opt_trace);
 #endif
-
-#endif
   
 #ifdef HAVE_MPI
   if (mpiWorld.getRank() == 0) 
@@ -353,13 +335,13 @@ phm2pj_main (int argc, char* argv[])
       pjGlobal.setRemark (opt_desc);
       pjGlobal.write (opt_outfile);
       if (opt_verbose) {
-       phm.print();
-       std::cout << endl;
-       ostringstream os;
-       pjGlobal.printScanInfo (os);
-       std::cout << os.str() << endl;
-       std::cout << "  Remark: " << pjGlobal.remark() << endl;
-       std::cout << "Run time: " << pjGlobal.calcTime() << " seconds\n";
+        phm.print (std::cout);
+       std::cout << std::endl;
+             std::ostringstream os;
+             pjGlobal.printScanInfo (os);
+             std::cout << os.str() << std::endl;
+             std::cout << "  Remark: " << pjGlobal.remark() << std::endl;
+             std::cout << "Run time: " << pjGlobal.calcTime() << " seconds\n";
       }
     }
 
@@ -420,9 +402,9 @@ main (int argc, char* argv[])
     //    dmalloc_shutdown();
 #endif
   } catch (exception e) {
-    cerr << "Exception: " << e.what() << endl;
+    std::cerr << "Exception: " << e.what() << std::endl;
   } catch (...) {
-    cerr << "Unknown exception\n";
+    std::cerr << "Unknown exception\n";
   }
 
   return (retval);