]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Visualization/ImageSliceActors.cxx
Some bugs...
[cpPlugins.git] / lib / cpExtensions / Visualization / ImageSliceActors.cxx
index b444328be321e2946c54807f4a59345da8f312fd..88a0a4bc7d8a3c6cb47c0bd31239bec3781ced68 100644 (file)
@@ -45,7 +45,6 @@ SetAxis( int axis )
   this->m_ImageActor->Modified( );
   this->m_BlenderActor->Modified( );
   this->Modified( );
-  this->ResetCamera( );
 }
 
 // -------------------------------------------------------------------------
@@ -85,7 +84,7 @@ AddBinaryConnection(
     return( -1 );
   this->m_Blender->AddInputConnection( aout );
   this->_ConfigureBinaryImage( r, g, b );
-  return( this->m_Blender->GetNumberOfInputPorts( ) - 1 );
+  return( this->m_Blender->GetNumberOfInputs( ) - 1 );
 }
 
 // -------------------------------------------------------------------------
@@ -99,7 +98,7 @@ AddBinaryImage(
     return( -1 );
   this->m_Blender->AddInputData( data );
   this->_ConfigureBinaryImage( r, g, b );
-  return( this->m_Blender->GetNumberOfInputPorts( ) - 1 );
+  return( this->m_Blender->GetNumberOfInputs( ) - 1 );
 }
 
 // -------------------------------------------------------------------------
@@ -130,9 +129,6 @@ Clear( )
   this->m_BlenderActor->GetProperty( )->SetLookupTable( this->m_BlenderLUT );
   this->m_BlenderActor->GetProperty( )->UseLookupTableScalarRangeOn( );
 
-  // Remove associated objects
-  this->m_AssociatedSlices.clear( );
-
   // White cursor
   vtkSmartPointer< vtkPoints > cursor_points =
     vtkSmartPointer< vtkPoints >::New( );
@@ -331,14 +327,13 @@ PushActorsInto( vtkRenderWindow* window, bool force_style )
     }
     else // if( axis == 2 )
     {
-      camera->SetPosition( double( 0 ), double(  0 ), double( 1 ) );
-      camera->SetViewUp  ( double( 0 ), double( -1 ), double( 0 ) );
+      camera->SetPosition( double( 0 ), double(  0 ), double( -1 ) );
+      camera->SetViewUp  ( double( 0 ), double( -1 ), double(  0 ) );
 
     } // fi
 
   } // fi
-  this->ResetCamera( );
-  rwi->Render( );
+  renderer->ResetCamera( );
 }
 
 // -------------------------------------------------------------------------
@@ -356,8 +351,6 @@ PopActorsFrom( vtkRenderWindow* window )
     renderer->RemoveViewProp( this->m_TextActor );
     renderer->RemoveViewProp( this->m_Axis1Actor );
     renderer->RemoveViewProp( this->m_Axis2Actor );
-    if( rwi != NULL )
-      rwi->Render( );
 
   } // fi
 }
@@ -366,7 +359,7 @@ PopActorsFrom( vtkRenderWindow* window )
 unsigned int cpExtensions::Visualization::ImageSliceActors::
 GetNumberOfImages( ) const
 {
-  return( this->m_Blender->GetNumberOfInputPorts( ) );
+  return( this->m_Blender->GetNumberOfInputs( ) );
 }
 
 // -------------------------------------------------------------------------
@@ -867,25 +860,6 @@ SetSliceNumber( const int& slice )
   // Update text
   this->UpdateText( );
 
-  // Update lines from associated slices
-  /* TODO
-     auto sIt = this->m_AssociatedSlices.begin( );
-     for( ; sIt != this->m_AssociatedSlices.end( ); ++sIt )
-     {
-     Self* slice = *sIt;
-     for( unsigned int id = 0; id < slice->m_AssociatedSlices.size( ); ++id )
-     {
-     std::cout << id << std::endl;
-     if( slice->m_AssociatedSlices[ id ] != this )
-     continue;
-
-     std::cout << "id : " << id << std::endl;
-
-     } // rof
-
-     } // rof
-  */
-
   // Update camera position
   if( this->m_Window == NULL )
     return;
@@ -1022,17 +996,16 @@ UpdateText( const double& w, const double& l )
 
 // -------------------------------------------------------------------------
 void cpExtensions::Visualization::ImageSliceActors::
