Interim work on creating projections from an imagefile
[ctsim.git] / include / phantom.h
index 0b66b49077e2bfd8dc81b60972c33c78d9c98363..b1cb50fe9c7132584299c34bd896d1e802940946 100644 (file)
@@ -103,11 +103,8 @@ class PhantomElement
     static const char* const convertTypeToName (PhmElemType iType);
 
     void makeTransformMatrices ();
-
     void makeVectorOutline ();
-
     void calcArcPoints (double x[], double y[], const int pts, const double xcent, const double ycent, const double r, const double start, const double stop);
-
     void calcEllipsePoints (double x[], double y[], const int pts, const double u, const double v);
 
     static int numCirclePoints (double theta);
@@ -150,15 +147,12 @@ class Phantom
         { return m_composition; }
 
     bool createFromPhantom (const char* const phmName);
-
     bool createFromPhantom (const int phmid);
-
-    bool createFromFile (const char* const fname);
-
+    bool createFromPhmFile (const char* const fname);
+    bool createFromImageFile (const char* const fname);
     bool fileWrite (const char* const fname);
 
     void addPElem (const PhantomElement& pelem);
-
     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 convertToImagefile (ImageFile& im, double dViewRatio, const int in_nsample, const int trace) const;
@@ -200,6 +194,8 @@ class Phantom
           std::list<PhantomElement*>& listPElem() {return m_listPElem;}
     const std::list<PhantomElement*>& listPElem() const {return m_listPElem;}
     const int nPElem() const {return m_nPElem;}
+    const bool isImagefile(void) const { return m_im != NULL; }
+    const ImageFile* getImagefile() const { return m_im; }
 
     static const int getPhantomCount() {return s_iPhantomCount;}
     static const char** getPhantomNameArray() {return s_aszPhantomName;}
@@ -220,6 +216,7 @@ class Phantom
     static const char* s_aszPhantomName[];
     static const char* s_aszPhantomTitle[];
     static const int s_iPhantomCount;
+    ImageFile* m_im;                  // If defining a phantom from an ImageFile
 
     void init();