+ for (iView = 0, viewAngle = start_angle; iView < iNumViews; iView++, viewAngle += proj.rotInc()) {
+ int iStoragePosition = iView;
+ if (bStoreAtViewPosition)
+ iStoragePosition += iStartView;
+
+ DetectorArray& detArray = proj.getDetectorArray( iStoragePosition );
+
+#ifdef HAVE_SGP
+ if (pSGP && m_trace >= Trace::TRACE_PHANTOM) {
+ m_pSGP = pSGP;
+ m_pSGP->eraseWindow();
+ double dWindowSize = dmax (m_detLen, m_dFocalLength * 2) * SQRT2;
+ double dHalfWindowSize = dWindowSize / 2;
+ m_dXMinWin = m_dXCenter - dHalfWindowSize;
+ m_dXMaxWin = m_dXCenter + dHalfWindowSize;
+ m_dYMinWin = m_dYCenter - dHalfWindowSize;
+ m_dYMaxWin = m_dYCenter + dHalfWindowSize;
+ double dHalfPhmLen = m_phmLen / 2;
+
+ m_pSGP->eraseWindow ();
+ m_pSGP->setWindow (m_dXMinWin, m_dYMinWin, m_dXMaxWin, m_dYMaxWin);
+ m_pSGP->setRasterOp (RO_COPY);
+ m_pSGP->setColor (C_RED);
+ m_pSGP->moveAbs (0., 0.);
+ m_pSGP->drawRect (m_dXCenter - dHalfPhmLen, m_dYCenter - dHalfPhmLen, m_dXCenter + dHalfPhmLen, m_dYCenter + dHalfPhmLen);
+ m_pSGP->moveAbs (0., 0.);
+ m_pSGP->drawCircle (m_dFocalLength);
+ m_pSGP->setColor (C_BLUE);
+ phm.draw (*m_pSGP);
+ m_dTextHeight = m_pSGP->getCharHeight ();
+
+ traceShowParam ("Phantom:", "%s", PROJECTION_TRACE_ROW_PHANT_ID, C_BLACK, phm.name().c_str());
+ traceShowParam ("Geometry:", "%s", PROJECTION_TRACE_ROW_GEOMETRY, C_BLUE, convertGeometryIDToName(m_idGeometry));
+ traceShowParam ("Focal Length Ratio:", "%.2f", PROJECTION_TRACE_ROW_FOCAL_LENGTH, C_BLUE, m_dFocalLengthRatio);
+ traceShowParam ("Field Of View Ratio:", "%.2f", PROJECTION_TRACE_ROW_FIELD_OF_VIEW, C_BLUE, m_dFieldOfViewRatio);
+ traceShowParam ("Num Detectors:", "%d", PROJECTION_TRACE_ROW_NDET, C_BLUE, proj.nDet());
+ traceShowParam ("Num Views:", "%d", PROJECTION_TRACE_ROW_NVIEW, C_BLUE, proj.nView());
+ traceShowParam ("Samples / Ray:", "%d", PROJECTION_TRACE_ROW_SAMPLES, C_BLUE, m_nSample);
+
+ m_pSGP->setMarker (SGP::MARK_BDIAMOND, C_LTGREEN);
+ }
+#endif