You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make world-dirty tracking per-view in FabricFrameView
The previous _static_dirty_stages set was keyed by stage_id, but
_sync_world_from_local_if_dirty only recomputes worldMatrix for the
*calling view's* children before clearing the flag. With two views
on the same stage, view B's world-read would clear the flag set by
view A's set_local_poses, leaving A's worlds silently stale.
Replace the class-level set with a per-instance bool. Each view now
tracks its own dirty state, which matches the actual scope of the
recompute kernel and removes a mutable ClassVar.
Also:
- Raise a clearer error when _compute_parent_fabric_indices is asked
to look up the parent of a root-level prim (rsplit produces ""),
instead of bubbling up the generic "not found in selection" message.
- Document on the remaining _static_hierarchy_cache that it is not
thread-safe by design (Isaac Lab's loop is single-threaded; adding a
lock would negate the per-stage caching benefit).
- Update the module docstring to reflect the per-view dirty model and
drop the stale reference to IFabricHierarchy.update_world_xforms.
0 commit comments