** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: dlgreconstruct.cpp,v 1.3 2000/09/04 09:06:46 kevin Exp $
+** $Id: dlgreconstruct.cpp,v 1.5 2000/09/07 14:29:05 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
ReconstructDialog::ReconstructDialog (Reconstructor& rReconstruct, const Projections& rProj, ImageFile& rIF, const int iTrace, wxWindow *parent)
- : wxDialog(parent, -1, "Reconstruction"), m_rReconstructor(rReconstruct), m_rProjections(rProj), m_rImageFile(rIF), m_pSGPDriver(NULL), m_pSGP(NULL), m_iTrace(iTrace), m_pDC(NULL), m_btnAbort(0), m_btnPause(0), m_btnStep(0)
+ : wxDialog(parent, -1, "Reconstruction", wxDefaultPosition), m_rReconstructor(rReconstruct), m_rProjections(rProj), m_rImageFile(rIF), m_pSGPDriver(NULL), m_pSGP(NULL), m_iTrace(iTrace), m_pDC(NULL), m_btnAbort(0), m_btnPause(0), m_btnStep(0)
{
m_state = Continue;
m_iLastView = -1;
bool
ReconstructDialog::reconstructView (int iViewNumber)
{
- ::wxYield(); // update the display
- showView (iViewNumber);
- ::wxYield(); // update the display
+ if (iViewNumber <= m_iLastView) // have already done this view
+ return true;
+
if (iViewNumber < m_rProjections.nView()) {
+ ::wxYield(); // update the display
+ showView (iViewNumber);
+ ::wxYield(); // update the display
if (m_iTrace >= Trace::TRACE_PLOT) {
::wxUsleep(250);
}