r7061: initial property settings
[ctsim.git] / libctsim / phantom.cpp
index 8d02d1115865e206c90e49e28f58f4ab8d518b33..1a8c6b174aab01003667fd01e187a8a7a81fd752 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: phantom.cpp,v 1.32 2002/05/28 18:43:16 kevin Exp $
+**  $Id$
 **
 **  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
@@ -38,16 +38,16 @@ const int Phantom::PHM_UNITPULSE = 2;
 
 const char* Phantom::s_aszPhantomName[] = 
 {
-  {"herman"},
-  {"shepp-logan"},
-  {"unit-pulse"},
+  "herman",
+  "shepp-logan",
+  "unit-pulse",
 };
 
 const char* Phantom::s_aszPhantomTitle[] = 
 {
-  {"Herman Head"},
-  {"Shepp-Logan"},
-  {"Unit Pulse"},
+  "Herman Head",
+  "Shepp-Logan",
+  "Unit Pulse",
 };
 
 const int Phantom::s_iPhantomCount = sizeof(s_aszPhantomName) / sizeof(const char*);
@@ -239,8 +239,13 @@ Phantom::fileWrite (const char* const fname)
 void 
 Phantom::addPElem (const char *type, const double cx, const double cy, const double u, const double v, const double rot, const double atten)
 {
-  PhantomElement *pelem = new PhantomElement (type, cx, cy, u, v, rot, atten);
+  PhmElemType pe_type = PhantomElement::convertNameToType (type);
+  if (pe_type == PELEM_INVALID) {
+    sys_error (ERR_WARNING, "Unknown PhantomElement type %s [PhantomElement::PhantomElement]", type);
+    return;
+  }
   
+  PhantomElement *pelem = new PhantomElement (type, cx, cy, u, v, rot, atten);
   m_listPElem.push_front (pelem);
   
   // update phantom limits
@@ -599,8 +604,6 @@ PhantomElement::convertNameToType (const char* const typeName)
     type = PELEM_SECTOR;
   else if (strcasecmp (typeName, "segment") == 0)
     type = PELEM_SEGMENT;
-  else
-    sys_error (ERR_WARNING, "Unknown PhantomElement type %s [PhantomElement::PhantomElement]", type);
   
   return (type);
 }
@@ -732,7 +735,7 @@ PhantomElement::makeVectorOutline ()
     m_yOutline[cpts] = 0.0;
     break;
   default:
-    sys_error(ERR_WARNING, "illegal pelem type %d [makeVectorOutline]", m_type);
+    sys_error(ERR_WARNING, "Illegal phantom element type %d [makeVectorOutline]", m_type);
     return;
   }