From dc5e3d86b40359f53f020b13663c3d7f7d5ee919 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 25 Sep 2024 13:00:05 +1000 Subject: [PATCH] Lazy optimisation to prioritise styledbyitem instead of indexed maps. Allow blank data_index in case we have multiple rep items. --- src/bonsai/bonsai/tool/loader.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/tool/loader.py b/src/bonsai/bonsai/tool/loader.py index b16ea0cb14..5f0261a328 100644 --- a/src/bonsai/bonsai/tool/loader.py +++ b/src/bonsai/bonsai/tool/loader.py @@ -494,6 +494,10 @@ class Loader(bonsai.core.tool.Loader): for item in representation.Items: if not item.is_a("IfcTessellatedFaceSet"): continue + # It's unclear what has priority, styled by item or indexed maps + # Given that indexed maps currently are super expensive, I'll prioritise styled by item + if item.StyledByItem: + continue colours.extend(item.HasColours) if not colours: @@ -572,7 +576,10 @@ class Loader(bonsai.core.tool.Loader): else: data_index = [tex_coord_index - 1 for i in face] break - assert data_index is not None + + if data_index is None: + # This face may be part of another representation item + continue # apply uv to each loop for loop, i in zip(bface.loops, data_index):