Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
 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)
Beispiel #4
0
    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