** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: projections.cpp,v 1.48 2001/02/20 17:44:14 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
const int Projections::POLAR_INTERP_BILINEAR = 1;
const int Projections::POLAR_INTERP_BICUBIC = 2;
-const char* Projections::s_aszInterpName[] =
+const char* const Projections::s_aszInterpName[] =
{
{"nearest"},
{"bilinear"},
// {"bicubic"},
};
-const char* Projections::s_aszInterpTitle[] =
+const char* const Projections::s_aszInterpTitle[] =
{
{"Nearest"},
{"Bilinear"},
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);
kfloat64 _detInc = m_detInc;
kfloat64 _viewDiameter = m_dViewDiameter;
kfloat64 _focalLength = m_dFocalLength;
+ kfloat64 _sourceDetectorLength = m_dSourceDetectorLength;
kfloat64 _fanBeamAngle = m_dFanBeamAngle;
fs.seekp(0);
fs.writeFloat64 (_detInc);
fs.writeFloat64 (_viewDiameter);
fs.writeFloat64 (_focalLength);
+ fs.writeFloat64 (_sourceDetectorLength);
fs.writeFloat64 (_fanBeamAngle);
fs.writeInt16 (_year);
fs.writeInt16 (_month);
{
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)
fs.readFloat64 (_detInc);
fs.readFloat64 (_viewDiameter);
fs.readFloat64 (_focalLength);
+ fs.readFloat64 (_sourceDetectorLength);
fs.readFloat64 (_fanBeamAngle);
fs.readInt16 (_year);
fs.readInt16 (_month);
m_detStart = _detStart;
m_detInc = _detInc;
m_dFocalLength = _focalLength;
+ m_dSourceDetectorLength = _sourceDetectorLength;
m_dViewDiameter = _viewDiameter;
m_dFanBeamAngle = _fanBeamAngle;
m_year = _year;
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;
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";