#include <itkCommand.h>
#include <vtkActor.h>
+#include <vtkImageData.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkSmartPointer.h>
typedef typename TFilter::TInputImage TImage;
typedef typename TFilter::TVertex TVertex;
- typedef std::pair< unsigned long, unsigned long > TVertexIds;
-
- struct TVertexCmp
- {
- bool operator()( const TVertex& a, const TVertex& b ) const
- {
- unsigned int d = 0;
- while( d < TVertex::Dimension && a[ d ] == b[ d ] )
- d++;
- if( d < TVertex::Dimension )
- return( a[ d ] < b[ d ] );
- else
- return( false );
- }
- };
- typedef std::map< TVertex, TVertexIds, TVertexCmp > TVertices;
+ typedef std::set< TVertex > TVertices;
public:
itkNewMacro( Self );
itkTypeMacro( Image3DObserver, itkCommand );
+ itkGetConstMacro( RenderPercentage, double );
+ itkSetMacro( RenderPercentage, double );
+
public:
- void SetImage( const TImage* img, R* rw );
+ void SetRenderWindow( R* 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 )
{ this->Execute( ( const itk::Object* )( c ), e ); }
protected:
Image3DObserver( );
- virtual ~Image3DObserver( )
- { }
+ virtual ~Image3DObserver( );
private:
Image3DObserver( const Self& ); // Not impl.
void operator=( const Self& ); // Not impl.
protected:
- typename TImage::ConstPointer m_Image;
+ vtkSmartPointer< vtkImageData > m_Stencil;
+ vtkSmartPointer< vtkPolyData > m_PolyData;
+ vtkSmartPointer< vtkPolyDataMapper > m_PolyDataMapper;
+ vtkSmartPointer< vtkActor > m_PolyDataActor;
R* m_RenderWindow;
- unsigned long m_Number;
- unsigned long m_Percentage;
+ unsigned long m_Count;
+ unsigned long m_RenderCount;
+ double m_RenderPercentage;
+ };
- vtkSmartPointer< vtkPolyData > m_PolyData;
- vtkSmartPointer< vtkPolyDataMapper > m_PolyDataMapper;
- vtkSmartPointer< vtkActor > m_PolyDataActor;
+ /**
+ */
+ /*
+ template< class F, class R >
+ class Image3DObserver
+ : public itk::Command
+ {
+ public:
+ typedef Image3DObserver Self;
+ typedef itk::Command Superclass;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
+
+ typedef F TFilter;
+ typedef R TRenderWindow;
+
+ public:
+ itkNewMacro( Self );
+ itkTypeMacro( Image3DObserver, itkCommand );
+
+ itkGetConstMacro( RenderPercentage, double );
+ itkSetMacro( RenderPercentage, double );
+
+ public:
+ void SetRenderWindow( R* rw );
+ void Execute( itk::Object* c, const itk::EventObject& e )
+ { this->Execute( ( const itk::Object* )( c ), e ); }
+ void Execute( const itk::Object* c, const itk::EventObject& e );
+
+ protected:
+ Image3DObserver( );
+ virtual ~Image3DObserver( )
+ { }
+
+ private:
+ Image3DObserver( const Self& ); // Not impl.
+ void operator=( const Self& ); // Not impl.
+
+ protected:
+ R* m_RenderWindow;
+ unsigned long m_Count;
+ unsigned long m_RenderCount;
+ double m_RenderPercentage;
- TVertices m_Vertices;
+ vtkSmartPointer< vtkPolyData > m_Data;
+ vtkSmartPointer< vtkPolyDataMapper > m_Mapper;
+ vtkSmartPointer< vtkActor > m_Actor;
};
+ */
} // ecapseman