mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-01 17:36:21 +03:00
0032829: Visualization - dynamic highlight results are not cleared by AIS_InteractiveContext::Redisplay()
AIS_InteractiveContext::RecomputeSelectionOnly() now removes old Owners of recomputed object from selection results. vdisplay command now resets AIS_ViewController::ResetPreviousMoveTo() cache.
This commit is contained in:
parent
60360e3204
commit
c0428e70cf
@ -956,9 +956,19 @@ void AIS_InteractiveContext::RecomputeSelectionOnly(const Handle(AIS_Interactive
|
||||
mgrSelector->Deactivate(theIO, aModesIter.Value());
|
||||
}
|
||||
|
||||
mgrSelector->RecomputeSelection(theIO);
|
||||
|
||||
const Handle(AIS_GlobalStatus)* aStatus = myObjects.Seek(theIO);
|
||||
if (aStatus != NULL)
|
||||
{
|
||||
if (!myLastPicked.IsNull() && myLastPicked->IsSameSelectable(theIO))
|
||||
{
|
||||
clearDynamicHighlight();
|
||||
myLastPicked.Nullify();
|
||||
}
|
||||
|
||||
unselectOwners(theIO);
|
||||
}
|
||||
|
||||
mgrSelector->RecomputeSelection(theIO);
|
||||
if (aStatus == NULL || theIO->DisplayStatus() != PrsMgr_DisplayStatus_Displayed)
|
||||
{
|
||||
return;
|
||||
|
@ -163,6 +163,7 @@ public: //! @name object display management
|
||||
Standard_EXPORT void RemoveAll(const Standard_Boolean theToUpdateViewer);
|
||||
|
||||
//! Recomputes the seen parts presentation of the Object.
|
||||
//! The object will be also unhighlighted and removed from selection.
|
||||
//! If theAllModes equals true, all presentations are present in the object even if unseen.
|
||||
Standard_EXPORT void Redisplay(const Handle(AIS_InteractiveObject)& theIObj,
|
||||
const Standard_Boolean theToUpdateViewer,
|
||||
@ -175,13 +176,14 @@ public: //! @name object display management
|
||||
const Standard_Boolean theToUpdateViewer);
|
||||
|
||||
//! Recomputes the displayed presentations, flags the others.
|
||||
//! Doesn't update presentations.
|
||||
//! Doesn't update selections.
|
||||
Standard_EXPORT void RecomputePrsOnly(const Handle(AIS_InteractiveObject)& theIObj,
|
||||
const Standard_Boolean theToUpdateViewer,
|
||||
const Standard_Boolean theAllModes = Standard_False);
|
||||
|
||||
//! Recomputes the active selections, flags the others.
|
||||
//! Doesn't update presentations.
|
||||
//! The object will be also unhighlighted and removed from selection.
|
||||
Standard_EXPORT void RecomputeSelectionOnly(const Handle(AIS_InteractiveObject)& anIObj);
|
||||
|
||||
//! Updates displayed interactive object by checking and recomputing its flagged as "to be
|
||||
|
@ -5193,6 +5193,8 @@ static int VDisplay2(Draw_Interpretor& theDI, Standard_Integer theArgNb, const c
|
||||
}
|
||||
}
|
||||
|
||||
// invalidate picking cache
|
||||
ViewerTest::CurrentEventManager()->ResetPreviousMoveTo();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user