1#!/usr/bin/env python 2 3# Test interactions of scalar coloring with various ScalarMaterialMode 4# settings. 5import vtk 6 7renWin = vtk.vtkRenderWindow() 8iRen = vtk.vtkRenderWindowInteractor() 9iRen.SetRenderWindow(renWin) 10renWin.SetSize(500, 600) 11 12sphere = vtk.vtkSphereSource() 13 14elev = vtk.vtkElevationFilter() 15elev.SetLowPoint(-0.25, -0.25, -0.25) 16elev.SetHighPoint(.25, .25, .25) 17elev.SetInputConnection(sphere.GetOutputPort()) 18 19lut = vtk.vtkLookupTable() 20lut.SetSaturationRange(0, 0) 21lut.SetValueRange(0, 1) 22lut.SetRange(0, 1) 23lut.Build() 24 25 26def add(**kwargs): 27 ren = vtk.vtkRenderer() 28 ren.SetBackground(0.5, 0.5, 0.5) 29 #ren.SetViewport(0, 0, 0.5, 1) 30 renWin.AddRenderer(ren) 31 32 mapper = vtk.vtkPolyDataMapper() 33 mapper.SetInputConnection(elev.GetOutputPort()) 34 mapper.SetLookupTable(lut) 35 mapper.SetInterpolateScalarsBeforeMapping(kwargs['interpolate_scalars_before_mapping']) 36 mapper.SetScalarMaterialMode(kwargs["material_mode"]) 37 38 actor = vtk.vtkActor() 39 actor.SetMapper(mapper) 40 ren.AddActor(actor) 41 42 prop = actor.GetProperty() 43 prop.SetAmbient(kwargs['ambient']) 44 prop.SetDiffuse(kwargs['diffuse']) 45 prop.SetAmbientColor(1, 0, 0) 46 prop.SetDiffuseColor(0, 1, 0) 47 48 textActorL = vtk.vtkTextActor() 49 txt = " InterpolateScalarsBeforeMapping: %d\n"\ 50 " ScalarMaterialMode: %s\n"\ 51 " Ambient: %.2f\t Ambient Color: 1, 0, 0\n"\ 52 " Diffuse: %.2f\t Diffuse Color: 0, 1, 0" 53 txt = txt % (kwargs['interpolate_scalars_before_mapping'], 54 mapper.GetScalarMaterialModeAsString(), prop.GetAmbient(), prop.GetDiffuse()) 55 textActorL.SetInput(txt) 56 ren.AddActor(textActorL) 57 return (ren, actor, mapper) 58 59ren, actor, mapper = add(interpolate_scalars_before_mapping=1, ambient=0.49, 60 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_DEFAULT) 61ren.SetViewport(0, 0, 0.5, 0.25) 62 63ren, actor, mapper = add(interpolate_scalars_before_mapping=0, ambient=0.49, 64 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_DEFAULT) 65ren.SetViewport(0.5, 0, 1, 0.25) 66 67ren, actor, mapper = add(interpolate_scalars_before_mapping=1, ambient=0.49, 68 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_AMBIENT) 69ren.SetViewport(0, 0.25, 0.5, 0.5) 70 71ren, actor, mapper = add(interpolate_scalars_before_mapping=0, ambient=0.49, 72 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_AMBIENT) 73ren.SetViewport(0.5, 0.25, 1, 0.5) 74 75ren, actor, mapper = add(interpolate_scalars_before_mapping=1, ambient=0.49, 76 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_DIFFUSE) 77ren.SetViewport(0, 0.5, 0.5, 0.75) 78 79ren, actor, mapper = add(interpolate_scalars_before_mapping=0, ambient=0.49, 80 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_DIFFUSE) 81ren.SetViewport(0.5, 0.5, 1, 0.75) 82 83ren, actor, mapper = add(interpolate_scalars_before_mapping=1, ambient=0.49, 84 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE) 85ren.SetViewport(0, 0.75, 0.5, 1) 86 87ren, actor, mapper = add(interpolate_scalars_before_mapping=0, ambient=0.49, 88 diffuse=0.51, material_mode=vtk.VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE) 89ren.SetViewport(0.5, 0.75, 1, 1) 90 91#--------------------------------------------------------- 92