#include #include #include #include #include // ------------------------------------------------------------------------- cpPluginsVisualization::IndexesToPolyData:: IndexesToPolyData( ) : Superclass( ) { this->_AddInput( "Input" ); this->_AddInput( "ReferenceImage", false ); this->_AddOutput< cpPlugins::Mesh >( "Output" ); } // ------------------------------------------------------------------------- cpPluginsVisualization::IndexesToPolyData:: ~IndexesToPolyData( ) { } // ------------------------------------------------------------------------- std::string cpPluginsVisualization::IndexesToPolyData:: _GenerateData( ) { typedef itk::SimpleDataObjectDecorator< std::vector< itk::Index< 2 > > > _2D; typedef itk::SimpleDataObjectDecorator< std::vector< itk::Index< 3 > > > _3D; auto indexes = this->GetInputData( "Input" )->GetITK< itk::DataObject >( ); auto indexes2D = dynamic_cast< _2D* >( indexes ); auto indexes3D = dynamic_cast< _3D* >( indexes ); if( indexes2D != NULL ) return( this->_GD0( indexes2D ) ); else if( indexes3D != NULL ) return( this->_GD0( indexes3D ) ); else return( "cpPluginsVisualization::IndexesToPolyData: no valid input." ); } // ------------------------------------------------------------------------- template< class _TIndexes > std::string cpPluginsVisualization::IndexesToPolyData:: _GD0( _TIndexes* indexes ) { typedef cpExtensions::Visualization::IndexesToPolyData< _TIndexes > _TFilter; typedef typename _TFilter::TImage _TImage; // Configure filter _TFilter* filter = this->_CreateVTK< _TFilter >( ); filter->SetInput( indexes ); filter->SetReferenceImage( this->GetInputData( "Input" )->GetITK< _TImage >( ) ); filter->Update( ); // Connect output this->GetOutputData( "Output" )->SetVTK( filter->GetOutput( ) ); return( "" ); } // eof - $RCSfile$