<div>I am learning VTK and I am adapting some example code of VTK to experiment with it. A simple tast I am doing is to blank some cells of a structuredgrid, but somehow could not get it work. I printed the IsCellVisible flag for those cells I try to blank, and all are zero. So it really puzzeled me why those cells are always visible on the visualization. I appreciate your input very much. </div>
<div> </div>
<div>Best Regards!</div>
<div> </div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">'''</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> My first vtk code </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> Manually generate a structured grid </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">'''</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">import vtk</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">from math import sin, cos</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">from random import random</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">dims = [30, 20, 11]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">nd = dims[0] * dims[1] * dims[2]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">sgrid = vtk.vtkStructuredGrid()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">sgrid.SetDimensions(dims)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">for i in range(40, 50):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgrid.BlankCell(i)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> s = sgrid.IsCellVisible(i)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> print s</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">pts = vtk.vtkPoints()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">pts.Allocate(nd)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">vectors = vtk.vtkFloatArray()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">vectors.SetNumberOfComponents(1)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">vectors.SetNumberOfTuples(nd)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">dz = 2.0 / (dims[2] - 1)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">rmin = 0.5</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">rmax = 1.0</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">dr = (rmax - rmin) / (dims[1] - 1)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">x = [0, 0, 0]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">v = [0, 0, 0]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">for k in range(0, dims[2]) :</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> x[2] = -1.0 + k * dz</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> kOffset = k * dims[0] * dims[1]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> for j in range(0, dims[1]): </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> r = rmin + j * dr</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> jOffset = j * dims[0]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> for i in range(0, dims[0]):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> theta = i * vtk.vtkMath.RadiansFromDegrees(180.0 / (dims[0]-1))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> x[0] = r * cos(theta)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> x[1] = r * sin(theta)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> v[0] = -x[1]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> v[1] = x[0]</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> offset = i + jOffset + kOffset</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> pts.InsertPoint(offset, x)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> #vectors.InsertTuple(offset, v)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> #vectors.SetValue(offset, random()) </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">cnt = 0</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">for k in range(0, dims[2]-1):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> for j in range(0, dims[1]-1):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> for i in range(0, dims[0]-1):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> vectors.SetValue(cnt, cnt)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> cnt += 1</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">sgrid.SetPoints(pts)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#sgrid.GetPointData().SetVectors(vectors)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">vectors.SetName("HU")</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#sgrid.GetPointData().AddArray(vectors)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">sgrid.GetCellData().AddArray(vectors)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">for i in range(40, 50):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> s = sgrid.IsCellVisible(i)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> print s</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#hedgehog = vtk.vtkHedgeHog(); </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#hedgehog.SetInput(sgrid)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#hedgehog.SetScaleFactor(0.1)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">sgridOutline = vtk.vtkOutlineFilter()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">sgridOutline.SetInput(sgrid)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">lut = vtk.vtkLookupTable()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#lut.SetNumberOfColors(256)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#lut.SetHueRange(0, 1)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">def CreateSgridActor(imin, imax, jmin, jmax, kmin, kmax):</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridFilter = vtk.vtkStructuredGridGeometryFilter()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridFilter.SetInput(sgrid)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridFilter.SetExtent(imin, imax, jmin, jmax, kmin, kmax)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridMapper = vtk.vtkPolyDataMapper()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridMapper.SetLookupTable(lut)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridMapper.SetInput(sgridFilter.GetOutput()) </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridMapper.SetScalarModeToUseCellFieldData()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridMapper.SelectColorArray("HU")</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridMapper.SetScalarRange(0, dims[0]*dims[1]*dims[2])</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridActor = vtk.vtkActor()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> sgridActor.SetMapper(sgridMapper)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> return sgridActor</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren = vtk.vtkRenderer()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">renWin = vtk.vtkRenderWindow()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">renWin.AddRenderer(ren)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">iren = vtk.vtkRenderWindowInteractor()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">iren.SetRenderWindow(renWin)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor(CreateSgridActor(0, 0, 0, dims[1], 0, dims[2]))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor(CreateSgridActor(0, dims[0], 0, 0, 0, dims[2]))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor(CreateSgridActor(0, dims[0], 0, dims[1], 0, 0))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor(CreateSgridActor(dims[0]-1, dims[0]-1, 0, dims[1], 0, dims[2]))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor(CreateSgridActor(0, dims[0], dims[1]-1, dims[1]-1, 0, dims[2]))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor(CreateSgridActor(0, dims[0], 0, dims[1], dims[2]-1, dims[2]-1))</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"># colorbar</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">colorbar = vtk.vtkScalarBarActor()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">colorbar.SetLookupTable(lut)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">colorbar.SetTitle("HU")</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">colorbar.SetNumberOfLabels(4)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.AddActor2D(colorbar)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">#ren.SetBackground(1, 1, 1)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.ResetCamera()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.GetActiveCamera().Elevation(60)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.GetActiveCamera().Azimuth(30)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">ren.GetActiveCamera().Zoom(0.8)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">renWin.SetSize(500, 500)</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace"> </font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">iren.Initialize()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">renWin.Render()</font></div>
<div><font style="BACKGROUND-COLOR:#ffffff" color="#3366ff" face="courier new,monospace">iren.Start()</font></div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>