X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fdocs.h;h=88e362ec694cd4d9112c800d877a1d7c69aae4bc;hb=0730f9f3adbf326b9d4bac754634399ad688efd1;hp=54fa2a4ed3107e6fa41176c3b56d038d14c93425;hpb=d3a6bf4aa2ccd32ed7671d1d97777dfc414df51d;p=ctsim.git diff --git a/src/docs.h b/src/docs.h index 54fa2a4..88e362e 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.17 2001/01/30 05:05:41 kevin Exp $ +** $Id: docs.h,v 1.22 2001/02/22 11:05:38 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,12 +39,14 @@ #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 { @@ -91,7 +93,9 @@ private: DECLARE_DYNAMIC_CLASS(ProjectionFileDocument) Projections* m_pProjectionFile; bool m_bBadFileOpen; - + std::vector m_vecpActiveReconstructors; + wxCriticalSection m_criticalSection; + public: virtual bool OnSaveDocument (const wxString& filename); virtual bool OnOpenDocument (const wxString& filename); @@ -104,10 +108,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; } @@ -120,6 +121,8 @@ public: ProjectionFileView* getView() const; bool getBadFileOpen() const { return m_bBadFileOpen; } void setBadFileOpen() { m_bBadFileOpen = true; } + void addReconstructor (ThreadedReconstructor* pRecon); + void removeReconstructor (ThreadedReconstructor* pRecon); }; @@ -218,4 +221,45 @@ class TextFileDocument: public wxDocument }; +#if wxUSE_GLCANVAS +#include +#include + +typedef GLfloat glTripleFloat[3]; + +class Graph3dFileDocument: public wxDocument +{ + friend 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; } +}; +#endif // wxUSE_GLCANVAS + + #endif