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