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