diff options
Diffstat (limited to 'generat3d/scene.py')
| -rw-r--r-- | generat3d/scene.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/generat3d/scene.py b/generat3d/scene.py index 5c35022..1917f28 100644 --- a/generat3d/scene.py +++ b/generat3d/scene.py @@ -162,6 +162,7 @@ class _Loader: self.graph.add_prop(key(n["id"], n["id"], f"{ch}/{a}"), v) for f in n.get("formulas", []): self.pending.append((f, fpath)) + self.owners = {asset["id"], geom.get("id")} - {None} verts = np.array(geom["vertices"]["values"], dtype=float) if verts.ndim != 2 or verts.shape[1] != 3 or not np.isfinite(verts).all(): raise Error(f"{fpath}: bad vertices") @@ -195,7 +196,7 @@ class _Loader: nverts = len(self.figure.verts) for mod in doc.get("modifier_library", []): parent = parse_url(mod.get("parent", ""))[2] - if parent and parent != self.figure.id: + if parent and parent not in self.owners: # figure node or its geometry continue ch = mod.get("channel", {}) if ch.get("type", "float") not in ("float", "int"): |
