]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Plugins/BasicFilters/MacheteFilter.h
...
[cpPlugins.git] / lib / cpPlugins / Plugins / BasicFilters / MacheteFilter.h
1 #ifndef __CPPLUGINS__PLUGINS__MACHETEFILTER__H__
2 #define __CPPLUGINS__PLUGINS__MACHETEFILTER__H__
3
4 #include <cpPlugins/BasicFilters/cpPluginsBasicFilters_Export.h>
5 #include <cpPlugins/Interface/BaseProcessObjects.h>
6
7 #include <cpPlugins/Interface/Config.h>
8
9 #ifdef cpPlugins_Interface_QT4
10 #include <QDialog>
11 #include <QGridLayout>
12 #include <QLabel>
13 #include <QVBoxLayout>
14 #endif // cpPlugins_Interface_QT4
15
16 // Some forward declarations
17 class vtkPlaneWidget;
18
19 namespace cpPlugins
20 {
21   // Some forward declarations
22   namespace Interface
23   {
24     class Image;
25     class Mesh;
26
27   } // ecapseman
28
29   namespace BasicFilters
30   {
31 #ifdef cpPlugins_Interface_QT4
32     class MacheteFilter;
33
34     /**
35      */
36     class MacheteFilter_Dialog
37       : public QDialog
38     {
39       Q_OBJECT;
40
41     public:
42       typedef QDialog Superclass;
43
44     public:
45       MacheteFilter_Dialog(
46         QWidget* parent, MacheteFilter* filter, Qt::WindowFlags f = 0
47         );
48       virtual ~MacheteFilter_Dialog( );
49
50     public slots:
51       virtual void accept( );
52       virtual void reject( );
53
54     protected:
55       MacheteFilter* m_Filter;
56       QLabel* m_Title;
57       QGridLayout* m_MainLayout;
58       QVBoxLayout* m_ToolsLayout;
59     };
60 #endif // cpPlugins_Interface_QT4
61
62     /**
63      */
64     class cpPluginsBasicFilters_EXPORT MacheteFilter
65       : public cpPlugins::Interface::FilterObject
66     {
67       friend class MacheteFilter_Dialog;
68
69     public:
70       typedef MacheteFilter                      Self;
71       typedef cpPlugins::Interface::FilterObject Superclass;
72       typedef itk::SmartPointer< Self >          Pointer;
73       typedef itk::SmartPointer< const Self >    ConstPointer;
74
75     public:
76       itkNewMacro( Self );
77       itkTypeMacro( MacheteFilter, FilterObject );
78       cpPlugins_Id_Macro(
79         cpPlugins::BasicFilters::MacheteFilter, FilterObject
80         );
81
82     public:
83       virtual DialogResult ExecConfigurationDialog( QWidget* parent );
84
85     protected:
86       MacheteFilter( );
87       virtual ~MacheteFilter( );
88
89       virtual std::string _GenerateData( );
90
91       std::string _FromImage( cpPlugins::Interface::DataObject* image );
92       std::string _FromMesh( cpPlugins::Interface::DataObject* mesh );
93
94       template< class I >
95         inline std::string _RealImage( itk::DataObject* dobj );
96
97     private:
98       // Purposely not implemented
99       MacheteFilter( const Self& );
100       Self& operator=( const Self& );
101
102     protected:
103 #ifdef cpPlugins_Interface_QT4
104       vtkPlaneWidget*       m_PlaneWidget;
105       MacheteFilter_Dialog* m_Dialog;
106 #endif // cpPlugins_Interface_QT4
107     };
108
109   } // ecapseman
110
111 } // ecapseman
112
113 #endif // __CPPLUGINS__PLUGINS__MACHETEFILTER__H__
114
115 // eof - $RCSfile$