X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fviews.cpp;h=9a2eb3113b23ed9f9f3f6796c9e974a570a7e30c;hp=19d564ef84ecbd11f9d913623b2e4284cd1ada81;hb=999a754d1519a49ca062ee87b22bf601c1ee9f21;hpb=d850a3477e9ccaecfa85e00bc619848fcc29bdb6 diff --git a/src/views.cpp b/src/views.cpp index 19d564e..9a2eb31 100644 --- a/src/views.cpp +++ b/src/views.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: views.cpp,v 1.131 2001/03/10 23:56:58 kevin Exp $ +** $Id: views.cpp,v 1.132 2001/03/11 06:34:37 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 @@ -2277,9 +2277,12 @@ EVT_MENU(PJMENU_RECONSTRUCT_FBP, ProjectionFileView::OnReconstructFBP) EVT_MENU(PJMENU_RECONSTRUCT_FOURIER, ProjectionFileView::OnReconstructFourier) EVT_MENU(PJMENU_CONVERT_POLAR, ProjectionFileView::OnConvertPolar) EVT_MENU(PJMENU_CONVERT_FFT_POLAR, ProjectionFileView::OnConvertFFTPolar) +EVT_MENU(PJMENU_CONVERT_PARALLEL, ProjectionFileView::OnConvertParallel) EVT_MENU(PJMENU_PLOT_TTHETA_SAMPLING, ProjectionFileView::OnPlotTThetaSampling) +EVT_MENU(PJMENU_ARTIFACT_REDUCTION, ProjectionFileView::OnArtifactReduction) END_EVENT_TABLE() + ProjectionFileView::ProjectionFileView() : wxView(), m_pFrame(0), m_pCanvas(0), m_pFileMenu(0) { @@ -2344,13 +2347,12 @@ ProjectionFileView::OnConvertPolar (wxCommandEvent& event) ImageFile* pIF = new ImageFile (m_iDefaultPolarNX, m_iDefaultPolarNY); m_iDefaultPolarInterpolation = Projections::convertInterpNameToID (strInterpolation.c_str()); - if (! rProj.convertPolar (*pIF, m_iDefaultPolarInterpolation)) { + if (! rProj.convertPolar (*pIF, m_iDefaultPolarInterpolation)) { delete pIF; *theApp->getLog() << "Error converting to Polar\n"; return; } - pPolarDoc = theApp->newImageDoc (); if (! pPolarDoc) { sys_error (ERR_SEVERE, "Unable to create image file"); @@ -2449,6 +2451,34 @@ ProjectionFileView::OnPlotTThetaSampling (wxCommandEvent& event) return; } +void +ProjectionFileView::OnConvertParallel (wxCommandEvent& event) +{ + Projections& rProj = GetDocument()->getProjections(); + if (rProj.geometry() == Scanner::GEOMETRY_PARALLEL) { + wxMessageBox ("Projections are already parallel", "Error"); + return; + } + Projections* pProjNew = rProj.interpolateToParallel(); + ProjectionFileDocument* pProjDocNew = theApp->newProjectionDoc(); + pProjDocNew->setProjections (pProjNew); + + if (ProjectionFileView* projView = pProjDocNew->getView()) { + projView->OnUpdate (projView, NULL); + if (projView->getCanvas()) + projView->getCanvas()->SetClientSize (pProjNew->nDet(), pProjNew->nView()); + if (wxFrame* pFrame = projView->getFrame()) { + pFrame->Show(true); + pFrame->SetFocus(); + pFrame->Raise(); + } + GetDocumentManager()->ActivateView (projView, true, false); + } + if (theApp->getAskDeleteNewDocs()) + pProjDocNew-> Modify(true); + pProjDocNew->UpdateAllViews (this); +} + void ProjectionFileView::OnReconstructFourier (wxCommandEvent& event) { @@ -2572,6 +2602,12 @@ ProjectionFileView::OnReconstructFBP (wxCommandEvent& event) } +void +ProjectionFileView::OnArtifactReduction (wxCommandEvent& event) +{ +} + + ProjectionFileCanvas* ProjectionFileView::CreateCanvas (wxFrame *parent) { @@ -2631,6 +2667,11 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *convert_menu = new wxMenu; convert_menu->Append (PJMENU_CONVERT_POLAR, "&Polar Image...\tCtrl-L"); convert_menu->Append (PJMENU_CONVERT_FFT_POLAR, "&FFT->Polar Image...\tCtrl-M"); + convert_menu->AppendSeparator(); + convert_menu->Append (PJMENU_CONVERT_PARALLEL, "&Interpolate to Parallel"); + + wxMenu* filter_menu = new wxMenu; + filter_menu->Append (PJMENU_ARTIFACT_REDUCTION, "&Artifact Reduction"); wxMenu* analyze_menu = new wxMenu; analyze_menu->Append (PJMENU_PLOT_TTHETA_SAMPLING, "&Plot T-Theta Sampling\tCtrl-T"); @@ -2650,6 +2691,7 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) menu_bar->Append (m_pFileMenu, "&File"); menu_bar->Append (convert_menu, "&Convert"); + menu_bar->Append (filter_menu, "Fi<er"); menu_bar->Append (analyze_menu, "&Analyze"); menu_bar->Append (reconstruct_menu, "&Reconstruct"); menu_bar->Append (help_menu, "&Help");