]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/VTK/Image3DObserver.h
Visual debugging improved
[FrontAlgorithms.git] / lib / fpa / VTK / Image3DObserver.h
index 860946d78794451d3bbae28d23d8b00128921794..4e7a43082a48c19bcd4a7043e792234a85a8e79a 100644 (file)
@@ -4,6 +4,7 @@
 #include <map>
 
 #include <itkCommand.h>
+#include <itkImage.h>
 
 #include <vtkActor.h>
 #include <vtkPolyData.h>
@@ -26,35 +27,17 @@ namespace fpa
       typedef itk::SmartPointer< Self >       Pointer;
       typedef itk::SmartPointer< const Self > ConstPointer;
 
-      typedef F                             TFilter;
-      typedef R                             TRenderWindow;
-      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 F TFilter;
+      typedef R TRenderWindow;
+
+      typedef itk::Image< long, 3 > TMarks;
 
     public:
       itkNewMacro( Self );
       itkTypeMacro( Image3DObserver, itkCommand );
 
     public:
-      void SetImage( const TImage* img, R* rw );
-      void Render( );
+      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 );
@@ -69,17 +52,14 @@ namespace fpa
       void operator=( const Self& );  // Not impl.
 
     protected:
-      typename TImage::ConstPointer m_Image;
-
       R*            m_RenderWindow;
-      unsigned long m_Number;
-      unsigned long m_Percentage;
-
-      vtkSmartPointer< vtkPolyData > m_PolyData;
-      vtkSmartPointer< vtkPolyDataMapper > m_PolyDataMapper;
-      vtkSmartPointer< vtkActor > m_PolyDataActor;
+      unsigned long m_Count;
+      unsigned long m_RenderCount;
 
-      TVertices m_Vertices;
+      TMarks::Pointer                      m_Marks;
+      vtkSmartPointer< vtkPolyData >       m_Data;
+      vtkSmartPointer< vtkPolyDataMapper > m_Mapper;
+      vtkSmartPointer< vtkActor >          m_Actor;
     };
 
   } // ecapseman