Skip to content

Commit

Permalink
Merge 3fbd9bd into 0ff7ead
Browse files Browse the repository at this point in the history
  • Loading branch information
iory committed Feb 5, 2020
2 parents 0ff7ead + 3fbd9bd commit 71bbb37
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
16 changes: 16 additions & 0 deletions trimesh/scene/scene.py
Expand Up @@ -198,6 +198,22 @@ def add_geometry(self,
geometry_flags={'visible': True})
return node_name

def delete_geometry(self, name):
"""
Delete a geometry from the scene.
Parameters
--------------
name : hashable
Name that references geometry
"""
self.graph.transforms.remove_node(name)
self.graph._cache.update(
{'nodes_geometry': np.array(
[n for n, attr in self.graph.transforms.nodes(data=True)
if 'geometry' in attr])})
self.geometry.pop(name)

def md5(self):
"""
MD5 of scene which will change when meshes or
Expand Down
44 changes: 44 additions & 0 deletions trimesh/viewer/windowed.py
Expand Up @@ -123,6 +123,8 @@ def __init__(self,
self.vertex_list_mode = {}
# store meshes that don't rotate relative to viewer
self.fixed = fixed
# store a hidden (don't not display) node.
self._nodes_hidden = set()
# name : texture
self.textures = {}

Expand Down Expand Up @@ -241,6 +243,45 @@ def add_geometry(self, name, geometry, **kwargs):
if tex is not None:
self.textures[name] = tex

def sweap_geometries(self):
"""
Sweap geometries from the viewer.
"""
node_names = collections.deque(
self.scene.graph.nodes_geometry)
deleted_names = []
for name in self.vertex_list:
if name not in node_names:
deleted_names.append(name)
for name in deleted_names:
self.vertex_list.pop(name, None)
self.vertex_list_hash.pop(name, None)
self.vertex_list_mode.pop(name, None)
self.textures.pop(name, None)

def show_geometry(self, node):
"""
Display the geometry contained at a node.
Parameters
-------------
node : str
Node to display
"""
self._nodes_hidden.discard(node)

def hide_geometry(self, node):
"""
Don't display the geometry contained at a node.
Parameters
-------------
node : str
Node to not display
"""
self._nodes_hidden.add(node)

def reset_view(self, flags=None):
"""
Set view to the default view.
Expand Down Expand Up @@ -649,6 +690,9 @@ def on_draw(self):
count += 1
current_node = node_names.popleft()

if current_node in self._nodes_hidden:
continue

# get the transform from world to geometry and mesh name
transform, geometry_name = self.scene.graph.get(current_node)

Expand Down

0 comments on commit 71bbb37

Please sign in to comment.