]> Creatis software - cpPlugins.git/blob - appli/ImageMPR/ImageMPR.h
...
[cpPlugins.git] / appli / ImageMPR / ImageMPR.h
1 #ifndef __IMAGEMPR__H__
2 #define __IMAGEMPR__H__
3
4 // Standard stuff
5 #include <map>
6 #include <set>
7
8 // Qt stuff
9 #include <QMainWindow>
10
11 // vtk stuff
12 #include <vtkSmartPointer.h>
13 #include <cpExtensions/Visualization/MPRObjects.h>
14
15 // Plugins interface
16 #include <cpPlugins/Interface/Interface.h>
17 #include <cpPlugins/Interface/ProcessObject.h>
18 #include <cpPlugins/Interface/Image.h>
19 #include <cpPlugins/Interface/Mesh.h>
20
21 // -------------------------------------------------------------------------
22 namespace Ui
23 {
24   class ImageMPR;
25 }
26
27 // -------------------------------------------------------------------------
28 /**
29  */
30 class ImageMPR
31   : public QMainWindow
32 {
33   Q_OBJECT;
34
35 public:
36   // Plugins types
37   typedef cpPlugins::Interface::Interface     TPluginsInterface;
38   typedef cpPlugins::Interface::Object        TPluginObject;
39   typedef cpPlugins::Interface::DataObject    TPluginData;
40   typedef cpPlugins::Interface::Image         TPluginImage;
41   typedef cpPlugins::Interface::Mesh          TPluginMesh;
42   typedef cpPlugins::Interface::ProcessObject TPluginFilter;
43   typedef cpPlugins::Interface::Parameters    TParameters;
44
45   typedef std::set< std::string > TStringContainer;
46   typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
47
48 public:
49   explicit ImageMPR( QWidget* parent = 0 );
50   virtual ~ImageMPR( );
51
52 protected:
53   bool _LoadPlugins( const std::string& filename );
54
55 private slots:
56   void _triggered_actionOpenPlugins( );
57   void _triggered_actionOpenInputImage( );
58   void _triggered_actionOpenInputPolyData( );
59   void _triggered_actionImageToImage( );
60   void _triggered_actionImageToMesh( );
61
62 private:
63   Ui::ImageMPR* m_UI;
64
65   // Plugins objects
66   TPluginsInterface m_Plugins;
67
68   // Needed object from plugins
69   std::string m_ImageReaderClass;
70   std::string m_ImageWriterClass;
71   std::string m_MeshReaderClass;
72   std::string m_MeshWriterClass;
73   TStringContainer m_ImageToImageFilters;
74   TStringContainer m_ImageToMeshFilters;
75
76   // Real data
77   TPluginImage::Pointer m_InputImage;
78   TPluginMesh::Pointer  m_InputMesh;
79
80   // Visualization stuff
81   vtkSmartPointer< TMPRObjects > m_MPRObjects;
82
83   /* TODO
84      vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;
85   */
86 };
87
88 #endif // __IMAGEMPR__H__
89
90 // eof - $RCSfile$