X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Fprojections.cpp;h=fe431c07dfa501358d8aa3a9274c2d84f41148a9;hp=e9e053d96cd0d19b357fa2efe2b5125ff465a07c;hb=c953cbb6ffc2fd50e736230f4e6976a025983cff;hpb=a4b718a2681d65cb56e62400cec28bc09f9509e1 diff --git a/libctsim/projections.cpp b/libctsim/projections.cpp index e9e053d..fe431c0 100644 --- a/libctsim/projections.cpp +++ b/libctsim/projections.cpp @@ -8,7 +8,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: projections.cpp,v 1.49 2001/02/22 18:22:40 kevin Exp $ +** $Id: projections.cpp,v 1.50 2001/03/01 07:30:49 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 @@ -152,6 +152,7 @@ Projections::initFromScanner (const Scanner& scanner) m_detInc = scanner.detInc(); m_geometry = scanner.geometry(); m_dFocalLength = scanner.focalLength(); + m_dSourceDetectorLength = scanner.sourceDetectorLength(); m_dViewDiameter = scanner.viewDiameter(); m_rotStart = 0; m_detStart = -(scanner.detLen() / 2); @@ -232,6 +233,7 @@ Projections::headerWrite (fnetorderstream& fs) kfloat64 _detInc = m_detInc; kfloat64 _viewDiameter = m_dViewDiameter; kfloat64 _focalLength = m_dFocalLength; + kfloat64 _sourceDetectorLength = m_dSourceDetectorLength; kfloat64 _fanBeamAngle = m_dFanBeamAngle; fs.seekp(0); @@ -250,6 +252,7 @@ Projections::headerWrite (fnetorderstream& fs) fs.writeFloat64 (_detInc); fs.writeFloat64 (_viewDiameter); fs.writeFloat64 (_focalLength); + fs.writeFloat64 (_sourceDetectorLength); fs.writeFloat64 (_fanBeamAngle); fs.writeInt16 (_year); fs.writeInt16 (_month); @@ -279,7 +282,7 @@ Projections::headerRead (fnetorderstream& fs) { kuint16 _hsize, _signature, _year, _month, _day, _hour, _minute, _second, _remarksize = 0; kuint32 _nView, _nDet, _geom; - kfloat64 _calcTime, _rotStart, _rotInc, _detStart, _detInc, _focalLength, _viewDiameter, _fanBeamAngle; + kfloat64 _calcTime, _rotStart, _rotInc, _detStart, _detInc, _focalLength, _sourceDetectorLength, _viewDiameter, _fanBeamAngle; fs.seekg(0); if (! fs) @@ -297,6 +300,7 @@ Projections::headerRead (fnetorderstream& fs) fs.readFloat64 (_detInc); fs.readFloat64 (_viewDiameter); fs.readFloat64 (_focalLength); + fs.readFloat64 (_sourceDetectorLength); fs.readFloat64 (_fanBeamAngle); fs.readInt16 (_year); fs.readInt16 (_month); @@ -342,6 +346,7 @@ Projections::headerRead (fnetorderstream& fs) m_detStart = _detStart; m_detInc = _detInc; m_dFocalLength = _focalLength; + m_dSourceDetectorLength = _sourceDetectorLength; m_dViewDiameter = _viewDiameter; m_dFanBeamAngle = _fanBeamAngle; m_year = _year; @@ -630,11 +635,11 @@ Projections::printProjectionData (int startView, int endView) printf("Projections Data\n\n"); printf("Description: %s\n", m_remark.c_str()); printf("Geometry: %s\n", Scanner::convertGeometryIDToName (m_geometry)); - printf("nView = %8d nDet = %8d\n", m_nView, m_nDet); - printf("focalLength = %8.4f ViewDiameter = %8.4f\n", m_dFocalLength, m_dViewDiameter); - printf("fanBeamAngle= %8.4f\n", convertRadiansToDegrees(m_dFanBeamAngle)); - printf("rotStart = %8.4f rotInc = %8.4f\n", m_rotStart, m_rotInc); - printf("detStart = %8.4f detInc = %8.4f\n", m_detStart, m_detInc); + printf("nView = %8d nDet = %8d\n", m_nView, m_nDet); + printf("focalLength = %8.4f ViewDiameter = %8.4f\n", m_dFocalLength, m_dViewDiameter); + printf("fanBeamAngle= %8.4f SourceDetector = %8.4f\n", convertRadiansToDegrees(m_dFanBeamAngle), m_dSourceDetectorLength); + printf("rotStart = %8.4f rotInc = %8.4f\n", m_rotStart, m_rotInc); + printf("detStart = %8.4f detInc = %8.4f\n", m_detStart, m_detInc); if (m_projData != NULL) { if (startView < 0) startView = 0; @@ -662,6 +667,7 @@ Projections::printScanInfo (std::ostringstream& os) const os << "Description: " << m_remark.c_str()<< "\n"; os << "Geometry: " << Scanner::convertGeometryIDToName (m_geometry)<< "\n"; os << "Focal Length: " << m_dFocalLength<< "\n"; + os << "Source Detector Length: " << m_dSourceDetectorLength << "\n"; os << "View Diameter: " << m_dViewDiameter<< "\n"; os << "Fan Beam Angle: " << convertRadiansToDegrees(m_dFanBeamAngle) << "\n"; os << "detStart: " << m_detStart<< "\n";