#include <cpPlugins/Interface/Image.h>
#include <cpPlugins/Interface/PointList.h>
+#include <cpPlugins/Interface/SimpleMPRWidget.h>
#include <cpExtensions/Interaction/ImageInteractorStyle.h>
#include <vtkRenderWindowInteractor.h>
: Superclass( ),
m_Configured( false )
{
- this->_AddInput( "ReferenceImage" );
+ this->_AddInput( "ReferenceImage", true );
this->_AddOutput< cpPlugins::Interface::PointList >( "Output" );
this->m_Parameters->ConfigureAsBool( "SeedsAreInRealSpace" );
typedef itk::ImageBase< 2 > _2DImage;
typedef itk::ImageBase< 3 > _3DImage;
- cpPlugins::Interface::Image* image =
- this->GetInput< cpPlugins::Interface::Image >( "ReferenceImage" );
+ auto image =
+ this->GetInputData< cpPlugins::Interface::Image >( "ReferenceImage" );
if( image == NULL )
return( "SeedWidget: No input image." );
typedef cpExtensions::Interaction::ImageInteractorStyle _S;
I* base_image = dynamic_cast< I* >( image );
- cpPlugins::Interface::PointList* out =
- this->GetOutput< cpPlugins::Interface::PointList >( "Output" );
+ auto out =
+ this->GetOutputData< cpPlugins::Interface::PointList >( "Output" );
double aux_pnt[ 3 ];
unsigned int dim = ( I::ImageDimension < 3 )? I::ImageDimension: 3;
out->Clear( );
+
+ // MPR
+ if( this->m_MPRViewer != NULL )
+ {
+ for( unsigned int i = 0; i < 4; ++i )
+ {
+ _S* s =
+ dynamic_cast< _S* >(
+ this->m_MPRViewer->GetInteractor( i )->GetInteractorStyle( )
+ );
+ if( s != NULL )
+ {
+ if( this->m_Configured )
+ {
+ for( unsigned int i = 0; i < s->GetNumberOfSeeds( ); ++i )
+ {
+ s->GetSeedAsPoint( i, aux_pnt );
+ typename I::PointType seed;
+ for( unsigned int d = 0; d < dim; ++d )
+ seed[ d ] = aux_pnt[ d ];
+ out->AddPoint( seed );
+
+ } // rof
+ }
+ else
+ s->SeedWidgetOn( );
+
+ } // fi
+
+ } // rof
+
+ } // fi
+
+ // Single interactor
+ _S* s = dynamic_cast< _S* >( this->m_SingleInteractor );
+ if( s != NULL )
+ {
+ if( this->m_Configured )
+ {
+ for( unsigned int i = 0; i < s->GetNumberOfSeeds( ); ++i )
+ {
+ s->GetSeedAsPoint( i, aux_pnt );
+ typename I::PointType seed;
+ for( unsigned int d = 0; d < dim; ++d )
+ seed[ d ] = aux_pnt[ d ];
+ out->AddPoint( seed );
+
+ } // rof
+ }
+ else
+ s->SeedWidgetOn( );
+
+ } // fi
+
+ /* TODO
auto iIt = this->m_Interactors.begin( );
for( ; iIt != this->m_Interactors.end( ); ++iIt )
{
} // fi
} // rof
+ */
this->m_Configured = true;
return( "" );
}