]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbmaracasvisuShowNPoints.h
bbmaracasvisuShowNPoints.h
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuShowNPoints.h
index 814466f92e3dac7339690d4c2bed37d0688fe488..a203d1f9d03353c46ab7362c13ab1dd95351ecec 100644 (file)
@@ -7,6 +7,7 @@
 #include "vtkActor.h"
 #include "vtkImageData.h"
 #include "vtkRenderer.h"
+#include "vtkTextActor3D.h"
 
 namespace bbcreaMaracasVisu
 {
@@ -17,33 +18,50 @@ namespace bbcreaMaracasVisu
   class WidgetShowNPoints : public wxPanel
   {
   public:
-       WidgetShowNPoints( wxWindow *parent, vtkRenderer *renderer, ShowNPoints *box);
-    ~WidgetShowNPoints(); 
-       void OnAddPoint(wxCommandEvent &event);   
-       void OnErasePoint(wxCommandEvent &event);   
-       void OnDeleteAllPoints(wxCommandEvent &event);   
-       void SetPoint(std::vector<int> ppoint);
-       void SetColour(std::vector<double> colour);
-       void SetOpacity(double opacity);
-       void SetRadio(double radio);
-       void SetImage(vtkImageData *image);
-       std::vector<int> GetLstPointsX();
-       std::vector<int> GetLstPointsY();
-       std::vector<int> GetLstPointsZ();
+         WidgetShowNPoints( wxWindow *parent,  ShowNPoints *box);
+         ~WidgetShowNPoints(); 
+         void OnAddPoint(wxCommandEvent &event);   
+         void OnRenamePoint(wxCommandEvent& event);
+         void OnErasePoint(wxCommandEvent& event);
+         void OnEraseLastPoint(wxCommandEvent &event);   
+         void OnDeleteAllPoints(wxCommandEvent &event);   
+         void OnSavePoints(wxCommandEvent &event);   
+         void OnLoadPoints(wxCommandEvent &event);   
+         
+         void SetPoint(std::vector<int> ppoint);
+         void SetColour(std::vector<double> colour);
+         void SetOpacity(double opacity);
+         void SetRadio(double radio);
+         void SetImage(vtkImageData *image);
+         void SetRenderer(vtkRenderer *renderer);
+         std::vector<int> GetLstPointsX();
+         std::vector<int> GetLstPointsY();
+         std::vector<int> GetLstPointsZ();
+         std::vector<std::string> GetLstLabels();
 
   private:
-       ShowNPoints                             *mbbShowNPoints;
-       vtkRenderer                             *renderer;
-       std::vector<int>                lstPointsX;
-       std::vector<int>                lstPointsY;
-       std::vector<int>                lstPointsZ;
-       std::vector<vtkActor*>  lstActors;
+         
+         std::string   CleanSpaces(std::string ss);
+         int                   GetNearestPoint();
+         void                  ErasePoint(int id);
+         void                  SetOutputBox();
+         
+         ShowNPoints                                   *mbbShowNPoints;
+         vtkRenderer                                   *renderer;
+         std::vector<int>                              lstPointsX;
+         std::vector<int>                              lstPointsY;
+         std::vector<int>                              lstPointsZ;
+         std::vector<std::string>              lstLabels;
+         std::vector<vtkProp3D*>               lstActorsSphere;
+         std::vector<vtkTextActor3D*>  lstActorsText;
 
-       std::vector<int>                mpoint;
-       vtkImageData                    *mimage;
-       std::vector<double>             mcolour;
-       double                                  mopacity;
-       double                                  mradio;
+         std::vector<int>                              mpoint;
+         vtkImageData                                  *mimage;
+         std::vector<double>                   mcolour;
+         double                                                mopacity;
+         double                                                mradio;
+         wxTextCtrl                                    *textCtrl;
+         wxStaticText                                  *txtNrPoints;
   };
 
 
@@ -53,14 +71,6 @@ class /*BBTK_EXPORT*/ ShowNPoints
    public bbtk::WxBlackBox
 {
   BBTK_BLACK_BOX_INTERFACE(ShowNPoints,bbtk::WxBlackBox);
-//==================================================================
-/// User callback called in the box contructor
-virtual void bbUserConstructor();
-/// User callback called in the box copy constructor
-virtual void bbUserCopyConstructor();
-/// User callback called in the box destructor
-virtual void bbUserDestructor();
-//==================================================================
   BBTK_DECLARE_INPUT(In, std::vector<int> );
   BBTK_DECLARE_INPUT(Renderer, vtkRenderer* );
   BBTK_DECLARE_INPUT(Image, vtkImageData* );
@@ -70,10 +80,11 @@ virtual void bbUserDestructor();
   BBTK_DECLARE_OUTPUT( lstPointsX, std::vector<int> );
   BBTK_DECLARE_OUTPUT( lstPointsY, std::vector<int> );
   BBTK_DECLARE_OUTPUT( lstPointsZ, std::vector<int> );
+  BBTK_DECLARE_OUTPUT( lstLabels,  std::vector<std::string> );
   BBTK_PROCESS(Process);
   void Process();
   BBTK_CREATE_WIDGET(CreateWidget);
-  void CreateWidget();
+  void CreateWidget(wxWindow*);
 
 private:
        WidgetShowNPoints *mwxwidget; 
@@ -81,19 +92,20 @@ private:
 };
 
 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ShowNPoints,bbtk::WxBlackBox);
