""" Displays any input polydata, nothing fancy. This code is distributed under the conditions of the BSD license. See LICENSE.txt for details. Copyright (c) 2001-2002, Prabhu Ramachandran. """ __author__ = "Prabhu Ramachandran " __version__ = "$Revision: 1.7 $" __date__ = "$Date: 2005/08/02 18:30:13 $" import Base.Objects, Common import Tkinter, tkColorChooser import vtk import vtkPipeline.vtkMethodParser debug = Common.debug class PolyData (Base.Objects.Module): """ Displays any input polydata, nothing fancy.""" def __init__ (self, mod_m): debug ("In PolyData::__init__ ()") Common.state.busy () Base.Objects.Module.__init__ (self, mod_m) self.act = None out = mod_m.GetOutput () if not out.IsA('vtkPolyData'): typ = out.__class__.__name__ msg = "This module does not support the %s dataset."%(typ) msg = msg + "\nOnly POLYDATA is supported." raise Base.Objects.ModuleException, msg self.root = None self.mapper = self.map = vtk.vtkPolyDataMapper () self.map.SetInput (mod_m.GetOutput ()) self.map.SetLookupTable (self.mod_m.get_scalar_lut ()) self.data_range = self.mod_m.get_scalar_data_range () self.map.SetScalarRange (self.data_range) self.actor = self.act = vtk.vtkActor () self.act.SetMapper (self.map) self.act.GetProperty ().SetColor (0.0, 0.1, 0.8) # used for the pipeline browser self.pipe_objs = self.act self.renwin.add_actors (self.act) self.renwin.Render () Common.state.idle () def __del__ (self): debug ("In PolyData::__del__ ()") if self.act: self.renwin.remove_actors (self.act) self.renwin.Render () def SetInput (self, source): debug ("In PolyData::SetInput ()") Common.state.busy () self.map.SetInput (source) dr = self.mod_m.get_scalar_data_range () if (dr[0] != self.data_range[0]) or (dr[1] != self.data_range[1]): self.map.SetScalarRange (dr) self.data_range = dr Common.state.idle () def save_config (self, file): debug ("In PolyData::save_config ()") p = vtkPipeline.vtkMethodParser.VtkPickler () for obj in (self.map, self.act, self.act.GetProperty ()): p.dump (obj, file) def load_config (self, file): debug ("In PolyData::load_config ()") p = vtkPipeline.vtkMethodParser.VtkPickler () for obj in (self.map, self.act, self.act.GetProperty ()): p.load (obj, file) def config_changed (self): debug ("In PolyData::config_changed ()") self.act.GetProperty ().SetColor (*Common.config.fg_color) def make_main_gui (self, master=None): debug ("In PolyData::make_main_gui ()") "Create the GUI configuration controls for this object." self.make_actor_gui ()