void cpExtensions::Visualization::ImageSliceActors::
PushActorsInto( vtkRenderWindow* window, bool force_style )
{
+ if( window == NULL )
+ return;
vtkRenderWindowInteractor* rwi = window->GetInteractor( );
vtkRenderer* renderer = window->GetRenderers( )->GetFirstRenderer( );
-
+ if( rwi == NULL || renderer == NULL )
+ return;
+
// Update style
- if( rwi != NULL && force_style )
- {
+ if( force_style )
if( rwi->GetInteractorStyle( ) != this->Style.GetPointer( ) )
- {
rwi->SetInteractorStyle( this->Style );
- } // fi
-
- } // fi
+ // Update actors
+ unsigned int N = this->GetNumberOfImageActors( );
+ for( unsigned int n = 0; n < N; ++n )
+ renderer->AddActor( this->GetImageActor( n ) );
+ renderer->AddActor( this->CursorActor );
+ renderer->AddActor( this->PlaneActor );
+ renderer->AddActor( this->TextActor );
+ renderer->Modified( );
+
+ // Configure camera
+ vtkCamera* camera = renderer->GetActiveCamera( );
+ if( camera == NULL )
+ return;
- if( renderer != NULL )
+ // Parallel projections are better when displaying 2D images
+ if( force_style )
{
- // Update actors
- unsigned int N = this->GetNumberOfImageActors( );
- for( unsigned int n = 0; n < N; ++n )
- renderer->AddActor( this->GetImageActor( n ) );
- renderer->AddActor( this->CursorActor );
- renderer->AddActor( this->PlaneActor );
- renderer->AddActor( this->TextActor );
- renderer->Modified( );
-
- // Configure camera
- vtkCamera* camera = renderer->GetActiveCamera( );
- if( camera == NULL )
- return;
-
- // Parallel projections are better when displaying 2D images
- if( force_style )
+ int axis = this->GetAxis( );
+ camera->ParallelProjectionOn( );
+ camera->SetFocalPoint( double( 0 ), double( 0 ), double( 0 ) );
+ if( axis == 0 )
{
- int axis = this->GetAxis( );
- camera->ParallelProjectionOn( );
- camera->SetFocalPoint( double( 0 ), double( 0 ), double( 0 ) );
- if( axis == 0 )
- {
- camera->SetPosition( double( 1 ), double( 0 ), double( 0 ) );
- camera->SetViewUp ( double( 0 ), double( 1 ), double( 0 ) );
- }
- else if( axis == 1 )
- {
- camera->SetPosition( double( 0 ), double( 1 ), double( 0 ) );
- camera->SetViewUp ( double( 0 ), double( 0 ), double( -1 ) );
- }
- else // if( axis == 2 )
- {
- camera->SetPosition( double( 0 ), double( 0 ), double( 1 ) );
- camera->SetViewUp ( double( 0 ), double( 1 ), double( 0 ) );
-
- } // fi
+ camera->SetPosition( double( 1 ), double( 0 ), double( 0 ) );
+ camera->SetViewUp ( double( 0 ), double( 1 ), double( 0 ) );
+ }
+ else if( axis == 1 )
+ {
+ camera->SetPosition( double( 0 ), double( 1 ), double( 0 ) );
+ camera->SetViewUp ( double( 0 ), double( 0 ), double( -1 ) );
+ }
+ else // if( axis == 2 )
+ {
+ camera->SetPosition( double( 0 ), double( 0 ), double( 1 ) );
+ camera->SetViewUp ( double( 0 ), double( 1 ), double( 0 ) );
} // fi
- renderer->ResetCamera( );
- rwi->Render( );
} // fi
+ renderer->ResetCamera( );
+ rwi->Render( );
}
// -------------------------------------------------------------------------
void cpExtensions::Visualization::ImageSliceActors::
UpdateText( double pos[ 3 ] )
{
+ /* TODO
if( this->SliceMappers.size( ) > 0 )
{
char axis;
this->TextActor->SetInput( this->TextBuffer );
this->TextActor->Modified( );
this->Modified( );
+ */
}
// -------------------------------------------------------------------------
if( !alt && !ctr && !sft )
actors->SetCursor( pos );
else if( !alt && ctr && !sft && actors->SlicesCommand != NULL )
+ {
actors->SlicesCommand( pos, actors->GetAxis( ), actors->SlicesData );
+ for( unsigned int i = 0; i < actors->CursorCommands.size( ); ++i )
+ actors->CursorCommands[ i ].first(
+ pos,
+ actors->GetAxis( ),
+ actors->CursorCommands[ i ].second
+ );
+
+ } // fi
}
else if( btn == ImageInteractorStyle::ButtonID_Middle )
{