- template< class _TFilter >
- class Viewer
- {
- public:
- typedef _TFilter TFilter;
- typedef typename _TFilter::TInputImage TInputImage;
-
- public:
- Viewer( const TInputImage* image )
- {
-#ifdef USE_ivq
- this->m_VTKInputImage = TVTKInputImage::New( );
- this->m_VTKInputImage->SetInput( image );
- this->m_VTKInputImage->Update( );
-
- this->m_Viewer = vtkSmartPointer< ivq::VTK::ImageViewer >::New( );
- this->m_Viewer->SetInputData( this->m_VTKInputImage->GetOutput( ) );
-#endif // USE_ivq
- }
-
- virtual ~Viewer( )
- {
- }
-
- void ActivateSeedWidget( )
- {
-#ifdef USE_ivq
- this->m_SeedWidget =
- vtkSmartPointer< ivq::VTK::SeedWidgetOverImageActor >::New( );
- this->m_SeedWidget->SetActor( this->m_Viewer->GetImageActor( ) );
- this->m_SeedWidget->SetInteractor(
- this->m_Viewer->GetRenderWindow( )->GetInteractor( )
- );
-#endif // USE_ivq
- }
-
- void ActivateBrushWidget( )
- {
-#ifdef USE_ivq
- this->m_BrushWidget =
- vtkSmartPointer< ivq::VTK::BrushWidget >::New( );
- this->m_BrushWidget->SetImageActor( this->m_Viewer->GetImageActor( ) );
- this->m_BrushWidget->SetInteractor(
- this->m_Viewer->GetRenderWindow( )->GetInteractor( )
- );
-#endif // USE_ivq
- }
-
- void Show( )
- {
-#ifdef USE_ivq
- this->m_Viewer->Render( );
- this->m_Viewer->ResetCamera( );
- this->m_Viewer->Initialize( );
- this->m_Viewer->Render( );
- if( this->m_SeedWidget.GetPointer( ) != NULL )
- this->m_SeedWidget->EnabledOn( );
- if( this->m_BrushWidget.GetPointer( ) != NULL )
- this->m_BrushWidget->EnabledOn( );
- this->m_Viewer->Start( );
- if( this->m_SeedWidget.GetPointer( ) != NULL )
- this->m_SeedWidget->EnabledOff( );
- if( this->m_BrushWidget.GetPointer( ) != NULL )
- this->m_BrushWidget->EnabledOff( );
-#endif // USE_ivq
- }
-
- void AssociateSeedsTo( TFilter* filter )
- {
-#ifdef USE_ivq
- if( this->m_SeedWidget.GetPointer( ) != NULL )
- {
- const ivq::VTK::SeedWidgetOverImageActor::TSeeds& wdg_seeds =
- this->m_SeedWidget->GetSeeds( );
- ivq::VTK::SeedWidgetOverImageActor::TSeeds::const_iterator wsIt;
- for( wsIt = wdg_seeds.begin( ); wsIt != wdg_seeds.end( ); ++wsIt )
- {
- typename TInputImage::PointType pnt;
- for( unsigned int i = 0; i < wsIt->second.size( ); i += 3 )
- {
- pnt[ 0 ] = wsIt->second[ i ];
- pnt[ 1 ] = wsIt->second[ i + 1 ];
-
- typename TInputImage::IndexType idx;
- filter->GetInput( )->TransformPhysicalPointToIndex( pnt, idx );
- filter->AddSeed( idx );
-
- } // rof
-
- } // rof
-
- } // fi
-#endif // USE_ivq
- }
-
- void AssociateLabelsTo( TFilter* filter )
- {
-#ifdef USE_ivq
- if( this->m_BrushWidget.GetPointer( ) != NULL )
- {
- typedef typename TFilter::TLabelImage _TLabelImage;
- typedef itk::VTKImageToImageFilter< _TLabelImage > TITKImage;
- typename TITKImage::Pointer itk_image = TITKImage::New( );
- itk_image->SetInput( this->m_BrushWidget->GetCanvas( ) );
- itk_image->Update( );
- filter->SetLabels( itk_image->GetOutput( ) );
-
- } // fi
-#endif // USE_ivq
- }
-
- void ObserveFilter( TFilter* filter )
- {
-#ifdef USE_ivq
- typedef fpa::Image::VisualDebugger2D< TFilter > _TDeb;
- typedef typename TFilter::TEvent _TEvent;
- typename _TDeb::Pointer deb = _TDeb::New( );
- deb->SetVisualization(
- this->m_Viewer->GetRenderer( ),
- this->m_Viewer->GetRenderWindow( )->GetInteractor( )
- );
- this->m_Observer1 = filter->AddObserver( itk::StartEvent( ), deb );
- this->m_Observer2 = filter->AddObserver( itk::EndEvent( ), deb );
- this->m_Observer3 = filter->AddObserver( _TEvent( ), deb );
- filter->VisualDebugOn( );
-#endif // USE_ivq
- }
-
- protected:
-#ifdef USE_ivq
- typedef itk::ImageToVTKImageFilter< TInputImage > TVTKInputImage;
- typename TVTKInputImage::Pointer m_VTKInputImage;
- vtkSmartPointer< ivq::VTK::ImageViewer > m_Viewer;
- vtkSmartPointer< ivq::VTK::SeedWidgetOverImageActor > m_SeedWidget;
- vtkSmartPointer< ivq::VTK::BrushWidget > m_BrushWidget;
- unsigned long m_Observer1;
- unsigned long m_Observer2;
- unsigned long m_Observer3;
-#endif // USE_ivq
-
-
- /* TODO
- #ifdef USE_ivq
- // VTK image
- typedef itk::ImageToVTKImageFilter< TImage > TVTKImage;
- TVTKImage::Pointer vtk_input;
- vtkSmartPointer< ivq::VTK::ImageViewer > view;
- vtkSmartPointer< ivq::VTK::SeedWidgetOverImageActor > widget;
-
- if( visual_debug )
- {
- vtk_input = TVTKImage::New( );
- vtk_input->SetInput( input );
- vtk_input->Update( );
-
- // Viewer
- view = vtkSmartPointer< ivq::VTK::ImageViewer >::New( );
- view->SetInputData( vtk_input->GetOutput( ) );
- view->SetSlice( 0 );
-
- // Widget
- widget = vtkSmartPointer< ivq::VTK::SeedWidgetOverImageActor >::New( );
- widget->SetActor( view->GetImageActor( ) );
- widget->SetInteractor( view->GetRenderWindow( )->GetInteractor( ) );
-
- // Visualize
- view->Render( );
- view->ResetCamera( );
- view->Initialize( );
- view->Render( );
- widget->EnabledOn( );
- view->Start( );
- widget->EnabledOff( );
-
- const ivq::VTK::SeedWidgetOverImageActor::TSeeds& wdg_seeds =
- widget->GetSeeds( );
- ivq::VTK::SeedWidgetOverImageActor::TSeeds::const_iterator wsIt;
- for( wsIt = wdg_seeds.begin( ); wsIt != wdg_seeds.end( ); ++wsIt )
- {
- TImage::PointType pnt;
- for( unsigned int i = 0; i < wsIt->second.size( ); i += 3 )
- {
- pnt[ 0 ] = wsIt->second[ i ];
- pnt[ 1 ] = wsIt->second[ i + 1 ];
-
- TImage::IndexType idx;
- input->TransformPhysicalPointToIndex( pnt, idx );
- seeds.push_back( idx );
-
- } // rof
-
- } // rof
-
- } // fi
- #endif // USE_ivq
- */
- };
+ /* TODO
+ #ifdef USE_ivq
+ template< class _TFilter >
+ class Viewer
+ {
+ public:
+ typedef _TFilter TFilter;
+ typedef typename _TFilter::TInputImage TInputImage;
+
+ public:
+ Viewer( const TInputImage* image )
+ {
+ this->m_VTKInputImage = TVTKInputImage::New( );
+ this->m_VTKInputImage->SetInput( image );
+ this->m_VTKInputImage->Update( );
+
+ this->m_Viewer = vtkSmartPointer< ivq::VTK::ImageViewer >::New( );
+ this->m_Viewer->SetInputData( this->m_VTKInputImage->GetOutput( ) );
+ }
+
+ virtual ~Viewer( )
+ {
+ }
+
+ void ActivateSeedWidget( )
+ {
+ this->m_SeedWidget =
+ vtkSmartPointer< ivq::VTK::SeedWidgetOverImageActor >::New( );
+ this->m_SeedWidget->SetActor( this->m_Viewer->GetImageActor( ) );
+ this->m_SeedWidget->SetInteractor(
+ this->m_Viewer->GetRenderWindow( )->GetInteractor( )
+ );
+ }
+
+ void ActivateBrushWidget( )
+ {
+ this->m_BrushWidget =
+ vtkSmartPointer< ivq::VTK::BrushWidget >::New( );
+ this->m_BrushWidget->SetImageActor( this->m_Viewer->GetImageActor( ) );
+ this->m_BrushWidget->SetInteractor(
+ this->m_Viewer->GetRenderWindow( )->GetInteractor( )
+ );
+ }
+
+ void Show( )
+ {
+ this->m_Viewer->Render( );
+ this->m_Viewer->ResetCamera( );
+ this->m_Viewer->Initialize( );
+ this->m_Viewer->Render( );
+ if( this->m_SeedWidget.GetPointer( ) != NULL )
+ this->m_SeedWidget->EnabledOn( );
+ if( this->m_BrushWidget.GetPointer( ) != NULL )
+ this->m_BrushWidget->EnabledOn( );
+ this->m_Viewer->Start( );
+ if( this->m_SeedWidget.GetPointer( ) != NULL )
+ this->m_SeedWidget->EnabledOff( );
+ if( this->m_BrushWidget.GetPointer( ) != NULL )
+ this->m_BrushWidget->EnabledOff( );
+ }
+
+ void AssociateSeedsTo( TFilter* filter )
+ {
+ if( this->m_SeedWidget.GetPointer( ) != NULL )
+ {
+ const ivq::VTK::SeedWidgetOverImageActor::TSeeds& wdg_seeds =
+ this->m_SeedWidget->GetSeeds( );
+ ivq::VTK::SeedWidgetOverImageActor::TSeeds::const_iterator wsIt;
+ for( wsIt = wdg_seeds.begin( ); wsIt != wdg_seeds.end( ); ++wsIt )
+ {
+ typename TInputImage::PointType pnt;
+ for( unsigned int i = 0; i < wsIt->second.size( ); i += 3 )
+ {
+ pnt[ 0 ] = wsIt->second[ i ];
+ pnt[ 1 ] = wsIt->second[ i + 1 ];
+
+ typename TInputImage::IndexType idx;
+ filter->GetInput( )->TransformPhysicalPointToIndex( pnt, idx );
+ filter->AddSeed( idx );
+
+ } // rof
+
+ } // rof
+
+ } // fi
+ }
+
+ void AssociateLabelsTo( TFilter* filter )
+ {
+ if( this->m_BrushWidget.GetPointer( ) != NULL )
+ {
+ typedef typename TFilter::TLabelImage _TLabelImage;
+ typedef itk::VTKImageToImageFilter< _TLabelImage > TITKImage;
+ typename TITKImage::Pointer itk_image = TITKImage::New( );
+ itk_image->SetInput( this->m_BrushWidget->GetCanvas( ) );
+ itk_image->Update( );
+ filter->SetLabels( itk_image->GetOutput( ) );
+
+ } // fi
+ }
+
+ void ObserveFilter( TFilter* filter )
+ {
+ typedef fpa::Image::VisualDebugger2D< TFilter > _TDeb;
+ typedef typename TFilter::TEvent _TEvent;
+ typename _TDeb::Pointer deb = _TDeb::New( );
+ deb->SetVisualization(
+ this->m_Viewer->GetRenderer( ),
+ this->m_Viewer->GetRenderWindow( )->GetInteractor( )
+ );
+ this->m_Observer1 = filter->AddObserver( itk::StartEvent( ), deb );
+ this->m_Observer2 = filter->AddObserver( itk::EndEvent( ), deb );
+ this->m_Observer3 = filter->AddObserver( _TEvent( ), deb );
+ filter->VisualDebugOn( );
+ }
+
+ protected:
+ typedef itk::ImageToVTKImageFilter< TInputImage > TVTKInputImage;
+ typename TVTKInputImage::Pointer m_VTKInputImage;
+ vtkSmartPointer< ivq::VTK::ImageViewer > m_Viewer;
+ vtkSmartPointer< ivq::VTK::SeedWidgetOverImageActor > m_SeedWidget;
+ vtkSmartPointer< ivq::VTK::BrushWidget > m_BrushWidget;
+ unsigned long m_Observer1;
+ unsigned long m_Observer2;
+ unsigned long m_Observer3;
+ };
+ #endif // USE_ivq
+ */