X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fviews.h;h=7ca2e62d739fe46d7b9f1c88582b1813ee2a1713;hp=d06ffa38f4fedf3dc7c61a9a3024e876d340ee8a;hb=23f5654dacb1952c15bda92c2606fae3a55e48ad;hpb=f7d2b7144f32a7bd157b7689022e62944b82fcc1 diff --git a/src/views.h b/src/views.h index d06ffa3..7ca2e62 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.15 2000/12/21 03:40:58 kevin Exp $ +** $Id: views.h,v 1.25 2001/01/04 21:28:41 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,221 +39,263 @@ 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; - + 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 OnProperties (wxCommandEvent& event); - void OnCompare (wxCommandEvent& event); - void OnScaleAuto (wxCommandEvent& event); - void OnScaleMinMax (wxCommandEvent& event); - void OnPlotRow (wxCommandEvent& event); - void OnPlotCol (wxCommandEvent& event); - - wxFrame* getFrame() - { return m_frame; } - - ImageFileDocument* GetDocument(void) - { return dynamic_cast(wxView::GetDocument()); } - - DECLARE_EVENT_TABLE() + 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_FFT + 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 OnScaleFull (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; - +private: + + 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; + + int m_iDefaultPolarNX; + int m_iDefaultPolarNY; + int m_iDefaultPolarInterpolation; + int m_iDefaultPolarZeropad; 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; - 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 OnScaleMinMax (wxCommandEvent& event); + void OnScaleAuto (wxCommandEvent& event); + void OnScaleFull (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); }; - #endif