+ if( this->m_ImageMapper.GetPointer( ) == NULL )
+ return;
+
+ // Get ordered axes
+ int a0 = this->GetAxis( );
+ int a1 = ( a0 + 1 ) % 3;
+ int a2 = ( a0 + 2 ) % 3;
+ int ma0 = a0 << 1;
+ int ma1 = a1 << 1;
+ int ma2 = a2 << 1;
+
+ // Update cross
+ double* bounds = this->m_VisibleBounds;
+ double p0[ 3 ], p1[ 3 ], p2[ 3 ], p3[ 3 ];
+
+ p0[ a2 ] = p1[ a2 ] = pos[ a2 ];
+ p2[ a1 ] = p3[ a1 ] = pos[ a1 ];
+ p0[ a0 ] = p1[ a0 ] = p2[ a0 ] = p3[ a0 ] = bounds[ ma0 ];
+ p0[ a1 ] = bounds[ ma1 ];
+ p1[ a1 ] = bounds[ ma1 + 1 ];
+ p2[ a2 ] = bounds[ ma2 ];
+ p3[ a2 ] = bounds[ ma2 + 1 ];
+
+ vtkPoints* points1 = this->m_Axis1->GetPoints( );
+ points1->SetPoint( 0, p2 );
+ points1->SetPoint( 1, p3 );
+
+ vtkPoints* points2 = this->m_Axis2->GetPoints( );
+ points2->SetPoint( 0, p0 );
+ points2->SetPoint( 1, p1 );
+
+ this->m_Axis1->Modified( );
+ this->m_Axis1Mapper->Modified( );
+ this->m_Axis1Actor->Modified( );
+
+ this->m_Axis2->Modified( );
+ this->m_Axis2Mapper->Modified( );
+ this->m_Axis2Actor->Modified( );