/*========================================================================= Program: bbtk Module: $RCSfile: bbwxvtkMIPViewer.h,v $ Language: C++ Date: $Date: 2008/03/03 13:14:27 $ Version: $Revision: 1.1 $ 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 Pattern for the definition of a new type of Node (header) */ /** * \class bbtk::NodePatern * \brief Pattern for the definition of a new type of Node */ #ifdef _USE_WXWIDGETS_ #ifdef _USE_VTK_ #ifndef __bbwxvtkMIPViewer_h_INCLUDED__ #define __bbwxvtkMIPViewer_h_INCLUDED__ #include "vtkImageData.h" #include "vtkImageViewer2.h" #include "bbtkWxBlackBox.h" #include "wxVTKRenderWindowInteractor.h" #include #include #include #include #include #include namespace bbwxvtk { class MIPViewer; //-------------------------------------------------------------------------- class MIPViewerWidget : public wxPanel { public: MIPViewerWidget(MIPViewer* box, wxWindow *parent); ~MIPViewerWidget(); void Update(); vtkRenderWindowInteractor* GetInteractor() { return mRenderWindowInteractor; } private: MIPViewer *mBox; vtkImageData *mImageData; wxVTKRenderWindowInteractor *mRenderWindowInteractor; /* vtkContourFilter* mContourFilter; vtkSmoothPolyDataFilter* mSmoothPolyDataFilter; vtkPolyDataNormals* mPolyDataNormals; vtkPolyDataMapper* mPolyDataMapper; */ vtkImageShiftScale* mCast; vtkVolumeRayCastMIPFunction* mMIP; vtkVolumeRayCastMapper* mMapper; vtkVolume* mActor; vtkCamera* mCamera; vtkRenderer* mRenderer; vtkRenderWindow* mRenderWindow; }; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ class /*BBTK_EXPORT*/ MIPViewer : public bbtk::WxBlackBox { BBTK_USER_BLACK_BOX_INTERFACE(MIPViewer,bbtk::WxBlackBox); // BBTK_DECLARE_INPUT(Contour,int); BBTK_DECLARE_INPUT(In,vtkImageData *); BBTK_DECLARE_INPUT(Shift,int); BBTK_DECLARE_INPUT(Scale,float); BBTK_DECLARE_OUTPUT(Interactor,vtkRenderWindowInteractor*); BBTK_PROCESS(Process); void Process(); BBTK_CREATE_WIDGET(CreateWidget); void CreateWidget(); }; //================================================================= // UserBlackBox description BBTK_BEGIN_DESCRIBE_BLACK_BOX(MIPViewer,bbtk::WxBlackBox); BBTK_NAME("MIPViewer"); BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr"); BBTK_DESCRIPTION("Maximum Intensity Projection (MIP) view of a 3D image"); BBTK_CATEGORY("viewer"); BBTK_INPUT(MIPViewer,Shift,"Gray scale shift",int); BBTK_INPUT(MIPViewer,Scale,"Gray scale scaling",float); BBTK_INPUT(MIPViewer,In,"Input Image",vtkImageData *); BBTK_OUTPUT(MIPViewer,Interactor,"Interactor",vtkRenderWindowInteractor *); BBTK_END_DESCRIBE_BLACK_BOX(MIPViewer); //================================================================= }//namespace bbwxvtk #endif //__bbtwxvtkMIPViewer_h__ #endif //_USE_VTK_ #endif //_USE_WXWIDGETS_