#include <cpPlugins/Interface/Interface.h>
#include <cpPlugins/Interface/ProcessObject.h>
#include <cpPlugins/Interface/Image.h>
-#include <cpPlugins/Extensions/Visualization/MPRActors.h>
+#include <cpExtensions/Visualization/MPRObjects.h>
-#include <vtkActor.h>
-#include <vtkCallbackCommand.h>
-#include <vtkProperty.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
-#include <vtkSmartPointer.h>
int main( int argc, char* argv[] )
{
- if( argc < 4 )
+ if( argc < 3 )
{
std::cerr
<< "Usage: " << argv[ 0 ]
- << " plugins_file"
- << " input_image"
- << " pixel_type" << std::endl;
+ << " plugins_file input_image(s)"
+ << std::endl;
return( 1 );
} // fi
std::string plugins_file = argv[ 1 ];
- std::string input_image_file = argv[ 2 ];
- std::string pixel_type = argv[ 3 ];
// Create interface
typedef cpPlugins::Interface::Interface TInterface;
typedef cpPlugins::Interface::ProcessObject TProcessObject;
typedef cpPlugins::Interface::Parameters TParameters;
cpPlugins::Interface::ProcessObject::Pointer reader;
-
- reader = plugins.CreateProcessObject( "cpPlugins::Plugins::ImageReader" );
+ reader = plugins.CreateProcessObject( "cpPlugins::ImageReader" );
if( reader.IsNull( ) )
{
std::cerr << "No suitable reader found in plugins." << std::endl;
// Configure reader
TParameters reader_params = reader->GetDefaultParameters( );
- reader_params.AddValueToStringList( "FileNames", input_image_file );
- reader_params.SetValueAsString( "PixelType", pixel_type );
- reader_params.SetValueAsUint( "ImageDimension", 3 );
- reader_params.SetValueAsUint( "IsColorImage", 0 );
+ for( int i = 2; i < argc; ++i )
+ reader_params.AddValueToStringList( "FileNames", argv[ i ] );
reader->SetParameters( reader_params );
// Execute reader
std::string msg = reader->Update( );
-
if( msg != "" )
+ {
std::cerr << "ERROR: " << msg << std::endl;
+ return( 1 );
+
+ } // fi
+ cpPlugins::Interface::Image* image =
+ dynamic_cast< cpPlugins::Interface::Image* >( reader->GetOutput( 0 ) );
+ vtkImageData* vtk_image = image->GetVTKImageData( );
+ if( vtk_image == NULL )
+ {
+ std::cerr
+ << "ERROR: read image does not have a valid VTK conversion."
+ << std::endl;
+ return( 1 );
+
+ } // fi
// Visualization stuff
- vtkSmartPointer< vtkRenderWindow > window =
+ vtkSmartPointer< vtkRenderWindow > window =
vtkSmartPointer< vtkRenderWindow >::New( );
+ window->SetSize( 700, 700 );
- vtkSmartPointer< vtkRenderWindowInteractor > interactor =
+ // Renderers
+ vtkSmartPointer< vtkRenderer > renderer =
+ vtkSmartPointer< vtkRenderer >::New( );
+ window->AddRenderer( renderer );
+
+ // Interactor
+ vtkSmartPointer< vtkRenderWindowInteractor > interactor =
vtkSmartPointer< vtkRenderWindowInteractor >::New( );
-
interactor->SetRenderWindow( window );
- // Renderers
- vtkSmartPointer< vtkRenderer > xrenderer =
- vtkSmartPointer< vtkRenderer >::New( );
- vtkSmartPointer< vtkRenderer > yrenderer =
- vtkSmartPointer< vtkRenderer >::New( );
- vtkSmartPointer< vtkRenderer > zrenderer =
- vtkSmartPointer< vtkRenderer >::New( );
- vtkSmartPointer< vtkRenderer > wrenderer =
- vtkSmartPointer< vtkRenderer >::New( );
-
- xrenderer->SetBackground( 0.7, 0.5, 0.5 );
- yrenderer->SetBackground( 0.5, 0.7, 0.5 );
- zrenderer->SetBackground( 0.5, 0.5, 0.7 );
- wrenderer->SetBackground( 0.5, 0.5, 0.5 );
-
- xrenderer->SetViewport( 0, 0, 0.5, 0.5 );
- yrenderer->SetViewport( 0, 0.5, 0.5, 1 );
- zrenderer->SetViewport( 0.5, 0, 1, 0.5 );
- wrenderer->SetViewport( 0.5, 0.5, 1, 1 );
-
- window->AddRenderer( xrenderer );
- window->AddRenderer( yrenderer );
- window->AddRenderer( zrenderer );
- window->AddRenderer( wrenderer );
-
- // Create actors
- typedef cpPlugins::Extensions::Visualization::MPRActors TMPRActors;
- vtkSmartPointer< TMPRActors > mprActors =
- vtkSmartPointer< TMPRActors >::New( );
- mprActors->SetInputData(
- dynamic_cast< cpPlugins::Interface::Image* >( reader->GetOutput( 0 ) )->
- GetVTKImageData( )
- );
- mprActors->PushDataInto( xrenderer, yrenderer, zrenderer, wrenderer );
+ // Actors
+ cpExtensions::Visualization::MPRObjects mpr;
+ mpr.SetImage( vtk_image );
+ /*
+ mpr.AssociatePlaneInteractor( 0, interactor );
+ mpr.AssociatePlaneInteractor( 1, interactor );
+ mpr.AssociatePlaneInteractor( 2, interactor );
+ */
// Begin interaction
- xrenderer->ResetCamera( );
- yrenderer->ResetCamera( );
- zrenderer->ResetCamera( );
- wrenderer->ResetCamera( );
+ renderer->ResetCamera( );
window->Render( );
interactor->Start( );