def initialize(): """ initialize() -> None Package-entry to initialize the package """ # Check VTK version v = vtksnl.vtkVersion() version = [v.GetVTKMajorVersion(), v.GetVTKMinorVersion(), v.GetVTKBuildVersion()] if version < [5, 0, 0]: raise Exception("You need to upgrade your VTK install to version \ > >= 5.0.0") inheritanceGraph = ClassTree(vtksnl) inheritanceGraph.create() # Transfer Function constant tf_widget.initialize() delayed = InstanceObject(add_input_port=[]) # Add VTK modules registry = get_module_registry() registry.add_module(vtkBaseModule) createAllModules(inheritanceGraph) setAllPorts(registry.get_descriptor_by_name(identifier, 'vtkObjectBase'), delayed) # Register the VTKCell and VTKHandler type if the spreadsheet is up if registry.has_module('edu.utah.sci.vistrails.spreadsheet', 'SpreadsheetCell'): import vtkhandler import vtkcell import vtkviewcell vtkhandler.registerSelf() vtkcell.registerSelf() vtkviewcell.registerSelf() # register offscreen rendering module offscreen.register_self() # Now add all "delayed" ports - see comment on addSetGetPorts for args in delayed.add_input_port: registry.add_input_port(*args) # register Transfer Function adjustment # This can't be reordered -- TransferFunction needs to go before # vtkVolumeProperty, but vtkScaledTransferFunction needs # to go after vtkAlgorithmOutput getter = registry.get_descriptor_by_name registry.add_module(tf_widget.vtkScaledTransferFunction) registry.add_input_port(tf_widget.vtkScaledTransferFunction, 'Input', getter('edu.utah.sci.vistrails.vtksnl', 'vtkAlgorithmOutput').module) registry.add_input_port(tf_widget.vtkScaledTransferFunction, 'Dataset', getter ('edu.utah.sci.vistrails.vtksnl', 'vtkDataObject').module) registry.add_input_port(tf_widget.vtkScaledTransferFunction, 'Range', [Float, Float]) registry.add_input_port(tf_widget.vtkScaledTransferFunction, 'TransferFunction', tf_widget.TransferFunctionConstant) registry.add_output_port(tf_widget.vtkScaledTransferFunction, 'TransferFunction', tf_widget.TransferFunctionConstant) inspectors.initialize()
import inspectors from hasher import vtk_hasher import sys ################################################################################ # filter some deprecation warnings coming from the fact that vtk calls # range() with float parameters import warnings warnings.filterwarnings("ignore", message="integer argument expected, got float") ################################################################################ if tuple(vtksnl.vtkVersion().GetVTKVersion().split('.')) < ('5', '0', '4'): def get_description_class(klass): """Because sometimes we need to patch VTK classes, the klass that has the methods is different than the klass we want to instantiate. get_description_class makes sure that for patched classes we get the correct one.""" try: return fix_classes.description[klass] except KeyError: return klass else: # On VTK 5.0.4, we use the id of the class to hash, because it # seems that VTK hasn't implemented hash() correctly for their # classes. def get_description_class(klass): """Because sometimes we need to patch VTK classes, the klass that