mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0024391: Erased AIS object can not be displayed in AIS_InteractiveContext after AIS_InteractiveContext::Remove(): added presentations removing after presentable object is removed from context.
vremove command was corrected. Test case was corrected. few mistakes corrected
This commit is contained in:
@@ -39,7 +39,7 @@ is
|
||||
|
||||
Display(me: mutable) is deferred private;
|
||||
|
||||
Erase(me) is deferred private;
|
||||
Erase(me: mutable) is deferred private;
|
||||
|
||||
SetVisible (me: mutable; theValue: Boolean from Standard) is deferred private;
|
||||
|
||||
|
@@ -61,7 +61,7 @@ is
|
||||
---Purpose: displays myStructure and sets myDisplayReason to theIsHighlight value if
|
||||
-- myStructure was not displayed or was invisible
|
||||
|
||||
Erase(me) is redefined static private;
|
||||
Erase(me: mutable) is redefined static private;
|
||||
|
||||
SetVisible (me: mutable; theValue: Boolean from Standard) is redefined static private;
|
||||
|
||||
|
@@ -68,8 +68,13 @@ void PrsMgr_Presentation3d::Display(const Standard_Boolean theIsHighlight)
|
||||
}
|
||||
}
|
||||
|
||||
void PrsMgr_Presentation3d::Erase () const {
|
||||
myStructure->Erase();}
|
||||
void PrsMgr_Presentation3d::Erase ()
|
||||
{
|
||||
// Erase structure from structure manager
|
||||
myStructure->Erase();
|
||||
// Clear groups and remove graphic structure
|
||||
myStructure.Nullify();
|
||||
}
|
||||
|
||||
void PrsMgr_Presentation3d::SetVisible (const Standard_Boolean theValue)
|
||||
{
|
||||
|
@@ -49,11 +49,19 @@ void PrsMgr_PresentationManager::Erase(
|
||||
const Handle(PrsMgr_PresentableObject)& aPresentableObject,
|
||||
const Standard_Integer aMode)
|
||||
{
|
||||
if (HasPresentation(aPresentableObject,aMode)){
|
||||
if (HasPresentation(aPresentableObject,aMode))
|
||||
{
|
||||
if(myImmediateMode)
|
||||
{
|
||||
Remove(aPresentableObject,aMode);
|
||||
}
|
||||
else
|
||||
Presentation(aPresentableObject,aMode)->Erase();}
|
||||
{
|
||||
Presentation(aPresentableObject,aMode)->Erase();
|
||||
}
|
||||
|
||||
RemovePresentation (aPresentableObject,aMode);
|
||||
}
|
||||
}
|
||||
|
||||
void PrsMgr_PresentationManager::Clear(const Handle(PrsMgr_PresentableObject)& aPresentableObject,
|
||||
|
Reference in New Issue
Block a user