6
class ColorTransparencyTest(unittest.TestCase):
9
self._doc = App.newDocument()
10
self._pg = App.ParamGet('User parameter:BaseApp/Preferences/View')
11
self._backup_default_transparency = self._pg.GetInt('DefaultShapeTransparency')
12
self._backup_default_shapecolor = self._pg.GetUnsigned('DefaultShapeColor')
16
App.closeDocument(self._doc.Name)
17
self._pg.SetInt('DefaultShapeTransparency', self._backup_default_transparency)
18
self._pg.SetUnsigned('DefaultShapeColor', self._backup_default_shapecolor)
21
def test_default_shape_transparency(self):
23
related: https://github.com/FreeCAD/FreeCAD/pull/11866
24
related: https://github.com/FreeCAD/FreeCAD/pull/11586
27
self._pg.SetInt('DefaultShapeTransparency', transparency)
28
obj = self._doc.addObject('Part::Box')
29
assert obj.ViewObject.Transparency == transparency
30
obj.ViewObject.ShapeAppearance[0].DiffuseColor = (0.5, 0.0, 0.0)
32
self.assertEqual(obj.ViewObject.Transparency, transparency,
33
'transparency was unexpectedly changed to {} when changing the color.'.format(
34
obj.ViewObject.Transparency))
37
def test_default_shape_color(self):
39
related: https://github.com/FreeCAD/FreeCAD/pull/11866
43
This test isn't currently valid as it draws from the hard coded default material.
45
The preference editor doesn't allow for setting transparencies. The default value
46
of 0 corresponds to a fully transparent color, which is not desirable. It changes
47
the transparency when loading to 1.0
50
self._pg.SetUnsigned('DefaultShapeColor', 0xff000000)
51
obj = self._doc.addObject('Part::Box')
53
self.assertEqual(obj.ViewObject.ShapeAppearance[0].DiffuseColor, (1.0, 0.0, 0.0, 1.0),
54
'default shape color was not set correctly')
55
self.assertEqual(obj.ViewObject.ShapeMaterial.DiffuseColor, (1.0, 0.0, 0.0, 1.0),
56
'default material color was not set correctly')
59
def test_app_plane_transparency(self):
61
related: https://github.com/FreeCAD/FreeCAD/pull/12064
63
self._pg.SetInt('DefaultShapeTransparency', 70)
64
obj = self._doc.addObject('App::Origin')
65
t = self._doc.findObjects('App::Plane')[0].ViewObject.Transparency
67
self.assertEqual(t, 0,
68
'transparency of App::Plane object is {} instead of 0'.format(t))