- collectProjections (proj, phm, 0, proj.nView(), true, trace, pSGP);
+ collectProjections (proj, phm, m_startView, proj.nView(), m_iOffsetView, true, trace, pSGP);
+}
+
+void
+Scanner::collectProjections (Projections& proj, const Phantom& phm, const int iStartView,
+ const int iNumViews, const int iOffsetView, bool bStoreAtViewPosition,
+ const int trace, SGP* pSGP)
+{
+ int iStorageOffset = (bStoreAtViewPosition ? iStartView : 0);
+ collectProjections (proj, phm, iStartView, iNumViews, iOffsetView, iStorageOffset, trace, pSGP);
+}
+
+static void mtx2_offset_rot (GRFMTX_2D m, double angle, double x, double y) {
+ GRFMTX_2D temp;
+ xlat_mtx2 (m, -x, -y);
+ rot_mtx2 (temp, angle);
+ mult_mtx2 (m, temp, m);
+ xlat_mtx2 (temp, x, y);
+ mult_mtx2 (m, temp, m);