{
for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next())
{
- Display(anIter.Value(), theMode);
+ const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value();
+ if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
+ {
+ Display(anIter.Value(), theMode);
+ }
}
}
}
{
for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next())
{
- SetVisibility(anIter.Value(), theMode, theValue);
+ const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value();
+ if (!theValue
+ || aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
+ {
+ SetVisibility (anIter.Value(), theMode, theValue);
+ }
}
}
if (!thePrsObj->HasOwnPresentations())
{
for (PrsMgr_ListOfPresentableObjectsIter anIter(thePrsObj->Children()); anIter.More(); anIter.Next())
{
- Color(anIter.Value(), theStyle, theMode, NULL, theImmediateStructLayerId);
+ const Handle(PrsMgr_PresentableObject)& aChild = anIter.Value();
+ if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
+ {
+ Color (aChild, theStyle, theMode, NULL, theImmediateStructLayerId);
+ }
}
}
if (!thePrsObj->HasOwnPresentations())
for (PrsMgr_ListOfPresentableObjectsIter anChildIter (theObject->Children()); anChildIter.More(); anChildIter.Next())
{
- Activate (Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value()), theMode);
+ Handle(SelectMgr_SelectableObject) aChild = Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value());
+ if (aChild->DisplayStatus() != PrsMgr_DisplayStatus_Erased)
+ {
+ Activate (aChild, theMode);
+ }
}
if (!theObject->HasOwnPresentations())
return;
--- /dev/null
+puts "============"
+puts "0031794: Visualization - Highlighting of AIS_Shape works incorrectly when AddChild() used"
+puts "============"
+puts ""
+
+pload MODELING VISUALIZATION
+vinit View1
+box b 10 10 10
+box p1 -100 -100 0 200 200 0 -preview
+box p2 100 -100 0 200 200 0 -preview
+vdisplay b -dispMode 1
+vdisplay p1 p2 -dispMode 1 -highMode 1
+vfit
+vselmode b 0 0
+verase p1
+vchild b -add p1
+vchild b -add p2
+vselmode b 0 1
+vmoveto 100 200
+if {[vreadpixel 100 200 -rgb -name] != "BLACK"} { puts "Error" }
+
+vdump ${imagedir}/${casename}.png