0025933: Visualization - Forward AIS_InteractiveObject::Redisplay() execution to...
authorvpa <vpa@opencascade.com>
Thu, 19 Mar 2015 13:02:42 +0000 (16:02 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 19 Mar 2015 14:08:18 +0000 (17:08 +0300)
AIS_InteractiveObject::Redisplay now redirects the execution to interactive context;
All calls to AIS_InteractiveObject::Redisplay were replaced by AIS_InteractiveContext::Redisplay

Small correction of test case

src/AIS/AIS_InteractiveContext.cxx
src/AIS/AIS_InteractiveObject.cdl
src/AIS/AIS_InteractiveObject.cxx
src/ViewerTest/ViewerTest.cxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx
tests/bugs/fclasses/bug63

index d026bce..ffe89cf 100644 (file)
@@ -1693,7 +1693,8 @@ void AIS_InteractiveContext::redisplayPrsRecModes (const Handle(AIS_InteractiveO
 {
   if (theIObj->RecomputeEveryPrs())
   {
-    theIObj->Redisplay();
+    theIObj->Update (Standard_True);
+    theIObj->UpdateSelection();
   }
   else
   {
@@ -1719,7 +1720,8 @@ void AIS_InteractiveContext::redisplayPrsModes (const Handle(AIS_InteractiveObje
 {
   if (theIObj->RecomputeEveryPrs())
   {
-    theIObj->Redisplay();
+    theIObj->Update (Standard_True);
+    theIObj->UpdateSelection();
   }
   else
   {
@@ -1904,7 +1906,8 @@ void AIS_InteractiveContext::SetAngleAndDeviation (const Handle(AIS_InteractiveO
 
   if (theIObj->RecomputeEveryPrs())
   {
-    theIObj->Redisplay();
+    theIObj->Update (Standard_True);
+    theIObj->UpdateSelection();
   }
   else
   {
index 3bcaab2..5134ed6 100644 (file)
@@ -173,9 +173,13 @@ is
        -- be implemented when the main mode is not mode 0.
 
 
-    Redisplay (me:mutable; AllModes:Boolean from Standard =Standard_False); 
-       ---Purpose: Updates the active presentation; if <AllModes> = Standard_True
-       --          all the presentations inside are recomputed. 
+    Redisplay (me:mutable; AllModes:Boolean from Standard =Standard_False);
+       ---Purpose: Updates the active presentation; if <AllModes> = Standard_True
+       --          all the presentations inside are recomputed.
+       --          IMPORTANT: It is preferable to call Redisplay method of
+       --          corresponding AIS_InteractiveContext instance for cases when it
+       --          is accessible. This method just redirects call to myCTXPtr,
+       --          so this class field must be up to date for proper result.
     
 
     SetInfiniteState(me:mutable;aFlag:Boolean from Standard = Standard_True);
index 638729d..639c75c 100644 (file)
@@ -68,13 +68,14 @@ mystate(0)
 
 //=======================================================================
 //function : Redisplay
-//purpose  : 
+//purpose  :
 //=======================================================================
-
-void AIS_InteractiveObject::Redisplay(const Standard_Boolean AllModes)
+void AIS_InteractiveObject::Redisplay (const Standard_Boolean AllModes)
 {
-  Update(AllModes);
-  UpdateSelection();
+  if (myCTXPtr == NULL)
+    return;
+
+  myCTXPtr->Redisplay (this, Standard_False, AllModes);
 }
 
 //=======================================================================
index 15008ec..410cc3c 100644 (file)
@@ -2182,7 +2182,7 @@ static Standard_Integer VAspects (Draw_Interpretor& /*theDI*/,
       }
       else if (!aColoredPrs.IsNull())
       {
-        aColoredPrs->Redisplay();
+        aCtx->Redisplay (aColoredPrs, Standard_False);
       }
     }
     else
index f6d3d3d..e1d466e 100644 (file)
@@ -893,7 +893,7 @@ static int VHLR (Draw_Interpretor& di, Standard_Integer argc, const char** argv)
         {
           continue;
         }
-        aShape->Redisplay();
+        ViewerTest::GetAISContext()->Redisplay (aShape, Standard_False);
       }
     }
   }
@@ -939,7 +939,7 @@ static int VHLRType (Draw_Interpretor& di, Standard_Integer argc, const char** a
       if (aShape->TypeOfHLR() != aTypeOfHLR)
         aShape->SetTypeOfHLR (aTypeOfHLR);
       if (MyHLRIsOn)
-        aShape->Redisplay();
+        ViewerTest::GetAISContext()->Redisplay (aShape, Standard_False);
     }
     ViewerTest::CurrentView()->Update();
     return 0;
@@ -962,7 +962,7 @@ static int VHLRType (Draw_Interpretor& di, Standard_Integer argc, const char** a
         continue;
       anAISObject->SetTypeOfHLR (aTypeOfHLR);
       if (MyHLRIsOn)
-        anAISObject->Redisplay();
+        ViewerTest::GetAISContext()->Redisplay (anAISObject, Standard_False);
     }
     ViewerTest::CurrentView()->Update();
   }
@@ -1386,7 +1386,7 @@ void VT_ProcessKeyPress (const char* buf_ret)
           aShape->SetTypeOfHLR (Prs3d_TOH_Algo);
         else
           aShape->SetTypeOfHLR (Prs3d_TOH_PolyAlgo);
-        aShape->Redisplay();
+        aContext->Redisplay (aShape, Standard_False);
       }
     }
     else
@@ -1400,7 +1400,7 @@ void VT_ProcessKeyPress (const char* buf_ret)
           aShape->SetTypeOfHLR (Prs3d_TOH_Algo);
         else
           aShape->SetTypeOfHLR (Prs3d_TOH_PolyAlgo);
-        aShape->Redisplay();
+        aContext->Redisplay (aShape, Standard_False);
       }
     }
 
index 87bf2e1..757646e 100755 (executable)
@@ -1,5 +1,5 @@
-puts "TODO OCC23626 Windows: Tcl Exception"
-puts "TODO OCC23626 Windows: TEST INCOMPLETE"
+puts "TODO OCC23626 Debian60-64 Windows: Tcl Exception"
+puts "TODO OCC23626 Debian60-64 Windows: TEST INCOMPLETE"
 
 puts "================"
 puts "OCC63"