2 #ifndef __bbcreaMaracasVisuViewerNV_h_INCLUDED__
3 #define __bbcreaMaracasVisuViewerNV_h_INCLUDED__
4 #include "bbtkWxBlackBox.h"
6 #include "vtkImageData.h"
7 #include "vtkRenderer.h"
9 #include "wxVtkBaseView.h"
10 #include "widgets/wxMPRWidget.h"
11 #include "widgets/wxMaracas_ViewerWidget.h"
12 #include "widgets/wxMaracas_N_ViewersWidget.h"
13 #include "vtkImagePlaneWidget.h"
15 namespace bbcreaMaracasVisu
18 class bbwxMaracas_N_ViewersWidget : public wxMaracas_N_ViewersWidget
21 bbwxMaracas_N_ViewersWidget(ViewerNV* box,wxWindow *parent, vtkImageData* imagedata=NULL, std::vector<int> *nTypeView=NULL);
22 ~bbwxMaracas_N_ViewersWidget();
24 //if the MPR had generated the refresh event
25 void OnRefreshView(wxCommandEvent &event);
26 void OnDClickLeft(wxCommandEvent &event);
28 ViewerNV *mbbViewerNV;
29 DECLARE_EVENT_TABLE( );
32 //-------------------------------------------------------------------
33 //-------------------------------------------------------------------
34 //-------------------------------------------------------------------
36 class /*BBTK_EXPORT*/ ViewerNV
38 public bbtk::WxBlackBox
40 BBTK_BLACK_BOX_INTERFACE(ViewerNV,bbtk::WxBlackBox);
41 BBTK_DECLARE_INPUT(Title,std::string);
42 BBTK_DECLARE_INPUT(In, vtkImageData *);
43 BBTK_DECLARE_INPUT(nTypeView, std::vector<int> );
44 BBTK_DECLARE_INPUT(ColorFunction, vtkColorTransferFunction* );
45 BBTK_DECLARE_INPUT(WindowLevel, int );
46 BBTK_DECLARE_INPUT(ColorLevel, int );
47 BBTK_DECLARE_INPUT(Obs1, vtkInteractorObserver *);
48 BBTK_DECLARE_INPUT(Obs2, vtkInteractorObserver *);
49 BBTK_DECLARE_INPUT(Obs3, vtkInteractorObserver *);
50 BBTK_DECLARE_INPUT(Obs4, vtkInteractorObserver *);
51 BBTK_DECLARE_INPUT(Obs5, vtkInteractorObserver *);
53 BBTK_DECLARE_OUTPUT(wxVtkBaseView1,wxVtkBaseView*);
54 BBTK_DECLARE_OUTPUT(wxVtkBaseView2,wxVtkBaseView*);
55 BBTK_DECLARE_OUTPUT(wxVtkBaseView3,wxVtkBaseView*);
56 BBTK_DECLARE_OUTPUT(wxVtkBaseView4,wxVtkBaseView*);
57 BBTK_DECLARE_OUTPUT(Renderer1,vtkRenderer*);
58 BBTK_DECLARE_OUTPUT(Renderer2,vtkRenderer*);
59 BBTK_DECLARE_OUTPUT(Renderer3,vtkRenderer*);
60 BBTK_DECLARE_OUTPUT(Renderer4,vtkRenderer*);
61 BBTK_DECLARE_OUTPUT(Interactor1,vtkRenderWindowInteractor*);
62 BBTK_DECLARE_OUTPUT(Point,std::vector<int>);
64 BBTK_PROCESS(Process);
66 BBTK_CREATE_WIDGET(CreateWidget);
67 void CreateWidget(wxWindow* parent);
69 std::vector<int> point;
73 vtkImageData* currentimg;
74 std::vector<int> currenttype;
75 wxMaracas_N_ViewersWidget *mwxwidget;
77 bool compareVectors(std::vector<int> type,std::vector<int> currenttype);
78 void updateObservers();
81 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ViewerNV,bbtk::WxBlackBox);
82 BBTK_NAME("ViewerNV");
83 BBTK_AUTHOR("eduardo.davila [at] creatis.insa-lyon.fr");
84 BBTK_DESCRIPTION("Viewer : N view configuration 2D and 3D");
85 BBTK_CATEGORY("viewer");
86 BBTK_INPUT(ViewerNV,Title,"Title prepended to the text",std::string,"");
87 BBTK_INPUT(ViewerNV,In,"Input image",vtkImageData*,"");
88 BBTK_INPUT(ViewerNV,nTypeView,"vector of viewer types (default 5 0 1 3 ): -1=Z_2DwithOutAxis 0=Z_2D 1=X_2D 2=Y_2D 3=Plane 4=Sphere 5=3D 6=3Dplane 7=3D_empty",std::vector<int>,"");
89 BBTK_INPUT(ViewerNV,ColorFunction,"Optional: set a different color for the viewers 2D",vtkColorTransferFunction*,"");
90 BBTK_INPUT(ViewerNV,WindowLevel,"Optional: set a different Window level by using an other widget",int,"");
91 BBTK_INPUT(ViewerNV,ColorLevel,"Optional: set a different Color level by using an other widget",int,"");
92 BBTK_INPUT(ViewerNV,Obs1,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
93 BBTK_INPUT(ViewerNV,Obs2,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
94 BBTK_INPUT(ViewerNV,Obs3,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
95 BBTK_INPUT(ViewerNV,Obs4,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
96 BBTK_INPUT(ViewerNV,Obs5,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
98 BBTK_OUTPUT(ViewerNV,wxVtkBaseView1,"wxVtkBaseView 1",wxVtkBaseView *,"");
99 BBTK_OUTPUT(ViewerNV,wxVtkBaseView2,"wxVtkBaseView 2",wxVtkBaseView *,"");
100 BBTK_OUTPUT(ViewerNV,wxVtkBaseView3,"wxVtkBaseView 3",wxVtkBaseView *,"");
101 BBTK_OUTPUT(ViewerNV,wxVtkBaseView4,"wxVtkBaseView 4",wxVtkBaseView *,"");
102 BBTK_OUTPUT(ViewerNV,Renderer1,"Renderer 1",vtkRenderer *,"");
103 BBTK_OUTPUT(ViewerNV,Renderer2,"Renderer 2",vtkRenderer *,"");
104 BBTK_OUTPUT(ViewerNV,Renderer3,"Renderer 3",vtkRenderer *,"");
105 BBTK_OUTPUT(ViewerNV,Renderer4,"Renderer 4",vtkRenderer *,"");
106 BBTK_OUTPUT(ViewerNV,Interactor1,"Interactor1",vtkRenderWindowInteractor *,"");
107 BBTK_OUTPUT(ViewerNV,Point,"Axis point",std::vector<int>,"");
109 BBTK_END_DESCRIBE_BLACK_BOX(ViewerNV);
111 // EO namespace bbcreaMaracasVisu
113 #endif // __bbcreaMaracasVisuViewerNV_h_INCLUDED__
114 #endif // _USE_WXWIDGETS_