-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_ConfigureNewLUT( vtkImageData* data )
-{
- // Does the new LUT is a window-level one?
- unsigned int nImgs = this->m_ImageMaps.size( );
- unsigned int nCmps = data->GetNumberOfScalarComponents( );
-
- if( nCmps > 1 )
- {
- this->m_ImageMaps.push_back( NULL );
- return;
-
- } // fi
-
- // Create LUT filter
- this->m_ImageMaps.push_back( vtkSmartPointer< vtkImageMapToColors >::New( ) );
- if( nImgs == 0 )
- {
- double range[ 2 ];
- data->GetScalarRange( range );
- vtkSmartPointer< vtkWindowLevelLookupTable > lut =
- vtkSmartPointer< vtkWindowLevelLookupTable >::New( );
- lut->SetScaleToLinear( );
- lut->SetTableRange( range );
- lut->SetWindow( range[ 1 ] - range[ 0 ] );
- lut->SetLevel( ( range[ 1 ] + range[ 0 ] ) / double( 2 ) );
- lut->Build( );
- this->m_ImageMaps[ 0 ]->SetLookupTable( lut );
- }
- else
- this->SetLookupTableAsColor( nImgs, 1, 0, 0 );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_ConfigureNewInput( int axis )
-{
- unsigned int nImages = this->m_ImageActors.size( );
-
- // Configure mapper
- vtkImageSliceMapper* mapper = this->m_SliceMappers[ nImages ];
- if( nImages == 0 )
- mapper->SetOrientation( axis );
- else
- mapper->SetOrientation( this->m_SliceMappers[ 0 ]->GetOrientation( ) );
- mapper->Update( );
-
- // Create actor
- vtkSmartPointer< vtkImageActor > actor =
- vtkSmartPointer< vtkImageActor >::New( );
- this->m_ImageActors.push_back( actor );
- actor->SetMapper( mapper );
- actor->SetInterpolate( this->m_Interpolate );
- actor->Modified( );
-
- if( nImages == 0 )
- this->m_Style->AssociateImageActor( actor );
- this->AddItem( actor );
-
- if( nImages > 1 )
- this->SetSliceNumber( this->GetSliceNumber( ) );
- else
- this->SetSliceNumber( this->GetSliceNumberMaxValue( ) );
- this->ResetCursor( );
- this->Modified( );
-}
-