]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuShowNPoints.h
.
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuShowNPoints.h
1 #ifdef _USE_WXWIDGETS_
2 #ifndef __bbcreaMaracasVisuShowNPoints_h_INCLUDED__
3 #define __bbcreaMaracasVisuShowNPoints_h_INCLUDED__
4 #include "bbtkWxBlackBox.h"
5
6
7 #include "vtkActor.h"
8 #include "vtkImageData.h"
9 #include "vtkRenderer.h"
10
11 namespace bbcreaMaracasVisu
12 {
13
14   class ShowNPoints;
15
16   //--------------------------------------------------------------------------
17   class WidgetShowNPoints : public wxPanel
18   {
19   public:
20         WidgetShowNPoints( wxWindow *parent, vtkRenderer *renderer, ShowNPoints *box);
21     ~WidgetShowNPoints(); 
22         void OnAddPoint(wxCommandEvent &event);   
23         void OnErasePoint(wxCommandEvent &event);   
24         void OnDeleteAllPoints(wxCommandEvent &event);   
25         void SetPoint(std::vector<int> ppoint);
26         void SetColour(std::vector<double> colour);
27         void SetOpacity(double opacity);
28         void SetRadio(double radio);
29         void SetImage(vtkImageData *image);
30         std::vector<int> GetLstPointsX();
31         std::vector<int> GetLstPointsY();
32         std::vector<int> GetLstPointsZ();
33
34   private:
35         ShowNPoints                             *mbbShowNPoints;
36         vtkRenderer                             *renderer;
37         std::vector<int>                lstPointsX;
38         std::vector<int>                lstPointsY;
39         std::vector<int>                lstPointsZ;
40         std::vector<vtkActor*>  lstActors;
41
42         std::vector<int>                mpoint;
43         vtkImageData                    *mimage;
44         std::vector<double>             mcolour;
45         double                                  mopacity;
46         double                                  mradio;
47   };
48
49
50
51 class /*BBTK_EXPORT*/ ShowNPoints
52  : 
53    public bbtk::WxBlackBox
54 {
55   BBTK_BLACK_BOX_INTERFACE(ShowNPoints,bbtk::WxBlackBox);
56   BBTK_DECLARE_INPUT(In, std::vector<int> );
57   BBTK_DECLARE_INPUT(Renderer, vtkRenderer* );
58   BBTK_DECLARE_INPUT(Image, vtkImageData* );
59   BBTK_DECLARE_INPUT(Colour, std::vector<double> );
60   BBTK_DECLARE_INPUT(Opacity, double );
61   BBTK_DECLARE_INPUT(Radio, double );
62   BBTK_DECLARE_OUTPUT( lstPointsX, std::vector<int> );
63   BBTK_DECLARE_OUTPUT( lstPointsY, std::vector<int> );
64   BBTK_DECLARE_OUTPUT( lstPointsZ, std::vector<int> );
65   BBTK_PROCESS(Process);
66   void Process();
67   BBTK_CREATE_WIDGET(CreateWidget);
68   void CreateWidget(wxWindow*);
69
70 private:
71         WidgetShowNPoints *mwxwidget; 
72
73 };
74
75 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ShowNPoints,bbtk::WxBlackBox);
76 BBTK_NAME("ShowNPoints");
77 BBTK_AUTHOR("Eduardo DAVILA");
78 BBTK_DESCRIPTION("widget that shows N moints in 3D (vtkActors)");
79 BBTK_CATEGORY("widgetVtk");
80 BBTK_INPUT(ShowNPoints,In,"One Point",std::vector<int>,"");
81 BBTK_INPUT(ShowNPoints,Renderer,"Renderer",vtkRenderer*,"");
82 BBTK_INPUT(ShowNPoints,Image,"vktkImageData",vtkImageData*,"");
83 BBTK_INPUT(ShowNPoints,Colour,"Colour of the actor",std::vector<double>,"colour");
84 BBTK_INPUT(ShowNPoints,Opacity,"Opacity of the actor",double,"");
85 BBTK_INPUT(ShowNPoints,Radio,"Radio of the spheres",double,"");
86 BBTK_OUTPUT(ShowNPoints , lstPointsX , " list of points X ", std::vector<int> ,"");
87 BBTK_OUTPUT(ShowNPoints , lstPointsY , " list of points Y ", std::vector<int> ,"");
88 BBTK_OUTPUT(ShowNPoints , lstPointsZ , " list of points Z ", std::vector<int> ,"");
89 BBTK_END_DESCRIBE_BLACK_BOX(ShowNPoints);
90 }
91 // EO namespace bbcreaMaracasVisu
92
93 #endif // __bbcreaMaracasVisuShowNPoints_h_INCLUDED__
94 #endif // _USE_WXWIDGETS_
95