#include #include #include #include #include #include #include #include #include #include // ------------------------------------------------------------------------- typedef cpPlugins::Interface::Plugins TPlugins; typedef cpPlugins::Interface::Image TImage; typedef cpExtensions::Visualization::ImageSliceActors TSliceActors; // ------------------------------------------------------------------------- int main( int argc, char* argv[] ) { if( argc < 3 ) { std::cerr << "Usage: " << argv[ 0 ] << " plugins_file input_image" << std::endl; return( 1 ); } // fi // Load plugins cpPlugins::Interface::Plugins plugins; if( !plugins.LoadPluginsPath( argv[ 1 ] ) ) { std::cerr << "Failed to load plugins." << std::endl; return( 1 ); } // fi // Associate filenames std::vector< std::string > fnames; for( int i = 2; i < argc; ++i ) fnames.push_back( argv[ i ] ); // Read image std::string name = ""; try { name = plugins.ReadImage( fnames, "" ); } catch( std::exception& err ) { std::cerr << err.what( ) << std::endl; return( 1 ); } // yrt TImage* image = plugins.GetData< TImage >( name ); // Configure visualization objects vtkSmartPointer< vtkRenderer > renderer = vtkSmartPointer< vtkRenderer >::New( ); renderer->SetBackground( 0.1, 0.3, 0.5 ); vtkSmartPointer< vtkRenderWindow > window = vtkSmartPointer< vtkRenderWindow >::New( ); window->AddRenderer( renderer ); window->SetSize( 600, 600 ); // Set up the interaction vtkSmartPointer< vtkRenderWindowInteractor > interactor = vtkSmartPointer< vtkRenderWindowInteractor >::New( ); window->SetInteractor( interactor ); // Create slice actors vtkSmartPointer< TSliceActors > image_actors = vtkSmartPointer< TSliceActors >::New( ); image_actors->AddInputData( image->GetVTK< vtkImageData >( ) ); image_actors->SetAxis( 2 ); image_actors->PushActorsInto( window ); // Activate seed widget if( argc == 4 ) { TSliceActors::TStyle* style = dynamic_cast< TSliceActors::TStyle* >( image_actors->GetStyle( ) ); if( style != NULL ) { if( std::string( argv[ 3 ] ) == std::string( "seed" ) ) style->SeedWidgetOn( ); } // fi } // fi // Begin interaction image_actors->ResetCamera( ); window->Render( ); interactor->Start( ); return( 0 ); } // eof - $RCSfile$