register_pipeline_node(ParticleVisualizerNode) class ParticleVisualizer(Vtk3dVisualizerPage): """Visualizer. """ @log_call def update(self): """Updates content of the rendering window. TODO: this method call should be handled in superclass... """ self.render() register_visualizer_page('ParticleVisualizerNode', ParticleVisualizer) class ParticleVisualizerInspector(InspectorPage): """Inspector. """ def __init__(self, *args, **kwargs): """Initializer. """ InspectorPage.__init__(self, *args, **kwargs) self.init_ui() def init_ui(self): """Sets UI up. """ widgets = []
self.tree = tree def update(self): """Observer update handler. """ if not self.tree.hdf5_file==self.target.hdf5_data: self.tree.hdf5_file = self.target.hdf5_data def on_tree_select(self, node_path): """Callback from tree on selection change. """ debug('node cursor set to %s' %node_path) self.target.node_cursor = node_path self.target.status_changed() register_visualizer_page('SimpleHdf5TreeVisualizerNode', SimpleHdf5TreeVisualizer) class SimpleHdf5TreeInspector(InspectorPage): """Simple HDF5 tree inspector. """ def __init__(self, *args, **kwargs): """Initializer. """ InspectorPage.__init__(self, *args, **kwargs) # path text. path_label = wx.StaticText(self, -1, 'Path') path_text = wx.TextCtrl(self, -1, style=wx.TE_READONLY) # attributes grid. attr_label = wx.StaticText(self, -1, 'Attributes') attr_grid = Grid(self, -1, size=(-1, 100))
if self.sid_color_map is None: self.sid_color_map = {} for sp in ps.species: if sp not in self.sid_color_map.keys(): self.sid_color_map[sp] = get_new_color(len(self.sid_color_map)) register_pipeline_node(ParticleSpaceVisualizerNode) class ParticleSpaceVisualizer(Vtk3dVisualizerPage): @log_call def update(self): self.render() register_visualizer_page('ParticleSpaceVisualizerNode', ParticleSpaceVisualizer) class ParticleSpaceVisualizerInspector(InspectorPage): """Inspector page for ParticleSpaceVisualizer. """ def __init__(self, *args, **kwargs): """Initializer. """ InspectorPage.__init__(self, *args, **kwargs) self.init_ui() def init_ui(self): widgets = [] widgets.extend(self.get_particle_space_widgets()) widgets.extend(self.get_particle_widgets()) fx_sizer = wx.FlexGridSizer(cols=2, vgap=9, hgap=15)
def update(self): """Observer's update handler """ self.figure.clear() axes = self.figure.add_subplot("111") populations = self.target.time_course xys = [] names = [] for name, xy in populations.items(): xys.extend(zip(*xy) + ["o-"]) names.append(name) axes.plot(*xys) axes.legend(names) self.canvas.draw() register_visualizer_page("TimecourseVisualizerNode", TimecourseVisualizer) if __name__ == "__main__": # TBD app = wx.App() frame = wx.Frame(None, -1, "") node = TimecourseVisualizerNode() page = TimecourseVisualizer(frame, -1, target=node) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(page) frame.SetSizer(sizer) frame.Show(True) app.MainLoop()
def __init__(self, *args, **kwargs): super(DemoConeVisualizerNode, self).__init__(*args, **kwargs) self.renderer source = vtk.vtkConeSource() source.SetResolution(64) mapper = vtk.vtkPolyDataMapper() mapper.SetInput(source.GetOutput()) self.actor = vtk.vtkActor() self.actor.SetMapper(mapper) self.renderer.AddActor(self.actor) self.renderer # Register pipleline node register_pipeline_node(DemoConeVisualizerNode) # Define visualizer class DemoConeVisualizerPage(Vtk3dVisualizerPage): """Abstract superclass for pages in a visualizer notebook. """ pass # Register visualizer page to registry. register_visualizer_page('DemoConeVisualizerNode', DemoConeVisualizerPage) # You may write demonstrative app code here... if __name__=='__main__': pass
def __init__(self, *args, **kwargs): super(DemoConeVisualizerNode, self).__init__(*args, **kwargs) self.renderer source = vtk.vtkConeSource() source.SetResolution(64) mapper = vtk.vtkPolyDataMapper() mapper.SetInput(source.GetOutput()) self.actor = vtk.vtkActor() self.actor.SetMapper(mapper) self.renderer.AddActor(self.actor) self.renderer # Register pipleline node register_pipeline_node(DemoConeVisualizerNode) # Define visualizer class DemoConeVisualizerPage(Vtk3dVisualizerPage): """Abstract superclass for pages in a visualizer notebook. """ pass # Register visualizer page to registry. register_visualizer_page('DemoConeVisualizerNode', DemoConeVisualizerPage) # You may write demonstrative app code here... if __name__ == '__main__': pass
def update(self): """Observer update handler. """ if not self.tree.hdf5_file == self.target.hdf5_data: self.tree.hdf5_file = self.target.hdf5_data def on_tree_select(self, node_path): """Callback from tree on selection change. """ debug('node cursor set to %s' % node_path) self.target.node_cursor = node_path self.target.status_changed() register_visualizer_page('SimpleHdf5TreeVisualizerNode', SimpleHdf5TreeVisualizer) class SimpleHdf5TreeInspector(InspectorPage): """Simple HDF5 tree inspector. """ def __init__(self, *args, **kwargs): """Initializer. """ InspectorPage.__init__(self, *args, **kwargs) # path text. path_label = wx.StaticText(self, -1, 'Path') path_text = wx.TextCtrl(self, -1, style=wx.TE_READONLY) # attributes grid. attr_label = wx.StaticText(self, -1, 'Attributes') attr_grid = Grid(self, -1, size=(-1, 100))
def update(self): """Observer's update handler """ self.figure.clear() axes = self.figure.add_subplot('111') populations = self.target.time_course xys = [] names = [] for name, xy in populations.items(): xys.extend(zip(*xy) + ['o-']) names.append(name) axes.plot(*xys) axes.legend(names) self.canvas.draw() register_visualizer_page('TimecourseVisualizerNode', TimecourseVisualizer) if __name__ == '__main__': # TBD app = wx.App() frame = wx.Frame(None, -1, '') node = TimecourseVisualizerNode() page = TimecourseVisualizer(frame, -1, target=node) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(page) frame.SetSizer(sizer) frame.Show(True) app.MainLoop()