<html><head><style>body{font-family:Merriweather,Arial;font-size:13px}</style></head><body style="word-wrap:break-word;line-break:after-white-space"><div id="bloop_customfont" style="font-family:Merriweather,Arial;font-size:13px;color:rgba(51,51,51,1.0);margin:0px;line-height:auto"><div id="bloop_customfont" style="margin:0px">Hello David, </div><div id="bloop_customfont" style="margin:0px">I reali lurked in the Classes reference and in the documentation and I cannot find a method to select which data array to plot in a PolyDataMapper. </div><div id="bloop_customfont" style="margin:0px"><br></div><div id="bloop_customfont" style="margin:0px">So just to resume for other readers: I have a PolyData object that stores two PointData Double Arrays. I would like to know how, once I set up the PolyDataMapper, I choose which of the two “scalars” I want to render in the RenderWindow. </div><div id="bloop_customfont" style="margin:0px"><br></div><div id="bloop_customfont" style="margin:0px">What I tried so far:</div><div id="bloop_customfont" style="margin:0px">- polydata_object.GetPointData().SetActiveScalars(i)</div><div id="bloop_customfont" style="margin:0px">- polydata_mapper_object.SetArrayName(array_names[i])</div><div id="bloop_customfont" style="margin:0px">- polydata_mapper_object.ColorByArrayComponent(array_names[i], 0)  # This seems to be for vector fields</div><div id="bloop_customfont" style="margin:0px"><br></div><div id="bloop_customfont" style="margin:0px">Thanks for your kind help, </div></div> <br> <div id="bloop_sign_1530044979174652160" class="bloop_sign">
         
        <title></title>
     
     
        <pre>          _   
-.     .´  |∞∞∞∞
  ',  ;    |∞∞∞∞∞∞
    ˜˜     |∞∞∞∞∞∞∞∞∞ RdB
    ,.,    |∞∞∞∞∞∞
  .'   '.  |∞∞∞∞
-'       `’

<a href="http://rdb.is">http://rdb.is</a>
</pre>
     
</div> <br><p class="airmail_on">On 1 giugno 2018 a 09:13:33, David Gobbi (<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>) scritto:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>


<title></title>


<div dir="ltr">There might be other settings for the mapper that
are needed in addition to SetArrayName().  Take a look at the
docs for vtkMapper, it has lots of methods related to scalars.
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Jun 1, 2018 at 7:53 AM, Ruben Di
Battista <span dir="ltr"><<a href="mailto:rubendibattista@gmail.com" target="_blank">rubendibattista@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hello David, 
<div><br></div>
<div>thanks for your answer. <br>
<br>
I changed my `show` method like this: <br>
<br></div>
<div>
<div><span class=""><font face="monospace, monospace">   
def show(self):</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    # Render Window</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    rw = vtk.vtkRenderWindow()</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    rw.SetSize(800, 800)</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
    # Defining Bounds of Viewports</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    xmins = [0, 0.5]</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    xmaxs = [0.5, 1]</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    ymins = [0, 0]</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    ymaxs = [1, 1]</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
    # Curvature Types</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    curv_types = ['Mean_Curvature',
'Gauss_Curvature']</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
    for i in six.moves.range(2):</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
        render =
vtk.vtkRenderer()</font></span></div>
<div><span class=""><font face="monospace, monospace">   
       
rw.AddRenderer(render)</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
        # Mean Curvature
View</font></span></div>
<div><span class=""><font face="monospace, monospace">   
        render.SetViewport(xmins[i], ymins[i],
xmaxs[i], ymaxs[i])</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
        # Create mapper</font></span></div>
<div><span class=""><font face="monospace, monospace">   
        mapper =
vtk.vtkPolyDataMapper()</font></span></div>
<div><font face="monospace, monospace">       
    mapper.SetInputData(self.<wbr>surface)</font></div>
<div><font face="monospace, monospace">       
    mapper.Update()  # Probably useless</font></div>
<div><font face="monospace, monospace">       
    mapper.SetScalarRange(-1, 1)</font></div>
<div><font face="monospace, monospace">       
   
mapper.SetArrayName(curv_<wbr>types[0])</font></div>
<div><span class=""><font face="monospace, monospace">   
        mapper.Update()</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
        # ColorBar</font></span></div>
<div><span class=""><font face="monospace, monospace">   
        color_bar =
vtk.vtkScalarBarActor()</font></span></div>
<div><span class=""><font face="monospace, monospace">   
       
color_bar.SetLookupTable(<wbr>mapper.GetLookupTable())</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
        # Surface Actor</font></span></div>
<div><span class=""><font face="monospace, monospace">   
        actor =
vtk.vtkActor()</font></span></div>
<div><span class=""><font face="monospace, monospace">   
       
actor.SetMapper(mapper)</font></span></div>
<div><span class=""><font face="monospace, monospace">   
       
actor.GetProperty().<wbr>EdgeVisibilityOn()</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
       
render.AddActor(actor)</font></span></div>
<div><span class=""><font face="monospace, monospace">   
       
render.AddActor2D(color_bar)</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><font face="monospace, monospace">       
    import ipdb</font></div>
<div><font face="monospace, monospace">       
    ipdb.set_trace()</font></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
    # Render Window Interactor</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    rwi =
vtk.vtkRenderWindowInteractor(<wbr>)</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    rwi.SetRenderWindow(rw)</font></span></div>
<div><span class=""><font face="monospace, monospace"><br></font></span></div>
<div><span class=""><font face="monospace, monospace">   
    rwi.Initialize()</font></span></div>
<div><span class=""><font face="monospace, monospace">   
    rwi.Start()</font></span></div>
</div>
<div><br></div>
<div>but it's not working. </div>
<div><br></div>
<div>Actually stopping the execution at the first iteration of the
`for` loop, and then triggering rwi.Initialize() and rwi.Start()
just after the first iteration still shows that the Mapper is
rendering the last scalar added to the `PolyData` and not the one
specified by `mapper.SetArrayName`.</div>
<div><br></div>
<div>In my previous email, at least, if I stopped the execution at
the first iteration and then manually triggering the rendering, was
correctly showing the first scalar (i.e. `Mean_Curvatures`).</div>
<div><br></div>
<div>I'm still attaching the complete example.</div>
</div>
<div class="HOEnZb">
<div class="h5"><br></div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>


</div></div></span></blockquote></body></html>