Skip to content

Commit eded4f8

Browse files
authored
[MISC] Allow following entity or mounting camera building scene. (#1548)
1 parent 81a5695 commit eded4f8

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

genesis/utils/misc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def assert_built(method):
142142
@functools.wraps(method)
143143
def wrapper(self, *args, **kwargs):
144144
if not self.is_built:
145-
gs.raise_exception("Scene is not built yet.")
145+
gs.raise_exception(f"{type(self).__name__} is not built yet.")
146146
return method(self, *args, **kwargs)
147147

148148
return wrapper

genesis/vis/rasterizer_context.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ def build(self, scene):
7474
self.scene = scene
7575
self.sim = scene.sim
7676
self.visualizer = scene.visualizer
77+
78+
# Update visuals at this point avoids nasty visual artifacts during Scene build
7779
self.visualizer.update_visual_states()
7880

7981
if self.rendered_envs_idx is None:

genesis/vis/visualizer.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,11 @@ def update_visual_states(self):
215215
return
216216

217217
for camera in self._cameras:
218-
if camera._attached_link is not None:
219-
camera.move_to_attach()
220-
elif camera._followed_entity is not None:
221-
camera.update_following()
218+
if camera.is_built:
219+
if camera._attached_link is not None:
220+
camera.move_to_attach()
221+
elif camera._followed_entity is not None:
222+
camera.update_following()
222223

223224
if self._scene.rigid_solver.is_active():
224225
self._scene.rigid_solver.update_geoms_render_T()

0 commit comments

Comments
 (0)