X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbmaracasvisuShowNPoints.h;h=f047ae4314b69ccb6a4193b77a79bd2dcb3b33c5;hb=d0c09a70008646305df0937f47fd7d5930636a67;hp=8a2feec1f234fa1eb6c3f44fd86144b4dbad06e2;hpb=2fcae0362dddfd613ec085c6b48da49e721d0021;p=creaMaracasVisu.git diff --git a/bbtk/src/bbmaracasvisuShowNPoints.h b/bbtk/src/bbmaracasvisuShowNPoints.h index 8a2feec..f047ae4 100644 --- a/bbtk/src/bbmaracasvisuShowNPoints.h +++ b/bbtk/src/bbmaracasvisuShowNPoints.h @@ -5,8 +5,10 @@ #include "vtkActor.h" +#include "vtkSphereSource.h" #include "vtkImageData.h" #include "vtkRenderer.h" +#include "vtkTextActor3D.h" namespace bbcreaMaracasVisu { @@ -20,10 +22,16 @@ namespace bbcreaMaracasVisu WidgetShowNPoints( wxWindow *parent, ShowNPoints *box); ~WidgetShowNPoints(); void OnAddPoint(wxCommandEvent &event); - void ErasePoint(int id); + void OnSetPoint(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 UpdatePoints(wxCommandEvent &event); + + void RefreshPoint(int id); void SetPoint(std::vector ppoint); void SetColour(std::vector colour); @@ -34,25 +42,42 @@ namespace bbcreaMaracasVisu std::vector GetLstPointsX(); std::vector GetLstPointsY(); std::vector GetLstPointsZ(); + std::vector GetLstLabels(); + void AddPoint(int x, int y, int z, std::string label); + private: - ShowNPoints *mbbShowNPoints; - vtkRenderer *renderer; - std::vector lstPointsX; - std::vector lstPointsY; - std::vector lstPointsZ; - std::vector lstActorsSphere; - std::vector lstActorsText; - std::vector mpoint; - vtkImageData *mimage; - std::vector mcolour; - double mopacity; - double mradio; - wxTextCtrl *textCtrl; - }; + std::string CleanSpaces(std::string ss); + int GetNearestPoint(); + int IdInsidePoint(); + void ErasePoint(int id); + void SetOutputBox(); + + ShowNPoints *mbbShowNPoints; + vtkRenderer *renderer; + std::vector lstPointsX; + std::vector lstPointsY; + std::vector lstPointsZ; + std::vector lstLabels; + std::vector lstActorsSphere;//NTU changed from prop3D to Actor + std::vector lstActorsText; + //NTU: For updating points + std::vector lstSourceSphere; + + std::vector mpoint; + vtkImageData *mimage; + std::vector mcolour; + double mopacity; + double mradio; + wxStaticText *askPointLabel; + wxTextCtrl *textCtrl; + wxStaticText *txtNrPoints; + wxSlider *sdrOpacity; + wxSlider *sdrRadio; + }; class /*BBTK_EXPORT*/ ShowNPoints : @@ -65,9 +90,11 @@ class /*BBTK_EXPORT*/ ShowNPoints BBTK_DECLARE_INPUT(Colour, std::vector ); BBTK_DECLARE_INPUT(Opacity, double ); BBTK_DECLARE_INPUT(Radio, double ); + BBTK_DECLARE_INPUT(Type, int ); BBTK_DECLARE_OUTPUT( lstPointsX, std::vector ); BBTK_DECLARE_OUTPUT( lstPointsY, std::vector ); BBTK_DECLARE_OUTPUT( lstPointsZ, std::vector ); + BBTK_DECLARE_OUTPUT( lstLabels, std::vector ); BBTK_PROCESS(Process); void Process(); BBTK_CREATE_WIDGET(CreateWidget); @@ -75,27 +102,27 @@ class /*BBTK_EXPORT*/ ShowNPoints private: WidgetShowNPoints *mwxwidget; - }; 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,""); -BBTK_INPUT(ShowNPoints,Renderer,"Renderer",vtkRenderer*,""); -BBTK_INPUT(ShowNPoints,Image,"vktkImageData",vtkImageData*,""); -BBTK_INPUT(ShowNPoints,Colour,"Colour of the actor",std::vector,"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 ,""); -BBTK_OUTPUT(ShowNPoints , lstPointsY , " list of points Y ", std::vector ,""); -BBTK_OUTPUT(ShowNPoints , lstPointsZ , " list of points Z ", std::vector ,""); + 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,""); + BBTK_INPUT(ShowNPoints,Renderer,"Renderer",vtkRenderer*,""); + BBTK_INPUT(ShowNPoints,Image,"vktkImageData",vtkImageData*,""); + BBTK_INPUT(ShowNPoints,Colour,"Colour of the actor",std::vector,"colour"); + BBTK_INPUT(ShowNPoints,Opacity,"Opacity of the actor",double,""); + BBTK_INPUT(ShowNPoints,Radio,"Radio of the spheres",double,""); + BBTK_INPUT(ShowNPoints,Type,"Type of the widget. 0(default): N-points, 1:Just one point",int,""); + BBTK_OUTPUT(ShowNPoints , lstPointsX , " list of points X ", std::vector ,""); + BBTK_OUTPUT(ShowNPoints , lstPointsY , " list of points Y ", std::vector ,""); + BBTK_OUTPUT(ShowNPoints , lstPointsZ , " list of points Z ", std::vector ,""); + BBTK_OUTPUT(ShowNPoints , lstLabels , " list of labels ", std::vector ,""); BBTK_END_DESCRIBE_BLACK_BOX(ShowNPoints); } // EO namespace bbcreaMaracasVisu #endif // __bbcreaMaracasVisuShowNPoints_h_INCLUDED__ #endif // _USE_WXWIDGETS_ -