X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FImageMPR%2FImageMPR.h;h=5d2ac7240ae187b93c77c4df3ae362980e7b53ae;hb=7e29f3aec097ba1bff1894fed6eb1094276c5b72;hp=a89d0f9ed2c80bf625b05889eefa73fc97f718f4;hpb=2eaf38cfdcbd2cfb0cc323dad6ded6bbeb436edf;p=cpPlugins.git diff --git a/appli/ImageMPR/ImageMPR.h b/appli/ImageMPR/ImageMPR.h index a89d0f9..5d2ac72 100644 --- a/appli/ImageMPR/ImageMPR.h +++ b/appli/ImageMPR/ImageMPR.h @@ -1,9 +1,11 @@ #ifndef __IMAGEMPR__H__ #define __IMAGEMPR__H__ +#include #include // Qt stuff +#include #include // vtk stuff @@ -11,14 +13,10 @@ #include // Plugins interface -#include -#include +#include +#include #include -#include #include -#include -#include - // ------------------------------------------------------------------------- namespace Ui @@ -26,95 +24,11 @@ namespace Ui class ImageMPR; } -//========================================================================== -// Plugins types -//typedef cpPlugins::Interface::Interface TPluginsInterface; -//typedef cpPlugins::Interface::Object TPluginObject; -//typedef cpPlugins::Interface::DataObject TPluginData; -//typedef cpPlugins::Interface::Image TPluginImage; -//typedef cpPlugins::Interface::ImplicitFunction TPluginImplicitFunction; -//typedef cpPlugins::Interface::Mesh TPluginMesh; -//typedef cpPlugins::Interface::ProcessObject TPluginFilter; -//typedef cpPlugins::Interface::Parameters TParameters; -// -//typedef cpExtensions::Visualization::MPRObjects TMPRObjects; - - - - -//class MementoState -//{ -//private: -// long m_Id; -// -//public: -// -// MementoState() -// { -// m_Id = 0; -// }; -// -// MementoState(long id, TPluginImage* _img) -// { -// char * base = "state"; -// std::ostringstream oss; -// oss << id; -// std::string str = oss.str(); -// auto complement = str.c_str(); -// -// std::string fileName(base); -// fileName.append(complement); -// fileName.append(".mhd"); -// -// std::string fileNameRaw(base); -// fileNameRaw.append(complement); -// fileNameRaw.append(".raw"); -// save(fileName, fileNameRaw, _img); -// } -// -// vtkSmartPointer getMemento(long id) -// { -// char * base = "state"; -// std::ostringstream oss; -// oss << id; -// std::string str = oss.str(); -// auto complement = str.c_str(); -// -// std::string fileName(base); -// fileName.append(complement); -// fileName.append(".mhd"); -// return load(fileName); -// } -// -// void save(const std::string& filename, const std::string& filenameRaw, TPluginImage* img) { -// vtkSmartPointer writer = -// vtkSmartPointer::New(); -// writer->SetInputData(img->GetVTK< vtkImageData >()); -// writer->SetFileName(filename.c_str()); -// writer->SetRAWFileName(filenameRaw.c_str()); -// writer->Write(); -// } -// -// vtkSmartPointer load(const std::string& filename) { -// vtkSmartPointer reader = -// vtkSmartPointer::New(); -// reader->SetFileName(filename.c_str()); -// reader->Update(); -// return reader; -// } -// -//}; - -//========================================================================== - -// ------------------------------------------------------------------------- /** */ - - - class ImageMPR - : public QMainWindow + : public QMainWindow, + public cpPlugins::Interface::BaseApplication { Q_OBJECT; @@ -123,41 +37,26 @@ public: typedef QMainWindow Superclass; typedef cpExtensions::Visualization::MPRObjects TMPRObjects; - typedef TMPRObjects::TCursorCommand TCursorCommand; - typedef TMPRObjects::TMouseCommand TMouseCommand; - typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand; - typedef TMPRObjects::TKeyCommand TKeyCommand; - - // Plugins types - /* - typedef cpPlugins::Interface::Interface TPluginsInterface; - typedef cpPlugins::Interface::Object TPluginObject; - typedef cpPlugins::Interface::DataObject TPluginData; - typedef cpPlugins::Interface::Image TPluginImage; - typedef cpPlugins::Interface::ImplicitFunction TPluginImplicitFunction; - typedef cpPlugins::Interface::Mesh TPluginMesh; - typedef cpPlugins::Interface::ProcessObject TPluginFilter; - typedef cpPlugins::Interface::Parameters TParameters; - typedef cpExtensions::Visualization::MPRObjects TMPRObjects; - */ + typedef cpPlugins::Interface::Plugins TPlugins; + typedef cpPlugins::Interface::DataObject TDataObject; + typedef cpPlugins::Interface::Image TImage; + typedef cpPlugins::Interface::Mesh TMesh; public: explicit ImageMPR( QWidget* parent = 0 ); virtual ~ImageMPR( ); - /* - protected: - bool _LoadPlugins( const std::string& filename ); - std::string _LoadImage( TPluginImage::Pointer& image ); - std::string _ConfigureMeshActors( ); - */ + virtual void UpdateActualFilter( ); + +protected: + void _AssociatePluginsToMenu( ); private slots: void _aOpenImage( ); + void _aOpenDICOMSeries( ); void _aOpenSegmentation( ); void _aOpenPolyData( ); void _aSaveImage( ); - void _aSaveSegmentation( ); void _aSavePolyData( ); void _aUndo( ); void _aRedo( ); @@ -166,44 +65,10 @@ private slots: void _execPlugin( ); -protected: - // Callbacks - static void _CursorCommand( double* pos, int axis, void* data ); - private: Ui::ImageMPR* m_UI; - - // Some state flags - std::string m_ImageLoaded; - bool m_Flooding; - - // Plugins objects - /* - TPluginsInterface m_Plugins; - - // Needed object from plugins - std::string m_ImageReaderClass; - std::string m_ImageWriterClass; - std::string m_MeshReaderClass; - std::string m_MeshWriterClass; - std::string m_MeshCutterClass; - - // Real data - TPluginImage::Pointer m_Image; - TPluginImage::Pointer m_Segmentation; - TPluginMesh::Pointer m_Mesh; - - // Cutters - TPluginFilter::Pointer m_Cutters[ 3 ]; - TPluginImplicitFunction::Pointer m_Planes[ 3 ]; - - // Visualization stuff - vtkSmartPointer< TMPRObjects > m_MPRObjects; - - // Memento stuff - unsigned long m_state; - unsigned long m_max_state; - */ + TPlugins m_Plugins; + std::string m_ActiveFilterMainInput; /* TODO vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;