5 #include <cpPlugins/Interface/Interface.h>
6 #include <cpPlugins/Interface/ProcessObject.h>
7 #include <cpPlugins/Interface/Mesh.h>
10 #include <vtkCallbackCommand.h>
11 #include <vtkProperty.h>
12 #include <vtkRenderer.h>
13 #include <vtkRenderWindow.h>
14 #include <vtkRenderWindowInteractor.h>
15 #include <vtkSmartPointer.h>
17 int main( int argc, char* argv[] )
22 << "Usage: " << argv[ 0 ]
25 << " dimensions pixel_type" << std::endl;
29 std::string plugins_file = argv[ 1 ];
30 std::string input_mesh_file = argv[ 2 ];
31 unsigned int dimensions = std::atoi( argv[ 3 ] );
32 std::string pixel_type = argv[ 4 ];
35 typedef cpPlugins::Interface::Interface TInterface;
36 typedef TInterface::TClasses TClasses;
39 plugins.Load( plugins_file );
42 typedef cpPlugins::Interface::ProcessObject TProcessObject;
43 typedef cpPlugins::Interface::Parameters TParameters;
44 cpPlugins::Interface::ProcessObject::Pointer reader;
46 reader = plugins.CreateProcessObject( "cpPlugins::Plugins::MeshReader" );
47 if( reader.IsNull( ) )
49 std::cerr << "No suitable reader found in plugins." << std::endl;
55 TParameters reader_params = reader->GetDefaultParameters( );
56 reader_params.SetValueAsString( "FileName", input_mesh_file );
57 reader_params.SetValueAsString( "PixelType", pixel_type );
58 reader_params.SetValueAsUint( "MeshDimension", dimensions );
59 reader->SetParameters( reader_params );
62 std::string msg = reader->Update( );
65 std::cerr << "ERROR: " << msg << std::endl;
68 vtkSmartPointer< vtkActor > actor =
69 vtkSmartPointer< vtkActor >::New( );
71 dynamic_cast< cpPlugins::Interface::Mesh* >( reader->GetOutput( 0 ) )->
74 actor->GetProperty( )->SetColor( 1, 1, 0 );
75 actor->GetProperty( )->SetOpacity( 0.5 );
77 // Configure visualization objects
78 vtkSmartPointer< vtkRenderer > renderer =
79 vtkSmartPointer< vtkRenderer >::New( );
80 renderer->SetBackground( 0.1, 0.3, 0.5 );
82 vtkSmartPointer< vtkRenderWindow > window =
83 vtkSmartPointer< vtkRenderWindow >::New( );
84 window->AddRenderer( renderer );
85 window->SetSize( 800, 800 );
87 // Set up the interaction
88 vtkSmartPointer< vtkRenderWindowInteractor > interactor =
89 vtkSmartPointer< vtkRenderWindowInteractor >::New( );
90 window->SetInteractor( interactor );
93 renderer->AddActor( actor );