#ifndef __FPA__VTK__IMAGE__OBSERVER2D__H__ #define __FPA__VTK__IMAGE__OBSERVER2D__H__ #include #include #include #include #include #include #include namespace fpa { namespace VTK { namespace Image { /** */ template< class _TFilter, class _TRenderWindow > class Observer2D : public itk::Command { public: typedef Observer2D Self; typedef itk::Command Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef _TFilter TFilter; typedef _TRenderWindow TRenderWindow; typedef typename TFilter::TInputImage TImage; typedef typename TFilter::TVertex TVertex; typedef std::set< TVertex > TVertices; public: itkNewMacro( Self ); itkTypeMacro( Observer2D, itkCommand ); itkGetConstMacro( RenderPercentage, double ); itkSetMacro( RenderPercentage, double ); public: void SetRenderWindow( _TRenderWindow* rw ); void SetPixel( typename TImage::IndexType idx, unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha ); void Render( ); void Execute( itk::Object* c, const itk::EventObject& e ) fpa_OVERRIDE { this->Execute( ( const itk::Object* )( c ), e ); } void Execute( const itk::Object* c, const itk::EventObject& e ) fpa_OVERRIDE; protected: Observer2D( ); virtual ~Observer2D( ); private: // Purposely not implemented Observer2D( const Self& ); void operator=( const Self& ); protected: vtkSmartPointer< vtkImageData > m_Stencil; vtkSmartPointer< vtkImageActor > m_StencilActor; _TRenderWindow* m_RenderWindow; unsigned long m_Count; unsigned long m_RenderCount; double m_RenderPercentage; }; } // ecapseman } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __FPA__VTK__IMAGE__OBSERVER2D__H__ // eof - $RCSfile$