]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Interaction/BaseInteractorStyle.cxx
More widgets added
[cpPlugins.git] / lib / cpExtensions / Interaction / BaseInteractorStyle.cxx
similarity index 62%
rename from lib/cpExtensions/Visualization/BaseInteractorStyle.cxx
rename to lib/cpExtensions/Interaction/BaseInteractorStyle.cxx
index b5641012bc42e43a2fc1b239c601e734056f580e..a384eb0df57c71021b320f60e938a946bed85f74 100644 (file)
@@ -1,4 +1,4 @@
-#include <cpExtensions/Visualization/BaseInteractorStyle.h>
+#include <cpExtensions/Interaction/BaseInteractorStyle.h>
 
 #include <cmath>
 
 #include <vtkRenderWindowInteractor.h>
 
 // -------------------------------------------------------------------------
-long cpExtensions::Visualization::BaseInteractorStyle::_TMouseButtonEvent::
-MaxDoubleClick = 200; // ms
+long cpExtensions::Interaction::BaseInteractorStyle::_TMouseButtonEvent::
+MaxDoubleClick = 350; // ms
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
+SetSetDoubleClickDelay( long delay )
+{
+  Self::_TMouseButtonEvent::MaxDoubleClick = delay;
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddMouseMoveCommand( TMouseCommand command, void* data )
 {
-  this->m_MouseMoveCommands.push_back(
-    std::pair< TMouseCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_MouseMoveCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddMouseClickCommand( TMouseCommand command, void* data )
 {
-  this->m_MouseClickCommands.push_back(
-    std::pair< TMouseCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_MouseClickCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddMouseDoubleClickCommand( TMouseCommand command, void* data )
 {
-  this->m_MouseDoubleClickCommands.push_back(
-    std::pair< TMouseCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_MouseDoubleClickCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddMouseWheelCommand( TMouseWheelCommand command, void* data )
 {
-  this->m_MouseWheelCommands.push_back(
-    std::pair< TMouseWheelCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_MouseWheelCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddKeyCommand( TKeyCommand command, void* data )
 {
-  this->m_KeyCommands.push_back(
-    std::pair< TKeyCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_KeyCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddExposeCommand( TVoidCommand command, void* data )
 {
-  this->m_ExposeCommands.push_back(
-    std::pair< TVoidCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_ExposeCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddConfigureCommand( TVoidCommand command, void* data )
 {
-  this->m_ConfigureCommands.push_back(
-    std::pair< TVoidCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_ConfigureCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddEnterCommand( TVoidCommand command, void* data )
 {
-  this->m_EnterCommands.push_back(
-    std::pair< TVoidCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_EnterCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 AddLeaveCommand( TVoidCommand command, void* data )
 {
-  this->m_LeaveCommands.push_back(
-    std::pair< TVoidCommand, void* >( command, data )
-    );
-  this->Modified( );
+  if( command != NULL )
+  {
+    this->m_LeaveCommands[ command ] = data;
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveMouseMoveCommand( TMouseCommand command )
+{
+  auto i = this->m_MouseMoveCommands.find( command );
+  if( i != this->m_MouseMoveCommands.end( ) )
+  {
+    this->m_MouseMoveCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveMouseClickCommand( TMouseCommand command )
+{
+  auto i = this->m_MouseClickCommands.find( command );
+  if( i != this->m_MouseClickCommands.end( ) )
+  {
+    this->m_MouseClickCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveMouseDoubleClickCommand( TMouseCommand command )
+{
+  auto i = this->m_MouseDoubleClickCommands.find( command );
+  if( i != this->m_MouseDoubleClickCommands.end( ) )
+  {
+    this->m_MouseDoubleClickCommands.erase( i );
+    this->Modified( );
+
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveMouseWheelCommand( TMouseWheelCommand command )
+{
+  auto i = this->m_MouseWheelCommands.find( command );
+  if( i != this->m_MouseWheelCommands.end( ) )
+  {
+    this->m_MouseWheelCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveKeyCommand( TKeyCommand command )
+{
+  auto i = this->m_KeyCommands.find( command );
+  if( i != this->m_KeyCommands.end( ) )
+  {
+    this->m_KeyCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveExposeCommand( TVoidCommand command )
+{
+  auto i = this->m_ExposeCommands.find( command );
+  if( i != this->m_ExposeCommands.end( ) )
+  {
+    this->m_ExposeCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveConfigureCommand( TVoidCommand command )
+{
+  auto i = this->m_ConfigureCommands.find( command );
+  if( i != this->m_ConfigureCommands.end( ) )
+  {
+    this->m_ConfigureCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveEnterCommand( TVoidCommand command )
+{
+  auto i = this->m_EnterCommands.find( command );
+  if( i != this->m_EnterCommands.end( ) )
+  {
+    this->m_EnterCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
+RemoveLeaveCommand( TVoidCommand command )
+{
+  auto i = this->m_LeaveCommands.find( command );
+  if( i != this->m_LeaveCommands.end( ) )
+  {
+    this->m_LeaveCommands.erase( i );
+    this->Modified( );
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpExtensions::Interaction::BaseInteractorStyle::
 DelegateTDxEvent( unsigned long event, void* calldata )
 {
   // TODO
@@ -111,7 +253,7 @@ DelegateTDxEvent( unsigned long event, void* calldata )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMouseMove( )
 {
   // Get current position on the associated actors
@@ -153,19 +295,19 @@ OnMouseMove( )
   } // fi
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible specialized events
-  for( unsigned int i = 0; i < this->m_MouseMoveCommands.size( ); ++i )
-    this->m_MouseMoveCommands[ i ].first(
-      this->m_MouseMoveCommands[ i ].second, button, pos, alt, ctr, sft
-      );
+  auto i = this->m_MouseMoveCommands.begin( );
+  for( ; i != this->m_MouseMoveCommands.end( ); ++i )
+    i->first( i->second, button, idx, pos, alt, ctr, sft );
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMouseWheelForward( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -173,9 +315,10 @@ OnMouseWheelForward( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseWheelCommands.size( ); ++i )
-    this->m_MouseWheelCommands[ i ].first(
-      this->m_MouseWheelCommands[ i ].second, 1,
+  auto i = this->m_MouseWheelCommands.begin( );
+  for( ; i != this->m_MouseWheelCommands.end( ); ++i )
+    i->first(
+      i->second, 1,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -183,7 +326,7 @@ OnMouseWheelForward( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMouseWheelBackward( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -191,9 +334,10 @@ OnMouseWheelBackward( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseWheelCommands.size( ); ++i )
-    this->m_MouseWheelCommands[ i ].first(
-      this->m_MouseWheelCommands[ i ].second, -1,
+  auto i = this->m_MouseWheelCommands.begin( );
+  for( ; i != this->m_MouseWheelCommands.end( ); ++i )
+    i->first(
+      i->second, -1,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -201,21 +345,21 @@ OnMouseWheelBackward( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnLeftButtonDown( )
 {
   this->m_ActiveButton = Self::ButtonID_Left;
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnLeftButtonUp( )
 {
   this->m_ActiveButton = Self::ButtonID_None;
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMiddleButtonDown( )
 {
   this->m_ActiveButton = Self::ButtonID_Middle;
@@ -235,7 +379,7 @@ OnMiddleButtonDown( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMiddleButtonUp( )
 {
   this->m_ActiveButton = Self::ButtonID_None;
@@ -261,7 +405,7 @@ OnMiddleButtonUp( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnRightButtonDown( )
 {
   this->m_ActiveButton = Self::ButtonID_Right;
@@ -281,7 +425,7 @@ OnRightButtonDown( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnRightButtonUp( )
 {
   this->m_ActiveButton = Self::ButtonID_None;
@@ -307,7 +451,7 @@ OnRightButtonUp( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnLeftClick( )
 {
   // Get current position on the associated actors
@@ -316,16 +460,18 @@ OnLeftClick( )
     return;
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseClickCommands.size( ); ++i )
-    this->m_MouseClickCommands[ i ].first(
-      this->m_MouseClickCommands[ i ].second,
+  auto i = this->m_MouseClickCommands.begin( );
+  for( ; i != this->m_MouseClickCommands.end( ); ++i )
+    i->first(
+      i->second,
       Self::ButtonID_Left,
-      pos,
+      idx, pos,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -333,7 +479,7 @@ OnLeftClick( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnLeftDoubleClick( )
 {
   // Get current position on the associated actors
@@ -342,16 +488,18 @@ OnLeftDoubleClick( )
     return;
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseClickCommands.size( ); ++i )
-    this->m_MouseDoubleClickCommands[ i ].first(
-      this->m_MouseDoubleClickCommands[ i ].second,
+  auto i = this->m_MouseDoubleClickCommands.begin( );
+  for( ; i != this->m_MouseDoubleClickCommands.end( ); ++i )
+    i->first(
+      i->second,
       Self::ButtonID_Left,
-      pos,
+      idx, pos,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -359,7 +507,7 @@ OnLeftDoubleClick( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMiddleClick( )
 {
   // Get current position on the associated actors
@@ -368,16 +516,18 @@ OnMiddleClick( )
     return;
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseClickCommands.size( ); ++i )
-    this->m_MouseClickCommands[ i ].first(
-      this->m_MouseClickCommands[ i ].second,
+  auto i = this->m_MouseClickCommands.begin( );
+  for( ; i != this->m_MouseClickCommands.end( ); ++i )
+    i->first(
+      i->second,
       Self::ButtonID_Middle,
-      pos,
+      idx, pos,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -385,7 +535,7 @@ OnMiddleClick( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnMiddleDoubleClick( )
 {
   // Get current position on the associated actors
@@ -394,16 +544,18 @@ OnMiddleDoubleClick( )
     return;
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseClickCommands.size( ); ++i )
-    this->m_MouseDoubleClickCommands[ i ].first(
-      this->m_MouseDoubleClickCommands[ i ].second,
+  auto i = this->m_MouseDoubleClickCommands.begin( );
+  for( ; i != this->m_MouseDoubleClickCommands.end( ); ++i )
+    i->first(
+      i->second,
       Self::ButtonID_Middle,
-      pos,
+      idx, pos,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -411,7 +563,7 @@ OnMiddleDoubleClick( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnRightClick( )
 {
   // Get current position on the associated actors
@@ -420,16 +572,18 @@ OnRightClick( )
     return;
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseClickCommands.size( ); ++i )
-    this->m_MouseClickCommands[ i ].first(
-      this->m_MouseClickCommands[ i ].second,
+  auto i = this->m_MouseClickCommands.begin( );
+  for( ; i != this->m_MouseClickCommands.end( ); ++i )
+    i->first(
+      i->second,
       Self::ButtonID_Right,
-      pos,
+      idx, pos,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -437,7 +591,7 @@ OnRightClick( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnRightDoubleClick( )
 {
   // Get current position on the associated actors
@@ -446,16 +600,18 @@ OnRightDoubleClick( )
     return;
 
   // Get mouse pointer position
-  double pos[ 3 ];
-  if( !( this->_PickPosition( pos ) ) )
+  static int idx[ 2 ];
+  static double pos[ 3 ];
+  if( !( this->_PickPosition( idx, pos ) ) )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_MouseClickCommands.size( ); ++i )
-    this->m_MouseDoubleClickCommands[ i ].first(
-      this->m_MouseDoubleClickCommands[ i ].second,
+  auto i = this->m_MouseDoubleClickCommands.begin( );
+  for( ; i != this->m_MouseDoubleClickCommands.end( ); ++i )
+    i->first(
+      i->second,
       Self::ButtonID_Right,
-      pos,
+      idx, pos,
       rwi->GetAltKey( ) == 1,
       rwi->GetControlKey( ) == 1,
       rwi->GetShiftKey( ) == 1
@@ -463,7 +619,7 @@ OnRightDoubleClick( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnChar( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -471,39 +627,37 @@ OnChar( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_KeyCommands.size( ); ++i )
-    this->m_KeyCommands[ i ].first(
-      this->m_KeyCommands[ i ].second,
-      rwi->GetKeyCode( )
-      );
+  auto i = this->m_KeyCommands.begin( );
+  for( ; i != this->m_KeyCommands.end( ); ++i )
+    i->first( i->second, rwi->GetKeyCode( ) );
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnKeyDown( )
 {
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnKeyUp( )
 {
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnKeyPress( )
 {
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnKeyRelease( )
 {
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnExpose( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -511,12 +665,13 @@ OnExpose( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_ExposeCommands.size( ); ++i )
-    this->m_ExposeCommands[ i ].first( this->m_ExposeCommands[ i ].second );
+  auto i = this->m_ExposeCommands.begin( );
+  for( ; i != this->m_ExposeCommands.end( ); ++i )
+    i->first( i->second );
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnConfigure( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -524,14 +679,13 @@ OnConfigure( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_ConfigureCommands.size( ); ++i )
-    this->m_ConfigureCommands[ i ].first(
-      this->m_ConfigureCommands[ i ].second
-      );
+  auto i = this->m_ConfigureCommands.begin( );
+  for( ; i != this->m_ConfigureCommands.end( ); ++i )
+    i->first( i->second );
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnEnter( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -539,12 +693,13 @@ OnEnter( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_EnterCommands.size( ); ++i )
-    this->m_EnterCommands[ i ].first( this->m_EnterCommands[ i ].second );
+  auto i = this->m_EnterCommands.begin( );
+  for( ; i != this->m_EnterCommands.end( ); ++i )
+    i->first( i->second );
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 OnLeave( )
 {
   vtkRenderWindowInteractor* rwi = this->GetInteractor( );
@@ -552,12 +707,13 @@ OnLeave( )
     return;
 
   // Invoke possible events
-  for( unsigned int i = 0; i < this->m_LeaveCommands.size( ); ++i )
-    this->m_LeaveCommands[ i ].first( this->m_LeaveCommands[ i ].second );
+  auto i = this->m_LeaveCommands.begin( );
+  for( ; i != this->m_LeaveCommands.end( ); ++i )
+    i->first( i->second );
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 Dolly( )
 {
   if( this->CurrentRenderer == NULL )
@@ -571,7 +727,7 @@ Dolly( )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 Pan( )
 {
   if( this->CurrentRenderer == NULL )
@@ -627,7 +783,7 @@ Pan( )
 }
 
 // -------------------------------------------------------------------------
-cpExtensions::Visualization::BaseInteractorStyle::
+cpExtensions::Interaction::BaseInteractorStyle::
 BaseInteractorStyle( )
   : Superclass( ),
     m_MotionFactor( double( 10 ) )
@@ -641,13 +797,13 @@ BaseInteractorStyle( )
 }
 
 // -------------------------------------------------------------------------
-cpExtensions::Visualization::BaseInteractorStyle::
+cpExtensions::Interaction::BaseInteractorStyle::
 ~BaseInteractorStyle( )
 {
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 _Dolly( double factor )
 {
   if( this->CurrentRenderer == NULL )
@@ -668,7 +824,7 @@ _Dolly( double factor )
 }
 
 // -------------------------------------------------------------------------
-void cpExtensions::Visualization::BaseInteractorStyle::
+void cpExtensions::Interaction::BaseInteractorStyle::
 _ProcessEvents(
   vtkObject* object,
   unsigned long event,