aboutsummaryrefslogtreecommitdiffstats
path: root/generat3d
diff options
context:
space:
mode:
Diffstat (limited to 'generat3d')
-rw-r--r--generat3d/scene.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/generat3d/scene.py b/generat3d/scene.py
index 03b92f7..25e4b61 100644
--- a/generat3d/scene.py
+++ b/generat3d/scene.py
@@ -115,8 +115,11 @@ class _Loader:
if len(figs) > 1:
raise Error(f"{self.path}: v1 handles one figure per scene, found {len(figs)}")
self.inst = {figs[0][0]["id"], figs[0][0].get("name")} - {None}
+ self.pending = []
self.figure = self._figure(*figs[0])
self.ids = {n.id for n in self.figure.nodes} | {n.name for n in self.figure.nodes}
+ for f, source in self.pending:
+ self._formula(f, source)
self._morphs(figs[0][1])
posed = self._dials() or posed
if posed:
@@ -143,7 +146,7 @@ class _Loader:
for a, v in zip(AXES, _channel(n, ch)):
self.graph.add_prop(key(n["id"], n["id"], f"{ch}/{a}"), v)
for f in n.get("formulas", []):
- self._formula(f, fpath)
+ self.pending.append((f, fpath))
return Figure(asset["id"], inst.get("name", asset.get("name", asset["id"])),
inst.get("label", asset.get("label", asset["id"])),
np.array(geom["vertices"]["values"], dtype=float),