]> Creatis software - bbtk.git/blob - packages/vtk/src/bbvtkImagePlanes.h
*** empty log message ***
[bbtk.git] / packages / vtk / src / bbvtkImagePlanes.h
1 /*=========================================================================
2                                                                                 
3   Program:   bbtk
4   Module:    $RCSfile: bbvtkImagePlanes.h,v $
5   Language:  C++
6   Date:      $Date: 2008/05/09 10:39:47 $
7   Version:   $Revision: 1.4 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*//**
18  * \brief Short description in one line
19  * 
20  * Long description which 
21  * can span multiple lines
22  */
23 /**
24  * \file 
25  * \brief Pattern for the definition of a new type of Node (header)
26  */
27 /**
28  * \class bbtk::NodePatern 
29  * \brief Pattern for the definition of a new type of Node 
30  */
31
32
33 #ifdef _USE_VTK_
34
35
36 #ifndef __bbvtkImagePlanes_h_INCLUDED__
37 #define __bbvtkImagePlanes_h_INCLUDED__
38
39
40 #include "bbtkAtomicBlackBox.h"
41
42 #include "vtkImageData.h"
43 //#include "vtkOutlineFilter.h"
44 //#include "vtkPolyDataMapper.h"
45 //#include "vtkActor.h"
46 #include "vtkImagePlaneWidget.h"
47 #include "vtkCellPicker.h"
48 //#include "vtkProperty.h"
49
50 //#include "vtkRenderer.h"
51 //#include "vtkCamera.h"
52
53 namespace bbvtk
54 {
55
56
57   
58   class /*BBTK_EXPORT*/ ImagePlanes : public bbtk::AtomicBlackBox
59   { 
60   public:
61     BBTK_BLACK_BOX_INTERFACE(ImagePlanes,bbtk::AtomicBlackBox);
62     //    BBTK_DECLARE_INPUT(Contour,int);
63     BBTK_DECLARE_INPUT(In,vtkImageData *);
64     BBTK_DECLARE_OUTPUT(PlaneX,vtkImagePlaneWidget*);
65     BBTK_DECLARE_OUTPUT(PlaneY,vtkImagePlaneWidget*);
66     BBTK_DECLARE_OUTPUT(PlaneZ,vtkImagePlaneWidget*);
67     BBTK_PROCESS(Process);
68     void Process();
69     
70   protected:
71     virtual void bbUserConstructor();
72     virtual void bbUserCopyConstructor();
73     virtual void bbUserDestructor();
74     void Init();
75   private:
76     vtkImagePlaneWidget* planeWidgetX;
77     vtkImagePlaneWidget* planeWidgetY;
78     vtkImagePlaneWidget* planeWidgetZ;
79   };
80    
81   //=================================================================
82   // UserBlackBox description
83   BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImagePlanes,bbtk::AtomicBlackBox);
84   BBTK_NAME("ImagePlanes");
85   BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
86   BBTK_DESCRIPTION("Creates three 3D planes with the input image mapped onto with which the user can interact. The output vtkImagePlaneWidget objects are to be inserted into a 3D scene (e.g. a Viewer3D)");
87   BBTK_CATEGORY("3D object creator");
88   BBTK_INPUT(ImagePlanes,In,"Input Image",vtkImageData *,"");
89   BBTK_OUTPUT(ImagePlanes,PlaneX,"The image plane in X direction",vtkImagePlaneWidget*,"");
90   BBTK_OUTPUT(ImagePlanes,PlaneY,"The image plane in Y direction",vtkImagePlaneWidget*,"");
91   BBTK_OUTPUT(ImagePlanes,PlaneZ,"The image plane in Z direction",vtkImagePlaneWidget*,"");
92   BBTK_END_DESCRIBE_BLACK_BOX(ImagePlanes);
93   //=================================================================
94
95
96
97
98
99 }//namespace bbvtk
100
101 #endif  //__bbtvtkImagePlanes_h__
102
103 #endif //_USE_VTK_
104