-Render( const double& t )
+Render( )
 {
-  if( this->m_Window != NULL )
-  {
-    vtkRenderer* renderer =
-      this->m_Window->GetRenderers( )->GetFirstRenderer( );
-    if( renderer != NULL )
-      renderer->SetAllocatedRenderTime( t );
-    this->m_Window->Render( );
-
-  } // fi
+  if( this->m_Window == NULL )
+    return;
+  vtkRenderer* renderer =
+    this->m_Window->GetRenderers( )->GetFirstRenderer( );
+  if( renderer == NULL )
+    return;
+  renderer->SetAllocatedRenderTime( 1e-3 );
+  this->m_Window->Render( );
 }
 
 // -------------------------------------------------------------------------
@@ -1043,8 +1016,9 @@ ResetCamera( )
     return;
   vtkRenderer* renderer =
     this->m_Window->GetRenderers( )->GetFirstRenderer( );
-  if( renderer != NULL )
-    renderer->ResetCamera( this->m_VisibleBounds );
+  if( renderer == NULL )
+    return;
+  renderer->ResetCamera( );
 }
 
 // -------------------------------------------------------------------------
@@ -1070,6 +1044,7 @@ _ConfigureStyle( )
 {
   // Connect this view with a controller
   this->m_Style = vtkSmartPointer< TStyle >::New( );
+  this->m_Style->SetAssociatedObject( this );
   this->m_Style->AddMouseMoveCommand( Self::_MouseMoveCommand, this );
   this->m_Style->AddMouseClickCommand( Self::_MouseClickCommand, this );
   this->m_Style->AddMouseWheelCommand( Self::_MouseWheelCommand, this );
@@ -1160,7 +1135,7 @@ _MouseMoveCommand(
     // Just show the pixel information
     actors->SetCursor( pos );
     actors->UpdateText( pos );
-    actors->Render( 1e-3 );
+    actors->Render( );
   }
   else if( btn == TStyle::ButtonID_Left )
   {
@@ -1168,12 +1143,12 @@ _MouseMoveCommand(
     {
       // Show axes in current renderer
       actors->SetAxesCursor( pos );
+      actors->Render( );
 
       // Interactively move slices
       auto i = actors->m_SlicesCommands.begin( );
       for( ; i != actors->m_SlicesCommands.end( ); ++i )
         i->first( pos, actors->GetAxis( ), i->second );
-      actors->Render( 1e-3 );
 
     } // fi
   }
@@ -1198,7 +1173,7 @@ _MouseMoveCommand(
       dx += actors->m_StartWindowLevel[ 0 ];
       dy += actors->m_StartWindowLevel[ 1 ];
       actors->SetWindowLevel( dx, dy );
-      actors->Render( 1e-3 );
+      actors->Render( );
 
       // Associate objects
       auto i = actors->m_WindowLevelCommands.begin( );
@@ -1247,15 +1222,11 @@ _MouseWheelCommand(
     if( slice > actors->GetSliceNumberMaxValue( ) )
       slice = actors->GetSliceNumberMaxValue( );
     actors->SetSliceNumber( slice );
+    actors->Render( );
 
     auto a = actors->m_AssociatedSlices.begin( );
     for( ; a != actors->m_AssociatedSlices.end( ); ++a )
-    {
       ( *a )->SetSliceNumber( slice );
-      ( *a )->Render( 1e-3 );
-
-    } // rof
-    actors->Render( 1e-3 );
 
     // Associate objects
     auto i = actors->m_RenderCommands.begin( );
@@ -1278,7 +1249,7 @@ _KeyCommand( void* data, const char& key )
   case 'r': case 'R':
   {
     actors->ResetCamera( );
-    actors->Render( 1e-3 );
+    actors->Render( );
 
     // Associate objects
     auto i = actors->m_RenderCommands.begin( );
@@ -1289,7 +1260,7 @@ _KeyCommand( void* data, const char& key )
   case 'w': case 'W':
   {
     actors->ResetWindowLevel( );
-    actors->Render( 1e-3 );
+    actors->Render( );
 
     // Associate objects
     auto i = actors->m_RenderCommands.begin( );
@@ -1312,7 +1283,7 @@ _EnterCommand( void* data )
 
   actors->ResetCursor( );
   actors->m_CursorActor->VisibilityOn( );
-  actors->Render( 1e-3 );
+  actors->Render( );
 }
 
 // -------------------------------------------------------------------------
@@ -1325,7 +1296,7 @@ _LeaveCommand( void* data )
 
   actors->ResetCursor( );
   actors->m_CursorActor->VisibilityOff( );
-  actors->Render( 1e-3 );
+  actors->Render( );
 }
 
 // eof - $RCSfile$