+++ /dev/null
-#include <cpExtensions/QT/MPR3DWidget.h>
-#include <cpExtensions/Visualization/ImageOutlineActor.h>
-#include <cpExtensions/Visualization/MeshActor.h>
-#include <cpExtensions/Visualization/WindowLevelImageActor.h>
-
-#include <vtkImageData.h>
-#include <vtkPlane.h>
-#include <vtkPolyData.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::MPR3DWidget::
-MPR3DWidget( QWidget* parent, Qt::WindowFlags f )
- : Superclass( parent, f ),
- m_ImageName( "" )
-{
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::MPR3DWidget::
-~MPR3DWidget( )
-{
- for( auto a = this->m_Actors.begin( ); a != this->m_Actors.end( ); ++a )
- delete *a;
- this->m_Actors.clear( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPR3DWidget::
-Clear( )
-{
- this->RemoveViewProps( );
- this->m_ImageName = "";
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPR3DWidget::
-SetImage( vtkImageData* image, const std::string& name )
-{
- if( name == "" )
- return;
- if( this->m_ImageName != "" )
- this->Clear( );
- this->m_ImageName = name;
-
- for( unsigned int o = 0; o < 3; ++o )
- {
- this->m_WLActors[ o ] = vtkSmartPointer< TWLActor >::New( );
- this->m_WLActors[ o ]->SetImage( image );
- this->m_WLActors[ o ]->SetOrientation( o );
-
- this->m_OLActors[ o ] = vtkSmartPointer< TOLActor >::New( );
- this->m_OLActors[ o ]->SetBounds(
- o, image->GetBounds( )[ o << 1 ], image->GetBounds( )
- );
-
- this->AddViewProp( this->m_WLActors[ o ], this->m_ImageName );
- this->AddAuxViewProp( this->m_OLActors[ o ], this->m_ImageName );
- this->ResetCamera( );
-
- } // rof
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPR3DWidget::
-Add( vtkDataSet* data, const std::string& name )
-{
- auto image = dynamic_cast< vtkImageData* >( data );
- auto pdata = dynamic_cast< vtkPolyData* >( data );
- if( image != NULL )
- {
- /* TODO
- if( this->m_ImageName != "" )
- {
- }
- else
- this->SetImage( image, name );
- */
- }
- else if( pdata != NULL )
- {
- TActor* actor = new TActor( );
- actor->SetMesh( pdata );
- this->m_Actors.push_back( actor );
- this->AddViewProp( actor->GetActor( ), name );
- this->Render( );
- if( this->m_ImageName == "" )
- this->ResetCamera( );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::MPR3DWidget::
-TWLActor* cpExtensions::QT::MPR3DWidget::
-GetImageActor( int o )
-{
- return( this->m_WLActors[ o % 3 ] );
-}
-
-// -------------------------------------------------------------------------
-const cpExtensions::QT::MPR3DWidget::
-TWLActor* cpExtensions::QT::MPR3DWidget::
-GetImageActor( int o ) const
-{
- return( this->m_WLActors[ o % 3 ] );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPR3DWidget::
-SetSliceNumber( int orientation, int slice )
-{
- int o = orientation % 3;
- this->m_WLActors[ o ]->SetSliceNumber( slice );
- this->m_OLActors[ o ]->SetBounds(
- o,
- this->m_WLActors[ o ]->GetSlicePlane( )->GetOrigin( )[ o ],
- this->m_WLActors[ o ]->GetImage( )->GetBounds( )
- );
- this->Render( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::MPR3DWidget::
-SetSlicesNumbers( int x, int y, int z )
-{
- int s[] = { x, y, z };
- for( int o = 0; o < 3; ++o )
- {
- this->m_WLActors[ o ]->SetSliceNumber( s[ o ] );
- this->m_OLActors[ o ]->SetBounds(
- o,
- this->m_WLActors[ o ]->GetSlicePlane( )->GetOrigin( )[ o ],
- this->m_WLActors[ o ]->GetImage( )->GetBounds( )
- );
-
- } // rof
- this->Render( );
-}
-
-// eof - $RCSfile$