** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: dlgreconstruct.cpp,v 1.11 2000/12/18 06:32:13 kevin Exp $
+** $Id: dlgreconstruct.cpp,v 1.14 2001/01/27 21:02:20 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
static const int LAYOUT_X_MARGIN = 4;
static const int LAYOUT_Y_MARGIN = 4;
-\r
-\r
-const int ReconstructDialog::ID_BTN_PAUSE = 19998;\r
-const int ReconstructDialog::ID_BTN_STEP = 19999;\r
-const int ReconstructDialog::MAX_IMAGE_X = 400;\r
-const int ReconstructDialog::MAX_IMAGE_Y = 400;\r
-\r
+
+
+const int ReconstructDialog::ID_BTN_PAUSE = 19998;
+const int ReconstructDialog::ID_BTN_STEP = 19999;
+const int ReconstructDialog::MAX_IMAGE_X = 400;
+const int ReconstructDialog::MAX_IMAGE_Y = 400;
+
BEGIN_EVENT_TABLE(ReconstructDialog, wxDialog)
EVT_BUTTON(wxID_CANCEL, ReconstructDialog::OnCancel)
m_iClientY = sizeDlg.y;
SetClientSize (sizeDlg);
- Centre(wxCENTER_FRAME | wxBOTH);\r
- \r
- if ( m_parentTop )\r
- m_parentTop->Enable(FALSE);\r
- \r
- Show(TRUE);\r
- Enable(TRUE); // enable this window\r
- \r
+ Centre(wxCENTER_FRAME | wxBOTH);
+
+ if ( m_parentTop )
+ m_parentTop->Enable(FALSE);
+
+ Show(TRUE);
+ Enable(TRUE); // enable this window
+
m_bitmap.Create (m_iClientX, m_iClientY); // save a copy of screen
- m_pDC = dynamic_cast<wxDC*> (new wxClientDC (this));\r
- int x, y;\r
- this->GetClientSize(&x, &y);\r
- m_pSGPDriver = new SGPDriver (m_pDC, x, y);\r
- m_pSGP = new SGP (*m_pSGPDriver);\r
+ m_pDC = dynamic_cast<wxDC*> (new wxClientDC (this));
+ int x, y;
+ this->GetClientSize(&x, &y);
+ m_pSGPDriver = new SGPDriver (m_pDC, x, y);
+ m_pSGP = new SGP (*m_pSGPDriver);
wxYield(); // Update the display
void
ReconstructDialog::showView (int iViewNumber, bool bBackprojectView)
-{\r
+{
if ( iViewNumber < m_rProjections.nView() ) {
m_iLastView = iViewNumber;
- ::wxYield(); // update the display\r
- m_pSGP->eraseWindow();\r
- Refresh();\r
-
+ ::wxYield(); // update the display
+ m_pSGP->eraseWindow();
+ m_btnPause->Refresh();
+ m_btnStep->Refresh();
+ m_btnAbort->Refresh();
+
char szProgress [256];
snprintf (szProgress, sizeof(szProgress), "Reconstructing View %d (%.1f%%)", iViewNumber, 100 * iViewNumber / static_cast<double>(m_rProjections.nView()));
m_pSGP->setViewport (0, 0, 1, 1);
m_pSGP->drawText (szProgress);
m_pSGP->setTextSize (dCharHeight);
- m_pSGP->setViewport (0.0, 0.1, 0.66, 1.);
+ // m_pSGP->setViewport (0.0, 0.1, 0.66, 1.); // viewport equiv now done in subroutine
m_rReconstructor.reconstructView (iViewNumber, 1, m_pSGP, bBackprojectView);
ImageFileArrayConst v = m_rImageFile.getArray();
int baseAddr = ((m_nyImage - 1 - iy) * m_nxImage + ix2) * 3;
imageData[baseAddr] = imageData[baseAddr+1] = imageData[baseAddr+2] = intensity;
}
- }\r
+ }
wxImage image (m_nxImage, m_nyImage, imageData, true);
wxBitmap bitmap = image.ConvertToBitmap();
m_pSGP->getDriver().idWX()->DrawBitmap(bitmap, xBase, yBase, false);
// this means that the count down is already finished and we're being
// shown as a modal dialog - so just let the default handler do the job
event.Skip();
- } else if (m_state == Continue) {\r
- m_memoryDC.SelectObject (m_bitmap); // in memoryDC\r
- m_pSGP->setDC (&m_memoryDC);\r
- m_memoryDC.SetFont (*wxSWISS_FONT);\r
- showView (m_iLastView, false);\r
+ } else if (m_state == Continue) {
+ m_memoryDC.SelectObject (m_bitmap); // in memoryDC
+ m_pSGP->setDC (&m_memoryDC);
+ m_memoryDC.SetFont (*wxSWISS_FONT);
+ showView (m_iLastView, false);
m_state = Paused;
m_btnPause->SetLabel (wxString("Resume"));
- m_pSGP->setDC (m_pDC);\r
- m_memoryDC.SelectObject(wxNullBitmap);\r
+ m_pSGP->setDC (m_pDC);
+ m_memoryDC.SelectObject(wxNullBitmap);
} else if (m_state == Paused) {
m_state = Continue;
m_btnPause->SetLabel (wxString("Pause"));
{
if ( m_state == Finished ) {
event.Skip();
- } else if (m_state == Continue) {\r
- m_memoryDC.SelectObject (m_bitmap); // in memoryDC\r
- m_pSGP->setDC (&m_memoryDC);\r
- m_memoryDC.SetFont (*wxSWISS_FONT);\r
- showView (m_iLastView, false);\r
+ } else if (m_state == Continue) {
+ m_memoryDC.SelectObject (m_bitmap); // in memoryDC
+ m_pSGP->setDC (&m_memoryDC);
+ m_memoryDC.SetFont (*wxSWISS_FONT);
+ showView (m_iLastView, false);
m_state = Paused;
m_btnPause->SetLabel (wxString("Resume"));
- m_pSGP->setDC (m_pDC);\r
- m_memoryDC.SelectObject(wxNullBitmap);\r
- Refresh();\r
+ m_pSGP->setDC (m_pDC);
+ m_memoryDC.SelectObject(wxNullBitmap);
+ Refresh();
} else if (m_state == Paused) {
- m_memoryDC.SelectObject (m_bitmap); // in memoryDC\r
- m_pSGP->setDC (&m_memoryDC);\r
- m_memoryDC.SetFont (*wxSWISS_FONT);\r
+ m_memoryDC.SelectObject (m_bitmap); // in memoryDC
+ m_pSGP->setDC (&m_memoryDC);
+ m_memoryDC.SetFont (*wxSWISS_FONT);
reconstructView (m_iLastView + 1);
- m_pSGP->setDC (m_pDC);\r
- m_memoryDC.SelectObject(wxNullBitmap);\r
- Refresh();\r
+ m_pSGP->setDC (m_pDC);
+ m_memoryDC.SelectObject(wxNullBitmap);
+ Refresh();
}
}
void
ReconstructDialog::OnPaint (wxPaintEvent& event)
-{\r
- wxPaintDC paintDC (this);\r
+{
+ wxPaintDC paintDC (this);
if (m_state == Paused) {
- paintDC.DrawBitmap (m_bitmap, 0, 0, false);\r
- }\r
+ paintDC.DrawBitmap (m_bitmap, 0, 0, false);
+ }
}