X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FVisualization%2FMPRObjects.cxx;h=af0ad4192751367156338fb6ca57d38abfa2d039;hb=106a56bfe6a48067380089ffd61a518e40d77933;hp=a32824c455926d3f674f3f6d310afa629668af2c;hpb=4f6c47b5d9994cd1bbb601bfe8bc087a0a619e72;p=cpPlugins.git diff --git a/lib/cpExtensions/Visualization/MPRObjects.cxx b/lib/cpExtensions/Visualization/MPRObjects.cxx index a32824c..af0ad41 100644 --- a/lib/cpExtensions/Visualization/MPRObjects.cxx +++ b/lib/cpExtensions/Visualization/MPRObjects.cxx @@ -48,100 +48,38 @@ 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 ] ); // First rendering - this->m_MPRActors->ResetSlices( ); - this->ResetCameras( ); - this->RenderAll( ); -} - -// ------------------------------------------------------------------------- -void cpExtensions::Visualization::MPRObjects:: -AddAuxiliaryImage( vtkImageData* image ) -{ - // Try to add new image - int id = this->m_MPRActors->AddInputData( image ); - if( id < 0 ) - return; - - // Push everything on renderers - this->m_MPRActors->PushDataInto( - this->m_Renderers[ 0 ], - this->m_Renderers[ 1 ], - this->m_Renderers[ 2 ], - this->m_Renderers[ 3 ] - ); + if( this->m_MPRActors->GetNumberOfImages( ) == 1 ) + { + this->m_MPRActors->ResetSlices( ); + this->ResetCameras( ); - // Rendering - this->RenderAll( ); + } // fi + this->RenderAll( 1e-3 ); } // ------------------------------------------------------------------------- void cpExtensions::Visualization::MPRObjects:: -ActivateInteractors( ) +ClearAll( ) { - // 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( ); - - // Restart rendering + 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 ); } // ------------------------------------------------------------------------- @@ -164,20 +102,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 } // ------------------------------------------------------------------------- @@ -237,28 +191,42 @@ Get3DRenderer( ) const } // ------------------------------------------------------------------------- -cpExtensions::Visualization::MPRObjects:: -TMPRActors* cpExtensions::Visualization::MPRObjects:: +cpExtensions::Visualization:: +MPRActors* cpExtensions::Visualization::MPRObjects:: GetMPRActors( ) { return( this->m_MPRActors ); } // ------------------------------------------------------------------------- -const cpExtensions::Visualization::MPRObjects:: -TMPRActors* cpExtensions::Visualization::MPRObjects:: +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( ); } // -------------------------------------------------------------------------