]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuShowNPoints.h
46ab8b9f3a58c659e675dbf4c8aaf68554250a7f
[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,  ShowNPoints *box);
21           ~WidgetShowNPoints(); 
22           void OnAddPoint(wxCommandEvent &event);   
23           void ErasePoint(int id);
24           void OnErasePoint(wxCommandEvent& event);
25           void OnEraseLastPoint(wxCommandEvent &event);   
26           void OnDeleteAllPoints(wxCommandEvent &event);   
27           
28           void SetOutputBox();
29           void SetPoint(std::vector<int> ppoint);
30           void SetColour(std::vector<double> colour);
31           void SetOpacity(double opacity);
32           void SetRadio(double radio);
33           void SetImage(vtkImageData *image);
34           void SetRenderer(vtkRenderer *renderer);
35           std::vector<int> GetLstPointsX();
36           std::vector<int> GetLstPointsY();
37           std::vector<int> GetLstPointsZ();
38           std::vector<std::string> GetLstLabels();
39
40   private:
41         ShowNPoints                              *mbbShowNPoints;
42         vtkRenderer                              *renderer;
43         std::vector<int>                 lstPointsX;
44         std::vector<int>                 lstPointsY;
45         std::vector<int>                 lstPointsZ;
46         std::vector<std::string> lstLabels;
47         std::vector<vtkProp3D*>  lstActorsSphere;
48         std::vector<vtkProp3D*>  lstActorsText;
49
50         std::vector<int>                mpoint;
51         vtkImageData                    *mimage;
52         std::vector<double>             mcolour;
53         double                                  mopacity;
54         double                                  mradio;
55         wxTextCtrl                              *textCtrl;
56   };
57
58
59
60 class /*BBTK_EXPORT*/ ShowNPoints
61  : 
62    public bbtk::WxBlackBox
63 {
64   BBTK_BLACK_BOX_INTERFACE(ShowNPoints,bbtk::WxBlackBox);
65   BBTK_DECLARE_INPUT(In, std::vector<int> );
66   BBTK_DECLARE_INPUT(Renderer, vtkRenderer* );
67   BBTK_DECLARE_INPUT(Image, vtkImageData* );
68   BBTK_DECLARE_INPUT(Colour, std::vector<double> );
69   BBTK_DECLARE_INPUT(Opacity, double );
70   BBTK_DECLARE_INPUT(Radio, double );
71   BBTK_DECLARE_OUTPUT( lstPointsX, std::vector<int> );
72   BBTK_DECLARE_OUTPUT( lstPointsY, std::vector<int> );
73   BBTK_DECLARE_OUTPUT( lstPointsZ, std::vector<int> );
74   BBTK_DECLARE_OUTPUT( lstLabels,  std::vector<std::string> );
75   BBTK_PROCESS(Process);
76   void Process();
77   BBTK_CREATE_WIDGET(CreateWidget);
78   void CreateWidget(wxWindow*);
79
80 private:
81         WidgetShowNPoints *mwxwidget; 
82
83 };
84
85 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ShowNPoints,bbtk::WxBlackBox);
86   BBTK_NAME("ShowNPoints");
87   BBTK_AUTHOR("Eduardo DAVILA");
88   BBTK_DESCRIPTION("widget that shows N moints in 3D (vtkActors)");
89   BBTK_CATEGORY("widgetVtk");
90   BBTK_INPUT(ShowNPoints,In,"One Point",std::vector<int>,"");
91   BBTK_INPUT(ShowNPoints,Renderer,"Renderer",vtkRenderer*,"");
92   BBTK_INPUT(ShowNPoints,Image,"vktkImageData",vtkImageData*,"");
93   BBTK_INPUT(ShowNPoints,Colour,"Colour of the actor",std::vector<double>,"colour");
94   BBTK_INPUT(ShowNPoints,Opacity,"Opacity of the actor",double,"");
95   BBTK_INPUT(ShowNPoints,Radio,"Radio of the spheres",double,"");
96   BBTK_OUTPUT(ShowNPoints , lstPointsX , " list of points X ", std::vector<int> ,"");
97   BBTK_OUTPUT(ShowNPoints , lstPointsY , " list of points Y ", std::vector<int> ,"");
98   BBTK_OUTPUT(ShowNPoints , lstPointsZ , " list of points Z ", std::vector<int> ,"");
99   BBTK_OUTPUT(ShowNPoints , lstLabels , " list of labels ", std::vector<std::string> ,"");
100 BBTK_END_DESCRIBE_BLACK_BOX(ShowNPoints);
101 }
102 // EO namespace bbcreaMaracasVisu
103
104 #endif // __bbcreaMaracasVisuShowNPoints_h_INCLUDED__
105 #endif // _USE_WXWIDGETS_
106