1 #include <cpExtensions/Config.h>
3 #ifdef cpExtensions_QT4
5 #include <cpExtensions/QT/ImageWidget.h>
6 #include <cpExtensions/Visualization/WindowLevelImageActor.h>
7 #include <cpPlugins/Interface/Workspace.h>
9 #include <QApplication>
11 #include <QMainWindow>
12 #include <QHBoxLayout>
14 #include <vtkImageData.h>
15 #include <vtkPolyData.h>
17 #endif // cpExtensions_QT4
19 //----------------------------------------------------------------------------
20 int main( int argc, char* argv[] )
22 #ifdef cpExtensions_QT4
27 std::cerr << "Usage: " << argv[ 0 ] << " image_file(s)" << std::endl;
33 cpPlugins::Interface::Plugins::Pointer interface =
34 cpPlugins::Interface::Plugins::New( );
37 interface->LoadEnvironments( );
38 interface->GuessPlugins( );
40 catch( std::exception& err )
42 std::cerr << "Error caught: " << err.what( ) << std::endl;
48 typedef cpPlugins::Interface::Workspace _TWorkspace;
49 _TWorkspace::Pointer ws = _TWorkspace::New( );
50 ws->PrintExecutionOn( );
51 ws->Load( argv[ 1 ] );
55 auto reader = ws->CreateFilter( "IO", "ImageReader", "reader" );
56 auto widget = ws->CreateFilter( "Widgets", "SplineWidget", "spline" );
57 ws->Connect( "reader", "spline", "Output", "Input" );
58 auto params = reader->GetParameters( );
59 for( int i = 1; i < argc; ++i )
60 params->AddToOpenFileNameList( "FileNames", argv[ i ] );
62 auto reader = ws->GetFilter( "reader" );
63 auto spline = ws->GetFilter( "spline" );
64 auto seeds = ws->GetFilter( "seeds" );
65 auto axis = ws->GetFilter( "axis" );
66 auto writer = ws->GetFilter( "writer" );
67 auto raster = ws->GetFilter( "raster" );
74 catch( std::exception& err )
76 std::cerr << "Error caugth: " << err.what( ) << std::endl;
82 QApplication app( argc, argv );
84 wnd.setGeometry( 0, 0, 1024, 768 );
85 cpExtensions::QT::ImageWidget view( &wnd );
87 reader->GetOutputData< vtkImageData >( "Output" ), 2, "image"
89 spline->AddInteractor( view.GetInteractor( ) );
90 seeds->AddInteractor( view.GetInteractor( ) );
94 // Start application and show data
95 wnd.setCentralWidget( &view );
109 // view.Add( axis->GetOutputData< vtkPolyData >( "Output" ) );
111 return( app.exec( ) );
113 // TODO: widget->GetOutputData< vtkPolyData >( "Output" )->Print( std::cout );
116 auto raster = ws->CreateFilter( "MeshToImageFilters", "RasterMeshFilter", "raster" );
117 ws->Connect( "spline", "raster", "Output", "Input" );
118 ws->Connect( "reader", "raster", "Output", "Template" );
122 #else // cpExtensions_QT4
124 #endif // cpExtensions_QT4