From 089174c297ce678ca82d09cf14bebb64ae5f011a Mon Sep 17 00:00:00 2001 From: Sebastian Hoogen Date: Sun, 8 Mar 2015 21:08:33 +0100 Subject: [PATCH] test for default color from preferences in OpenSCAD/Explode command --- src/Mod/OpenSCAD/OpenSCADCommands.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Mod/OpenSCAD/OpenSCADCommands.py b/src/Mod/OpenSCAD/OpenSCADCommands.py index 3adf71930..f188fa21a 100644 --- a/src/Mod/OpenSCAD/OpenSCADCommands.py +++ b/src/Mod/OpenSCAD/OpenSCADCommands.py @@ -43,9 +43,23 @@ class ExplodeGroup: return FreeCADGui.Selection.countObjectsOfType('Part::Feature') > 0 def Activated(self): + def isdefault(shapecolor): + def comparefloat(f1,f2): + if f1 == 0.0: + return f1 == f2 + else: + return abs((f1-f2)/f1) < 2**-24 + scol=FreeCAD.ParamGet("User parameter:BaseApp/Preferences/View")\ + .GetUnsigned('DefaultShapeColor',0xccccccff) + defaultcolor = (((scol >> 24) & 0xff) / 255.0,\ + ((scol >> 16) & 0xff) / 255.0,\ + ((scol >> 8) & 0xff) / 255.0, 0.0) + return all(all(comparefloat(fcc,dcc) for fcc,dcc in \ + zip(facecolor,defaultcolor)) for facecolor in shapecolor) + def isgrey(shapecolor): - defaultcolor=(float.fromhex('0x1.99999ap-1'),float.fromhex('0x1.99999ap-1'),\ - float.fromhex('0x1.99999ap-1'),0.0) + defaultcolor=(float.fromhex('0x1.99999ap-1'),float.fromhex(\ + '0x1.99999ap-1'),float.fromhex('0x1.99999ap-1'),0.0) return all(facecolor == defaultcolor for facecolor in shapecolor) def randomcolor(transp=0.0): @@ -68,7 +82,7 @@ class ExplodeGroup: if FreeCAD.GuiUp: import FreeCADGui oo.ViewObject.show() - if color and isgrey(oo.ViewObject.DiffuseColor): + if color and isdefault(oo.ViewObject.DiffuseColor): if color == True: oo.ViewObject.DiffuseColor=randomcolor() else: