1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
6 #ifndef __fpa__Image__VisualDebugger__h__
7 #define __fpa__Image__VisualDebugger__h__
9 #include <fpa/Config.h>
13 #include <itkCommand.h>
15 #include <itkRGBAPixel.h>
18 #include <itkImageToVTKImageFilter.h>
22 class vtkRenderWindowInteractor;
30 template< class _TFilter >
35 typedef VisualDebugger Self;
36 typedef itk::Command Superclass;
37 typedef itk::SmartPointer< Self > Pointer;
38 typedef itk::SmartPointer< const Self > ConstPointer;
40 typedef _TFilter TFilter;
41 typedef typename TFilter::TInputImage TImage;
43 typedef itk::RGBAPixel< unsigned char > TLabel;
44 typedef itk::Image< TLabel, TImage::ImageDimension > TLabels;
46 typedef itk::ImageToVTKImageFilter< TLabels > TVTKLabels;
50 itkTypeMacro( fpa::Image::VisualDebugger, itk::Command );
52 itkGetConstObjectMacro( Labels, TLabels );
55 void SetVisualization(
56 vtkRenderer* renderer, vtkRenderWindowInteractor* iren
59 itk::Object* caller, const itk::EventObject& event
62 const itk::Object* caller, const itk::EventObject& event
65 virtual void Render( ) = 0;
66 virtual void StartVisualization( ) = 0;
67 virtual void EndVisualization( ) = 0;
71 virtual ~VisualDebugger( );
74 // Purposely not implemented.
75 VisualDebugger( const Self& other );
76 Self& operator=( const Self& other );
79 std::vector< TLabel > m_Colors;
80 typename TLabels::Pointer m_Labels;
82 vtkRenderer* m_Renderer;
83 vtkRenderWindowInteractor* m_Interactor;
84 typename TVTKLabels::Pointer m_VTKLabels;
92 #ifndef ITK_MANUAL_INSTANTIATION
93 # include <fpa/Image/VisualDebugger.hxx>
94 #endif // ITK_MANUAL_INSTANTIATION
96 #endif // __fpa__Image__VisualDebugger__h__