0028621: Visualization - AIS_ColoredShape::UnsetTransparency() is not implemented
authorkgv <kgv@opencascade.com>
Tue, 4 Apr 2017 07:04:18 +0000 (10:04 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 20 Apr 2017 09:36:07 +0000 (12:36 +0300)
src/AIS/AIS_ColoredShape.cxx
src/AIS/AIS_ColoredShape.hxx
tests/bugs/vis/bug28621 [new file with mode: 0644]

index d271691..223864d 100644 (file)
@@ -287,6 +287,33 @@ void AIS_ColoredShape::SetTransparency (const Standard_Real theValue)
 }
 
 //=======================================================================
+//function : UnsetTransparency
+//purpose  :
+//=======================================================================
+void AIS_ColoredShape::UnsetTransparency()
+{
+  myDrawer->SetTransparency (0.0f);
+  if (myDrawer->HasOwnShadingAspect())
+  {
+    myDrawer->ShadingAspect()->SetTransparency (0.0, myCurrentFacingModel);
+  }
+  if (!HasColor() && !HasMaterial())
+  {
+    myDrawer->SetShadingAspect (Handle(Prs3d_ShadingAspect)());
+  }
+
+  for (AIS_DataMapOfShapeDrawer::Iterator anIter (myShapeColors); anIter.More(); anIter.Next())
+  {
+    const Handle(Prs3d_Drawer)& aDrawer = anIter.Value();
+    if (aDrawer->HasOwnShadingAspect())
+    {
+      aDrawer->ShadingAspect()->SetTransparency (0.0, myCurrentFacingModel);
+    }
+  }
+  SynchronizeAspects();
+}
+
+//=======================================================================
 //function : SetMaterial
 //purpose  :
 //=======================================================================
index 604808b..ccd1679 100644 (file)
@@ -75,6 +75,9 @@ public: //! @name global aspects
   //! Sets transparency value.
   Standard_EXPORT virtual void SetTransparency (const Standard_Real theValue) Standard_OVERRIDE;
 
+  //! Removes the setting for transparency in the reconstructed compound shape.
+  Standard_EXPORT virtual void UnsetTransparency() Standard_OVERRIDE;
+
   //! Sets the material aspect.
   Standard_EXPORT virtual void SetMaterial (const Graphic3d_MaterialAspect& theAspect) Standard_OVERRIDE;
 
diff --git a/tests/bugs/vis/bug28621 b/tests/bugs/vis/bug28621
new file mode 100644 (file)
index 0000000..fc3d9fa
--- /dev/null
@@ -0,0 +1,28 @@
+puts "================================================================================================="
+puts "0028621: Visualization - AIS_ColoredShape::UnsetTransparency() is not implemented"
+puts "================================================================================================="
+
+pload VISUALIZATION MODELING
+box b 1 2 3
+vclear
+vinit View1
+vdisplay -noupdate -dispMode 1 b
+vfit
+
+# OK
+set aColor11 [vreadpixel 250 250 rgb name]
+vsettransparency b 0.8
+vunsettransparency b
+set aColor12 [vreadpixel 250 250 rgb name]
+if { "$aColor11" != "$aColor12" } { puts "Error: color is not set back" }
+
+explode b F
+vaspects b -subShapes b_2 -setColor RED
+
+set aColor21 [vreadpixel 250 250 rgb name]
+vsettransparency b 0.8
+vunsettransparency b
+set aColor22 [vreadpixel 250 250 rgb name]
+if { "$aColor21" != "$aColor22" } { puts "Error: color is not set back" }
+
+vdump $imagedir/${casename}.png