#include "NoInteractiveSeedWidget.h" #include #include #include #include // ------------------------------------------------------------------------- cpPluginsWidgets::NoInteractiveSeedWidget:: NoInteractiveSeedWidget( ) : Superclass( ) { this->_AddInput( "ReferenceImage" ); this->_AddOutput< cpPlugins::DataObject >( "Output" ); this->m_Parameters.ConfigureAsString( "Text" ); this->m_Parameters.SetString( "Text", "" ); } // ------------------------------------------------------------------------- cpPluginsWidgets::NoInteractiveSeedWidget:: ~NoInteractiveSeedWidget( ) { } // ------------------------------------------------------------------------- void cpPluginsWidgets::NoInteractiveSeedWidget:: _GenerateData( ) { auto image = this->GetInputData( "ReferenceImage" )->GetITK< itk::DataObject >( ); cpPlugins_Image_Demangle_Dim ( _GD0, image, 2 ); else cpPlugins_Image_Demangle_Dim( _GD0, image, 3 ); else this->_Error( "No valid input image." ); } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsWidgets::NoInteractiveSeedWidget:: _GD0( _TImage* image ) { typedef cpExtensions::DataStructures::ImageIndexesContainer< _TImage::ImageDimension > _TContainer; if( image != NULL ) { auto container = this->_CreateITK< _TContainer >( ); std::string info = this->m_Parameters.GetString( "Text" ); std::istringstream str( info ); double x, y, z; str >> x >> y >> z; typename _TImage::PointType seed; seed[ 0 ] = x; seed[ 1 ] = y; seed[ 2 ] = z; typename _TImage::IndexType idx; if( image->TransformPhysicalPointToIndex( seed, idx ) ) container->Get( ).push_back( idx ); container->SetReferenceImage( image ); this->GetOutputData( "Output" )->SetITK( container ); } else this->_Error( "Input image dimension not supported." ); } // eof - $RCSfile$