#ifdef _USE_WXWIDGETS_ #ifndef __bbcreaMaracasVisuShowNPoints_h_INCLUDED__ #define __bbcreaMaracasVisuShowNPoints_h_INCLUDED__ #include "bbtkWxBlackBox.h" #include "vtkActor.h" #include "vtkSphereSource.h" #include "vtkImageData.h" #include "vtkRenderer.h" #include "vtkTextActor3D.h" namespace bbcreaMaracasVisu { class ShowNPoints; //-------------------------------------------------------------------------- class WidgetShowNPoints : public wxPanel { public: 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 UpdatePoints(wxCommandEvent &event); void SetPoint(std::vector ppoint); void SetColour(std::vector colour); void SetOpacity(double opacity); void SetRadio(double radio); void SetImage(vtkImageData *image); void SetRenderer(vtkRenderer *renderer); std::vector GetLstPointsX(); std::vector GetLstPointsY(); std::vector GetLstPointsZ(); std::vector GetLstLabels(); private: void AddPoint(int x, int y, int z, std::string label); std::string CleanSpaces(std::string ss); int GetNearestPoint(); 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; wxTextCtrl *textCtrl; wxStaticText *txtNrPoints; wxSlider *sdrOpacity; wxSlider *sdrRadio; }; class /*BBTK_EXPORT*/ ShowNPoints : public bbtk::WxBlackBox { BBTK_BLACK_BOX_INTERFACE(ShowNPoints,bbtk::WxBlackBox); BBTK_DECLARE_INPUT(In, std::vector ); BBTK_DECLARE_INPUT(Renderer, vtkRenderer* ); BBTK_DECLARE_INPUT(Image, vtkImageData* ); BBTK_DECLARE_INPUT(Colour, std::vector ); BBTK_DECLARE_INPUT(Opacity, double ); BBTK_DECLARE_INPUT(Radio, double ); 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); void CreateWidget(wxWindow*); 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_OUTPUT(ShowNPoints , lstLabels , " list of labels ", std::vector ,""); BBTK_END_DESCRIBE_BLACK_BOX(ShowNPoints); } // EO namespace bbcreaMaracasVisu #endif // __bbcreaMaracasVisuShowNPoints_h_INCLUDED__ #endif // _USE_WXWIDGETS_