// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Image__VisualDebugger__h__ #define __fpa__Image__VisualDebugger__h__ #include #include #include #include #include #ifdef USE_ivq #include #endif // USE_ivq class vtkRenderer; class vtkRenderWindowInteractor; namespace fpa { namespace Image { /** */ template< class _TFilter > class VisualDebugger : public itk::Command { public: typedef VisualDebugger Self; typedef itk::Command Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef _TFilter TFilter; typedef typename TFilter::TInputImage TImage; typedef itk::RGBAPixel< unsigned char > TLabel; typedef itk::Image< TLabel, TImage::ImageDimension > TLabels; #ifdef USE_ivq typedef itk::ImageToVTKImageFilter< TLabels > TVTKLabels; #endif // USE_ivq public: itkTypeMacro( fpa::Image::VisualDebugger, itk::Command ); itkGetConstObjectMacro( Labels, TLabels ); public: void SetVisualization( vtkRenderer* renderer, vtkRenderWindowInteractor* iren ); virtual void Execute( itk::Object* caller, const itk::EventObject& event ) override; virtual void Execute( const itk::Object* caller, const itk::EventObject& event ) override; virtual void Render( ) = 0; virtual void StartVisualization( ) = 0; virtual void EndVisualization( ) = 0; protected: VisualDebugger( ); virtual ~VisualDebugger( ); private: // Purposely not implemented. VisualDebugger( const Self& other ); Self& operator=( const Self& other ); protected: std::vector< TLabel > m_Colors; typename TLabels::Pointer m_Labels; #ifdef USE_ivq vtkRenderer* m_Renderer; vtkRenderWindowInteractor* m_Interactor; typename TVTKLabels::Pointer m_VTKLabels; #endif // USE_ivq }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Image__VisualDebugger__h__ // eof - $RCSfile$