InsightSoftwareConsortium / InsightSoftwareConsortium/itkwidgets

Append datasets and props to Viewer scene

Open
#179 3 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Python
Stars
624
Forks
83
PR merge metrics
No merged PRs in 30d

Description

I'm trying to make a plotter class based on the `itkwidgets.Viewer` class and I need ways to append datasets and their properties to the scene.

```py

import pyvista as pv
from pyvista import examples

from itkwidgets import view, Viewer

class PlotterITK():
def __init__(self, **kwargs):
self.plotter = Viewer()

def add_mesh(self, mesh, color=None, scalars=None, clim=None,
opacity=1.0, n_colors=256, cmap='viridis',
**kwargs):
"""Adds mesh to the scene"""
if not pv.is_pyvista_obj(mesh):
mesh = pv.wrap(mesh)
if not isinstance(mesh, pv.PolyData):
mesh = mesh.extract_geometry()

if self.plotter.geometries is None:
self.plotter.geometries = [mesh,]
# if color:
# # how do I set the color????? this doesn't work
# self.plotter.geometry_colors = [np.array(pv.parse_color(color)).reshape(-1, 3),]
else:
self.plotter.geometries = self.plotter.geometries.append(mesh)
# if color:
# self.plotter.geometry_colors = self.plotter.geometry_colors.append(pv.parse_color(color))

if scalars is not None:
mesh.active_scalars = scalars

return

def show(self, **kwargs):
"""Show in cell output"""
return self.plotter

mesh = examples.download_st_helens().warp_by_scalar()

# sample usage
plotter = PlotterITK()
plotter.add_mesh(mesh.wireframe(), scalars='Elevation') # pass args for coloring too
plotter.add_mesh(mesh.contour(), color='k') # pass args for coloring too
plotter.show()
```

This doesn't really work though... @thewtex proposed a solution in https://github.com/InsightSoftwareConsortium/itk-jupyter-widgets/pull/154#issuecomment-512080322 but I cannot get any of this to work because `self.plotter.geometries.append(mesh)` returns None.

Can we implement a feature to append datasets and their display properties (color/colormap, style, etc.) on the fly?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.