r261: Use explicit std:: namespace
[ctsim.git] / include / projections.h
index eb1e853db11a3b9a8d0536fa5c566ebff0be8d22..aa76b1a05a21620eb7fc7556c7c7c68f813c7457 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: projections.h,v 1.14 2000/09/02 05:10:39 kevin Exp $
+**  $Id: projections.h,v 1.18 2000/12/16 06:12:47 kevin Exp $
 **
 **
 **  This program is free software; you can redistribute it and/or modify
@@ -32,7 +32,7 @@
 class Scanner;
 class DetectorArray;
 class Array2dFileLabel;
-class ostringstream;
+
 
 // Projections
 class Projections
@@ -45,13 +45,14 @@ class Projections
 
   void initFromScanner (const Scanner& scanner);
 
+  void printProjectionData (int startView, int endView);
   void printProjectionData ();
-  void printScanInfo (ostringstream& os) const;
+  void printScanInfo (std::ostringstream& os) const;
 
-  bool read (const string& fname);
+  bool read (const std::string& fname);
   bool read (const char* fname);
   bool write (const char* fname);
-  bool write (const string& fname);
+  bool write (const std::string& fname);
   bool detarrayRead (fnetorderstream& fs, DetectorArray& darray, const int view_num);
   bool detarrayWrite (fnetorderstream& fs, const DetectorArray& darray, const int view_num);
 
@@ -63,7 +64,7 @@ class Projections
   void setPhmLen (double phmLen) { m_phmLen = phmLen;}
   void setCalcTime (double calcTime) {m_calcTime = calcTime;}
   void setRemark (const char* remark) {m_remark = remark; m_label.setLabelString(remark);}
-  void setRemark (const string& remark) {setRemark(remark.c_str());}
+  void setRemark (const std::string& remark) {setRemark(remark.c_str());}
 
   double detStart() const {return m_detStart;}
   double rotStart() const {return m_rotStart;}
@@ -78,7 +79,7 @@ class Projections
   double focalLength() const {return m_focalLength;}
   double fieldOfView() const {return m_fieldOfView;}
 
-  const string& getFilename() const {return m_filename;}
+  const std::string& getFilename() const {return m_filename;}
   Array2dFileLabel& getLabel() {return m_label;}
   const Array2dFileLabel& getLabel() const {return m_label;}
 
@@ -87,12 +88,18 @@ class Projections
   
   const DetectorArray& getDetectorArray (const int iview) const
       { return (*m_projData[iview]); }
+
+  static bool copyHeader (const char* const filename, std::ostream& os);
+  static bool copyHeader (const std::string& filename, std::ostream& os);
+
+  static bool copyViewData (const char* const filename, std::ostream& os, int startView, int endView);
+  static bool copyViewData (const std::string& filename, std::ostream& os, int startView, int endView);
   
  private:
   int m_headerSize;            // Size of disk file header 
   int m_geometry;              // Geometry of scanner 
-  struct DetectorArray **m_projData;   // Pointer to array of detarray_st pointers 
-  string m_remark;             // description of raysum data 
+  class DetectorArray **m_projData;    // Pointer to array of detarray_st pointers 
+  std::string m_remark;                // description of raysum data 
   int m_nDet;                  // number of detectors in array 
   int m_nView;                 // number of rotated views 
   double m_calcTime;           // time required to calculate raysums 
@@ -109,15 +116,13 @@ class Projections
   kuint32 m_hour;
   kuint32 m_minute;
   kuint32 m_second;
-  string m_filename;
+  std::string m_filename;
   Array2dFileLabel m_label;
 
-  const static kuint16 m_signature = ('P'*256 + 'J');
+  const static kuint16 m_signature;
 
-  bool headerRead ();
-  bool headerWrite ();
-  bool headerRead (fnetorderstream& fs);
   bool headerWrite (fnetorderstream& fs);
+  bool headerRead (fnetorderstream& fs);
   void newProjData ();
   void deleteProjData ();