X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdocs.h;h=d0895f00ca1bcd4ff5be80514076311331a9eada;hp=1cd4c40d4281286e450777e5e25e2655c705436b;hb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac;hpb=1fd4f7cc977b9f1499716de10d15656bd50f4816 diff --git a/src/docs.h b/src/docs.h index 1cd4c40..d0895f0 100644 --- a/src/docs.h +++ b/src/docs.h @@ -1,15 +1,15 @@ /***************************************************************************** ** FILE IDENTIFICATION ** -** Name: doc.h +** Name: docs.h ** Purpose: Header file for Document routines of CTSim program ** Programmer: Kevin Rosenberg ** Date Started: July 2000 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: docs.h,v 1.1 2000/07/13 07:01:59 kevin Exp $ +** $Id$ ** ** 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 @@ -25,76 +25,262 @@ ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ -#ifdef __GNUG__ -// #pragma interface -#endif - #ifndef __DOCSH__ #define __DOCSH__ #include "wx/docview.h" + +// #include "views.h" #include "imagefile.h" +#include "phantom.h" #include "projections.h" +#include "plotfile.h" +#include "threadrecon.h" + +class ProjectionFileView; +class PhantomFileView; +class ImageFileView; +class PlotFileView; +class TextFileView; +class Graph3dFileView; class ImageFileDocument: public wxDocument { - DECLARE_DYNAMIC_CLASS(ImageFileDocument) private: - ImageFile m_imageFile; + DECLARE_DYNAMIC_CLASS(ImageFileDocument) + ImageFile* m_pImageFile; + bool m_bBadFileOpen; public: - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool IsModified(void) const; - virtual void Modify(bool mod); + virtual bool OnSaveDocument (const wxString& filename); + virtual bool OnOpenDocument (const wxString& filename); + virtual bool IsModified () const; + virtual bool Revert (); + virtual void Modify (bool mod); - ImageFileDocument(void) {} - ~ImageFileDocument(void) {} + ImageFileDocument () + : m_bBadFileOpen(false) + { + m_pImageFile = new ImageFile; + } - const ImageFile& getImageFile(void) const - { return m_imageFile; } + virtual ~ImageFileDocument () + { + delete m_pImageFile; + } - ImageFile& getImageFile(void) - { return m_imageFile; } + const ImageFile& getImageFile() const { return *m_pImageFile; } + ImageFile& getImageFile() { return *m_pImageFile; } + void setImageFile (ImageFile* pImageFile) + { + delete m_pImageFile; + m_pImageFile = pImageFile; + } + + ImageFileView* getView() const; + bool getBadFileOpen() const { return m_bBadFileOpen; } + void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; +class BackgroundProcessingDocument : public wxDocument +{ +private: + DECLARE_DYNAMIC_CLASS(BackgroundProcessingDocument) +#ifdef HAVE_WXTHREADS + typedef BackgroundSupervisor BackgroundObject; + typedef std::vector BackgroundContainer; + BackgroundContainer m_vecpBackgroundSupervisors; + wxCriticalSection m_criticalSection; +#endif + +public: + BackgroundProcessingDocument() + : wxDocument() + {} + + void cancelRunningTasks(); +#ifdef HAVE_WXTHREADS + void addBackgroundSupervisor (BackgroundSupervisor* pSupervisor); + void removeBackgroundSupervisor (BackgroundSupervisor* pSupervisor); +#endif + + DECLARE_EVENT_TABLE() +}; -class ProjectionFileDocument: public wxDocument +class ProjectionFileDocument: public BackgroundProcessingDocument { +private: DECLARE_DYNAMIC_CLASS(ProjectionFileDocument) + Projections* m_pProjectionFile; + bool m_bBadFileOpen; + +public: + virtual bool OnSaveDocument (const wxString& filename); + virtual bool OnOpenDocument (const wxString& filename); + virtual bool IsModified () const; + virtual void Modify (bool mod); + + ProjectionFileDocument () + : m_bBadFileOpen(false) + { + m_pProjectionFile = new Projections; + } + + virtual ~ProjectionFileDocument (); + + const Projections& getProjections () const { return *m_pProjectionFile; } + Projections& getProjections () { return *m_pProjectionFile; } + + void setProjections (Projections* pProjections) + { delete m_pProjectionFile; + m_pProjectionFile = pProjections; + } + + ProjectionFileView* getView() const; + bool getBadFileOpen() const { return m_bBadFileOpen; } + void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); +}; + + +class PhantomFileDocument: public BackgroundProcessingDocument +{ private: - Projections m_projectionFile; + DECLARE_DYNAMIC_CLASS(PhantomFileDocument) + Phantom m_phantom; + int m_idPhantom; + wxString m_namePhantom; + bool m_bBadFileOpen; public: - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool IsModified(void) const; - virtual void Modify(bool mod); - - ProjectionFileDocument(void) {} - ~ProjectionFileDocument(void) {} + PhantomFileDocument () + : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false) + {} + + virtual ~PhantomFileDocument (); - const Projections& getProjections(void) const - { return m_projectionFile; } + const int getPhantomID () const { return m_idPhantom; } - Projections& getProjections(void) - { return m_projectionFile; } + const wxString& getPhantomName () const { return m_namePhantom; } + + const Phantom& getPhantom () const { return m_phantom; } + + Phantom& getPhantom () { return m_phantom; } + + virtual bool OnOpenDocument (const wxString& filename); + virtual bool OnSaveDocument (const wxString& filename); + virtual bool IsModified () const; + virtual void Modify (bool mod); + PhantomFileView* getView() const; + bool getBadFileOpen() const { return m_bBadFileOpen; } + void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; -class TextEditDocument: public wxDocument + +class PlotFileDocument: public wxDocument { - DECLARE_DYNAMIC_CLASS(TextEditDocument) private: + DECLARE_DYNAMIC_CLASS(PlotFileDocument) + PlotFile m_plot; + wxString m_namePlot; + bool m_bBadFileOpen; + public: - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool IsModified(void) const; - virtual void Modify(bool mod); - - TextEditDocument(void) {} - ~TextEditDocument(void) {} + PlotFileDocument () + : m_bBadFileOpen(false) + {} + + virtual ~PlotFileDocument () + {} + + const wxString& getPlotName () const + { return m_namePlot; } + + const PlotFile& getPlotFile () const + { return m_plot; } + + PlotFile& getPlotFile () + { return m_plot; } + + virtual bool OnOpenDocument (const wxString& filename); + virtual bool OnSaveDocument (const wxString& filename); + virtual bool IsModified () const; + virtual void Modify (bool mod); + PlotFileView* getView() const; + bool getBadFileOpen() const { return m_bBadFileOpen; } + void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); +}; + + +class TextFileDocument: public wxDocument +{ + private: + DECLARE_DYNAMIC_CLASS(TextFileDocument) + bool m_bBadFileOpen; + + public: + TextFileDocument(void) + : m_bBadFileOpen(false) + {} + + virtual ~TextFileDocument(void) {} + + virtual bool OnSaveDocument(const wxString& filename); + virtual bool OnOpenDocument(const wxString& filename); + virtual bool IsModified(void) const; + + wxTextCtrl* getTextCtrl(); + + TextFileView* getView() const; + bool getBadFileOpen() const { return m_bBadFileOpen; } + void setBadFileOpen() { m_bBadFileOpen = true; } +}; + + +#if wxUSE_GLCANVAS +#include +#include + +typedef GLfloat glTripleFloat[3]; + +class Graph3dFileDocument: public wxDocument +{ + friend class Graph3dFileView; + + private: + DECLARE_DYNAMIC_CLASS(Graph3dFileDocument) + bool m_bBadFileOpen; + GLint m_nVertices; + glTripleFloat* m_pVertices; + glTripleFloat* m_pNormals; + unsigned int m_nx; + unsigned int m_ny; + ImageFileArray m_array; + + public: + Graph3dFileDocument(void); + virtual ~Graph3dFileDocument(void); + + virtual bool OnSaveDocument (const wxString& filename); + virtual bool OnOpenDocument (const wxString& filename); + virtual bool IsModified () const; + + Graph3dFileView* getView() const; + bool getBadFileOpen() const { return m_bBadFileOpen; } + void setBadFileOpen() { m_bBadFileOpen = true; } + bool createFromImageFile (const ImageFile& rImageFile); + + int nx() const { return m_nx; } + int ny() const { return m_ny; } + ImageFileArray getArray() { return m_array; } + ImageFileArrayConst getArray() const { return m_array; } + void Activate(); }; +#endif // wxUSE_GLCANVAS #endif