**
** 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
**
** 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
-Scanner::collectProjections (Projections& proj, const Phantom& phm, const int start_view, const int trace = TRACE_NONE, SGP* pSGP = NULL)
+Scanner::collectProjections (Projections& proj, const Phantom& phm, const int start_view = 0, const int trace = TRACE_NONE, SGP* pSGP = NULL)
pSGP->setColor (C_LTBLUE);
pSGP->setWindow (xcent - wsize, ycent - wsize, xcent + wsize, ycent + wsize);
pSGP->setColor (C_BROWN);
pSGP->setColor (C_LTBLUE);
pSGP->setWindow (xcent - wsize, ycent - wsize, xcent + wsize, ycent + wsize);
pSGP->setColor (C_BROWN);
-#if RADIUS
- pSGP->drawCircle (m_phmLen / 2);
-#else
- pSGP->drawRect (xcent - m_phmLen / 2, ycent - m_phmLen / 2,
- xcent + m_phmLen / 2, ycent + m_phmLen / 2);
-#endif
+ pSGP->drawRect (xcent - halfPhmLen, ycent - halfPhmLen, xcent + halfPhmLen, ycent + halfPhmLen);
traceShowParam ("X-Ray Simulator", "%s", RAYSUM_TRACE_ROW_TITLE, C_BLACK, " ");
traceShowParam ("---------------", "%s", RAYSUM_TRACE_ROW_TITLE2, C_BLACK, " ");
traceShowParam ("Phantom:", "%s", RAYSUM_TRACE_ROW_PHANT_ID, C_YELLOW, " Herman");
traceShowParam ("Chomaticity :", "%s", RAYSUM_TRACE_ROW_CHROMATIC, C_LTGREEN, "Mono");
traceShowParam ("Scatter :", "%5.1f", RAYSUM_TRACE_ROW_SCATTER, C_LTGREEN, 0.);
traceShowParam ("Photon Uncert:", "%5.1f", RAYSUM_TRACE_ROW_PHOT_STAT, C_LTGREEN, 0.);
traceShowParam ("X-Ray Simulator", "%s", RAYSUM_TRACE_ROW_TITLE, C_BLACK, " ");
traceShowParam ("---------------", "%s", RAYSUM_TRACE_ROW_TITLE2, C_BLACK, " ");
traceShowParam ("Phantom:", "%s", RAYSUM_TRACE_ROW_PHANT_ID, C_YELLOW, " Herman");
traceShowParam ("Chomaticity :", "%s", RAYSUM_TRACE_ROW_CHROMATIC, C_LTGREEN, "Mono");
traceShowParam ("Scatter :", "%5.1f", RAYSUM_TRACE_ROW_SCATTER, C_LTGREEN, 0.);
traceShowParam ("Photon Uncert:", "%5.1f", RAYSUM_TRACE_ROW_PHOT_STAT, C_LTGREEN, 0.);
- traceShowParam ("Num Scanners:", "%5d", RAYSUM_TRACE_ROW_NDET, C_LTRED, proj.nDet());
+ traceShowParam ("Num Detectors:", "%5d", RAYSUM_TRACE_ROW_NDET, C_LTRED, proj.nDet());
traceShowParam ("Num Views :", "%5d", RAYSUM_TRACE_ROW_NVIEW, C_LTRED, proj.nView());
traceShowParam ("Samples / Ray:", "%5d", RAYSUM_TRACE_ROW_SAMPLES, C_LTRED, m_nSample);
traceShowParam ("Num Views :", "%5d", RAYSUM_TRACE_ROW_NVIEW, C_LTRED, proj.nView());
traceShowParam ("Samples / Ray:", "%5d", RAYSUM_TRACE_ROW_SAMPLES, C_LTRED, m_nSample);
pSGP->moveAbs (xd1, yd1);
pSGP->lineAbs (xd2, yd2);
pSGP->moveAbs (xs1, ys1);
pSGP->lineAbs (xs2, ys2);
}
pSGP->moveAbs (xd1, yd1);
pSGP->lineAbs (xd2, yd2);
pSGP->moveAbs (xs1, ys1);
pSGP->lineAbs (xs2, ys2);
}
if (m_trace)
traceShowParam ("Current View :", "%5d", RAYSUM_TRACE_ROW_CURR_VIEW, C_LTMAGENTA, iview);
if (m_trace)
traceShowParam ("Current View :", "%5d", RAYSUM_TRACE_ROW_CURR_VIEW, C_LTMAGENTA, iview);
projectSingleView (phm, detArray, xd1, yd1, xd2, yd2, xs1, ys1, xs2, ys2, pSGP);
detArray.setViewAngle (viewAngle);
projectSingleView (phm, detArray, xd1, yd1, xd2, yd2, xs1, ys1, xs2, ys2, pSGP);
detArray.setViewAngle (viewAngle);
#ifdef HAVE_SGP
if (pSGP && m_trace >= TRACE_PHM) {
// rs_plot (detArray, xd1, yd1, xcent, ycent, theta);
#ifdef HAVE_SGP
if (pSGP && m_trace >= TRACE_PHM) {
// rs_plot (detArray, xd1, yd1, xcent, ycent, theta);
pSGP->moveAbs (xd1, yd1);
pSGP->lineAbs (xd2, yd2);
pSGP->moveAbs (xs1, ys1);
pSGP->moveAbs (xd1, yd1);
pSGP->lineAbs (xd2, yd2);
pSGP->moveAbs (xs1, ys1);
pSGP->moveAbs (xs, ys);
pSGP->lineAbs (xd, yd);
}
#endif
sum += projectSingleLine (phm, xd, yd, xs, ys, pSGP);
pSGP->moveAbs (xs, ys);
pSGP->lineAbs (xd, yd);
}
#endif
sum += projectSingleLine (phm, xd, yd, xs, ys, pSGP);
if (m_trace >= TRACE_RAYS)
traceShowParam ("Attenuation :", "%5.2f", RAYSUM_TRACE_ROW_ATTEN, C_LTMAGENTA, "sum");
if (m_trace >= TRACE_RAYS)
traceShowParam ("Attenuation :", "%5.2f", RAYSUM_TRACE_ROW_ATTEN, C_LTMAGENTA, "sum");