Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 9 additions & 28 deletions mani_skill/utils/structs/actor.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,29 +175,16 @@ def has_collision_shapes(self):

def hide_visual(self):
"""
Hides this actor from view. In CPU simulation the visual body is simply set to visibility 0

For GPU simulation, currently this is implemented by moving the actor very far away as visiblity cannot be changed on the fly.
As a result we do not permit hiding and showing visuals of objects with collision shapes as this affects the actual simulation.
Note that this operation can also be fairly slow as we need to run px.gpu_apply_rigid_dynamic_data and px.gpu_fetch_rigid_dynamic_data.
Hides this actor from view. Simply set to visibility 0.
"""
assert not self.has_collision_shapes
Comment on lines 176 to 180
if self.hidden:
return
if self.scene.gpu_sim_enabled:
self.before_hide_pose = self.pose.raw_pose.clone()

temp_pose = self.pose.raw_pose
temp_pose[..., :3] += 99999
self.pose = temp_pose
self.px.gpu_apply_rigid_dynamic_data()
self.px.gpu_fetch_rigid_dynamic_data()
else:
for obj in self._objs:
obj.find_component_by_type(
sapien.render.RenderBodyComponent
).visibility = 0
# set hidden *after* setting/getting so not applied to self.before_hide_pose erroenously
for obj in self._objs:
obj.find_component_by_type(
sapien.render.RenderBodyComponent
).visibility = 0
Comment on lines 183 to +187
Comment on lines +184 to +187
self.hidden = True

def show_visual(self):
Expand All @@ -206,16 +193,10 @@ def show_visual(self):
return
# set hidden *before* setting/getting so not applied to self.before_hide_pose erroenously
self.hidden = False
if self.scene.gpu_sim_enabled:
if hasattr(self, "before_hide_pose"):
self.pose = self.before_hide_pose
self.px.gpu_apply_rigid_dynamic_data()
self.px.gpu_fetch_rigid_dynamic_data()
else:
for obj in self._objs:
obj.find_component_by_type(
sapien.render.RenderBodyComponent
).visibility = 1
for obj in self._objs:
obj.find_component_by_type(
sapien.render.RenderBodyComponent
).visibility = 1
Comment on lines 194 to +199
Comment on lines +196 to +199

def is_static(self, lin_thresh=1e-2, ang_thresh=1e-1):
"""
Expand Down