X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FVisualization%2FMPRObjects.cxx;h=a0c1f3eb64ace2ef98f0a279faa828ed1c1201f7;hb=c0627ed97baf80b6751379801fc4d5c377b45467;hp=aaadf31b1b61ede9daff48099bb27613b232f87f;hpb=1d735deae0ae5e8bff643a59370a03c961ef780c;p=cpPlugins.git diff --git a/lib/cpExtensions/Visualization/MPRObjects.cxx b/lib/cpExtensions/Visualization/MPRObjects.cxx index aaadf31..a0c1f3e 100644 --- a/lib/cpExtensions/Visualization/MPRObjects.cxx +++ b/lib/cpExtensions/Visualization/MPRObjects.cxx @@ -1,5 +1,9 @@ #include +#include +#include +#include + // ------------------------------------------------------------------------- cpExtensions::Visualization::MPRObjects* cpExtensions::Visualization::MPRObjects:: @@ -44,87 +48,45 @@ SetRenderWindows( // ------------------------------------------------------------------------- void cpExtensions::Visualization::MPRObjects:: -SetImage( vtkImageData* image ) +AddImage( vtkImageData* image ) { this->m_MPRActors->AddInputData( image ); - this->m_MPRActors->PushDataInto( - this->m_Renderers[ 0 ], - this->m_Renderers[ 1 ], - this->m_Renderers[ 2 ], - this->m_Renderers[ 3 ] + this->m_MPRActors->PushActorsInto( + this->m_Windows[ 0 ], + this->m_Windows[ 1 ], + this->m_Windows[ 2 ], + this->m_Windows[ 3 ] ); - // Correct cameras positions - /* TODO - vtkCamera* zCam = this->m_Renderers[ 2 ]->GetActiveCamera( ); - zCam->SetViewUp( 0, -1, 0 ); - zCam->SetPosition( 0, 0, -1 ); - zCam->SetFocalPoint( 0, 0, 0 ); - */ - // First rendering - this->m_MPRActors->ResetSlices( ); - this->ResetCameras( ); - this->RenderAll( ); + if( this->m_MPRActors->GetNumberOfImages( ) == 1 ) + { + this->m_MPRActors->ResetSlices( ); + this->ResetCameras( ); + + } // fi + this->RenderAll( 1e-3 ); } // ------------------------------------------------------------------------- -void cpExtensions::Visualization::MPRObjects:: -ActivateInteractors( ) +unsigned int cpExtensions::Visualization::MPRObjects:: +GetNumberOfImages( ) const { - // Prepare renderers - for( int i = 0; i < 3; ++i ) - { - // Check prerrequisites - if( this->m_Windows[ i ] == NULL || this->m_Renderers[ i ] == NULL ) - { - this->m_Styles[ i ] = NULL; - continue; - - } // fi - - ImageSliceActors* actors = this->m_MPRActors->GetSliceActors( i ); - if( actors == NULL ) - { - this->m_Styles[ i ] = NULL; - continue; - - } // fi - - this->m_Styles[ i ] = vtkSmartPointer< TStyle >::New( ); - this->m_Styles[ i ]->Configure( actors, this->m_MPRActors ); - this->m_Styles[ i ]-> - SetInteractor( this->m_Windows[ i ]->GetInteractor( ), i ); - this->m_Styles[ i ]->SetModeToNavigation( ); - - } // rof - - // Synch 2D and 3D renderers - for( int i = 0; i < 3; ++i ) - { - for( int j = 0; j < 3; ++j ) - { - if( - this->m_Windows[ i ] != NULL && - this->m_Windows[ j ] != NULL && - i != j - ) - this->m_Styles[ i ]-> - AssociateInteractor( this->m_Windows[ j ]->GetInteractor( ) ); - - } // rof - if( this->m_Windows[ 3 ] != NULL ) - this->m_Styles[ i ]-> - AssociateInteractor( this->m_Windows[ 3 ]->GetInteractor( ) ); - - } // rof - - // Finish interactor linking - this->m_MPRActors->LinkInteractors( ); + return( this->m_MPRActors->GetNumberOfImages( ) ); +} - // Restart rendering +// ------------------------------------------------------------------------- +void cpExtensions::Visualization::MPRObjects:: +ClearAll( ) +{ + this->m_MPRActors->PopActorsFrom( + this->m_Windows[ 0 ], + this->m_Windows[ 1 ], + this->m_Windows[ 2 ], + this->m_Windows[ 3 ] + ); this->ResetCameras( ); - this->RenderAll( ); + this->RenderAll( 1e-3 ); } // ------------------------------------------------------------------------- @@ -147,20 +109,36 @@ ResetCameras( ) // ------------------------------------------------------------------------- void cpExtensions::Visualization::MPRObjects:: -Render( const int& id ) +Render( const int& id, const double& t ) { if( id < 4 ) + { if( this->m_Windows[ id ] != NULL ) + { + if( this->m_Renderers[ id ] != NULL ) + this->m_Renderers[ id ]->SetAllocatedRenderTime( t ); this->m_Windows[ id ]->Render( ); + + } // fi + + } // fi } // ------------------------------------------------------------------------- void cpExtensions::Visualization::MPRObjects:: -RenderAll( ) +RenderAll( const double& t ) { for( int i = 0; i < 4; ++i ) + { if( this->m_Windows[ i ] != NULL ) + { + if( this->m_Renderers[ i ] != NULL ) + this->m_Renderers[ i ]->SetAllocatedRenderTime( t ); this->m_Windows[ i ]->Render( ); + + } // fi + + } // rof } // ------------------------------------------------------------------------- @@ -219,13 +197,43 @@ Get3DRenderer( ) const return( this->m_Renderers[ 3 ] ); } +// ------------------------------------------------------------------------- +cpExtensions::Visualization:: +MPRActors* cpExtensions::Visualization::MPRObjects:: +GetMPRActors( ) +{ + return( this->m_MPRActors ); +} + +// ------------------------------------------------------------------------- +const cpExtensions::Visualization:: +MPRActors* cpExtensions::Visualization::MPRObjects:: +GetMPRActors( ) const +{ + return( this->m_MPRActors ); +} + +// ------------------------------------------------------------------------- +double cpExtensions::Visualization::MPRObjects:: +GetWindow( ) const +{ + return( this->m_MPRActors->GetWindow( ) ); +} + +// ------------------------------------------------------------------------- +double cpExtensions::Visualization::MPRObjects:: +GetLevel( ) const +{ + return( this->m_MPRActors->GetLevel( ) ); +} + // ------------------------------------------------------------------------- cpExtensions::Visualization::MPRObjects:: MPRObjects( ) : vtkObject( ) { // Prepare actors - this->m_MPRActors = vtkSmartPointer< TMPRActors >::New( ); + this->m_MPRActors = vtkSmartPointer< MPRActors >::New( ); } // -------------------------------------------------------------------------