Salome HOME
Upgrade to paraview 5.4
[modules/gui.git] / src / SVTK / SVTK_Renderer.cxx
index 1a251d9e4ebb54c142d0124c61a252fea220101a..b763565036dee2438591f8b4603b66b894139a1c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -395,9 +395,9 @@ inline
 bool
 CheckBndBox(const double theBounds[6])
 {
-  if(theBounds[0] > -VTK_LARGE_FLOAT && theBounds[1] < VTK_LARGE_FLOAT &&
-     theBounds[2] > -VTK_LARGE_FLOAT && theBounds[3] < VTK_LARGE_FLOAT &&
-     theBounds[4] > -VTK_LARGE_FLOAT && theBounds[5] < VTK_LARGE_FLOAT)
+  if(theBounds[0] > -VTK_FLOAT_MAX && theBounds[1] < VTK_FLOAT_MAX &&
+     theBounds[2] > -VTK_FLOAT_MAX && theBounds[3] < VTK_FLOAT_MAX &&
+     theBounds[4] > -VTK_FLOAT_MAX && theBounds[5] < VTK_FLOAT_MAX)
     return true;
   return false;
 }
@@ -413,8 +413,8 @@ SVTK_Renderer
   bool aCDisplayed = IsCubeAxesDisplayed();
 
   double aNewBndBox[6];
-  aNewBndBox[ 0 ] = aNewBndBox[ 2 ] = aNewBndBox[ 4 ] = VTK_LARGE_FLOAT;
-  aNewBndBox[ 1 ] = aNewBndBox[ 3 ] = aNewBndBox[ 5 ] = -VTK_LARGE_FLOAT;
+  aNewBndBox[ 0 ] = aNewBndBox[ 2 ] = aNewBndBox[ 4 ] = VTK_FLOAT_MAX;
+  aNewBndBox[ 1 ] = aNewBndBox[ 3 ] = aNewBndBox[ 5 ] = -VTK_FLOAT_MAX;
 
   int aVisibleNum = myTrihedron->GetVisibleActorCount(GetDevice());
   if(aVisibleNum){
@@ -708,10 +708,15 @@ void SVTK_Renderer::onFitSelection()
   vtkActorCollection* aCollection = aCopy.GetActors();
   aCollection->InitTraversal();
   while ( vtkActor* aProp = aCollection->GetNextActor() )
-    if ( SALOME_Actor* anActor = SALOME_Actor::SafeDownCast( aProp ) )
-      if ( mySelector->IsSelected( anActor ) )
+    if ( SALOME_Actor* anActor = SALOME_Actor::SafeDownCast( aProp ) ) {
+      const Handle(SALOME_InteractiveObject)& io = anActor->getIO();
+      if ( !io.IsNull() && mySelector->IsSelected( io ) )
         aSelectedCollection->AddItem( aProp );
-
+    }
+  
+  if( aSelectedCollection->GetNumberOfItems() == 0 )
+    return; // if collection is empty
+  
   double bounds[6];
   ::ComputeBounds( aSelectedCollection, bounds );