]> OCCT Git - occt.git/commitdiff
0026433: AIS_Dimension may attempt to modify the state of default Drawer shading...
authorduv <duv@opencascade.com>
Tue, 14 Jul 2015 14:42:27 +0000 (17:42 +0300)
committerbugmaster <bugmaster@opencascade.com>
Tue, 22 Dec 2015 13:10:05 +0000 (16:10 +0300)
- Added checks to allow modification of only own aspects in AIS_Dimension::DrawText()

src/AIS/AIS_Dimension.cxx

index 6c808dcb8a512b2821bb21eadc9eae4288a14792..c77d1f32509a3a42fa9e664f45bc8106f74e602f 100755 (executable)
@@ -496,6 +496,11 @@ void AIS_Dimension::DrawText (const Handle(Prs3d_Presentation)& thePresentation,
     if (myDrawer->DimensionAspect()->IsTextShaded())
     {
       // Setting text shading and color parameters
+      if (!myDrawer->HasOwnShadingAspect())
+      {
+        myDrawer->SetShadingAspect (new Prs3d_ShadingAspect());
+      }
+
       Graphic3d_MaterialAspect aShadeMat (Graphic3d_NOM_DEFAULT);
       aShadeMat.SetReflectionModeOff (Graphic3d_TOR_AMBIENT);
       aShadeMat.SetReflectionModeOff (Graphic3d_TOR_DIFFUSE);
@@ -509,8 +514,14 @@ void AIS_Dimension::DrawText (const Handle(Prs3d_Presentation)& thePresentation,
     }
     else
     {
-      // setting color for text
+      // Setting color for text
+      if (!myDrawer->HasOwnFreeBoundaryAspect())
+      {
+        myDrawer->SetFreeBoundaryAspect (new Prs3d_LineAspect (aColor, Aspect_TOL_SOLID, 1.0));
+      }
+
       myDrawer->FreeBoundaryAspect()->Aspect()->SetColor (aColor);
+
       // drawing text
       StdPrs_WFShape::Add (thePresentation, aTextShape, myDrawer);
     }