X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fviews.cpp;h=1ca02ebf624e834c812079968c83138b65907c2d;hp=536db90ca0cc6c0e88b401b27c68d13f220565df;hb=93eb50659a64db3e37753d36c9923e82c7f7ca8a;hpb=286d655a25df2668bd65ad365676c6ecc94415a1 diff --git a/src/views.cpp b/src/views.cpp index 536db90..1ca02eb 100644 --- a/src/views.cpp +++ b/src/views.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: views.cpp,v 1.8 2000/07/22 15:45:33 kevin Exp $ +** $Id: views.cpp,v 1.13 2000/08/02 18:06:00 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 @@ -297,7 +297,7 @@ ImageFileView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) ) imageData[baseAddr] = imageData[baseAddr+1] = imageData[baseAddr+2] = intensity; } } - wxImage image (ny, nx, imageData, true); + wxImage image (nx, ny, imageData, true); m_bitmap = image.ConvertToBitmap(); delete imageData; int xSize = nx; @@ -341,7 +341,7 @@ ImageFileView::OnClose (bool deleteWindow) // PhantomCanvas PhantomCanvas::PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style) - : wxPanel(frame, -1, pos, size, style) + : wxScrolledWindow(frame, -1, pos, size, style) { m_pView = v; } @@ -353,6 +353,7 @@ PhantomCanvas::OnDraw(wxDC& dc) m_pView->OnDraw(& dc); } + // PhantomView IMPLEMENT_DYNAMIC_CLASS(PhantomView, wxView) @@ -404,7 +405,20 @@ PhantomView::OnProjections (wxCommandEvent& event) Projections& rProj = pProjectionDoc->getProjections(); Scanner theScanner (rPhantom, sGeometry.c_str(), nDet, nView, nSamples, dRotAngle); rProj.initFromScanner (theScanner); - theScanner.collectProjections (rProj, rPhantom, 0, TRACE_NONE); + +#if 1 + wxFrame frame (m_frame, -1, "", wxDefaultPosition, wxSize(500,500)); + frame.Show(); + wxClientDC dc (&frame); + int x, y; + frame.GetClientSize(&x, &y); + SGPDriver driver (dynamic_cast(&dc), x, y); + SGP sgp (driver); + theScanner.collectProjections (rProj, rPhantom, 0, TRACE_PHM, &sgp); +#else + theScanner.collectProjections (rProj, rPhantom); +#endif + pProjectionDoc->Modify(true); pProjectionDoc->UpdateAllViews(this); ostringstream os; @@ -518,15 +532,8 @@ PhantomView::OnCreate(wxDocument *doc, long WXUNUSED(flags) ) m_frame->Show(true); Activate(true); - - return true; -} -void -PhantomView::OnDraw (wxDC* dc) -{ - // if (m_bitmap.Ok()) - // dc->DrawBitmap (m_bitmap, 0, 0, false); + return true; } @@ -560,6 +567,17 @@ PhantomView::OnClose (bool deleteWindow) return true; } +void +PhantomView::OnDraw (wxDC* dc) +{ + int xsize, ysize; + m_canvas->GetClientSize (&xsize, &ysize); + SGPDriver driver (dc, xsize, ysize); + SGP sgp (driver); + const Phantom& rPhantom = GetDocument()->getPhantom(); + sgp.setColor (C_RED); + rPhantom.show (sgp); +} // ProjectionCanvas