r354: Added Projection Polar conversions
[ctsim.git] / src / views.h
index d06ffa38f4fedf3dc7c61a9a3024e876d340ee8a..7ca2e62d739fe46d7b9f1c88582b1813ee2a1713 100644 (file)
@@ -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
 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);\r
-    void OnScaleAuto (wxCommandEvent& event);
-    void OnScaleMinMax (wxCommandEvent& event);
-       void OnPlotRow (wxCommandEvent& event);\r
-       void OnPlotCol (wxCommandEvent& event);\r
-\r
-       wxFrame* getFrame()\r
-       { return m_frame; }\r
-
-    ImageFileDocument* GetDocument(void) 
-       { return dynamic_cast<ImageFileDocument*>(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<ImageFileDocument*>(wxView::GetDocument()); }
+  
+  DECLARE_EVENT_TABLE()
 };
 
 class ImageFileCanvas: public wxScrolledWindow
 {
-private:\r
-       int m_xCursor;\r
-       int m_yCursor;\r
-\r
+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);
-\r
-       void DrawRubberBandCursor (wxDC& dc, int x, int y);\r
-       bool GetCurrentCursor (int& x, int& y);\r
-
-    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);
-\r
-       wxFrame* getFrame ()\r
-       { return m_frame; }\r
-
-    ProjectionFileDocument* GetDocument(void) 
-       { return dynamic_cast<ProjectionFileDocument*>(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<ProjectionFileDocument*>(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<PhantomDocument*>(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<PhantomDocument*>(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;\r
-    bool m_bMaxSpecified;\r
-    double m_dMinPixel;\r
-    double m_dMaxPixel;\r
-    double m_dAutoScaleFactor;\r
-
+  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);\r
-    void OnScaleMinMax (wxCommandEvent& event);\r
-
-       wxFrame* getFrame ()
-       { return m_frame; }
-
-    PlotFileDocument* GetDocument(void) 
-       { return dynamic_cast<PlotFileDocument*>(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<PlotFileDocument*>(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