#include #ifdef cpExtensions_QT4 #include #include #include #include #include // ------------------------------------------------------------------------- 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( ) { } #endif // cpExtensions_QT4 // eof - $RCSfile$