X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fdlgprojections.cpp;h=76b0ae4e0a65693c7b677a6434f4e8aa39bc90d3;hb=3ea498d51ce4597e9649cd21f155b51175ea0bea;hp=489d912b99097fb16eaddef99bac7057f52b3dfb;hpb=5c6b29ab4885308cc3381af6e0a68f4804956d2e;p=ctsim.git diff --git a/src/dlgprojections.cpp b/src/dlgprojections.cpp index 489d912..76b0ae4 100644 --- a/src/dlgprojections.cpp +++ b/src/dlgprojections.cpp @@ -7,9 +7,9 @@ ** Date Started: August 2000 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: dlgprojections.cpp,v 1.14 2000/12/29 15:45:06 kevin Exp $ +** $Id: dlgprojections.cpp,v 1.23 2001/02/22 11:05:38 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 @@ -29,13 +29,8 @@ #pragma implementation "dlgprojections.h" #endif -// For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/frame.h" @@ -68,7 +63,8 @@ IMPLEMENT_CLASS(ProjectionsDialog, wxDialog) ProjectionsDialog::ProjectionsDialog (Scanner& rScanner, Projections& rProj, const Phantom& rPhantom, const int iTrace, wxWindow *parent) -: wxDialog(parent, -1, "Collect Projections", wxDefaultPosition), m_rScanner(rScanner), m_rProjections(rProj), m_rPhantom(rPhantom), m_pSGPDriver(NULL), m_pSGP(NULL), m_iTrace(iTrace), m_pDC(NULL), m_btnAbort(0), m_btnPause(0), m_btnStep(0) +: wxDialog(parent, -1, "Collect Projections", wxDefaultPosition), m_rScanner(rScanner), m_rProjections(rProj), m_rPhantom(rPhantom), + 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; @@ -126,7 +122,7 @@ ProjectionsDialog::ProjectionsDialog (Scanner& rScanner, Projections& rProj, con Show(TRUE); Enable(TRUE); // enable this window - m_bitmap.Create (m_iClientX, m_iClientY); // save a copy of screen + m_bitmap.Create (m_iClientX, m_iClientY); // save a copy of screen m_pDC = dynamic_cast (new wxClientDC (this)); int x, y; this->GetClientSize(&x, &y); @@ -135,7 +131,7 @@ ProjectionsDialog::ProjectionsDialog (Scanner& rScanner, Projections& rProj, con wxYield(); // Update the display - m_pSGPDriver->idWX()->SetFont(*wxSWISS_FONT); + m_pSGP->setTextPointSize(10); #ifdef __WXMAC__ MacUpdateImmediately(); #endif @@ -145,8 +141,8 @@ void ProjectionsDialog::showView (int iViewNumber) { if ( iViewNumber < m_rProjections.nView() ) { - m_iLastView = iViewNumber; - ::wxYield(); // update the display + m_iLastView = iViewNumber; + ::wxYield(); // update the display m_pSGP->eraseWindow(); m_btnPause->Refresh(); m_btnStep->Refresh(); @@ -154,7 +150,7 @@ ProjectionsDialog::showView (int iViewNumber) if (m_iTrace >= Trace::TRACE_PLOT) m_pSGP->setViewport (0, 0, 0.66, 1); - ::wxYield(); // update the display + ::wxYield(); // update the display m_rScanner.collectProjections (m_rProjections, m_rPhantom, iViewNumber, 1, true, m_iTrace, m_pSGP); ::wxYield(); // update the display if (m_iTrace >= Trace::TRACE_PLOT) { @@ -165,11 +161,21 @@ ProjectionsDialog::showView (int iViewNumber) detPos[i] = i; EZPlot ezplot; ezplot.ezset ("grid"); - ezplot.ezset ("box"); + ezplot.ezset ("box"); ezplot.ezset ("yticks left"); - ezplot.addCurve (detValues, detPos, detArray.nDet()); + ezplot.ezset ("xticks major 5"); + ezplot.ezset ("yticks major 10"); + ezplot.addCurve (detValues, detPos, detArray.nDet()); +#if 1 + ezplot.ezset ("xporigin 0.67"); + ezplot.ezset ("yporigin 0.10"); + ezplot.ezset ("xlength 0.33"); + ezplot.ezset ("ylength 0.90"); + m_pSGP->setViewport (0., 0., 1., 1.); +#else m_pSGP->setViewport (0.67, 0.1, 1., 1.); - ezplot.plot (m_pSGP); +#endif + ezplot.plot (m_pSGP); delete detPos; } } @@ -228,12 +234,11 @@ ProjectionsDialog::OnPause (wxCommandEvent& event) } 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); m_state = Paused; m_btnPause->SetLabel (wxString("Resume")); - m_pSGP->setDC (m_pDC); - m_memoryDC.SelectObject(wxNullBitmap); + m_pSGP->setDC (m_pDC); + m_memoryDC.SelectObject(wxNullBitmap); } else if (m_state == Paused) { m_state = Continue; m_btnPause->SetLabel (wxString("Pause")); @@ -248,22 +253,20 @@ ProjectionsDialog::OnStep (wxCommandEvent& event) } 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); // m_rScanner.collectProjections (m_rProjections, m_rPhantom, m_iLastView, 1, true, m_iTrace, m_pSGP); m_state = Paused; m_btnPause->SetLabel (wxString("Resume")); - m_pSGP->setDC (m_pDC); - m_memoryDC.SelectObject(wxNullBitmap); - Refresh(); + m_pSGP->setDC (m_pDC); + m_memoryDC.SelectObject(wxNullBitmap); + Refresh(); } else if (m_state == Paused) { - m_memoryDC.SelectObject (m_bitmap); // in memoryDC - m_pSGP->setDC (&m_memoryDC); - m_memoryDC.SetFont (*wxSWISS_FONT); + m_memoryDC.SelectObject (m_bitmap); // in memoryDC + m_pSGP->setDC (&m_memoryDC); projectView (m_iLastView + 1); - m_pSGP->setDC (m_pDC); - m_memoryDC.SelectObject(wxNullBitmap); - Refresh(); + m_pSGP->setDC (m_pDC); + m_memoryDC.SelectObject(wxNullBitmap); + Refresh(); } } @@ -280,7 +283,7 @@ void ProjectionsDialog::OnClose(wxCloseEvent& event) void ProjectionsDialog::OnPaint (wxPaintEvent& event) { - wxPaintDC paintDC (this); + wxPaintDC paintDC (this); if (m_state == Paused) { paintDC.DrawBitmap (m_bitmap, 0, 0, false); }