def poly(ren,obj): #@c Display a vtkPolyData object in the given renderer #@a ren: renderer #@a obj: object name try: vis.polyRm(ren,obj) except: pass tag = "%s_%s" % (ren[0],obj[0]) Map = [None]*2 Map[0] = "p_map_"+tag Map[1] = vtk.vtkPolyDataMapper() try: Map[1].SetInputConnection(obj[1]) except: Map[1].SetInputData(obj[1]) Map[1].ScalarVisibilityOff() act = [None]*2 act[0] = "p_act_"+tag act[1] = vtk.vtkActor() act[1].SetMapper(Map[1]) act[1].GetProperty().SetColor(1,0,0) vis.renAddActor(ren,act) vis.render(ren) setattr(vis,Map[0], Map) setattr(vis,act[0],act) vis.interact(ren) return act
def renReset(ren): #@c Reset the viewpoint of the renderer. #@a ren: renderer ren[1].ResetCamera() vis.render(ren) return
def vis_volRm(ren, objName): caster = getattr(vis, 'vis_vol_caster_'+objName) opacityTransferFunction = getattr(vis, 'vis_vol_opacityTransferFunction_'+objName) colorTransferFunction = getattr(vis, 'vis_vol_colorTransferFunction_'+objName) gradientTransferFunction = getattr(vis, 'vis_vol_gradientTransferFunction_'+objName) volumeProperty = getattr(vis, 'vis_vol_volumeProperty_'+objName) volumeMapper = getattr(vis, 'vis_vol_volumeMapper_'+objName) compositeFunction = getattr(vis, 'vis_vol_compositeFunction_'+objName) outline = getattr(vis, 'vis_vol_outline_'+objName) outlineMapper = getattr(vis, 'vis_vol_outlineMapper_'+objName) outlineProperty = getattr(vis, 'vis_vol_outlineProperty_'+objName) lod = getattr(vis, 'vis_vol_lod_'+objName) if (ren[1].GetViewProps().IsItemPresent(lod[1])>0): ren[1].RemoveViewProp(lod[1]) delattr(vis,caster[0]) delattr(vis,opacityTransferFunction[0]) delattr(vis,colorTransferFunction[0]) delattr(vis,gradientTransferFunction[0]) delattr(vis,volumeProperty[0]) delattr(vis,volumeMapper[0]) delattr(vis,compositeFunction[0]) delattr(vis,outline[0]) delattr(vis,outlineMapper[0]) delattr(vis,outlineProperty[0]) vis.render(ren) return
def vis_volRm(ren, objName): caster = getattr(vis, 'vis_vol_caster_' + objName) opacityTransferFunction = getattr( vis, 'vis_vol_opacityTransferFunction_' + objName) colorTransferFunction = getattr(vis, 'vis_vol_colorTransferFunction_' + objName) gradientTransferFunction = getattr( vis, 'vis_vol_gradientTransferFunction_' + objName) volumeProperty = getattr(vis, 'vis_vol_volumeProperty_' + objName) volumeMapper = getattr(vis, 'vis_vol_volumeMapper_' + objName) compositeFunction = getattr(vis, 'vis_vol_compositeFunction_' + objName) outline = getattr(vis, 'vis_vol_outline_' + objName) outlineMapper = getattr(vis, 'vis_vol_outlineMapper_' + objName) outlineProperty = getattr(vis, 'vis_vol_outlineProperty_' + objName) lod = getattr(vis, 'vis_vol_lod_' + objName) if (ren[1].GetViewProps().IsItemPresent(lod[1]) > 0): ren[1].RemoveViewProp(lod[1]) delattr(vis, caster[0]) delattr(vis, opacityTransferFunction[0]) delattr(vis, colorTransferFunction[0]) delattr(vis, gradientTransferFunction[0]) delattr(vis, volumeProperty[0]) delattr(vis, volumeMapper[0]) delattr(vis, compositeFunction[0]) delattr(vis, outline[0]) delattr(vis, outlineMapper[0]) delattr(vis, outlineProperty[0]) vis.render(ren) return
def pRepos(ren,objName): tag = "%s_%s" % (ren[0],objName) try: vis.register(ren,objName) except: vis.polyRm(ren,objName) vis.register(ren,objName) vtkName = Repository.ExportToVtk(objName) Map = [None]*2 Map[0] = "p_map_"+tag Map[1] = vtk.vtkPolyDataMapper() Map[1].SetInputData(vtkName) Map[1].ScalarVisibilityOff() act = [None]*2 act[0] = "p_act_"+tag act[1] = vtk.vtkActor() act[1].SetMapper(Map[1]) act[1].GetProperty().SetColor(1,0,0) vis.renAddActor(ren,act) vis.render(ren) #vis.interact(ren) setattr(vis,Map[0], Map) setattr(vis,act[0],act) return act
def polyShowScalars(ren,obj): #@c Show scalar values on poly in renderer in grayscale #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") lookupGrayscale = [None]*2 lookupGrayscale[0] = "p_grayscaleLUT_"+tag lookupGrayscale[1] = vtk.vtkWindowLevelLookupTable() lookupGrayscale[1].SetWindow(1023) lookupGrayscale[1].SetLevel(512) lookupGrayscale[1].SetWindow(0.5) lookupGrayscale[1].SetLevel(0.5) lookupGrayscale[1].SetHueRange(0.,0.) lookupGrayscale[1].SetSaturationRange(0.,0.) lookupGrayscale[1].SetValueRange(0.,1.) lookupGrayscale[1].SetNumberOfColors(16384) lookupGrayscale[1].Build() act = polyGetActor(ren,obj) act[1].GetMapper().SetLookupTable(lookupGrayscale[1]) act[1].GetMapper().ScalarVisibilityOn() Range = act[1].GetMapper().GetInput().GetPointData().GetScalars().GetRange() act[1].GetMapper().SetScalarRange(Range[0],Range[1]) vis.render(ren) setattr(vis,act[0],act) setattr(vis,lookupGrayscale[0],lookupGrayscale) return
def polyShowColorScalars(ren, obj): #@c Show scalar values on poly in renderer in color #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") lookupColor = [None]*2 lookupColor[0] = "p_blueToRedLUT_"+tag lookupColor[1] = vtk.vtkLookupTable() lookupColor[1].SetHueRange(0.6667 ,0.0) lookupColor[1].SetSaturationRange(1.,1.) lookupColor[1].SetValueRange(1.,1.) lookupColor[1].SetAlphaRange(1.,1.) lookupColor[1].SetNumberOfColors(16384) lookupColor[1].Build() act = polyGetActor(ren,obj) act[1].GetMapper().SetLookupTable(lookupColor[1]) act[1].GetMapper().ScalarVisibilityOn() Range = act[1].GetMapper().GetInput().GetPointData().GetScalars().GetRange() act[1].GetMapper().SetScalarRange(Range[0],Range[1]) vis.render(ren) setattr(vis,act[0],act) setattr(vis,lookupColor[0],lookupColor) return
def renParallelProjection(ren): #@c Turn on parallel projection for given #@c renderer. #@a ren: renderer ren[1].GetActiveCamera().ParallelProjectionOn() vis.render(ren) return
def renPerspectiveProjection(ren): #@c Turn on perspective projection for #@c given renderer #@a ren: renderer ren[1].GetActiveCamera().ParallelProjectionOff() vis.render(ren) return
def vis_imgSetOrigin(ren, x, y, z): try: plane = getattr(vis,'vis_img_plane_'+ren[0]) except: return plane[1].SetOrigin(x,y,x) setattr(vis, plane[0], plane) vis.render(ren) return
def vis_imgUnshow(ren): try: actor = getattr(vis, "vis_img_actor_"+ren[0]) except: return if (ren[1].GetActors().IsItemPresent(actor[1])>0): ren[1].RemoveActor(actor[1]) vis.render(ren) return
def renSetBackground(ren, r, g, b): #@c Set the background color of the given #@c renderer. #@a ren: renderer #@a r: red (value between 0 and 1) #@a g: green (value between 0 and 1) #@a b: blue (value between 0 and 1) ren[1].SetBackground(r, g, b) vis.render(ren) return
def vis_imgShow(ren): try: actor = getattr(vis, 'vis_img_actor_'+ren[0]) except: return ren[1].AddActor(actor[1]) ren[1].ResetCamera() vis.render(ren) return
def renSetFlatAll(ren): #@c Set the interpolation mode of all actors #@c displayed by given renderer to flat #@a ren: renderer actors = ren[1].GetActors() actors.InitTraversal() for i in range(0, actors.GetNumberOfItems()): a = actors.GetNextItem() a.GetProperty().SetInterpolationToFlat() vis.render(ren) return
def renSetGouraudAll(ren): #@c Set interpolation to Gouraud shading #@c for all actors displayed in given renderer. #@a ren: renderer actors = ren[1].GetActors() actors.InitTraversal() for i in range(0, actors.GetNumberOfItems()): a = actors.GetNextItem() a.GetProperty().SetInterpolationToGouraud() vis.render(ren) return
def renSetPhongAll(ren): #@c Set interpolation to Phong shading for all #@c for all actors in given renderer. #@a ren: renderer actors = ren[1].GetActors() actors.InitTraversal() for i in range(0, actors.GetNumberOfItems()): a = actors.GetNextItem() a.GetProperty().SetInterpolationToPhong() vis.render(ren) return
def polyShow(ren,obj): #@c Show object in renderer #@a ren: renderer if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") vis.polyUnshow(ren,obj) actor = getattr(vis, "p_act_"+tag) ren[1].AddActor(actor[1]) vis.render(ren) return
def polyRmAll(ren): #@c Remove all polys from renderer #@a ren: renderer vis.polyUnshowAll(ren) delList = ["p_grayscaleLUT_" + ren[0],"p_blueToRedLUT_" + ren[0],"p_nrm_" + ren[0],"p_map_" + ren[0],"p_act_" +ren[0],"p_lmap_" + ren[0],"p_labels_" + ren[0]] dic = dir(vis) for i in delList: for j in dic: if i in j: delattr(vis,j) vis.render(ren) return
def polyDisplayWireframe(ren,obj): #@c Display object as wireframe #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") actor = getattr(vis, "p_act_"+tag) actor[1].GetProperty().SetRepresentationToWireframe() vis.render(ren) return
def polyShowCellIds(ren,obj): #@c Show the cell ids of a given poly object in a renderer #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") try: vis.polyUnshowCellIds(ren,obj) except: pass lmap = [None]*2 lmap[0] = "p_lmapc_"+tag labels = [None]*2 labels[0] = "p_labelsc_"+tag ids = [None]*2 ids[0] = "p_cellids_"+tag filt = vtk.vtkCellCenters() if isinstance(obj,list): filt.SetInputDataObject(obj[1]) else: vtkPoly = Repository.ExportToVtk(obj) filt.SetInputDataObject(vtkPoly) filt.Update() ids[1] = filt.GetOutput() lmap[1] = vtk.vtkLabeledDataMapper() lmap[1].SetLabelModeToLabelIds() lmap[1].SetInputDataObject(ids[1]) lmap[1].SetLabelFormat("%g") labels[1] = vtk.vtkActor2D() labels[1].SetMapper(lmap[1]) ren[1].AddActor2D(labels[1]) vis.render(ren) setattr(vis,lmap[0],lmap) setattr(vis,labels[0],labels) return
def polyUnshowCellIds(ren,obj): #@c Remove the cell ids from the poly in renderer #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") lmap = getattr(vis,"p_lmapc_"+tag) labels = getattr(vis,"p_labelsc_"+tag) if (ren[1].GetActors2D().IsItemPresent(labels[1])>0): ren[1].RemoveActor2D(labels[1]) vis.render(ren) setattr(vis,lmap[0],lmap) setattr(vis,labels[0],labels) return
def polyShowScalarValues(ren,obj): #@c Show the scalar values for object in renderer #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") try: vis.polyUnshowScalarValues(ren,obj) except: pass lmap = [None]*2 lmap[0] = "p_lmap_"+tag labels = [None]*2 labels[0] = "p_labels_"+tag lmap[1] = vtk.vtkLabeledDataMapper() lmap[1].SetLabelModeToLabelScalars() if isinstance(obj,list): lmap[1].SetInputDataObject(obj[1]) else: vtkPoly = Repository.ExportToVtk(obj) lmap[1].SetInputDataObject(vtkPoly) lmap[1].SetLabelFormat("%g") labels[1] = vtk.vtkActor2D() labels[1].SetMapper(lmap[1]) ren[1].AddActor2D(labels[1]) vis.render(ren) setattr(vis,lmap[0],lmap) setattr(vis,labels[0],labels) return
def polyRm(ren, obj): #@c Remove the poly from the given renderer #@a ren: renderer #@a obj: object name if isinstance(obj, list): tag = "%s_%s" % (ren[0], obj[0]) elif isinstance(obj, str): tag = "%s_%s" % (ren[0], obj) else: raise ValueError("Argument type unsupported.") try: act = getattr(vis, "p_act_" + tag) except: return #if {$act == $::vis::tkvars(PickedAssembly)} { # ::vis::tkDeselectPickedActor #} try: vis.polyUnshow(ren, obj) except: pass delList = [ "p_grayscaleLUT_" + tag, "p_blueToRedLUT_" + tag, "p_nrm_" + tag, "p_map_" + tag, "p_act_" + tag, "p_lmap_" + tag, "p_labels_" + tag ] for i in delList: try: delattr(vis, i) except: pass vis.render(ren) return
def vis_volSetOpacityTransferFunction(ren, objName, values): #@c Change opacity transfer function. #@a ren: Render Window. #@a objName: Repository StructuredPoints object. #@a values: Python n by 2 list of scalar - opacity pairs. lod = getattr(vis, 'vis_vol_lod_'+objName) opacityTransferFunction = getattr(vis, 'vis_vol_opacityTransferFunction_'+objName) opacityTransferFunction.RemoveAllPoints() opacityTransferFunction.PrepareForNewData() if len(values)==0: return for i in range (0, len(values)): if len(values[i])!=2: print("Warning: incorrect scalar-opacity pair %i. Ignored." %i) else: opacityTransferFunction.AddPoint(values[i][0], values[i][1]) vis.render(ren) return
def polyUnshow(ren,obj): #@c Remove actor from renderer #@a ren: renderer #@a obj: object name try: vis.polyUnshowIds(ren,obj) except: pass if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") actor = getattr(vis, "p_act_"+tag) if (ren[1].GetActors().IsItemPresent(actor[1])>0): ren[1].RemoveActor(actor[1]) vis.render(ren) return
def polyRm(ren,obj): #@c Remove the poly from the given renderer #@a ren: renderer #@a obj: object name if isinstance(obj,list): tag = "%s_%s" % (ren[0],obj[0]) elif isinstance(obj,str): tag = "%s_%s" % (ren[0],obj) else: raise ValueError("Argument type unsupported.") try: act = getattr(vis,"p_act_"+tag) except: return #if {$act == $::vis::tkvars(PickedAssembly)} { # ::vis::tkDeselectPickedActor #} try: vis.polyUnshow(ren,obj) except: pass delList = ["p_grayscaleLUT_" + tag,"p_blueToRedLUT_" + tag,"p_nrm_" + tag,"p_map_" + tag,"p_act_" + tag,"p_lmap_" + tag,"p_labels_" + tag] for i in delList: try: delattr(vis, i) except: pass vis.render(ren) return
def vis_imgSetFile(ren, name, dims, spacing): try: rdr = getattr(vis, 'vis_img_reader_'+ren[0]) txt = getattr(vis, 'vis_img_texture_'+ren[0]) plane = getattr(vis, 'vis_img_plane_'+ren[0]) actor = getattr(vis, 'vis_img_actor_'+ren[0]) lookupGrayscale = getattr(vis, 'vis_img_g8bitGrayscaleLUT_'+ren[0]) except: vis_imgInit(ren) rdr = getattr(vis, 'vis_img_reader_'+ren[0]) txt = getattr(vis, 'vis_img_texture_'+ren[0]) plane = getattr(vis, 'vis_img_plane_'+ren[0]) actor = getattr(vis, 'vis_img_actor_'+ren[0]) lookupGrayscale = getattr(vis, 'vis_img_g8bitGrayscaleLUT_'+ren[0]) xsize = dims[0]*spacing[0] ysize = dims[1]*spacing[1] rdr[1].Modified() rdr[1].SetFileName(name) rdr[1].SetDataExtent(0, dims[0]-1,0, dims[1]-1, 1,1) rdr[1].SetDataSpacing(spacing[0], spacing[1], 1.0) rdr[1].Update() txt[1].SetInputConnection(rdr[1].GetOutputPort()) txt[1].Render(ren[1]) txt[1].SetLookupTable(lookupGrayscale[1]) txt[1].RepeatOff() plane[1].SetPoint1(xsize, 0.,0.) plane[1].SetPoint2(0.,ysize, 0.) ren[1].AddActor(actor[1]) vis.render(ren) return
def vis_volSetOpacityTransferFunction(ren, objName, values): #@c Change opacity transfer function. #@a ren: Render Window. #@a objName: Repository StructuredPoints object. #@a values: Python n by 2 list of scalar - opacity pairs. lod = getattr(vis, 'vis_vol_lod_' + objName) opacityTransferFunction = getattr( vis, 'vis_vol_opacityTransferFunction_' + objName) opacityTransferFunction.RemoveAllPoints() opacityTransferFunction.PrepareForNewData() if len(values) == 0: return for i in range(0, len(values)): if len(values[i]) != 2: print("Warning: incorrect scalar-opacity pair %i. Ignored." % i) else: opacityTransferFunction.AddPoint(values[i][0], values[i][1]) vis.render(ren) return
def vis_volRepos(ren, objName): if Repository.Exists(objName) == 0: raise ValueError("ERROR: Object does not exist.") return if Repository.Type(objName) != "StructuredPts": raise TypeError("Incorrect object type.") return caster = [None] * 2 opacityTransferFunction = [None] * 2 colorTransferFunction = [None] * 2 gradientTransferFunction = [None] * 2 volumeProperty = [None] * 2 volumeMapper = [None] * 2 compositeFunction = [None] * 2 outline = [None] * 2 outlineMapper = [None] * 2 outlineProperty = [None] * 2 lod = [None] * 2 caster[0] = "vis_vol_caster_" + objName opacityTransferFunction[0] = "vis_vol_opacityTransferFunction_" + objName colorTransferFunction[0] = "vis_vol_colorTransferFunction_" + objName gradientTransferFunction[0] = "vis_vol_gradientTransferFunction_" + objName volumeProperty[0] = "vis_vol_volumeProperty_" + objName volumeMapper[0] = "vis_vol_volumeMapper_" + objName compositeFunction[0] = "vis_vol_compositeFunction_" + objName outline[0] = "vis_vol_outline_" + objName outlineMapper[0] = "vis_vol_outlineMapper_" + objName outlineProperty[0] = "vis_vol_outlineProperty_" + objName lod[0] = "vis_vol_lod_" + objName caster[1] = vtk.vtkImageCast() caster[1].SetOutputScalarTypeToUnsignedShort() caster[1].SetInputDataObject(Repository.ExportToVtk(objName)) caster[1].Update() # Create transfer functions for opacity and color opacityTransferFunction[1] = vtk.vtkPiecewiseFunction() opacityTransferFunction[1].AddPoint(0, 0.) opacityTransferFunction[1].AddPoint(80, 0.) opacityTransferFunction[1].AddPoint(128, 0.5) opacityTransferFunction[1].AddPoint(150, 0.9) opacityTransferFunction[1].AddPoint(350, 1.0) colorTransferFunction[1] = vtk.vtkColorTransferFunction() colorTransferFunction[1].AddRGBPoint(0, 0, 0, 0) colorTransferFunction[1].AddRGBPoint(350, 1, 1, 1) gradientTransferFunction[1] = vtk.vtkPiecewiseFunction() gradientTransferFunction[1].AddPoint(0, 1.0) gradientTransferFunction[1].AddPoint(1, 1.0) gradientTransferFunction[1].AddPoint(255, 1.0) gradientTransferFunction[1].AddPoint(512, 1.0) # Create properties, mappers, volume actors, and ray cast function volumeProperty[1] = vtk.vtkVolumeProperty() volumeProperty[1].SetColor(colorTransferFunction[1]) volumeProperty[1].SetScalarOpacity(opacityTransferFunction[1]) volumeProperty[1].SetGradientOpacity(gradientTransferFunction[1]) volumeProperty[1].SetInterpolationTypeToLinear() volumeMapper[1] = vtk.vtkSmartVolumeMapper() volumeMapper[1].SetInputDataObject(caster[1].GetOutput()) lod[1] = vtk.vtkVolume() lod[1].SetProperty(volumeProperty[1]) lod[1].SetMapper(volumeMapper[1]) ren[1].AddViewProp(lod[1]) setattr(vis, caster[0], caster) setattr(vis, opacityTransferFunction[0], opacityTransferFunction) setattr(vis, colorTransferFunction[0], colorTransferFunction) setattr(vis, gradientTransferFunction[0], gradientTransferFunction) setattr(vis, volumeProperty[0], volumeProperty) setattr(vis, volumeMapper[0], volumeMapper) setattr(vis, compositeFunction[0], compositeFunction) setattr(vis, outline[0], outline) setattr(vis, outlineMapper[0], outlineMapper) setattr(vis, outlineProperty[0], outlineProperty) setattr(vis, lod[0], lod) vis.render(ren) return lod
def vis_volRepos(ren, objName): if Repository.Exists(objName)==0: raise ValueError("ERROR: Object does not exist.") return if Repository.Type(objName) != "StructuredPts": raise TypeError("Incorrect object type.") return caster = [None]*2 opacityTransferFunction = [None]*2 colorTransferFunction = [None]*2 gradientTransferFunction = [None]*2 volumeProperty = [None]*2 volumeMapper = [None]*2 compositeFunction = [None]*2 outline = [None]*2 outlineMapper = [None]*2 outlineProperty = [None]*2 lod = [None]*2 caster[0] = "vis_vol_caster_"+objName opacityTransferFunction[0] = "vis_vol_opacityTransferFunction_"+objName colorTransferFunction[0] = "vis_vol_colorTransferFunction_"+objName gradientTransferFunction[0] = "vis_vol_gradientTransferFunction_"+objName volumeProperty[0] = "vis_vol_volumeProperty_"+objName volumeMapper[0] = "vis_vol_volumeMapper_"+objName compositeFunction[0] = "vis_vol_compositeFunction_"+objName outline[0] = "vis_vol_outline_"+objName outlineMapper[0] = "vis_vol_outlineMapper_"+objName outlineProperty[0] = "vis_vol_outlineProperty_"+objName lod[0] = "vis_vol_lod_" + objName caster[1] = vtk.vtkImageCast() caster[1].SetOutputScalarTypeToUnsignedShort() caster[1].SetInputDataObject(Repository.ExportToVtk(objName)) caster[1].Update() # Create transfer functions for opacity and color opacityTransferFunction[1] = vtk.vtkPiecewiseFunction() opacityTransferFunction[1].AddPoint(0,0.) opacityTransferFunction[1].AddPoint(80,0.) opacityTransferFunction[1].AddPoint(128,0.5) opacityTransferFunction[1].AddPoint(150,0.9) opacityTransferFunction[1].AddPoint(350,1.0) colorTransferFunction[1] = vtk.vtkColorTransferFunction() colorTransferFunction[1].AddRGBPoint(0,0,0,0) colorTransferFunction[1].AddRGBPoint(350,1,1,1) gradientTransferFunction[1] = vtk.vtkPiecewiseFunction() gradientTransferFunction[1].AddPoint(0,1.0) gradientTransferFunction[1].AddPoint(1,1.0) gradientTransferFunction[1].AddPoint(255,1.0) gradientTransferFunction[1].AddPoint(512,1.0) # Create properties, mappers, volume actors, and ray cast function volumeProperty[1] = vtk.vtkVolumeProperty() volumeProperty[1].SetColor(colorTransferFunction[1]) volumeProperty[1].SetScalarOpacity(opacityTransferFunction[1]) volumeProperty[1].SetGradientOpacity(gradientTransferFunction[1]) volumeProperty[1].SetInterpolationTypeToLinear() volumeMapper[1] = vtk.vtkSmartVolumeMapper() volumeMapper[1].SetInputDataObject(caster[1].GetOutput()) lod[1] = vtk.vtkVolume() lod[1].SetProperty(volumeProperty[1]) lod[1].SetMapper(volumeMapper[1]) ren[1].AddViewProp(lod[1]) setattr(vis, caster[0], caster) setattr(vis, opacityTransferFunction[0], opacityTransferFunction) setattr(vis, colorTransferFunction[0], colorTransferFunction) setattr(vis, gradientTransferFunction[0], gradientTransferFunction) setattr(vis, volumeProperty[0], volumeProperty) setattr(vis, volumeMapper[0], volumeMapper) setattr(vis, compositeFunction[0], compositeFunction) setattr(vis, outline[0], outline) setattr(vis, outlineMapper[0], outlineMapper) setattr(vis, outlineProperty[0], outlineProperty) setattr(vis, lod[0], lod) vis.render(ren) return lod
def actor2DRm(ren, actor): if(ren[1].GetActors2D().IsItemPresent(actor[1])): ren[1].RemoveActor2D(actor[1]) vis.render(ren) return
def actorRmAll(ren): actorAll = ren[1].GetActors() for i in range(0,actorAll.GetNumberOfItems()): ren[1].RemoveActor2D(actorAll.GetNextActor()) vis.render(ren) return
def actor2DRm(ren, actor): if (ren[1].GetActors2D().IsItemPresent(actor[1])): ren[1].RemoveActor2D(actor[1]) vis.render(ren) return
def actorRmAll(ren): actorAll = ren[1].GetActors() for i in range(0, actorAll.GetNumberOfItems()): ren[1].RemoveActor2D(actorAll.GetNextActor()) vis.render(ren) return
def vis_imgRepos(ren , imgObj): try: vis_imgRm(ren) except: pass vis_imgInit(ren) if Repository.Type(imgObj) != "StructuredPts": raise ValueError("Object is not an imgae") vimg = Repository.ExportToVtk(imgObj) vorig = vimg.GetOrigin() vspc = vimg.GetSpacing() vdims = vimg.GetExtent() irng = vimg.GetScalarRange() if (vdims[4]!=vdims[5]+vdims[0]!=vdims[1]+vdims[2]!=vdims[3]): raise ValueError("image is not planar") return #logical image dims: ldims = [] ldims.append(vdims[1]-vdims[0]+1) ldims.append(vdims[3]-vdims[2]+1) ldims.append(vdims[5]-vdims[4]+1) #Physical image dimensions (spatial extent covered by pixels): pdims = [] pdims.append(ldims[0]*vspc[0]) pdims.append(ldims[1]*vspc[1]) pdims.append(ldims[2]*vspc[2]) # Physical origin of the physical extent: porig = [] porig.append(vorig[0]-0.5*vspc[0]) porig.append(vorig[1]-0.5*vspc[1]) porig.append(vorig[2]-0.5*vspc[2]) txt = getattr(vis, 'vis_img_texture_'+ren[0]) plane = getattr(vis, 'vis_img_plane_' + ren[0]) vmap = getattr(vis, 'vis_img_map_' + ren[0]) actor = getattr(vis, 'vis_img_actor_'+ren[0]) lookupGrayscale = getattr(vis, 'vis_img_g8bitGrayscaleLUT_'+ren[0]) lookupColor = getattr(vis, 'vis_img_gBlueToRedLUT_'+ren[0]) txt[1].SetInputDataObject(vimg) txt[1].SetLookupTable(lookupGrayscale[1]) txt[1].RepeatOff() plane[1].SetOrigin(porig[0],porig[1],0.) plane[1].SetPoint1(porig[0]+pdims[0],porig[1],0.) plane[1].SetPoint2(porig[0], pdims[1]+porig[1],0.) plane[1].SetNormal(0.,0.,1.) plane[1].Push(-0.01) vmap[1].SetScalarRange(irng[0], irng[1]) lookupGrayscale[1].SetTableRange(irng[0], irng[1]) lookupColor[1].SetTableRange(irng[0], irng[1]) ren[1].AddActor(actor[1]) vis.render(ren) return