Hi Tobias,<br><br>Congratulations on this very clever design!<br><br>I totally buy it, and just have basic questions.<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Cursor/RandomAccess< Neighborhood<T> ><br>
==============================<u></u>==========<br>
To move a neighborhood around, we use standard accessor interfaces.<br>
Assume you have a RandomAccess<Neighborhood<T>> a.<br>
Using a.setPosition() you can position the center of the neighborhood.<br>
Using a.get() you obtain a Neighborhood<T> (which you can then iterate).<br>
<br>
In many ways, the Neighborhood is like a NativeType. It is just a<br>
reference into an underlying structure. If you have a Cursor<T> of<br>
a NativeType, then the result T t = cursor.get() will be invalidated<br>
when you advance the cursor. The same holds for Cursor<Neighborhood<T>>.<br>
When you move the cursor, the neighborhood Neighborhood<T> n =<br>
cursor.get() will be invalidated when you advance the cursor.<br>
<br></blockquote><div><br>This is really clever, clearly in the lines of master Stephan. Every time I ask a question, he tells me to focus on a new type. <br><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
IterableInterval/<u></u>RandomAccessible< Neighborhood<T> ><br>
==============================<u></u>======================<br>
Of course, once you have the Accessors, it's easy to put the into<br>
Accessibles and benefit from all the goodies that are in ImgLib already.<br>
For example, if you have implemented a RandomAccess<Neighborhood<T>><br>
it is straightforward to wrap it into a RandomAccessible and use<br>
Views.iterable() to get a Cursor over Neighborhood<T>.<br>
<br>
This results is pure syntactic sugar and lets you write sexy code like<br>
this:<br>
  for ( Neighborhood<T> n : neighborhoods )<br>
      for ( T t : n )<br>
          ...<br>
</blockquote><div><br>A basic question: how do we deal with out-of-bounds? Some strategies might require to know whether you are outside bounds, or even specify the OOBS. Example: an average filter wants to skip the pixels that are not inside the image. <br>
<br>How do we get that with the neighborhood iterator?<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
As you might have noticed, I have completely neclected the copyOn() and<br>
updateSource() methods we discussed before.  I don't really see the need<br>
for them in the above design.<br>
<br>
Ok, I hope you will have a look at the code<br>
(branch "tobias-neighborhood-<u></u>experiments") and tell me what you think.<br>
<br></blockquote><div>Will do!<br>Thanks!<br>jy <br></div></div><br>