<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>