#include #ifdef cpExtensions_QT4 #include #include #include #include #include #include #include #include #include #endif // cpExtensions_QT4 //---------------------------------------------------------------------------- int main( int argc, char* argv[] ) { #ifdef cpExtensions_QT4 // Manage inputs if( argc < 2 ) { std::cerr << "Usage: " << argv[ 0 ] << " image_file(s)" << std::endl; return( 1 ); } // fi // Create interface cpPlugins::Interface::Plugins::Pointer interface = cpPlugins::Interface::Plugins::New( ); try { interface->LoadEnvironments( ); interface->GuessPlugins( ); } catch( std::exception& err ) { std::cerr << "Error caught: " << err.what( ) << std::endl; return( 1 ); } // yrt // Create workspace typedef cpPlugins::Interface::Workspace _TWorkspace; _TWorkspace::Pointer ws = _TWorkspace::New( ); ws->PrintExecutionOn( ); ws->Load( argv[ 1 ] ); // Configure filters /* TODO auto reader = ws->CreateFilter( "IO", "ImageReader", "reader" ); auto widget = ws->CreateFilter( "Widgets", "SplineWidget", "spline" ); ws->Connect( "reader", "spline", "Output", "Input" ); auto params = reader->GetParameters( ); for( int i = 1; i < argc; ++i ) params->AddToOpenFileNameList( "FileNames", argv[ i ] ); */ auto reader = ws->GetFilter( "reader" ); auto spline = ws->GetFilter( "spline" ); auto seeds = ws->GetFilter( "seeds" ); auto axis = ws->GetFilter( "axis" ); auto writer = ws->GetFilter( "writer" ); auto raster = ws->GetFilter( "raster" ); // Execute reader try { reader->Update( ); } catch( std::exception& err ) { std::cerr << "Error caugth: " << err.what( ) << std::endl; return( 1 ); } // yrt // Qt initialization QApplication app( argc, argv ); QMainWindow wnd; wnd.setGeometry( 0, 0, 1024, 768 ); cpExtensions::QT::ImageWidget view( &wnd ); view.SetImage( reader->GetOutputData< vtkImageData >( "Output" ), 2, "image" ); spline->AddInteractor( view.GetInteractor( ) ); seeds->AddInteractor( view.GetInteractor( ) ); spline->Update( ); seeds->Update( ); // Start application and show data wnd.setCentralWidget( &view ); wnd.show( ); app.exec( ); spline->Modified( ); spline->Update( ); raster->Update( ); writer->Update( ); wnd.show( ); app.exec( ); seeds->Modified( ); seeds->Update( ); axis->Update( ); // view.Add( axis->GetOutputData< vtkPolyData >( "Output" ) ); wnd.show( ); return( app.exec( ) ); // TODO: widget->GetOutputData< vtkPolyData >( "Output" )->Print( std::cout ); /* auto raster = ws->CreateFilter( "MeshToImageFilters", "RasterMeshFilter", "raster" ); ws->Connect( "spline", "raster", "Output", "Input" ); ws->Connect( "reader", "raster", "Output", "Template" ); raster->Update( ); */ #else // cpExtensions_QT4 return( 0 ); #endif // cpExtensions_QT4 } // eof - $RCSfile$