]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/BaseProcessObjects.h
687a00fa6a80a399209699390277c09315a0b404
[cpPlugins.git] / lib / cpPlugins / Interface / BaseProcessObjects.h
1 #ifndef __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__
2 #define __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__
3
4 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
5 #include <cpPlugins/Interface/ProcessObject.h>
6
7 // -------------------------------------------------------------------------
8 #define cpPlugins_Interface_Define_ProcessObject( O, S )        \
9   class cpPlugins_Interface_EXPORT O                            \
10     : public S                                                  \
11   {                                                             \
12   public:                                                       \
13     typedef O                               Self;               \
14     typedef S                               Superclass;         \
15     typedef itk::SmartPointer< Self >       Pointer;            \
16     typedef itk::SmartPointer< const Self > ConstPointer;       \
17   public:                                                       \
18     itkTypeMacro( O, S );                                       \
19   protected:                                                    \
20     O( );                                                       \
21     virtual ~O( );                                              \
22   private:                                                      \
23     O( const Self& );                                           \
24     Self& operator=( const Self& );                             \
25   }
26
27 // -------------------------------------------------------------------------
28 #define cpPlugins_Interface_Code_ProcessObject( O )     \
29   cpPlugins::Interface::O::O( ) : Superclass( )         \
30   {                                                     \
31     this->m_ClassName = "cpPlugins::Interface::#O";     \
32     this->m_ClassCategory = "#O";                       \
33   }                                                     \
34   cpPlugins::Interface::O::~O( ) { }
35
36 namespace cpPlugins
37 {
38   namespace Interface
39   {
40     cpPlugins_Interface_Define_ProcessObject( SourceObject, ProcessObject );
41     cpPlugins_Interface_Define_ProcessObject( SinkObject, ProcessObject );
42     cpPlugins_Interface_Define_ProcessObject( FilterObject, ProcessObject );
43     cpPlugins_Interface_Define_ProcessObject( ImageSource, SourceObject );
44     cpPlugins_Interface_Define_ProcessObject( MeshSource, SourceObject );
45     cpPlugins_Interface_Define_ProcessObject( ImageSink, SinkObject );
46     cpPlugins_Interface_Define_ProcessObject( MeshSink, SinkObject );
47     cpPlugins_Interface_Define_ProcessObject( ImageToImageFitler, FilterObject );
48     cpPlugins_Interface_Define_ProcessObject( ImageToMeshFitler, FilterObject );
49     cpPlugins_Interface_Define_ProcessObject( MeshToImageFitler, FilterObject );
50     cpPlugins_Interface_Define_ProcessObject( MeshToMeshFitler, FilterObject );
51
52   } // ecapseman
53
54 } // ecapseman
55
56 #endif // __CPPLUGINS__INTERFACE__BASEPROCESSOBJECTS__H__
57
58 // eof - $RCSfile$