From 0eb095f799dd4222e6eb9b1db9e8c6f2831a1540 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Wed, 3 Jan 2001 22:00:46 +0000 Subject: [PATCH] r352: no message --- include/ct.h | 3 +- include/projections.h | 5 +- libctsim/projections.cpp | 13 +- msvc/ctsim/ctsim.plg | 11 +- src/ctsim.h | 10 +- src/views.cpp | 52 +++++- src/views.h | 393 ++++++++++++++++++++------------------- 7 files changed, 272 insertions(+), 215 deletions(-) diff --git a/include/ct.h b/include/ct.h index 98425a1..2172063 100644 --- a/include/ct.h +++ b/include/ct.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ct.h,v 1.49 2001/01/02 16:02:12 kevin Exp $ +** $Id: ct.h,v 1.50 2001/01/03 22:00:46 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 @@ -148,6 +148,7 @@ extern "C" { #ifdef HAVE_FFTW #include #include +#define HAVE_FFT 1 #endif #ifdef HAVE_MPI diff --git a/include/projections.h b/include/projections.h index aa76b1a..338f376 100644 --- a/include/projections.h +++ b/include/projections.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: projections.h,v 1.18 2000/12/16 06:12:47 kevin Exp $ +** $Id: projections.h,v 1.19 2001/01/03 22:00:46 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -56,6 +56,9 @@ class Projections bool detarrayRead (fnetorderstream& fs, DetectorArray& darray, const int view_num); bool detarrayWrite (fnetorderstream& fs, const DetectorArray& darray, const int view_num); + bool convertPolar (ImageFile& rIF, int iInterpolation); + bool convertFFTPolar (ImageFile& rIF, int iInterpolation, int iZeropad); + bool reconstruct (ImageFile& im, const char* const filterName, double filt_param, const char* const filterMethodName, const int zeropad, const char* frequencyFilterName, const char* const interpName, int interp_param, const char* const backprojName, const int trace) const; void setNView (int nView); // used in MPI to restrict # of views diff --git a/libctsim/projections.cpp b/libctsim/projections.cpp index f6fff53..bdcf35e 100644 --- a/libctsim/projections.cpp +++ b/libctsim/projections.cpp @@ -8,7 +8,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: projections.cpp,v 1.35 2001/01/02 16:02:13 kevin Exp $ +** $Id: projections.cpp,v 1.36 2001/01/03 22:00:46 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 @@ -609,4 +609,15 @@ Projections::printScanInfo (std::ostringstream& os) const } +bool Projections::convertPolar (ImageFile& rIF, int iInterpolation) +{ + return false; +} + +bool Projections::convertFFTPolar (ImageFile& rIF, int iInterpolation, int iZeropad) +{ + return false; +} + + diff --git a/msvc/ctsim/ctsim.plg b/msvc/ctsim/ctsim.plg index 54f284a..27d403b 100644 --- a/msvc/ctsim/ctsim.plg +++ b/msvc/ctsim/ctsim.plg @@ -6,13 +6,13 @@ --------------------Configuration: ctsim - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBE.tmp" with contents +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2E.tmp" with contents [ -/nologo /G6 /MT /W3 /GR /GX /O2 /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "NDEBUG" /D "__WXWIN__" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0alpha3\" /FR"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c +/nologo /G6 /MT /W3 /GR /GX /O2 /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "NDEBUG" /D "__WXWIN__" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0beta1\" /FR"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c "C:\ctsim\src\views.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBE.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBF.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2E.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2F.tmp" with contents [ kernel32.lib user32.lib wsock32.lib comctl32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib zlib.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/ctsim.pdb" /machine:I386 /out:"Release/ctsim.exe" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" .\Release\ctsim.obj @@ -21,13 +21,12 @@ kernel32.lib user32.lib wsock32.lib comctl32.lib gdi32.lib winspool.lib comdlg32 .\Release\dlgreconstruct.obj .\Release\docs.obj .\Release\views.obj -.\Release\wx.res \ctsim\msvc\libctsim\Release\libctsim.lib "\fftw-2.1.3\Win32\FFTW2st\Release\FFTW2st.lib" "\fftw-2.1.3\Win32\RFFTW2st\Release\RFFTW2st.lib" \wx2\lib\wx.lib ] -Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBF.tmp" +Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2F.tmp"

Output Window

Compiling... views.cpp diff --git a/src/ctsim.h b/src/ctsim.h index 4425db3..31d02a4 100644 --- a/src/ctsim.h +++ b/src/ctsim.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.h,v 1.19 2001/01/02 13:16:43 kevin Exp $ +** $Id: ctsim.h,v 1.20 2001/01/03 22:00:46 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 @@ -163,9 +163,13 @@ enum { MAINMENU_FILE_EXIT, IFMENU_FILE_PROPERTIES, - PJMENU_FILE_PROPERTIES, PHMMENU_FILE_PROPERTIES, - PJMENU_PROCESS_RECONSTRUCT, + + PJMENU_FILE_PROPERTIES, + PJMENU_RECONSTRUCT_FBP, + PJMENU_RECONSTRUCT_FOURIER, + PJMENU_CONVERT_POLAR, + PJMENU_CONVERT_FFT_POLAR, IFMENU_FILE_EXPORT, diff --git a/src/views.cpp b/src/views.cpp index 8f9b512..f7d8a1f 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.49 2001/01/02 15:58:18 kevin Exp $ +** $Id: views.cpp,v 1.50 2001/01/03 22:00:46 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 @@ -1593,7 +1593,9 @@ IMPLEMENT_DYNAMIC_CLASS(ProjectionFileView, wxView) BEGIN_EVENT_TABLE(ProjectionFileView, wxView) EVT_MENU(PJMENU_FILE_PROPERTIES, ProjectionFileView::OnProperties) -EVT_MENU(PJMENU_PROCESS_RECONSTRUCT, ProjectionFileView::OnReconstruct) +EVT_MENU(PJMENU_RECONSTRUCT_FBP, ProjectionFileView::OnReconstructFBP) +EVT_MENU(PJMENU_CONVERT_POLAR, ProjectionFileView::OnConvertPolar) +EVT_MENU(PJMENU_CONVERT_FFT_POLAR, ProjectionFileView::OnConvertFFTPolar) END_EVENT_TABLE() ProjectionFileView::ProjectionFileView(void) @@ -1634,7 +1636,35 @@ ProjectionFileView::OnProperties (wxCommandEvent& event) void -ProjectionFileView::OnReconstruct (wxCommandEvent& event) +ProjectionFileView::OnConvertPolar (wxCommandEvent& event) +{ + Projections& rProj = GetDocument()->getProjections(); +} + +void +ProjectionFileView::OnConvertFFTPolar (wxCommandEvent& event) +{ + Projections& rProj = GetDocument()->getProjections(); + wxMessageBox ("Polar conversion not yet implemented", "Unimplemented function"); +#if 0 + rProj.convertPolar (); + if (theApp->getSetModifyNewDocs()) + GetDocument()->Modify(true); + GetDocument()->UpdateAllViews(); +#ifndef HAVE_FFT + wxMessageBox ("FFT support has not been compiled into this version of CTSim", "Error"); +#endif +#endif +} + +void +ProjectionFileView::OnReconstructFourier (wxCommandEvent& event) +{ + wxMessageBox ("Fourier Reconstruction is not yet supported", "Unimplemented function"); +} + +void +ProjectionFileView::OnReconstructFBP (wxCommandEvent& event) { DialogGetReconstructionParameters dialogReconstruction (m_frame, m_iDefaultNX, m_iDefaultNY, m_iDefaultFilter, m_dDefaultFilterParam, m_iDefaultFilterMethod, m_iDefaultFilterGeneration, m_iDefaultZeropad, m_iDefaultInterpolation, m_iDefaultInterpParam, m_iDefaultBackprojector, m_iDefaultTrace); @@ -1761,9 +1791,14 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) file_menu->Append(wxID_PRINT_SETUP, "Print &Setup..."); file_menu->Append(wxID_PREVIEW, "Print Pre&view"); - wxMenu *process_menu = new wxMenu; - process_menu->Append(PJMENU_PROCESS_RECONSTRUCT, "R&econstruct..."); + wxMenu *convert_menu = new wxMenu; + convert_menu->Append (PJMENU_CONVERT_POLAR, "&Polar Image..."); + convert_menu->Append (PJMENU_CONVERT_FFT_POLAR, "&FFT->Polar Image..."); + wxMenu *reconstruct_menu = new wxMenu; + reconstruct_menu->Append (PJMENU_RECONSTRUCT_FBP, "&Filtered Backprojection..."); + reconstruct_menu->Append (PJMENU_RECONSTRUCT_FOURIER, "&Fourier..."); + wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents"); help_menu->AppendSeparator(); @@ -1771,9 +1806,10 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(process_menu, "&Process"); - menu_bar->Append(help_menu, "&Help"); + menu_bar->Append (file_menu, "&File"); + menu_bar->Append (convert_menu, "&Convert"); + menu_bar->Append (reconstruct_menu, "&Reconstruct"); + menu_bar->Append (help_menu, "&Help"); subframe->SetMenuBar(menu_bar); diff --git a/src/views.h b/src/views.h index e8a1f25..4463689 100644 --- a/src/views.h +++ b/src/views.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: views.h,v 1.23 2001/01/02 13:57:30 kevin Exp $ +** $Id: views.h,v 1.24 2001/01/03 22:00:46 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 @@ -39,250 +39,253 @@ class ImageFileCanvas; class ImageFileView : public wxView { - DECLARE_DYNAMIC_CLASS(ImageFileView) - + DECLARE_DYNAMIC_CLASS(ImageFileView) + wxMemoryDC m_memoryDC; - wxBitmap m_bitmap; - + wxBitmap m_bitmap; + private: - ImageFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); - - ImageFileCanvas *m_canvas; - wxFrame *m_frame; - bool m_bMinSpecified; - bool m_bMaxSpecified; - double m_dMinPixel; - double m_dMaxPixel; - double m_dAutoScaleFactor; - - int m_iDefaultExportFormatID; - + ImageFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); + wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + + ImageFileCanvas *m_canvas; + wxFrame *m_frame; + bool m_bMinSpecified; + bool m_bMaxSpecified; + double m_dMinPixel; + double m_dMaxPixel; + double m_dAutoScaleFactor; + + int m_iDefaultExportFormatID; + public: - ImageFileView(void); - virtual ~ImageFileView(void); - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC* dc); - void OnUpdate(wxView *sender, wxObject *hint = NULL); - bool OnClose (bool deleteWindow = true); - - void OnScaleSize (wxCommandEvent& event); - void OnExport (wxCommandEvent& event); - - void OnProperties (wxCommandEvent& event); - void OnCompare (wxCommandEvent& event); - - void OnInvertValues (wxCommandEvent& event); - void OnSquare (wxCommandEvent& event); - void OnSquareRoot (wxCommandEvent& event); - void OnLog (wxCommandEvent& event); - void OnExp (wxCommandEvent& event); - void OnAdd (wxCommandEvent& event); - void OnSubtract (wxCommandEvent& event); - void OnMultiply (wxCommandEvent& event); - void OnDivide (wxCommandEvent& event); - void OnFourier (wxCommandEvent& event); - void OnInverseFourier (wxCommandEvent& event); - void OnShuffleNaturalToFourierOrder (wxCommandEvent& event); - void OnShuffleFourierToNaturalOrder (wxCommandEvent& event); - + ImageFileView(void); + virtual ~ImageFileView(void); + + bool OnCreate(wxDocument *doc, long flags); + void OnDraw(wxDC* dc); + void OnUpdate(wxView *sender, wxObject *hint = NULL); + bool OnClose (bool deleteWindow = true); + + void OnScaleSize (wxCommandEvent& event); + void OnExport (wxCommandEvent& event); + + void OnProperties (wxCommandEvent& event); + void OnCompare (wxCommandEvent& event); + + void OnInvertValues (wxCommandEvent& event); + void OnSquare (wxCommandEvent& event); + void OnSquareRoot (wxCommandEvent& event); + void OnLog (wxCommandEvent& event); + void OnExp (wxCommandEvent& event); + void OnAdd (wxCommandEvent& event); + void OnSubtract (wxCommandEvent& event); + void OnMultiply (wxCommandEvent& event); + void OnDivide (wxCommandEvent& event); + void OnFourier (wxCommandEvent& event); + void OnInverseFourier (wxCommandEvent& event); + void OnShuffleNaturalToFourierOrder (wxCommandEvent& event); + void OnShuffleFourierToNaturalOrder (wxCommandEvent& event); + #ifdef HAVE_FFTW - void OnFFT (wxCommandEvent& event); - void OnIFFT (wxCommandEvent& event); + void OnFFT (wxCommandEvent& event); + void OnIFFT (wxCommandEvent& event); #endif - - void OnMagnitude (wxCommandEvent& event); - void OnPhase (wxCommandEvent& event); - - void OnScaleAuto (wxCommandEvent& event); - void OnScaleMinMax (wxCommandEvent& event); - void OnPlotRow (wxCommandEvent& event); - void OnPlotCol (wxCommandEvent& event); - void OnPlotHistogram (wxCommandEvent& event); - void OnCompareRow (wxCommandEvent& event); - void OnCompareCol (wxCommandEvent& event); - - wxFrame* getFrame() - { return m_frame; } - - ImageFileDocument* GetDocument(void) - { return dynamic_cast(wxView::GetDocument()); } - - DECLARE_EVENT_TABLE() + + void OnMagnitude (wxCommandEvent& event); + void OnPhase (wxCommandEvent& event); + + void OnScaleAuto (wxCommandEvent& event); + void OnScaleMinMax (wxCommandEvent& event); + void OnPlotRow (wxCommandEvent& event); + void OnPlotCol (wxCommandEvent& event); + void OnPlotHistogram (wxCommandEvent& event); + void OnCompareRow (wxCommandEvent& event); + void OnCompareCol (wxCommandEvent& event); + + wxFrame* getFrame() + { return m_frame; } + + ImageFileDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + + DECLARE_EVENT_TABLE() }; class ImageFileCanvas: public wxScrolledWindow { private: - - int m_xCursor; - int m_yCursor; - + + int m_xCursor; + int m_yCursor; + public: - ImageFileView* m_pView; - - ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - virtual void OnDraw(wxDC& dc); - void OnMouseEvent(wxMouseEvent& event); - void DrawRubberBandCursor (wxDC& dc, int x, int y); - bool GetCurrentCursor (int& x, int& y); - - DECLARE_EVENT_TABLE() + ImageFileView* m_pView; + + ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual void OnDraw(wxDC& dc); + void OnMouseEvent(wxMouseEvent& event); + void DrawRubberBandCursor (wxDC& dc, int x, int y); + bool GetCurrentCursor (int& x, int& y); + + DECLARE_EVENT_TABLE() }; class ProjectionFileCanvas; class ProjectionFileView : public wxView { - DECLARE_DYNAMIC_CLASS(ProjectionFileView) - + DECLARE_DYNAMIC_CLASS(ProjectionFileView) + wxMemoryDC m_memoryDC; - wxBitmap m_bitmap; - + wxBitmap m_bitmap; + private: - ProjectionFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); - - ProjectionFileCanvas *m_canvas; - wxFrame *m_frame; - - int m_iDefaultNX; - int m_iDefaultNY; - int m_iDefaultFilter; - int m_iDefaultFilterMethod; - double m_dDefaultFilterParam; - int m_iDefaultFilterGeneration; - int m_iDefaultZeropad; - int m_iDefaultInterpolation; - int m_iDefaultInterpParam; - int m_iDefaultBackprojector; - int m_iDefaultTrace; - + ProjectionFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); + wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + + ProjectionFileCanvas *m_canvas; + wxFrame *m_frame; + + int m_iDefaultNX; + int m_iDefaultNY; + int m_iDefaultFilter; + int m_iDefaultFilterMethod; + double m_dDefaultFilterParam; + int m_iDefaultFilterGeneration; + int m_iDefaultZeropad; + int m_iDefaultInterpolation; + int m_iDefaultInterpParam; + int m_iDefaultBackprojector; + int m_iDefaultTrace; + public: - ProjectionFileView(void); - virtual ~ProjectionFileView(void); - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC* dc); - void OnUpdate(wxView *sender, wxObject *hint = NULL); - bool OnClose (bool deleteWindow = true); - void OnProperties (wxCommandEvent& event); - void OnReconstruct (wxCommandEvent& event); - - wxFrame* getFrame () - { return m_frame; } - - ProjectionFileDocument* GetDocument(void) - { return dynamic_cast(wxView::GetDocument()); } - DECLARE_EVENT_TABLE() + ProjectionFileView(void); + virtual ~ProjectionFileView(void); + + bool OnCreate(wxDocument *doc, long flags); + void OnDraw(wxDC* dc); + void OnUpdate(wxView *sender, wxObject *hint = NULL); + bool OnClose (bool deleteWindow = true); + void OnProperties (wxCommandEvent& event); + void OnReconstructFBP (wxCommandEvent& event); + void OnReconstructFourier (wxCommandEvent& event); + void OnConvertPolar (wxCommandEvent& event); + void OnConvertFFTPolar (wxCommandEvent& event); + + wxFrame* getFrame () + { return m_frame; } + + ProjectionFileDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + DECLARE_EVENT_TABLE() }; class ProjectionFileCanvas: public wxScrolledWindow { public: - ProjectionFileView* m_pView; - - ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - virtual void OnDraw(wxDC& dc); + ProjectionFileView* m_pView; + + ProjectionFileCanvas (ProjectionFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual void OnDraw(wxDC& dc); }; class PhantomCanvas; class PhantomView : public wxView { - DECLARE_DYNAMIC_CLASS(PhantomView) - + DECLARE_DYNAMIC_CLASS(PhantomView) + private: - PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); - - PhantomCanvas *m_canvas; - wxFrame *m_frame; - - int m_iDefaultNDet; - int m_iDefaultNView; - int m_iDefaultNSample; - int m_iDefaultGeometry; - int m_iDefaultTrace; - double m_dDefaultRotation; - double m_dDefaultFocalLength; - double m_dDefaultFieldOfView; - + PhantomCanvas *CreateCanvas(wxView *view, wxFrame *parent); + wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + + PhantomCanvas *m_canvas; + wxFrame *m_frame; + + int m_iDefaultNDet; + int m_iDefaultNView; + int m_iDefaultNSample; + int m_iDefaultGeometry; + int m_iDefaultTrace; + double m_dDefaultRotation; + double m_dDefaultFocalLength; + double m_dDefaultFieldOfView; + public: - PhantomView(void); - virtual ~PhantomView(void); - - bool OnCreate(wxDocument *doc, long flags); - void OnUpdate(wxView *sender, wxObject *hint = NULL); - bool OnClose (bool deleteWindow = true); - void OnDraw(wxDC* dc); - void OnProperties (wxCommandEvent& event); - void OnRasterize (wxCommandEvent& event); - void OnProjections (wxCommandEvent& event); - - PhantomDocument* GetDocument(void) - { return dynamic_cast(wxView::GetDocument()); } - - DECLARE_EVENT_TABLE() + PhantomView(void); + virtual ~PhantomView(void); + + bool OnCreate(wxDocument *doc, long flags); + void OnUpdate(wxView *sender, wxObject *hint = NULL); + bool OnClose (bool deleteWindow = true); + void OnDraw(wxDC* dc); + void OnProperties (wxCommandEvent& event); + void OnRasterize (wxCommandEvent& event); + void OnProjections (wxCommandEvent& event); + + PhantomDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + + DECLARE_EVENT_TABLE() }; class PhantomCanvas: public wxScrolledWindow { public: - PhantomView* m_pView; - - PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - virtual void OnDraw(wxDC& dc); + PhantomView* m_pView; + + PhantomCanvas (PhantomView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual void OnDraw(wxDC& dc); }; class PlotFileCanvas; class PlotFileView : public wxView { - DECLARE_DYNAMIC_CLASS(PlotFileView) - + DECLARE_DYNAMIC_CLASS(PlotFileView) + private: - PlotFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); - - PlotFileCanvas *m_canvas; - wxFrame *m_frame; - EZPlot* m_pEZPlot; - - bool m_bMinSpecified; - bool m_bMaxSpecified; - double m_dMinPixel; - double m_dMaxPixel; - double m_dAutoScaleFactor; - + PlotFileCanvas *CreateCanvas(wxView *view, wxFrame *parent); + wxFrame *CreateChildFrame(wxDocument *doc, wxView *view); + + PlotFileCanvas *m_canvas; + wxFrame *m_frame; + EZPlot* m_pEZPlot; + + bool m_bMinSpecified; + bool m_bMaxSpecified; + double m_dMinPixel; + double m_dMaxPixel; + double m_dAutoScaleFactor; + public: - PlotFileView(void); - virtual ~PlotFileView(void); - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC* dc); - void OnUpdate(wxView *sender, wxObject *hint = NULL); - bool OnClose (bool deleteWindow = true); - void OnProperties (wxCommandEvent& event); - void OnScaleAuto (wxCommandEvent& event); - void OnScaleMinMax (wxCommandEvent& event); - - wxFrame* getFrame () - { return m_frame; } - - PlotFileDocument* GetDocument(void) - { return dynamic_cast(wxView::GetDocument()); } - - DECLARE_EVENT_TABLE() + PlotFileView(void); + virtual ~PlotFileView(void); + + bool OnCreate(wxDocument *doc, long flags); + void OnDraw(wxDC* dc); + void OnUpdate(wxView *sender, wxObject *hint = NULL); + bool OnClose (bool deleteWindow = true); + void OnProperties (wxCommandEvent& event); + void OnScaleAuto (wxCommandEvent& event); + void OnScaleMinMax (wxCommandEvent& event); + + wxFrame* getFrame () + { return m_frame; } + + PlotFileDocument* GetDocument(void) + { return dynamic_cast(wxView::GetDocument()); } + + DECLARE_EVENT_TABLE() }; class PlotFileCanvas: public wxScrolledWindow { public: - PlotFileView* m_pView; - - PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - virtual void OnDraw(wxDC& dc); + PlotFileView* m_pView; + + PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); + virtual void OnDraw(wxDC& dc); }; -- 2.34.1