mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-10 14:07:43 +00:00
BBIM, bcf, fix colors for hex with alpha channel
This commit is contained in:
@@ -1045,7 +1045,7 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
for acomponent in acoloring.component:
|
for acomponent in acoloring.component:
|
||||||
global_id_colours.setdefault(acomponent.ifc_guid, acoloring.color)
|
global_id_colours.setdefault(acomponent.ifc_guid, acoloring.color)
|
||||||
for global_id, color in global_id_colours.items():
|
for global_id, color in global_id_colours.items():
|
||||||
# print("{}: color: {}".format(global_id, self.hex_to_rgb(color)))
|
# print("{}: color: {}: {}".format(global_id, color, self.hex_to_rgb(color)))
|
||||||
obj = IfcStore.get_element(global_id)
|
obj = IfcStore.get_element(global_id)
|
||||||
if obj:
|
if obj:
|
||||||
# print(" obj found ")
|
# print(" obj found ")
|
||||||
@@ -1132,8 +1132,14 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
def hex_to_rgb(self, value):
|
def hex_to_rgb(self, value):
|
||||||
value = value.lstrip("#")
|
value = value.lstrip("#")
|
||||||
lv = len(value)
|
lv = len(value)
|
||||||
t = tuple(int(value[i : i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
# https://github.com/buildingSMART/BCF-XML/tree/release_3_0/Documentation#coloring
|
||||||
return [t[0] / 255.0, t[1] / 255.0, t[2] / 255.0, 1]
|
if lv == 8:
|
||||||
|
t = tuple(int(value[i : i + lv // 4], 16) for i in range(0, lv, lv // 4))
|
||||||
|
col = [t[1] / 255.0, t[2] / 255.0, t[3] / 255.0, t[0] / 255.0]
|
||||||
|
else:
|
||||||
|
t = tuple(int(value[i : i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||||
|
col = [t[0] / 255.0, t[1] / 255.0, t[2] / 255.0, 1]
|
||||||
|
return col
|
||||||
|
|
||||||
|
|
||||||
class OpenBcfReferenceLink(bpy.types.Operator):
|
class OpenBcfReferenceLink(bpy.types.Operator):
|
||||||
|
|||||||
Reference in New Issue
Block a user