-BBTK_NAME("ShowNPoints");
-BBTK_AUTHOR("Eduardo DAVILA");
-BBTK_DESCRIPTION("widget that shows N moints in 3D (vtkActors)");
-BBTK_CATEGORY("widgetVtk");
-BBTK_INPUT(ShowNPoints,In,"One Point",std::vector<int>,"");
-BBTK_INPUT(ShowNPoints,Renderer,"Renderer",vtkRenderer*,"");
-BBTK_INPUT(ShowNPoints,Image,"vktkImageData",vtkImageData*,"");
-BBTK_INPUT(ShowNPoints,Colour,"Colour of the actor",std::vector<double>,"colour");
-BBTK_INPUT(ShowNPoints,Opacity,"Opacity of the actor",double,"");
-BBTK_INPUT(ShowNPoints,Radio,"Radio of the spheres",double,"");
-BBTK_OUTPUT(ShowNPoints , lstPointsX , " list of points X ", std::vector<int> ,"");
-BBTK_OUTPUT(ShowNPoints , lstPointsY , " list of points Y ", std::vector<int> ,"");
-BBTK_OUTPUT(ShowNPoints , lstPointsZ , " list of points Z ", std::vector<int> ,"");
+  BBTK_NAME("ShowNPoints");
+  BBTK_AUTHOR("Eduardo DAVILA");
+  BBTK_DESCRIPTION("widget that shows N moints in 3D (vtkActors)");
+  BBTK_CATEGORY("widgetVtk");
+  BBTK_INPUT(ShowNPoints,In,"One Point",std::vector<int>,"");
+  BBTK_INPUT(ShowNPoints,Renderer,"Renderer",vtkRenderer*,"");
+  BBTK_INPUT(ShowNPoints,Image,"vktkImageData",vtkImageData*,"");
+  BBTK_INPUT(ShowNPoints,Colour,"Colour of the actor",std::vector<double>,"colour");
+  BBTK_INPUT(ShowNPoints,Opacity,"Opacity of the actor",double,"");
+  BBTK_INPUT(ShowNPoints,Radio,"Radio of the spheres",double,"");
+  BBTK_OUTPUT(ShowNPoints , lstPointsX , " list of points X ", std::vector<int> ,"");
+  BBTK_OUTPUT(ShowNPoints , lstPointsY , " list of points Y ", std::vector<int> ,"");
+  BBTK_OUTPUT(ShowNPoints , lstPointsZ , " list of points Z ", std::vector<int> ,"");
+  BBTK_OUTPUT(ShowNPoints , lstLabels , " list of labels ", std::vector<std::string> ,"");
 BBTK_END_DESCRIBE_BLACK_BOX(ShowNPoints);
 }
 // EO namespace bbcreaMaracasVisu