X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdocs.h;h=670a6b21afe5594a513013b83a5159b3ec03be7b;hp=54fa2a4ed3107e6fa41176c3b56d038d14c93425;hb=f13a8c004b8f182b42d9e4df2bcd7c7f030bf1ad;hpb=d3a6bf4aa2ccd32ed7671d1d97777dfc414df51d diff --git a/src/docs.h b/src/docs.h index 54fa2a4..670a6b2 100644 --- a/src/docs.h +++ b/src/docs.h @@ -7,9 +7,7 @@ ** Date Started: July 2000 ** ** This is part of the CTSim program -** Copyright (c) 1983-2001 Kevin Rosenberg -** -** $Id: docs.h,v 1.17 2001/01/30 05:05:41 kevin Exp $ +** Copyright (c) 1983-2009 Kevin Rosenberg ** ** 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,10 +23,6 @@ ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ -#ifdef __GNUG__ -// #pragma interface -#endif - #ifndef __DOCSH__ #define __DOCSH__ @@ -39,12 +33,15 @@ #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 { @@ -59,14 +56,14 @@ public: virtual bool IsModified () const; virtual bool Revert (); virtual void Modify (bool mod); - - ImageFileDocument () + + ImageFileDocument () : m_bBadFileOpen(false) { m_pImageFile = new ImageFile; } - virtual ~ImageFileDocument () + virtual ~ImageFileDocument () { delete m_pImageFile; } @@ -74,7 +71,7 @@ public: const ImageFile& getImageFile() const { return *m_pImageFile; } ImageFile& getImageFile() { return *m_pImageFile; } void setImageFile (ImageFile* pImageFile) - { + { delete m_pImageFile; m_pImageFile = pImageFile; } @@ -82,10 +79,35 @@ public: 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) @@ -97,20 +119,17 @@ public: virtual bool OnOpenDocument (const wxString& filename); virtual bool IsModified () const; virtual void Modify (bool mod); - - ProjectionFileDocument () + + ProjectionFileDocument () : m_bBadFileOpen(false) { m_pProjectionFile = new Projections; } - virtual ~ProjectionFileDocument () - { - delete m_pProjectionFile; - } + virtual ~ProjectionFileDocument (); - const Projections& getProjections () const { return *m_pProjectionFile; } - Projections& getProjections () { return *m_pProjectionFile; } + const Projections& getProjections () const { return *m_pProjectionFile; } + Projections& getProjections () { return *m_pProjectionFile; } void setProjections (Projections* pProjections) { delete m_pProjectionFile; @@ -120,10 +139,11 @@ public: ProjectionFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; -class PhantomFileDocument: public wxDocument +class PhantomFileDocument: public BackgroundProcessingDocument { private: DECLARE_DYNAMIC_CLASS(PhantomFileDocument) @@ -133,20 +153,19 @@ private: bool m_bBadFileOpen; public: - PhantomFileDocument () - : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false) + PhantomFileDocument () + : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false) {} - virtual ~PhantomFileDocument () - {} + virtual ~PhantomFileDocument (); const int getPhantomID () const { return m_idPhantom; } const wxString& getPhantomName () const { return m_namePhantom; } - const Phantom& getPhantom () const { return m_phantom; } + const Phantom& getPhantom () const { return m_phantom; } - Phantom& getPhantom () { return m_phantom; } + Phantom& getPhantom () { return m_phantom; } virtual bool OnOpenDocument (const wxString& filename); virtual bool OnSaveDocument (const wxString& filename); @@ -155,6 +174,7 @@ public: PhantomFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; @@ -167,21 +187,21 @@ private: bool m_bBadFileOpen; public: - PlotFileDocument () + PlotFileDocument () : m_bBadFileOpen(false) {} - virtual ~PlotFileDocument () - {} + virtual ~PlotFileDocument () + {} const wxString& getPlotName () const - { return m_namePlot; } + { return m_namePlot; } const PlotFile& getPlotFile () const - { return m_plot; } + { return m_plot; } PlotFile& getPlotFile () - { return m_plot; } + { return m_plot; } virtual bool OnOpenDocument (const wxString& filename); virtual bool OnSaveDocument (const wxString& filename); @@ -190,6 +210,7 @@ public: PlotFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; @@ -200,7 +221,7 @@ class TextFileDocument: public wxDocument bool m_bBadFileOpen; public: - TextFileDocument(void) + TextFileDocument(void) : m_bBadFileOpen(false) {} @@ -218,4 +239,46 @@ class TextFileDocument: public wxDocument }; +#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