]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbmaracasvisuViewerNV.h
*** empty log message ***
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuViewerNV.h
index c3de8c25257ae924b58aefce9b9d10a855c0fe59..5407a000de6057c7bedf2a2396a96a0aefb463c6 100644 (file)
@@ -3,7 +3,6 @@
 #define __bbcreaMaracasVisuViewerNV_h_INCLUDED__
 #include "bbtkWxBlackBox.h"
 
-
 #include "vtkImageData.h"
 #include "vtkRenderer.h"
 
 #include "widgets/wxMPRWidget.h"
 #include "widgets/wxMaracas_ViewerWidget.h"
 #include "widgets/wxMaracas_N_ViewersWidget.h"
+#include "vtkImagePlaneWidget.h"
 
 namespace bbcreaMaracasVisu
 {
-
-
-
   class ViewerNV;
   class bbwxMaracas_N_ViewersWidget : public wxMaracas_N_ViewersWidget
   {
        public:
-               bbwxMaracas_N_ViewersWidget(ViewerNV* box,wxWindow *parent, vtkImageData* imagedata, std::vector<int> *nTypeView);
+               bbwxMaracas_N_ViewersWidget(ViewerNV* box,wxWindow *parent, vtkImageData* imagedata=NULL, std::vector<int> *nTypeView=NULL);
                ~bbwxMaracas_N_ViewersWidget();
-           
+
                //if the MPR had generated the refresh event
-               void OnRefreshView(wxCommandEvent & event);
-               void OnDClickLeft(wxCommandEvent & event);              
+               void OnRefreshView(wxCommandEvent &event);
+               void OnDClickLeft(wxCommandEvent &event);
        private:
                ViewerNV                        *mbbViewerNV;
-       DECLARE_EVENT_TABLE( );     
+       DECLARE_EVENT_TABLE( );
   };
 
-
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
 
-
 class /*BBTK_EXPORT*/ ViewerNV
- : 
+ :
    public bbtk::WxBlackBox
 {
   BBTK_BLACK_BOX_INTERFACE(ViewerNV,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(Title,std::string);
-      BBTK_DECLARE_INPUT(In, vtkImageData *);
-         BBTK_DECLARE_INPUT(nTypeView, std::vector<int> );
-      BBTK_DECLARE_OUTPUT(wxVtkBaseView1,wxVtkBaseView*);
-      BBTK_DECLARE_OUTPUT(wxVtkBaseView2,wxVtkBaseView*);
-      BBTK_DECLARE_OUTPUT(wxVtkBaseView3,wxVtkBaseView*);
-      BBTK_DECLARE_OUTPUT(wxVtkBaseView4,wxVtkBaseView*);
-      BBTK_DECLARE_OUTPUT(Renderer1,vtkRenderer*);
-      BBTK_DECLARE_OUTPUT(Renderer2,vtkRenderer*);
-      BBTK_DECLARE_OUTPUT(Renderer3,vtkRenderer*);
-      BBTK_DECLARE_OUTPUT(Renderer4,vtkRenderer*);
-      BBTK_DECLARE_OUTPUT(Point,std::vector<int>);
+  BBTK_DECLARE_INPUT(In, vtkImageData *);
+  BBTK_DECLARE_INPUT(nTypeView, std::vector<int> );
+  BBTK_DECLARE_INPUT(ColorFunction, vtkColorTransferFunction* );
+  BBTK_DECLARE_INPUT(WindowLevel, int );
+  BBTK_DECLARE_INPUT(ColorLevel, int );
+  BBTK_DECLARE_INPUT(Obs1, vtkInteractorObserver *);
+  BBTK_DECLARE_INPUT(Obs2, vtkInteractorObserver *);
+  BBTK_DECLARE_INPUT(Obs3, vtkInteractorObserver *);
+  BBTK_DECLARE_INPUT(Obs4, vtkInteractorObserver *);
+  BBTK_DECLARE_INPUT(Obs5, vtkInteractorObserver *);
+
+  BBTK_DECLARE_OUTPUT(wxVtkBaseView1,wxVtkBaseView*);
+  BBTK_DECLARE_OUTPUT(wxVtkBaseView2,wxVtkBaseView*);
+  BBTK_DECLARE_OUTPUT(wxVtkBaseView3,wxVtkBaseView*);
+  BBTK_DECLARE_OUTPUT(wxVtkBaseView4,wxVtkBaseView*);
+  BBTK_DECLARE_OUTPUT(Renderer1,vtkRenderer*);
+  BBTK_DECLARE_OUTPUT(Renderer2,vtkRenderer*);
+  BBTK_DECLARE_OUTPUT(Renderer3,vtkRenderer*);
+  BBTK_DECLARE_OUTPUT(Renderer4,vtkRenderer*);
+  BBTK_DECLARE_OUTPUT(Interactor1,vtkRenderWindowInteractor*);
+  BBTK_DECLARE_OUTPUT(Point,std::vector<int>);
+
   BBTK_PROCESS(Process);
   void Process();
   BBTK_CREATE_WIDGET(CreateWidget);
-  void CreateWidget();
+  void CreateWidget(wxWindow* parent);
 
+   std::vector<int>                    point;
 private:
+       bool    firsttime;
+
+       vtkImageData* currentimg;
+       std::vector<int>  currenttype;
        wxMaracas_N_ViewersWidget       *mwxwidget;
-       std::vector<int>                        point;
+
+       bool compareVectors(std::vector<int> type,std::vector<int> currenttype);
+       void updateObservers();
 };
 
 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ViewerNV,bbtk::WxBlackBox);
@@ -79,21 +84,31 @@ BBTK_AUTHOR("eduardo.davila [at] creatis.insa-lyon.fr");
 BBTK_DESCRIPTION("Viewer : N view configuration 2D and 3D");
   BBTK_CATEGORY("viewer");
   BBTK_INPUT(ViewerNV,Title,"Title prepended to the text",std::string,"");
-       BBTK_INPUT(ViewerNV,In,"Input image",vtkImageData*,"");
-       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 ",std::vector<int>,"");
-       BBTK_OUTPUT(ViewerNV,wxVtkBaseView1,"wxVtkBaseView 1",wxVtkBaseView  *,"");
-       BBTK_OUTPUT(ViewerNV,wxVtkBaseView2,"wxVtkBaseView 2",wxVtkBaseView  *,"");
-       BBTK_OUTPUT(ViewerNV,wxVtkBaseView3,"wxVtkBaseView 3",wxVtkBaseView  *,"");
-       BBTK_OUTPUT(ViewerNV,wxVtkBaseView4,"wxVtkBaseView 4",wxVtkBaseView  *,"");
-       BBTK_OUTPUT(ViewerNV,Renderer1,"Renderer 1",vtkRenderer *,"");
-       BBTK_OUTPUT(ViewerNV,Renderer2,"Renderer 2",vtkRenderer *,"");
-       BBTK_OUTPUT(ViewerNV,Renderer3,"Renderer 3",vtkRenderer *,"");
-       BBTK_OUTPUT(ViewerNV,Renderer4,"Renderer 4",vtkRenderer *,"");
-       BBTK_OUTPUT(ViewerNV,Point,"Axis point",std::vector<int>,"");
+  BBTK_INPUT(ViewerNV,In,"Input image",vtkImageData*,"");
+  BBTK_INPUT(ViewerNV,nTypeView,"vector of viewer types (default 5 1 2 0): -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>,"");
+  BBTK_INPUT(ViewerNV,ColorFunction,"Optional: set a different color for the viewers 2D",vtkColorTransferFunction*,"");
+  BBTK_INPUT(ViewerNV,WindowLevel,"Optional: set a different Window level by using an other widget",int,"");
+  BBTK_INPUT(ViewerNV,ColorLevel,"Optional: set a different Color level by using an other widget",int,"");
+  BBTK_INPUT(ViewerNV,Obs1,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
+  BBTK_INPUT(ViewerNV,Obs2,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
+  BBTK_INPUT(ViewerNV,Obs3,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
+  BBTK_INPUT(ViewerNV,Obs4,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
+  BBTK_INPUT(ViewerNV,Obs5,"Optional: set a different Color level by using an other widget",vtkInteractorObserver*,"");
+
+  BBTK_OUTPUT(ViewerNV,wxVtkBaseView1,"wxVtkBaseView 1",wxVtkBaseView  *,"");
+  BBTK_OUTPUT(ViewerNV,wxVtkBaseView2,"wxVtkBaseView 2",wxVtkBaseView  *,"");
+  BBTK_OUTPUT(ViewerNV,wxVtkBaseView3,"wxVtkBaseView 3",wxVtkBaseView  *,"");
+  BBTK_OUTPUT(ViewerNV,wxVtkBaseView4,"wxVtkBaseView 4",wxVtkBaseView  *,"");
+  BBTK_OUTPUT(ViewerNV,Renderer1,"Renderer 1",vtkRenderer *,"");
+  BBTK_OUTPUT(ViewerNV,Renderer2,"Renderer 2",vtkRenderer *,"");
+  BBTK_OUTPUT(ViewerNV,Renderer3,"Renderer 3",vtkRenderer *,"");
+  BBTK_OUTPUT(ViewerNV,Renderer4,"Renderer 4",vtkRenderer *,"");
+  BBTK_OUTPUT(ViewerNV,Interactor1,"Interactor1",vtkRenderWindowInteractor *,"");
+  BBTK_OUTPUT(ViewerNV,Point,"Axis point",std::vector<int>,"");
+
 BBTK_END_DESCRIBE_BLACK_BOX(ViewerNV);
 }
 // EO namespace bbcreaMaracasVisu
 
 #endif // __bbcreaMaracasVisuViewerNV_h_INCLUDED__
 #endif // _USE_WXWIDGETS_
-