]> Creatis software - cpPlugins.git/blob - appli/plugins/ExecutePipeline.cxx
Cast image filter added. ROI filter modified.
[cpPlugins.git] / appli / plugins / ExecutePipeline.cxx
1 #include <iostream>
2 #include <cpPlugins/Utility.h>
3 #include <cpPlugins/Interface/Plugins.h>
4 #include <cpPlugins/Interface/Workspace.h>
5
6 int main( int argc, char* argv[] )
7 {
8   // Manage inputs
9   if( argc < 2 )
10   {
11     std::cerr
12       << "Usage: " << argv[ 0 ]
13       << " workspace [parameters]" << std::endl;
14     return( 1 );
15
16   } // fi
17
18   // Create interface and load library
19   cpPlugins::Interface::Plugins::Pointer interface =
20     cpPlugins::Interface::Plugins::New( );
21   try
22   {
23     interface->GuessEnvironment( "." );
24     interface->GuessPlugins( );
25   }
26   catch( std::exception& err )
27   {
28     std::cerr << "Error caught: " << err.what( ) << std::endl;
29     return( 1 );
30
31   } // yrt
32
33   // Workspace
34   cpPlugins::Interface::Workspace::Pointer workspace =
35     cpPlugins::Interface::Workspace::New( );
36   try
37   {
38     workspace->Load( argv[ 1 ] );
39   }
40   catch( std::exception& err )
41   {
42     std::cerr
43       << "Error loading workspace \"" << argv[ 1 ]
44       << "\": " << err.what( ) << std::endl;
45     return( 1 );
46
47   } // yrt
48     
49   // Read parameters
50   for( int i = 2; i < argc; ++i )
51   {
52     std::vector< std::string > tokens;
53     cpPlugins::Tokenize( tokens, argv[ i ], "@=" );
54     if( tokens.size( ) == 3 )
55     {
56       auto filter = workspace->GetFilter( tokens[ 1 ] );
57       if( filter != NULL )
58       {
59         auto params = filter->GetParameters( );
60         params->SetString( tokens[ 0 ], tokens[ 2 ], true );
61
62       } // fi
63
64     } // fi
65
66   } // rof
67
68   // Execute filter
69   workspace->PrintExecutionOn( );
70   try
71   {
72     workspace->Update( );
73   }
74   catch( std::exception& err )
75   {
76     std::cerr << std::endl << "********************************" << std::endl;
77     std::cerr << "Error caught: " << err.what( ) << std::endl;
78     std::cerr << "********************************" << std::endl;
79     return( 1 );
80
81   } // yrt
82   return( 0 );
83 }
84
85 // eof - $RCSfile$