0028405: Visualization, V3d_Viewer - changes to Grid immediately updates view
authorkgv <kgv@opencascade.com>
Sun, 5 Feb 2017 08:33:39 +0000 (11:33 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 2 Mar 2017 09:31:49 +0000 (12:31 +0300)
V3d_Viewer methods ActivateGrid, DeactivateGrid, SetRectangularGridValues, SetCircularGridValues,
RectangularGridGraphicValues, CircularGridGraphicValues, SetPrivilegedPlane, DisplayPrivilegedPlane
do not redraw viewer anymore.

dox/dev_guides/upgrade/upgrade.md
src/V3d/V3d_Viewer_3.cxx
src/V3d/V3d_Viewer_4.cxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx

index 7adfb09..fab6087 100644 (file)
@@ -1207,6 +1207,10 @@ In addition, the API for immediate viewer update has been removed from V3d_View
 The argument theUpdateMode has been removed from methods Graphic3d_CView::Display(), Erase(), Update().
 Method Graphic3d_CView::Update() does not redraw the view and does not re-compute structures anymore.
 
+The following Grid management methods within class V3d_Viewer do not implicitly redraw the viewer:
+  ActivateGrid, DeactivateGrid, SetRectangularGridValues, SetCircularGridValues,
+  RectangularGridGraphicValues, CircularGridGraphicValues, SetPrivilegedPlane, DisplayPrivilegedPlane.
+
 @subsection upgrade_720_Result_Of_BOP_On_Containers Result of Boolean operations on containers
 
 * The result of Boolean operations on arguments of collection types (WIRE/SHELL/COMPSOLID) is now filtered from duplicating containers.
index f131be6..924a404 100644 (file)
@@ -63,8 +63,6 @@ void V3d_Viewer::SetPrivilegedPlane(const gp_Ax3& aPlane)
 
   if(myDisplayPlane)
     DisplayPrivilegedPlane(Standard_True,myDisplayPlaneLength);
-  else
-    Update();
 }
 
 /*----------------------------------------------------------------------*/
@@ -77,7 +75,6 @@ gp_Ax3 V3d_Viewer::PrivilegedPlane() const
 /*----------------------------------------------------------------------*/
 void V3d_Viewer::DisplayPrivilegedPlane(const Standard_Boolean OnOff, const Quantity_Length aSize)
 {
-  Standard_Boolean Change = (myDisplayPlane != OnOff);
   myDisplayPlane = OnOff;
   myDisplayPlaneLength = aSize;
 
@@ -128,7 +125,6 @@ void V3d_Viewer::DisplayPrivilegedPlane(const Standard_Boolean OnOff, const Quan
   {
     if( !myPlaneStructure.IsNull() )  myPlaneStructure->Erase();
   }
-  if(Change) Update();
 }
 
 /*----------------------------------------------------------------------*/
index ab437f4..9fbafa2 100644 (file)
@@ -80,7 +80,6 @@ void V3d_Viewer::ActivateGrid (const Aspect_GridType     theType,
   {
     anActiveViewIter.Value()->SetGrid (myPrivilegedPlane, Grid());
   }
-  Update();
 }
 
 // =======================================================================
@@ -101,7 +100,6 @@ void V3d_Viewer::DeactivateGrid()
       myGridEchoStructure->Erase();
     }
   }
-  Update();
 }
 
 // =======================================================================
@@ -145,7 +143,6 @@ void V3d_Viewer::SetRectangularGridValues (const Quantity_Length     theXOrigin,
   {
     anActiveViewIter.Value()->SetGrid (myPrivilegedPlane, myRGrid);
   }
-  Update();
 }
 
 // =======================================================================
@@ -181,7 +178,6 @@ void V3d_Viewer::SetCircularGridValues (const Quantity_Length     theXOrigin,
   {
     anActiveViewIter.Value()->SetGrid (myPrivilegedPlane, myCGrid);
   }
-  Update();
 }
 
 // =======================================================================
@@ -204,7 +200,6 @@ void V3d_Viewer::SetRectangularGridGraphicValues (const Quantity_Length theXSize
                                                   const Quantity_Length theOffSet)
 {
   myRGrid->SetGraphicValues (theXSize, theYSize, theOffSet);
-  Update();
 }
 
 // =======================================================================
@@ -225,7 +220,6 @@ void V3d_Viewer::SetCircularGridGraphicValues (const Quantity_Length theRadius,
                                                const Quantity_Length theOffSet)
 {
   myCGrid->SetGraphicValues (theRadius, theOffSet);
-  Update();
 }
 
 // =======================================================================
index eeca0be..8fe8a79 100644 (file)
@@ -4951,12 +4951,16 @@ static int VGrid (Draw_Interpretor& /*theDI*/,
 
   Aspect_GridType     aType = aViewer->GridType();
   Aspect_GridDrawMode aMode = aViewer->GridDrawMode();
-
+  ViewerTest_AutoUpdater anUpdateTool (ViewerTest::GetAISContext(), aView);
   Standard_Integer anIter = 1;
   for (; anIter < theArgNb; ++anIter)
   {
     const char* aValue = theArgVec[anIter];
-    if (*aValue == 'r')
+    if (anUpdateTool.parseRedrawMode (aValue))
+    {
+      continue;
+    }
+    else if (*aValue == 'r')
     {
       aType = Aspect_GT_Rectangular;
     }