test for default color from preferences in OpenSCAD/Explode command
This commit is contained in:
parent
1846087723
commit
089174c297
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue
Block a user