1
0
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:
aba
2013-11-28 19:50:58 +04:00
committed by abv
parent 6c7ddf00ce
commit eef7fc6447
7 changed files with 192 additions and 6 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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)
{

View File

@@ -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,