<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><div><span class="Apple-style-span" style="border-collapse: separate; font-family: arial; font-size: small; ">On Fri, Feb 5, 2010 at 5:15 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>></span> wrote:</span></div>
</span><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">The extents can become negative as a result of vtkImagePad, for<br>
instance.  The only way to use it to pad on the bottom or the left is<br>
by setting the OutputWholeExtent so that it starts at a negative<br>
number.  Yikes!  Also any filters that do "extent translation" can<br>
lead to negative extents.<br>
<br>
The tests don't cover negative extents, so when they occur, it's<br>
guaranteed that some downstream filter is gonna choke on them because<br>
it "assumes" that extents are always positive.<br>
<font color="#888888"><br>
   David<br>
</font><div><div></div><div class="h5"></div></div></blockquote></div><div><br></div>Ah yes yes, extents can be negative - how about this then?<br><div><br></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><div>
void vtkStructuredGrid::GetPoint(int x, int y, int z, double p[3])</div><div>{</div><div>  int extent[6];</div><div>  this->GetExtent(extent);  </div><div><br></div><div>  if(x < extent[0] || x > extent[1] || </div>
<div>     y < extent[2] || y > extent[3] || </div><div>     z < extent[4] || z > extent[5])</div><div>    {</div><div>    return; // out of bounds!</div><div>    }</div><div>  </div><div>  //get relative coordinates to the "lower left" grid corner</div>
<div><div>  int xrel = x - extent[0];</div><div>  int yrel = y - extent[2];</div><div>  int zrel = z - extent[4];</div><div><br></div></div><div>  int ind = zrel*dims[1]*dims[0] + yrel*dims[0] + xrel;</div><div>  </div><div>
  grid->GetPoint(ind, p);  </div><div>}</div><div><br></div></span>Thanks,<br><br>David</div>