| | |
| |
|
| | import unittest |
| |
|
| | import FreeCAD as App |
| |
|
| |
|
| | class ColorTransparencyTest(unittest.TestCase): |
| |
|
| | def setUp(self): |
| | self._doc = App.newDocument() |
| | self._pg = App.ParamGet("User parameter:BaseApp/Preferences/View") |
| | self._backup_default_transparency = self._pg.GetInt("DefaultShapeTransparency") |
| | self._backup_default_shapecolor = self._pg.GetUnsigned("DefaultShapeColor") |
| |
|
| | def tearDown(self): |
| | App.closeDocument(self._doc.Name) |
| | self._pg.SetInt("DefaultShapeTransparency", self._backup_default_transparency) |
| | self._pg.SetUnsigned("DefaultShapeColor", self._backup_default_shapecolor) |
| |
|
| | def test_default_shape_transparency(self): |
| | """ |
| | related: https://github.com/FreeCAD/FreeCAD/pull/11866 |
| | related: https://github.com/FreeCAD/FreeCAD/pull/11586 |
| | """ |
| | transparency = 70 |
| | self._pg.SetInt("DefaultShapeTransparency", transparency) |
| | obj = self._doc.addObject("Part::Box") |
| | assert obj.ViewObject.Transparency == transparency |
| | obj.ViewObject.ShapeAppearance[0].DiffuseColor = (0.5, 0.0, 0.0) |
| |
|
| | self.assertEqual( |
| | obj.ViewObject.Transparency, |
| | transparency, |
| | "transparency was unexpectedly changed to {} when changing the color.".format( |
| | obj.ViewObject.Transparency |
| | ), |
| | ) |
| |
|
| | def test_default_shape_color(self): |
| | """ |
| | related: https://github.com/FreeCAD/FreeCAD/pull/11866 |
| | """ |
| |
|
| | """ |
| | This test isn't currently valid as it draws from the hard coded default material. |
| | |
| | The preference editor doesn't allow for setting transparencies. The default value |
| | of 0 corresponds to a fully transparent color, which is not desirable. It changes |
| | the transparency when loading to 1.0 |
| | """ |
| |
|
| | self._pg.SetUnsigned("DefaultShapeColor", 0xFF000000) |
| | obj = self._doc.addObject("Part::Box") |
| |
|
| | self.assertEqual( |
| | obj.ViewObject.ShapeAppearance[0].DiffuseColor, |
| | (1.0, 0.0, 0.0, 1.0), |
| | "default shape color was not set correctly", |
| | ) |
| | self.assertEqual( |
| | obj.ViewObject.ShapeMaterial.DiffuseColor, |
| | (1.0, 0.0, 0.0, 1.0), |
| | "default material color was not set correctly", |
| | ) |
| |
|
| | def test_app_plane_transparency(self): |
| | """ |
| | related: https://github.com/FreeCAD/FreeCAD/pull/12064 |
| | """ |
| | self._pg.SetInt("DefaultShapeTransparency", 70) |
| | obj = self._doc.addObject("App::Origin") |
| | t = self._doc.findObjects("App::Plane")[0].ViewObject.Transparency |
| |
|
| | self.assertEqual(t, 0, "transparency of App::Plane object is {} instead of 0".format(t)) |
| |
|