5 #include <cpPlugins/Interface/Plugins.h>
7 // -------------------------------------------------------------------------
8 typedef cpPlugins::Interface::Plugins TPlugins;
10 // -------------------------------------------------------------------------
11 int main( int argc, char* argv[] )
16 << "Usage: " << argv[ 0 ]
18 << " input_image threshold output_image" << std::endl;
24 cpPlugins::Interface::Plugins plugins;
25 if( !plugins.LoadPluginsPath( argv[ 1 ] ) )
27 std::cerr << "Failed to load plugins." << std::endl;
32 // Associate filenames
33 std::vector< std::string > fnames;
34 for( int i = 2; i < argc - 2; ++i )
35 fnames.push_back( argv[ i ] );
38 std::string filter = "cpPlugins::BasicFilters::MarchingCubes";
41 std::string name = plugins.ReadImage( fnames, "" );
43 if( !( plugins.ActivateFilter( filter ) ) )
45 std::cerr << "Filter \"" << filter << "\" not found." << std::endl;
51 TPlugins::TStringContainer inputs, outputs;
52 plugins.GetActiveFilterInputsNames( inputs );
53 plugins.GetActiveFilterOutputsNames( outputs );
55 plugins.ConnectInputInActiveFilter( name, *( inputs.begin( ) ) );
56 //plugins.SetOutputNameInActiveFilter( "output_mesh", *( outputs.begin( ) ) );
59 TPlugins::TParameters* params = plugins.GetActiveFilterParameters( );
60 params->AddToRealList( "Thresholds", std::atof( argv[ argc - 2 ] ) );
63 TPlugins::TStringContainer generated_outputs;
64 if( !( plugins.UpdateActiveFilter( generated_outputs, name ) ) )
66 std::cerr << "Error using filter \"" << filter << "\"." << std::endl;
72 std::string outmesh_name = *( generated_outputs.begin( ) );
73 if( !( plugins.WriteDataObject( argv[ argc - 1 ], outmesh_name ) ) )
76 << "Error writing result into \"" << argv[ argc - 1 ]
82 catch( std::exception& err )
84 std::cerr << err.what( ) << std::endl;