]> Creatis software - cpPlugins.git/blobdiff - appli/ImageMPR/ImageMPR.h
...
[cpPlugins.git] / appli / ImageMPR / ImageMPR.h
index 808c0ab012407e6b11a681e46b2cd0c9428de39c..5d2ac7240ae187b93c77c4df3ae362980e7b53ae 100644 (file)
@@ -1,21 +1,20 @@
 #ifndef __IMAGEMPR__H__
 #define __IMAGEMPR__H__
 
-// Standard stuff
 #include <map>
-#include <set>
+#include <vector>
 
 // Qt stuff
+#include <QApplication>
 #include <QMainWindow>
 
 // vtk stuff
-#include <vtkRenderer.h>
 #include <vtkSmartPointer.h>
-#include <cpExtensions/Visualization/MPRActors.h>
+#include <cpExtensions/Visualization/MPRObjects.h>
 
 // Plugins interface
-#include <cpPlugins/Interface/Interface.h>
-#include <cpPlugins/Interface/ProcessObject.h>
+#include <cpPlugins/Interface/BaseApplication.h>
+#include <cpPlugins/Interface/Plugins.h>
 #include <cpPlugins/Interface/Image.h>
 #include <cpPlugins/Interface/Mesh.h>
 
@@ -25,64 +24,51 @@ namespace Ui
   class ImageMPR;
 }
 
-// -------------------------------------------------------------------------
 /**
  */
 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::Mesh          TPluginMesh;
-  typedef cpPlugins::Interface::ProcessObject TPluginFilter;
-  typedef cpPlugins::Interface::Parameters    TParameters;
-
-  typedef std::set< std::string > TStringContainer;
-  typedef cpExtensions::Visualization::MPRActors TMPRActors;
+  typedef ImageMPR    Self;
+  typedef QMainWindow Superclass;
+
+  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( );
 
+  virtual void UpdateActualFilter( );
+
 protected:
-  bool _LoadPlugins( const std::string& filename );
+  void _AssociatePluginsToMenu( );
 
 private slots:
-  void _triggered_actionOpenPlugins( );
-  void _triggered_actionOpenInputImage( );
-  void _triggered_actionOpenInputPolyData( );
-  void _triggered_actionImageToImage( );
-  void _triggered_actionImageToMesh( );
+  void _aOpenImage( );
+  void _aOpenDICOMSeries( );
+  void _aOpenSegmentation( );
+  void _aOpenPolyData( );
+  void _aSaveImage( );
+  void _aSavePolyData( );
+  void _aUndo( );
+  void _aRedo( );
+  void _aLoadPlugins( );
+  void _aShowPlugins( );
+
+  void _execPlugin( );
 
 private:
   Ui::ImageMPR* m_UI;
-
-  // 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;
-  TStringContainer m_ImageToImageFilters;
-  TStringContainer m_ImageToMeshFilters;
-
-  // Real data
-  TPluginImage::Pointer m_InputImage;
-  TPluginMesh::Pointer  m_InputMesh;
-
-  // Visualization stuff
-  vtkSmartPointer< TMPRActors >        m_MPRActors;
-  vtkSmartPointer< vtkRenderer >       m_Renderers[ 4 ];
-  vtkSmartPointer< vtkPolyDataMapper > m_InputMeshMapper;
-  vtkSmartPointer< vtkActor >          m_InputMeshActor;
+  TPlugins      m_Plugins;
+  std::string   m_ActiveFilterMainInput;
 
   /* TODO
      vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;