<div class="gmail_quote">On Fri, Feb 19, 2010 at 11:48 AM, Francois Bertel <span dir="ltr">&lt;<a href="mailto:francois.bertel@kitware.com">francois.bertel@kitware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Bbviously the documentation is wrong. Cell extent can be negative.<br>
<br>
a cell (voxel) of extent (i,j,k) is a cube with points going from<br>
extent (i,j,k) to  extent (i+1,j+1,k+1).<br>
<div><div></div><div class="h5"></div></div></blockquote></div><br><div>Ok, here is the updated description paragraph (using extents instead of indices starting at 0:</div><div><br></div><div><div>// The order and number of points must match that specified by the dimensions</div>
<div>// of the grid. The point order increases in i fastest (from extent[0]&lt;=i&lt;=extent[1]),</div><div>// then j (extent[2]&lt;=j&lt;=extent[3]), then k (extent[4]&lt;=k&lt;=extent[5]). The number of</div><div>// points is dims[0]*dims[1]*dims[2]. The same is true for the cells of the</div>
<div>// grid. The order and number of cells must match that specified by the</div><div>// dimensions of the grid. The cell order increases in i fastest (from</div><div>// extent[0]&lt;=i&lt;=(extent[1]-1)), then j (extent[2]&lt;=j&lt;=(extent[3]-1)), </div>
<div>// then k (extent[4]&lt;=k&lt;=(extent[5]-1)).</div><div>// The number of cells is (dims[0]-1)*(dims[1]-1)*(dims[2]-1).</div></div><div><br></div><div>And here is the function:</div><div><br></div><div><div>vtkCell* vtkStructuredGrid::GetCell(int i, int j, int k, bool adjustForExtent)</div>
<div>{</div><div>  int extent[6];</div><div>  this-&gt;GetExtent(extent);  </div><div><br></div><div>  if(i &lt; extent[0] || i &gt; extent[1] || </div><div>     j &lt; extent[2] || j &gt; extent[3] || </div><div>     k &lt; extent[4] || k &gt; extent[5])</div>
<div>    {</div><div>    return NULL; // out of bounds!</div><div>    }</div><div>  </div><div>  int pos[3];</div><div>  pos[0] = i;</div><div>  pos[1] = j;</div><div>  pos[2] = k;</div><div><br></div><div>  vtkIdType id;</div>
<div><br></div><div>  if(adjustForExtent)</div><div>    {</div><div>    id = vtkStructuredData::ComputeCellIdForExtent(extent, pos);</div><div>    }</div><div>  else</div><div>    {</div><div>    int dim[3];</div><div>    this-&gt;GetDimensions(dim);  </div>
<div>    id = vtkStructuredData::ComputeCellId(dim, pos);</div><div>    }</div><div><br></div><div>  return this-&gt;GetCell(id);  </div><div>}</div><div><br></div><div>If someone could please check it out and give me the go ahead to commit that would be great.</div>
<div><br></div>Thanks,<br><br>David</div>