X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FImageMPR%2FImageMPR.h;h=e11ec5ddc71ca6261548cbbd880f423f8c926bb5;hb=31e4cf1f3580efa059d3ffad14ba6a15d2372f5c;hp=e690a51640dc40a634a9c99fe7c8034b7492e0c8;hpb=4c644edb0ddb4adcf7bbecc8fb2316723df15825;p=cpPlugins.git diff --git a/appli/ImageMPR/ImageMPR.h b/appli/ImageMPR/ImageMPR.h index e690a51..e11ec5d 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 @@ -110,72 +108,119 @@ namespace Ui // ------------------------------------------------------------------------- /** */ - - - class ImageMPR - : public QMainWindow + : public QMainWindow, + public cpPlugins::Interface::BaseApplication { Q_OBJECT; public: - // 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 ImageMPR Self; + typedef QMainWindow Superclass; typedef cpExtensions::Visualization::MPRObjects TMPRObjects; + typedef cpPlugins::Interface::Plugins TPlugins; + typedef cpPlugins::Interface::Image TImage; + typedef cpPlugins::Interface::Mesh TMesh; + + // 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; + */ public: explicit ImageMPR( QWidget* parent = 0 ); virtual ~ImageMPR( ); + virtual void UpdateActualFilter( ); + + /* TODO + protected: + inline void _Block( ) + { + QApplication::setOverrideCursor( Qt::WaitCursor ); + this->setEnabled( false ); + } + inline void _Unblock( ) + { + QApplication::restoreOverrideCursor( ); + this->setEnabled( true ); + } + */ + protected: - bool _LoadPlugins( const std::string& filename ); - std::string _LoadImage( TPluginImage::Pointer& image ); - std::string _ConfigureMeshActors( ); + void _AssociatePluginsToMenu( ); + /* + bool _LoadPlugins( const std::string& filename ); + std::string _LoadImage( TPluginImage::Pointer& image ); + std::string _ConfigureMeshActors( ); + */ private slots: - void _triggered_actionOpenPlugins( ); - void _triggered_actionOpenInputImage( ); - void _triggered_actionOpenSegmentation( ); - void _triggered_actionOpenInputPolyData( ); - void _triggered_actionImageToImage( ); - void _triggered_actionImageToMesh( ); - void _triggered_actionUndo(); - void _triggered_actionRedo(); + void _aOpenImage( ); + void _aOpenDICOMSeries( ); + void _aOpenSegmentation( ); + void _aOpenPolyData( ); + void _aSaveImage( ); + void _aSaveSegmentation( ); + void _aSavePolyData( ); + void _aUndo( ); + void _aRedo( ); + void _aLoadPlugins( ); + void _aShowPlugins( ); + + void _execPlugin( ); + private: Ui::ImageMPR* m_UI; + TPlugins m_Plugins; + std::string m_ActiveFilterMainInput; - // 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; + // Objects + /* + typedef std::pair< std::string, TPlugins::TDataObject::Pointer > TTreeNode; + typedef std::map< std::string, TTreeNode > TTree; + TTree m_Objects; - // 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; + // Active filter (for modal configuration) + TPlugins::TProcessObject::Pointer m_ActiveFilter; + */ - // Memento stuff - unsigned long m_state; + // 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; + */ /* TODO vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;