}
// -------------------------------------------------------------------------
-int cpExtensions::Visualization::MPRActors::
-AddInputConnection( vtkAlgorithmOutput* aout )
+void cpExtensions::Visualization::MPRActors::
+SetInputConnection( vtkAlgorithmOutput* aout )
{
- int N = this->Slices[ 0 ][ 0 ]->GetNumberOfImageActors( );
- if( N == 0 )
+ for( int i = 0; i < 2; ++i )
{
- this->Slices[ 0 ][ 0 ]->AddInputConnection( aout, 0 );
- vtkImageMapToColors* imap = this->Slices[ 0 ][ 0 ]->GetImageMap( 0 );
- for( unsigned int i = 0; i < 2; ++i )
- for( unsigned int j = 0; j < 3; ++j )
- if( i != 0 || j != 0 )
- this->Slices[ i ][ j ]->AddInputConnection(
- ( ( imap != NULL )? imap->GetOutputPort( ): aout ), j
- );
-
- // Create bounding box
- vtkImageData* new_image = dynamic_cast< vtkImageData* >(
- aout->GetProducer( )->GetOutputDataObject( aout->GetIndex( ) )
- );
-
- // Create 3D outline
- double bb[ 6 ];
- new_image->GetBounds( bb );
+ for( int j = 0; j < 3; ++j )
+ {
+ this->Slices[ i ][ j ]->SetInputConnection( aout );
+ this->Slices[ i ][ j ]->SetAxis( j );
- vtkSmartPointer< vtkOutlineSource > img_ol =
- vtkSmartPointer< vtkOutlineSource >::New( );
- img_ol->SetBounds( bb );
+ } // rof
- vtkSmartPointer< vtkPolyDataMapper > img_ol_mapper =
- vtkSmartPointer< vtkPolyDataMapper >::New( );
- img_ol_mapper->SetInputConnection( img_ol->GetOutputPort( ) );
- this->ImageOutlineActor->SetMapper( img_ol_mapper );
- this->ImageOutlineActor->GetProperty( )->SetColor( 1, 1, 1 );
- this->ImageOutlineActor->GetProperty( )->SetLineWidth( 1 );
+ } // rof
+ this->_CreateBoundingBox( );
+}
- this->AddItem( this->ImageOutlineActor );
- }
- else
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+SetInputImage( vtkImageData* data )
+{
+ for( int i = 0; i < 2; ++i )
{
- // Check if the image share the same space
- vtkImageData* new_image = dynamic_cast< vtkImageData* >(
- aout->GetProducer( )->GetOutputDataObject( aout->GetIndex( ) )
- );
- if( new_image != NULL )
+ for( int j = 0; j < 3; ++j )
{
- vtkAlgorithmOutput* ref_aout =
- this->Slices[ 0 ][ 0 ]->GetImageMap( 0 )->GetOutputPort( );
- vtkImageData* ref_image = dynamic_cast< vtkImageData* >(
- ref_aout->GetProducer( )->GetOutputDataObject( ref_aout->GetIndex( ) )
- );
- if( ref_image != NULL )
- {
- int ref_ext[ 6 ], new_ext[ 6 ];
- ref_image->GetExtent( ref_ext );
- new_image->GetExtent( new_ext );
- if(
- ref_ext[ 0 ] == new_ext[ 0 ] && ref_ext[ 1 ] == new_ext[ 1 ] &&
- ref_ext[ 2 ] == new_ext[ 2 ] && ref_ext[ 3 ] == new_ext[ 3 ] &&
- ref_ext[ 4 ] == new_ext[ 4 ] && ref_ext[ 5 ] == new_ext[ 5 ]
- )
- {
- this->Slices[ 0 ][ 0 ]->AddInputConnection( aout, 0 );
- vtkImageMapToColors* imap = this->Slices[ 0 ][ 0 ]->GetImageMap( N );
- for( unsigned int i = 0; i < 2; ++i )
- for( unsigned int j = 0; j < 3; ++j )
- if( i != 0 || j != 0 )
- this->Slices[ i ][ j ]->AddInputConnection(
- ( ( imap != NULL )? imap->GetOutputPort( ): aout ), j
- );
- }
- else
- N = -1;
- }
- else
- N = -1;
- }
- else
- N = -1;
+ this->Slices[ i ][ j ]->SetInputImage( data );
+ this->Slices[ i ][ j ]->SetAxis( j );
- } // fi
- return( N );
+ } // rof
+
+ } // rof
+ this->_CreateBoundingBox( );
}
// -------------------------------------------------------------------------
int cpExtensions::Visualization::MPRActors::
-AddInputData( vtkImageData* new_image )
+AddBinaryConnection(
+ vtkAlgorithmOutput* aout,
+ const double& r, const double& g, const double& b
+ )
{
- int N = this->Slices[ 0 ][ 0 ]->GetNumberOfImageActors( );
- if( N == 0 )
- {
- this->Slices[ 0 ][ 0 ]->AddInputData( new_image, 0 );
- vtkImageMapToColors* imap = this->Slices[ 0 ][ 0 ]->GetImageMap( 0 );
- for( unsigned int i = 0; i < 2; ++i )
- for( unsigned int j = 0; j < 3; ++j )
- if( i != 0 || j != 0 )
- {
- if( imap != NULL )
- this->Slices[ i ][ j ]->AddInputConnection(
- imap->GetOutputPort( ), j
- );
- else
- this->Slices[ i ][ j ]->AddInputData( new_image, j );
-
- } // fi
-
- // Create 3D outline
- double bb[ 6 ];
- new_image->GetBounds( bb );
-
- vtkSmartPointer< vtkOutlineSource > img_ol =
- vtkSmartPointer< vtkOutlineSource >::New( );
- img_ol->SetBounds( bb );
-
- vtkSmartPointer< vtkPolyDataMapper > img_ol_mapper =
- vtkSmartPointer< vtkPolyDataMapper >::New( );
- img_ol_mapper->SetInputConnection( img_ol->GetOutputPort( ) );
- this->ImageOutlineActor->SetMapper( img_ol_mapper );
- this->ImageOutlineActor->GetProperty( )->SetColor( 1, 1, 1 );
- this->ImageOutlineActor->GetProperty( )->SetLineWidth( 1 );
-
- this->AddItem( this->ImageOutlineActor );
- }
- else
- {
- // Check if the image share the same space
- vtkAlgorithmOutput* ref_aout =
- this->Slices[ 0 ][ 0 ]->GetImageMap( 0 )->GetOutputPort( );
- vtkImageData* ref_image = dynamic_cast< vtkImageData* >(
- ref_aout->GetProducer( )->GetOutputDataObject( ref_aout->GetIndex( ) )
- );
- if( ref_image != NULL )
- {
- int ref_ext[ 6 ], new_ext[ 6 ];
- ref_image->GetExtent( ref_ext );
- new_image->GetExtent( new_ext );
- if(
- ref_ext[ 0 ] == new_ext[ 0 ] && ref_ext[ 1 ] == new_ext[ 1 ] &&
- ref_ext[ 2 ] == new_ext[ 2 ] && ref_ext[ 3 ] == new_ext[ 3 ] &&
- ref_ext[ 4 ] == new_ext[ 4 ] && ref_ext[ 5 ] == new_ext[ 5 ]
- )
- {
- this->Slices[ 0 ][ 0 ]->AddInputData( new_image, 0 );
- vtkImageMapToColors* imap = this->Slices[ 0 ][ 0 ]->GetImageMap( N );
- for( unsigned int i = 0; i < 2; ++i )
- for( unsigned int j = 0; j < 3; ++j )
- if( i != 0 || j != 0 )
- {
- if( imap != NULL )
- this->Slices[ i ][ j ]->AddInputConnection(
- imap->GetOutputPort( ), j
- );
- else
- this->Slices[ i ][ j ]->AddInputData( new_image, j );
-
- } // fi
- }
- else
- N = -1;
- }
- else
- N = -1;
+ this->Slices[ 0 ][ 0 ]->AddBinaryConnection( aout, r, g, b );
+ this->Slices[ 0 ][ 1 ]->AddBinaryConnection( aout, r, g, b );
+ this->Slices[ 0 ][ 2 ]->AddBinaryConnection( aout, r, g, b );
+ this->Slices[ 1 ][ 0 ]->AddBinaryConnection( aout, r, g, b );
+ this->Slices[ 1 ][ 1 ]->AddBinaryConnection( aout, r, g, b );
+ return( this->Slices[ 1 ][ 2 ]->AddBinaryConnection( aout, r, g, b ) );
+}
- } // fi
- return( N );
+// -------------------------------------------------------------------------
+int cpExtensions::Visualization::MPRActors::
+AddBinaryImage(
+ vtkImageData* data,
+ const double& r, const double& g, const double& b
+ )
+{
+ this->Slices[ 0 ][ 0 ]->AddBinaryImage( data, r, g, b );
+ this->Slices[ 0 ][ 1 ]->AddBinaryImage( data, r, g, b );
+ this->Slices[ 0 ][ 2 ]->AddBinaryImage( data, r, g, b );
+ this->Slices[ 1 ][ 0 ]->AddBinaryImage( data, r, g, b );
+ this->Slices[ 1 ][ 1 ]->AddBinaryImage( data, r, g, b );
+ return( this->Slices[ 1 ][ 2 ]->AddBinaryImage( data, r, g, b ) );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+Clear( )
+{
+ this->Slices[ 0 ][ 0 ]->Clear( );
+ this->Slices[ 0 ][ 1 ]->Clear( );
+ this->Slices[ 0 ][ 2 ]->Clear( );
+ this->Slices[ 1 ][ 0 ]->Clear( );
+ this->Slices[ 1 ][ 1 ]->Clear( );
+ this->Slices[ 1 ][ 2 ]->Clear( );
+}
+
+// -------------------------------------------------------------------------
+vtkImageData* cpExtensions::Visualization::MPRActors::
+GetInputImage( )
+{
+ return( this->Slices[ 0 ][ 0 ]->GetInputImage( ) );
+}
+
+// -------------------------------------------------------------------------
+const vtkImageData* cpExtensions::Visualization::MPRActors::
+GetInputImage( ) const
+{
+ return( this->Slices[ 0 ][ 0 ]->GetInputImage( ) );
}
// -------------------------------------------------------------------------
unsigned int cpExtensions::Visualization::MPRActors::
GetNumberOfImages( ) const
{
- return( this->Slices[ 0 ][ 0 ]->GetNumberOfImageActors( ) );
+ return( this->Slices[ 0 ][ 0 ]->GetNumberOfImages( ) );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+SetInterpolate( bool v )
+{
+ this->Slices[ 0 ][ 0 ]->SetInterpolate( v );
+ this->Slices[ 0 ][ 1 ]->SetInterpolate( v );
+ this->Slices[ 0 ][ 2 ]->SetInterpolate( v );
+ this->Slices[ 1 ][ 0 ]->SetInterpolate( v );
+ this->Slices[ 1 ][ 1 ]->SetInterpolate( v );
+ this->Slices[ 1 ][ 2 ]->SetInterpolate( v );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+InterpolateOn( )
+{
+ this->SetInterpolate( true );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+InterpolateOff( )
+{
+ this->SetInterpolate( false );
}
// -------------------------------------------------------------------------
void cpExtensions::Visualization::MPRActors::
PushActorsInto(
- vtkRenderWindow* x, vtkRenderWindow* y, vtkRenderWindow* z,
+ vtkRenderWindow* x,
+ vtkRenderWindow* y,
+ vtkRenderWindow* z,
vtkRenderWindow* w
)
{
this->Slices[ 1 ][ 1 ]->PushActorsInto( w, false );
this->Slices[ 1 ][ 2 ]->PushActorsInto( w, false );
- vtkRenderer* xren =
- ( x != NULL )? x->GetRenderers( )->GetFirstRenderer( ): NULL;
- vtkRenderer* yren =
- ( y != NULL )? y->GetRenderers( )->GetFirstRenderer( ): NULL;
- vtkRenderer* zren =
- ( z != NULL )? z->GetRenderers( )->GetFirstRenderer( ): NULL;
vtkRenderer* wren =
( w != NULL )? w->GetRenderers( )->GetFirstRenderer( ): NULL;
-
- if( xren != NULL )
- {
- xren->AddActor( this->Slices[ 0 ][ 1 ]->GetPlaneActor( ) );
- xren->AddActor( this->Slices[ 0 ][ 2 ]->GetPlaneActor( ) );
-
- } // fi
- if( yren != NULL )
- {
- yren->AddActor( this->Slices[ 0 ][ 0 ]->GetPlaneActor( ) );
- yren->AddActor( this->Slices[ 0 ][ 2 ]->GetPlaneActor( ) );
-
- } // fi
- if( zren != NULL )
+ if( wren != NULL )
{
- zren->AddActor( this->Slices[ 0 ][ 0 ]->GetPlaneActor( ) );
- zren->AddActor( this->Slices[ 0 ][ 1 ]->GetPlaneActor( ) );
+ wren->AddViewProp( this->ImageOutlineActor );
+ wren->AddViewProp( this->Slices[ 1 ][ 0 ]->GetPlaneActor( ) );
+ wren->AddViewProp( this->Slices[ 1 ][ 1 ]->GetPlaneActor( ) );
+ wren->AddViewProp( this->Slices[ 1 ][ 2 ]->GetPlaneActor( ) );
} // fi
- if( wren != NULL )
- wren->AddActor( this->ImageOutlineActor );
}
// -------------------------------------------------------------------------
void cpExtensions::Visualization::MPRActors::
PopActorsFrom(
- vtkRenderWindow* x, vtkRenderWindow* y, vtkRenderWindow* z,
+ vtkRenderWindow* x,
+ vtkRenderWindow* y,
+ vtkRenderWindow* z,
vtkRenderWindow* w
)
{
vtkRenderer* wren =
( w != NULL )? w->GetRenderers( )->GetFirstRenderer( ): NULL;
if( wren != NULL )
- wren->RemoveActor( this->ImageOutlineActor );
+ {
+ wren->RemoveViewProp( this->ImageOutlineActor );
+ wren->RemoveViewProp( this->Slices[ 1 ][ 0 ]->GetPlaneActor( ) );
+ wren->RemoveViewProp( this->Slices[ 1 ][ 1 ]->GetPlaneActor( ) );
+ wren->RemoveViewProp( this->Slices[ 1 ][ 2 ]->GetPlaneActor( ) );
- this->Slices[ 0 ][ 0 ]->Clear( );
- this->Slices[ 0 ][ 1 ]->Clear( );
- this->Slices[ 0 ][ 2 ]->Clear( );
- this->Slices[ 1 ][ 0 ]->Clear( );
- this->Slices[ 1 ][ 1 ]->Clear( );
- this->Slices[ 1 ][ 2 ]->Clear( );
+ } // fi
}
// -------------------------------------------------------------------------
-void cpExtensions::Visualization::MPRActors::
-SetLookupTableAsColor( unsigned int i, double r, double g, double b )
+double cpExtensions::Visualization::MPRActors::
+GetMinWindow( ) const
+{
+ return( this->Slices[ 0 ][ 0 ]->GetMinWindow( ) );
+}
+
+// -------------------------------------------------------------------------
+double cpExtensions::Visualization::MPRActors::
+GetMaxWindow( ) const
{
- this->Slices[ 0 ][ 0 ]->SetLookupTableAsColor( 0, r, g, b );
- this->Slices[ 0 ][ 1 ]->Modified( );
- this->Slices[ 0 ][ 2 ]->Modified( );
- this->Slices[ 1 ][ 0 ]->Modified( );
- this->Slices[ 1 ][ 1 ]->Modified( );
- this->Slices[ 1 ][ 2 ]->Modified( );
- this->Modified( );
+ return( this->Slices[ 0 ][ 0 ]->GetMaxWindow( ) );
+}
+
+// -------------------------------------------------------------------------
+double cpExtensions::Visualization::MPRActors::
+GetMinLevel( ) const
+{
+ return( this->Slices[ 0 ][ 0 ]->GetMinLevel( ) );
+}
+
+// -------------------------------------------------------------------------
+double cpExtensions::Visualization::MPRActors::
+GetMaxLevel( ) const
+{
+ return( this->Slices[ 0 ][ 0 ]->GetMaxLevel( ) );
}
// -------------------------------------------------------------------------
return( this->Slices[ 0 ][ 0 ]->GetLevel( ) );
}
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+SetWindow( double w )
+{
+ this->Slices[ 0 ][ 0 ]->SetWindow( w );
+ this->Slices[ 0 ][ 1 ]->SetWindow( w );
+ this->Slices[ 0 ][ 2 ]->SetWindow( w );
+ this->Slices[ 1 ][ 0 ]->SetWindow( w );
+ this->Slices[ 1 ][ 1 ]->SetWindow( w );
+ this->Slices[ 1 ][ 2 ]->SetWindow( w );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+SetLevel( double l )
+{
+ this->Slices[ 0 ][ 0 ]->SetLevel( l );
+ this->Slices[ 0 ][ 1 ]->SetLevel( l );
+ this->Slices[ 0 ][ 2 ]->SetLevel( l );
+ this->Slices[ 1 ][ 0 ]->SetLevel( l );
+ this->Slices[ 1 ][ 1 ]->SetLevel( l );
+ this->Slices[ 1 ][ 2 ]->SetLevel( l );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+SetWindowLevel( double w, double l )
+{
+ this->Slices[ 0 ][ 0 ]->SetWindowLevel( w, l );
+ this->Slices[ 0 ][ 1 ]->SetWindowLevel( w, l );
+ this->Slices[ 0 ][ 2 ]->SetWindowLevel( w, l );
+ this->Slices[ 1 ][ 0 ]->SetWindowLevel( w, l );
+ this->Slices[ 1 ][ 1 ]->SetWindowLevel( w, l );
+ this->Slices[ 1 ][ 2 ]->SetWindowLevel( w, l );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+ResetWindowLevel( )
+{
+ this->Slices[ 0 ][ 0 ]->ResetWindowLevel( );
+ this->Slices[ 0 ][ 1 ]->ResetWindowLevel( );
+ this->Slices[ 0 ][ 2 ]->ResetWindowLevel( );
+ this->Slices[ 1 ][ 0 ]->ResetWindowLevel( );
+ this->Slices[ 1 ][ 1 ]->ResetWindowLevel( );
+ this->Slices[ 1 ][ 2 ]->ResetWindowLevel( );
+}
+
// -------------------------------------------------------------------------
int cpExtensions::Visualization::MPRActors::
-GetSliceNumberMinValue( const int& axis ) const
+GetSliceNumber( const int& axis ) const
{
- return( this->Slices[ 0 ][ axis ]->GetSliceNumberMinValue( ) );
+ if( axis < 3 )
+ return( this->Slices[ 0 ][ axis ]->GetSliceNumber( ) );
+ else
+ return( -1 );
}
// -------------------------------------------------------------------------
int cpExtensions::Visualization::MPRActors::
-GetSliceNumberMaxValue( const int& axis ) const
+GetSliceNumberMinValue( const int& axis ) const
{
- return( this->Slices[ 0 ][ axis ]->GetSliceNumberMaxValue( ) );
+ if( axis < 3 )
+ return( this->Slices[ 0 ][ axis ]->GetSliceNumberMinValue( ) );
+ else
+ return( -1 );
}
// -------------------------------------------------------------------------
int cpExtensions::Visualization::MPRActors::
-GetSlice( const int& axis ) const
+GetSliceNumberMaxValue( const int& axis ) const
{
- return( this->Slices[ 0 ][ axis ]->GetSliceNumber( ) );
+ if( axis < 3 )
+ return( this->Slices[ 0 ][ axis ]->GetSliceNumberMaxValue( ) );
+ else
+ return( -1 );
}
// -------------------------------------------------------------------------
void cpExtensions::Visualization::MPRActors::
-SetSlice( const int& axis, const int& slice )
+SetSliceNumber( const int& axis, const int& slice )
{
- vtkImageData* image = this->Slices[ 0 ][ 0 ]->GetInputImage( 0 );
- if( image == NULL )
- return;
+ if( axis < 3 )
+ {
+ this->Slices[ 0 ][ axis ]->SetSliceNumber( slice );
+ this->Slices[ 1 ][ axis ]->SetSliceNumber( slice );
- // Get image data extent
- int ext[ 6 ];
- image->GetExtent( ext );
+ } // fi
+}
- // Check if the slice is valid
- int real = slice;
- if( slice < ext[ axis << 1 ] )
- real = ext[ axis << 1 ];
- if( ext[ ( axis << 1 ) + 1 ] < slice )
- real = ext[ ( axis << 1 ) + 1 ];
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+SetSlice( const int& axis, double* pos )
+{
+ if( axis < 3 )
+ {
+ this->Slices[ 0 ][ axis ]->SetSlice( pos );
+ this->Slices[ 1 ][ axis ]->SetSlice( pos );
- // Change slice
- this->Slices[ 0 ][ axis ]->SetSliceNumber( real );
- this->Slices[ 1 ][ axis ]->SetSliceNumber( real );
- this->Modified( );
+ } // fi
}
// -------------------------------------------------------------------------
void cpExtensions::Visualization::MPRActors::
-SetSlice( const int& axis, const double& slice )
+SetAxesCursor( const int& axis, double* pos )
{
- vtkImageData* image = this->Slices[ 0 ][ 0 ]->GetInputImage( 0 );
- if( image == NULL )
- return;
+ if( axis < 3 )
+ this->Slices[ 0 ][ axis ]->SetAxesCursor( pos );
+}
- double x[ 3 ] = { double( 0 ) };
- double pcoords[ 3 ];
- int ijk[ 3 ];
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+Render( const int& axis )
+{
+ if( axis < 3 )
+ {
+ this->Slices[ 0 ][ axis ]->Render( );
+ this->Slices[ 1 ][ axis ]->Render( );
- x[ axis ] = slice;
- image->ComputeStructuredCoordinates( x, ijk, pcoords );
- this->SetSlice( axis, ijk[ axis ] );
+ } // fi
}
// -------------------------------------------------------------------------
void cpExtensions::Visualization::MPRActors::
-ResetSlices( )
+Render( )
{
- for( unsigned int i = 0; i < 2; ++i )
- for( unsigned int j = 0; j < 3; ++j )
- this->Slices[ i ][ j ]->SetSliceNumber(
- this->Slices[ i ][ j ]->GetSliceNumberMaxValue( )
- );
+ this->Render( 0 );
+ this->Render( 1 );
+ this->Render( 2 );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+ResetCamera( const int& axis )
+{
+ if( axis < 3 )
+ this->Slices[ 0 ][ axis ]->ResetCamera( );
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+ResetCameras( )
+{
+ this->ResetCamera( 0 );
+ this->ResetCamera( 1 );
+ this->ResetCamera( 2 );
}
// -------------------------------------------------------------------------
this->Slices[ 0 ][ i ]->AddWindowLevelCommand(
Self::_WindowLevelCommand, this
);
- // this->Slices[ 0 ][ i ]->AddSlicesCommand( Self::_SlicesCommand, this );
+ this->Slices[ 0 ][ i ]->AddSlicesCommand( Self::_SlicesCommand, this );
} // rof
}
{
}
+// -------------------------------------------------------------------------
+void cpExtensions::Visualization::MPRActors::
+_CreateBoundingBox( )
+{
+ vtkImageData* image =
+ dynamic_cast< vtkImageData* >( this->Slices[ 0 ][ 0 ]->GetInputImage( ) );
+ if( image == NULL )
+ return;
+
+ // Create 3D outline
+ double bb[ 6 ];
+ image->GetBounds( bb );
+
+ vtkSmartPointer< vtkOutlineSource > img_ol =
+ vtkSmartPointer< vtkOutlineSource >::New( );
+ img_ol->SetBounds( bb );
+
+ vtkSmartPointer< vtkPolyDataMapper > img_ol_mapper =
+ vtkSmartPointer< vtkPolyDataMapper >::New( );
+ img_ol_mapper->SetInputConnection( img_ol->GetOutputPort( ) );
+ this->ImageOutlineActor->SetMapper( img_ol_mapper );
+ this->ImageOutlineActor->GetProperty( )->SetColor( 1, 1, 1 );
+ this->ImageOutlineActor->GetProperty( )->SetLineWidth( 1 );
+
+ this->AddItem( this->ImageOutlineActor );
+}
+
// -------------------------------------------------------------------------
void cpExtensions::Visualization::MPRActors::
_SlicesCommand( double* pos, int axis, void* data )
{
- /*
- MPRActors* actors = reinterpret_cast< MPRActors* >( data );
- if( actors == NULL )
+ MPRActors* actors = reinterpret_cast< MPRActors* >( data );
+ if( actors == NULL )
return;
- for( unsigned int j = 0; j < 3; ++j )
+ for( unsigned int j = 0; j < 3; ++j )
+ {
if( actors->Slices[ 0 ][ j ]->GetAxis( ) != axis )
- actors->Slices[ 0 ][ j ]->SetSlice( pos );
- actors->Modified( );
- */
+ {
+ actors->SetSlice( j, pos );
+ actors->SetAxesCursor( j, pos );
+ actors->Render( j );
+
+ } // fi
+
+ } // rof
}
// -------------------------------------------------------------------------
MPRActors* actors = reinterpret_cast< MPRActors* >( data );
if( actors == NULL )
return;
- actors->Slices[ 0 ][ 0 ]->Render( );
- actors->Slices[ 0 ][ 1 ]->Render( );
- actors->Slices[ 0 ][ 2 ]->Render( );
- actors->Slices[ 1 ][ 0 ]->Render( );
- actors->Slices[ 1 ][ 1 ]->Render( );
- actors->Slices[ 1 ][ 2 ]->Render( );
+ actors->SetWindowLevel( window, level );
+ actors->Render( );
}
// -------------------------------------------------------------------------
MPRActors* actors = reinterpret_cast< MPRActors* >( data );
if( actors == NULL )
return;
- actors->Slices[ 0 ][ 0 ]->Render( );
- actors->Slices[ 0 ][ 1 ]->Render( );
- actors->Slices[ 0 ][ 2 ]->Render( );
- actors->Slices[ 1 ][ 0 ]->Render( );
- actors->Slices[ 1 ][ 1 ]->Render( );
- actors->Slices[ 1 ][ 2 ]->Render( );
+ actors->Render( );
}
// eof - $RCSfile$