3 #include <cpExtensions/Visualization/ImageSliceActors.h>
4 #include <cpPlugins/Interface.h>
6 #include <vtkImageData.h>
7 #include <vtkRenderer.h>
8 #include <vtkRenderWindow.h>
9 #include <vtkRenderWindowInteractor.h>
10 #include <vtkSmartPointer.h>
12 int main( int argc, char* argv[] )
17 << "Usage: " << argv[ 0 ]
18 << " input_image(s)" << std::endl;
24 cpPlugins::Interface interface;
25 interface.GuessAccesiblePlugins( );
28 cpPlugins::ProcessObject::Pointer reader;
31 reader = interface.Create( "IO", "ImageReader" );
32 if( reader.IsNull( ) )
35 << "\"IO::ImageReader\" creation failed."
42 auto reader_params = reader->GetParameters( );
43 for( int i = 1; i < argc; ++i )
44 reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
47 catch( itk::ExceptionObject& err1 )
49 std::cerr << "Error: " << err1.GetDescription( ) << std::endl;
52 catch( std::exception& err2 )
54 std::cerr << "Error: " << err2.what( ) << std::endl;
59 // Prepate slice objects
60 vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors > actors =
61 vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors >::New( );
63 reader->GetOutputData( "Output" )->GetVTK< vtkImageData >( ), 1
67 vtkSmartPointer< vtkRenderer > ren =
68 vtkSmartPointer< vtkRenderer >::New( );
69 ren->SetBackground( 0, 0, 0 );
70 actors->PushInto( ren );
72 vtkSmartPointer< vtkRenderWindow > win =
73 vtkSmartPointer< vtkRenderWindow >::New( );
74 win->AddRenderer( ren );
75 win->SetSize( 500, 500 );
77 vtkSmartPointer< vtkRenderWindowInteractor > iren =
78 vtkSmartPointer< vtkRenderWindowInteractor >::New( );
79 iren->SetRenderWindow( win );
80 iren->SetInteractorStyle( actors->GetStyle( ) );