def _get_model(self, doc, root=None, parent=None, comm=None): VTKSynchronizedPlot = lazy_load('panel.models.vtk', 'VTKSynchronizedPlot', isinstance(comm, JupyterComm)) import panel.pane.vtk.synchronizable_serializer as rws context = rws.SynchronizationContext( id_root=make_globally_unique_id(), serialize_all_data_arrays=self.serialize_all_data_arrays, debug=self._debug_serializer) scene, arrays, annotations = self._serialize_ren_win( self.object, context) self._update_color_mappers() props = self._process_param_change(self._init_params()) props.update(scene=scene, arrays=arrays, annotations=annotations, color_mappers=self.color_mappers) model = VTKSynchronizedPlot(**props) if root is None: root = model self._link_props(model, [ 'camera', 'color_mappers', 'enable_keybindings', 'one_time_reset', 'orientation_widget' ], doc, root, comm) self._contexts[model.id] = context self._models[root.ref['id']] = (model, parent) return model
def _get_model(self, doc, root=None, parent=None, comm=None): """ Should return the bokeh model to be rendered. """ VTKSynchronizedPlot = super(VTKRenderWindowSynchronized, self)._get_model(doc, root=None, parent=None, comm=None) import panel.pane.vtk.synchronizable_serializer as rws context = rws.SynchronizationContext( id_root=make_globally_unique_id(), serialize_all_data_arrays=self.serialize_all_data_arrays, debug=self._debug_serializer) scene, arrays = self._serialize_ren_win(self.object, context) self._update_color_mappers() props = self._process_param_change(self._init_properties()) props.update(scene=scene, arrays=arrays, color_mappers=self.color_mappers) model = VTKSynchronizedPlot(**props) if root is None: root = model self._link_props(model, [ 'camera', 'color_mappers', 'enable_keybindings', 'one_time_reset', 'orientation_widget' ], doc, root, comm) self._contexts[model.id] = context self._models[root.ref['id']] = (model, parent) return model
def _update(self, model): import panel.pane.vtk.synchronizable_serializer as rws context = rws.SynchronizationContext(id_root=make_globally_unique_id(), debug=self._debug_serializer) self._scene, self._arrays = self._serialize_ren_win( self.object, context, ) if model is not None: model.update(rebuild=True) model.update(arrays=self._arrays) model.update(scene=self._scene)
def export_scene(self, filename='vtk_scene'): if '.' not in filename: filename += '.synch' import panel.pane.vtk.synchronizable_serializer as rws context = rws.SynchronizationContext(debug=self._debug_serializer) scene, arrays = self._serialize_ren_win(self.object, context, binary=True, compression=False) with zipfile.ZipFile(filename, mode='w') as zf: zf.writestr('index.json', json.dumps(scene)) for name, data in arrays.items(): zf.writestr('data/%s' % name, data, zipfile.ZIP_DEFLATED) return filename