0029902: Data Exchange, XCAF - provide extended Material definition for visualization...
[occt.git] / src / IGESCAFControl / IGESCAFControl_Writer.cxx
index 2314700..fdca8f6 100644 (file)
@@ -276,6 +276,7 @@ void IGESCAFControl_Writer::MakeColors (const TopoDS_Shape &S,
     XCAFPrs_Style own = settings.FindFromKey(S);
     if ( own.IsSetColorCurv() ) style.SetColorCurv ( own.GetColorCurv() );
     if ( own.IsSetColorSurf() ) style.SetColorSurf ( own.GetColorSurf() );
+    style.SetMaterial (own.Material());
   }
   
   // analyze whether current entity should get a color 
@@ -286,6 +287,12 @@ void IGESCAFControl_Writer::MakeColors (const TopoDS_Shape &S,
       hasColor = Standard_True;
       col = style.GetColorSurf();
     }
+    else if (!style.Material().IsNull()
+          && !style.Material()->IsEmpty())
+    {
+      hasColor = Standard_True;
+      col = style.Material()->BaseColor().GetRGB();
+    }
   }
   else if ( S.ShapeType() == TopAbs_EDGE || S.ShapeType() == TopAbs_WIRE ) {
     if ( style.IsSetColorCurv() ) {