|
1 | 1 | Added |
2 | 2 | ^^^^^ |
3 | 3 |
|
4 | | -* Added :class:`~isaaclab.cloner.ClonePlan` as the single source of truth for |
5 | | - clone sources, destination templates, and the source-to-environment mask. |
6 | | -* Added :meth:`~isaaclab.sim.SimulationContext.get_clone_plan` and |
7 | | - :meth:`~isaaclab.sim.SimulationContext.set_clone_plan` for publishing the |
8 | | - scene clone plan. |
9 | | -* Added explicit ``spawn_paths`` support to multi-asset spawners so scene |
10 | | - planning can spawn representative heterogeneous sources directly. |
| 4 | +* Added :class:`~isaaclab.cloner.ClonePlan` frozen dataclass capturing per-group |
| 5 | + prototype-to-environment mappings (``dest_template``, ``prototype_paths``, |
| 6 | + ``clone_mask``). Lets downstream consumers (scene data providers, mesh samplers) |
| 7 | + read prototype geometry once and scatter to environments via the per-group mask |
| 8 | + instead of walking per-env USD paths. |
| 9 | +* Added :meth:`~isaaclab.sim.SimulationContext.get_clone_plans` and |
| 10 | + :meth:`~isaaclab.sim.SimulationContext.set_clone_plans` for publishing and |
| 11 | + consuming the cloner's per-group plan map. |
| 12 | +* Added :attr:`~isaaclab.scene.InteractiveScene.clone_plans` property (forwards to |
| 13 | + :meth:`~isaaclab.sim.SimulationContext.get_clone_plans`) so consumers holding a |
| 14 | + scene reference can read the published plans without going through the sim |
| 15 | + context. |
11 | 16 |
|
12 | 17 | Changed |
13 | 18 | ^^^^^^^ |
14 | 19 |
|
15 | | -* **Breaking:** :class:`~isaaclab.scene.InteractiveScene` now builds clone plans |
16 | | - directly from asset configuration, spawns representative sources in their |
17 | | - selected environments, and replicates from those sources. This removes the old |
18 | | - template-spawn and prototype-discovery round trip. |
19 | | -* **Breaking:** Replaced ``TemplateCloneCfg`` with |
20 | | - :class:`~isaaclab.cloner.CloneCfg` for clone execution settings. |
21 | | -* Changed :func:`~isaaclab.cloner.make_clone_plan` to return a |
22 | | - :class:`~isaaclab.cloner.ClonePlan` object directly. |
| 20 | +* **Breaking:** :func:`~isaaclab.cloner.clone_from_template` now returns |
| 21 | + ``dict[str, ClonePlan]`` instead of ``None``. Bind the result and publish it |
| 22 | + through :meth:`~isaaclab.sim.SimulationContext.set_clone_plans` if downstream |
| 23 | + consumers (e.g. the PhysX scene data provider's Newton-visualizer build path) |
| 24 | + need to read the plan. |
23 | 25 |
|
24 | 26 | Removed |
25 | 27 | ^^^^^^^ |
26 | 28 |
|
27 | | -* **Breaking:** Removed :func:`~isaaclab.cloner.clone_from_template`. Use |
28 | | - :func:`~isaaclab.cloner.make_clone_plan`, |
29 | | - :func:`~isaaclab.cloner.usd_replicate`, and backend physics replication |
30 | | - functions for direct cloning workflows. |
| 29 | +* **Breaking:** Removed |
| 30 | + :attr:`~isaaclab.cloner.TemplateCloneCfg.visualizer_clone_fn`, |
| 31 | + :func:`~isaaclab.cloner.resolve_visualizer_clone_fn`, and |
| 32 | + :class:`~isaaclab.physics.scene_data_requirements.VisualizerPrebuiltArtifacts`. |
| 33 | + Scene data providers now build backend models from the |
| 34 | + :class:`~isaaclab.cloner.ClonePlan` map via |
| 35 | + :meth:`~isaaclab.sim.SimulationContext.get_clone_plans` instead of receiving a |
| 36 | + prebuilt artifact through a clone-time callback. |
| 37 | +* **Breaking:** Removed |
| 38 | + :meth:`~isaaclab.sim.SimulationContext.get_scene_data_visualizer_prebuilt_artifact`, |
| 39 | + :meth:`~isaaclab.sim.SimulationContext.set_scene_data_visualizer_prebuilt_artifact`, |
| 40 | + and |
| 41 | + :meth:`~isaaclab.sim.SimulationContext.clear_scene_data_visualizer_prebuilt_artifact`. |
| 42 | + Use :meth:`~isaaclab.sim.SimulationContext.get_clone_plans` / |
| 43 | + :meth:`~isaaclab.sim.SimulationContext.set_clone_plans` instead. |
0 commit comments