/*========================================================================= Program: bbtk Module: $RCSfile: bbwxvtkViewer2D.h,v $ Language: C++ Date: $Date: 2008/09/10 12:01:48 $ Version: $Revision: 1.8 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*//** * \brief Short description in one line * * Long description which * can span multiple lines */ /** * \file * \brief */ /** * \class Viewer2D * \brief */ #ifdef _USE_WXWIDGETS_ #ifdef _USE_VTK_ #ifndef __bbwxvtkViewer2D_h__ #define __bbwxvtkViewer2D_h__ #include "vtkImageData.h" #include "vtkImageViewer2.h" #include "vtkImplicitPlaneWidget.h" #include "bbtkWxBlackBox.h" #include "wxVTKRenderWindowInteractor.h" namespace bbwxvtk { class Viewer2D; //-------------------------------------------------------------------------- class Viewer2DWidget : public wxPanel { public: Viewer2DWidget(Viewer2D* box, wxWindow *parent); ~Viewer2DWidget(); void UpdateView(); vtkRenderer *GetRenderer(); private: Viewer2D *mBox; vtkImageViewer2 *imageViewer; vtkImageData *backImageData; vtkImageData *mDefaultImage; wxVTKRenderWindowInteractor *wxvtkrenderwindowinteractor; bool mUpdateCamera; vtkImplicitPlaneWidget * maPlane1, * maPlane2, * mbPlane1, * mbPlane2; }; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ class /*BBTK_EXPORT*/ Viewer2D : public bbtk::WxBlackBox { BBTK_BLACK_BOX_INTERFACE(Viewer2D,bbtk::WxBlackBox); BBTK_DECLARE_INPUT(Slice,int); BBTK_DECLARE_INPUT(Orientation,int); BBTK_DECLARE_INPUT(In,vtkImageData *); BBTK_DECLARE_OUTPUT(Out,int); BBTK_DECLARE_OUTPUT(Renderer,vtkRenderer*); BBTK_PROCESS(Process); void Process(); BBTK_CREATE_WIDGET(CreateWidget); void CreateWidget(); void bbUserOnShow(); void bbUserConstructor(); }; //================================================================= // UserBlackBox description BBTK_BEGIN_DESCRIBE_BLACK_BOX(Viewer2D,bbtk::WxBlackBox); BBTK_NAME("Viewer2D"); BBTK_AUTHOR("eduardo.davila@creatis.insa-lyon.fr"); BBTK_DESCRIPTION("2D Viewer widget (vtk)"); BBTK_CATEGORY("viewer"); BBTK_INPUT(Viewer2D,Slice,"Initial Slice number",int,""); BBTK_INPUT(Viewer2D,Orientation,"Slicing orientation : 0:yz / 1:xz / 2:xy",int,""); BBTK_INPUT(Viewer2D,In,"Input Image",vtkImageData *,""); BBTK_OUTPUT(Viewer2D,Out,"Current Slice number",int,""); BBTK_OUTPUT(Viewer2D,Renderer,"vtk Renderer",vtkRenderer*,""); BBTK_END_DESCRIBE_BLACK_BOX(Viewer2D); //================================================================= }//namespace bbwxvtk #endif //__bbwxvtkViewer2D_h__ #endif //_USE_VTK_ #endif //_USE_WXWIDGETS_