+++ /dev/null
-#include <cpExtensions/QT/MPRInteractionCommand.h>
-#include <cpExtensions/Interaction/ImageSliceStyle.h>
-#include <cpExtensions/Visualization/ImageViewerActors.h>
-#include <cpExtensions/QT/ImageWidget.h>
-#include <cpExtensions/QT/MPR3DWidget.h>
-#include <vtkImageData.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::MPRInteractionCommand::
-Self* cpExtensions::QT::MPRInteractionCommand::
-New( )
-{
- return( new Self( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPRInteractionCommand::
-AddWidget( QWidget* w )
-{
- typedef cpExtensions::QT::ImageWidget _TImageWidget;
- typedef cpExtensions::QT::MPR3DWidget _TMPR3DWidget;
-
- auto img = dynamic_cast< _TImageWidget* >( w );
- auto ren = dynamic_cast< _TMPR3DWidget* >( w );
- if( img != NULL )
- this->m_ImageWidgets.insert( img );
- else if( ren != NULL )
- this->m_MPR3DWidgets.insert( ren );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPRInteractionCommand::
-Execute( vtkObject* caller, unsigned long evId, void* data )
-{
- typedef cpExtensions::Interaction::ImageSliceStyle _TStyle;
-
- static const unsigned long _SuperCursor = vtkCommand::UserEvent + 1;
- static const unsigned long _Slice = vtkCommand::UserEvent + 2;
-
- // Prepare interaction data
- auto* src = dynamic_cast< _TStyle* >( caller );
- if( src == NULL || ( evId != _SuperCursor && evId != _Slice ) )
- return;
- if( evId == _SuperCursor )
- {
- /* TODO
- auto ori = src->GetActors( )->GetOrientation( );
- auto img = src->GetActors( )->GetImage( );
- auto pos = reinterpret_cast< double* >( data );
- int ijk[ 3 ];
- double pcoords[ 3 ];
- img->ComputeStructuredCoordinates( pos, ijk, pcoords );
-
- for(
- auto i = this->m_ImageWidgets.begin( );
- i != this->m_ImageWidgets.end( );
- ++i
- )
- if( ( *i )->GetInteractorStyle( ) != src )
- ( *i )->SetSliceNumber( ijk[ ( *i )->GetOrientation( ) ] );
-
- for(
- auto r = this->m_MPR3DWidgets.begin( );
- r != this->m_MPR3DWidgets.end( );
- ++r
- )
- ( *r )->SetSlicesNumbers( ijk[ 0 ], ijk[ 1 ], ijk[ 2 ] );
- */
- }
- else if( evId == _Slice )
- {
- int slc = src->GetSliceNumber( );
- int ori = src->GetOrientation( );
- for(
- auto r = this->m_MPR3DWidgets.begin( );
- r != this->m_MPR3DWidgets.end( );
- ++r
- )
- ( *r )->SetSliceNumber( ori, slc );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::MPRInteractionCommand::
-MPRInteractionCommand( )
- : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::MPRInteractionCommand::
-~MPRInteractionCommand( )
-{
-}
-
-// eof - $RCSfile$