0025381: Visualization - XCAFPrs_AISObject ignores visibility flag for sub-shapes
[occt.git] / src / AIS / AIS_ColoredShape.cxx
index 84e8afd..aa50d38 100644 (file)
@@ -312,7 +312,19 @@ void AIS_ColoredShape::Compute (const Handle(PrsMgr_PresentationManager3d)& ,
     {
       const TopoDS_Shape&    aShapeKey  = aMapIter.Key();   // key shape with detailed color or a base shape
       const TopoDS_Compound& aShapeDraw = aMapIter.Value(); // compound of subshapes with <aShType> type
-      Handle(AIS_Drawer)     aDrawer    = !myShapeColors.Find (aShapeKey, aCustomDrawer) ? myDrawer : aCustomDrawer;
+      Handle(AIS_Drawer)     aDrawer;
+      if (myShapeColors.Find (aShapeKey, aCustomDrawer))
+      {
+        aDrawer = aCustomDrawer;
+        if (aCustomDrawer->IsHidden())
+        {
+          continue;
+        }
+      }
+      else
+      {
+        aDrawer = myDrawer;
+      }
 
       // Draw each kind of subshapes and personal-colored shapes in a separate group
       // since it's necessary to set transparency/material for all subshapes