X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdocs.h;h=966cdddece2ea65592bad0f17b20452588fad1ef;hp=50acf1e3e9d11859bdf7f6034527c695ab51e47c;hb=c0f892798de8f89715266150f7d8e413f2cf29fe;hpb=ba8635d790ee847d9746c6da24b60bd4cb6d9116 diff --git a/src/docs.h b/src/docs.h index 50acf1e..966cddd 100644 --- a/src/docs.h +++ b/src/docs.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: docs.h,v 1.18 2001/01/30 07:32:13 kevin Exp $ +** $Id: docs.h,v 1.31 2002/05/28 18:43:16 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,6 +39,7 @@ #include "phantom.h" #include "projections.h" #include "plotfile.h" +#include "threadrecon.h" class ProjectionFileView; class PhantomFileView; @@ -83,16 +84,41 @@ 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) Projections* m_pProjectionFile; bool m_bBadFileOpen; - + public: virtual bool OnSaveDocument (const wxString& filename); virtual bool OnOpenDocument (const wxString& filename); @@ -105,10 +131,7 @@ public: m_pProjectionFile = new Projections; } - virtual ~ProjectionFileDocument () - { - delete m_pProjectionFile; - } + virtual ~ProjectionFileDocument (); const Projections& getProjections () const { return *m_pProjectionFile; } Projections& getProjections () { return *m_pProjectionFile; } @@ -121,10 +144,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) @@ -138,8 +162,7 @@ public: : m_idPhantom(Phantom::PHM_INVALID), m_bBadFileOpen(false) {} - virtual ~PhantomFileDocument () - {} + virtual ~PhantomFileDocument (); const int getPhantomID () const { return m_idPhantom; } @@ -156,6 +179,7 @@ public: PhantomFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; @@ -191,6 +215,7 @@ public: PlotFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } + void Activate(); }; @@ -219,26 +244,30 @@ 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) - ImageFile* m_pImageFile; 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) - : m_bBadFileOpen(false) - { - m_pImageFile = new ImageFile; - } - - virtual ~Graph3dFileDocument(void) - { - delete m_pImageFile; - } - + Graph3dFileDocument(void); + virtual ~Graph3dFileDocument(void); + virtual bool OnSaveDocument (const wxString& filename); virtual bool OnOpenDocument (const wxString& filename); virtual bool IsModified () const; @@ -246,10 +275,15 @@ class Graph3dFileDocument: public wxDocument Graph3dFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } - void setImageFile (ImageFile* pImageFile) { delete m_pImageFile; m_pImageFile = pImageFile; } - ImageFile& getImageFile() { return *m_pImageFile; } - const ImageFile& getImageFile() const { return *m_pImageFile; } + 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