5 #include <cpPlugins/Interface/Interface.h>
6 #include <cpPlugins/Interface/ProcessObject.h>
7 #include <cpPlugins/Interface/Image.h>
8 #include <cpExtensions/Visualization/MPRObjects.h>
10 #include <vtkRenderer.h>
11 #include <vtkRenderWindow.h>
12 #include <vtkRenderWindowInteractor.h>
14 int main( int argc, char* argv[] )
19 << "Usage: " << argv[ 0 ]
20 << " plugins_file input_image(s)"
25 std::string plugins_file = argv[ 1 ];
28 typedef cpPlugins::Interface::Interface TInterface;
29 typedef TInterface::TClasses TClasses;
32 plugins.Load( plugins_file );
35 typedef cpPlugins::Interface::ProcessObject TProcessObject;
36 typedef cpPlugins::Interface::Parameters TParameters;
37 cpPlugins::Interface::ProcessObject::Pointer reader;
38 reader = plugins.CreateProcessObject( "cpPlugins::ImageReader" );
39 if( reader.IsNull( ) )
41 std::cerr << "No suitable reader found in plugins." << std::endl;
47 TParameters reader_params = reader->GetDefaultParameters( );
48 for( int i = 2; i < argc; ++i )
49 reader_params.AddValueToStringList( "FileNames", argv[ i ] );
50 reader->SetParameters( reader_params );
53 std::string msg = reader->Update( );
56 std::cerr << "ERROR: " << msg << std::endl;
60 cpPlugins::Interface::Image* image =
61 dynamic_cast< cpPlugins::Interface::Image* >( reader->GetOutput( 0 ) );
62 vtkImageData* vtk_image = image->GetVTKImageData( );
63 if( vtk_image == NULL )
66 << "ERROR: read image does not have a valid VTK conversion."
72 // Visualization stuff
73 vtkSmartPointer< vtkRenderWindow > window =
74 vtkSmartPointer< vtkRenderWindow >::New( );
75 window->SetSize( 700, 700 );
78 vtkSmartPointer< vtkRenderer > renderer =
79 vtkSmartPointer< vtkRenderer >::New( );
80 window->AddRenderer( renderer );
83 vtkSmartPointer< vtkRenderWindowInteractor > interactor =
84 vtkSmartPointer< vtkRenderWindowInteractor >::New( );
85 interactor->SetRenderWindow( window );
88 cpExtensions::Visualization::MPRObjects mpr;
89 mpr.SetImage( vtk_image );
91 mpr.AssociatePlaneInteractor( 0, interactor );
92 mpr.AssociatePlaneInteractor( 1, interactor );
93 mpr.AssociatePlaneInteractor( 2, interactor );
97 renderer->ResetCamera( );