<div dir="ltr">You can use as many closed surfaces as you want with vtkPolyDataToImageStencil, as long as the surfaces don't intersect.  Intersection would break the topological constraints of the filter.<div><br></div><div>But if you have each polyhedron as a separate vtkPolyData, then iterating over them all should still be fast, because for each polyhedron you can ignore all voxels except for the ones that are inside.</div><div><br></div><div> - David</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 23, 2017 at 9:34 PM, Elvis Stansvik <span dir="ltr"><<a href="mailto:elvis.stansvik@orexplore.com" target="_blank">elvis.stansvik@orexplore.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">2017-07-24 5:30 GMT+02:00 Elvis Stansvik <<a href="mailto:elvis.stansvik@orexplore.com">elvis.stansvik@orexplore.com</a>><wbr>:<br>
> 2017-07-24 5:25 GMT+02:00 Dean Inglis <<a href="mailto:inglis.dl@gmail.com">inglis.dl@gmail.com</a>>:<br>
>> good to know David, thanks!!!<br>
><br>
> Many thanks to both of you. I had not found vtkPolyDataToImageStencil<br>
> yet, but was looking more towards the concept of implicit functions.<br>
> But this sounds like a much better approach, so I think I was right in<br>
> reaching out :)<br>
<br>
</span>Just one thing I saw in the docs for vtkPolyDataToImageStencil now:<br>
<br>
   "The polydata can either be a closed surface mesh or a series of<br>
polyline contours (one contour per slice)."<br>
<br>
Does this mean that, since I have a set of closed surfaces (upwards a<br>
100 or so), I'd have to repeat the process David described, once for<br>
each of my polyhedron? Or is there some way to generate a stencil from<br>
many closed surfaces in one go?<br>
<span class="HOEnZb"><font color="#888888"><br>
Elvis<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> Elvis<br>
><br>
>><br>
>> - Dean<br>
>><br>
>> On Sun, Jul 23, 2017 at 11:21 PM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>> wrote:<br>
>>><br>
>>> Hi Elvis,<br>
>>><br>
>>> I'd recommend generating a stencil with vtkPolyDataToImageStencil, then<br>
>>> iterating over over all the voxels inside the stencil with<br>
>>> vtkImagePointDataIterator:<br>
>>><br>
>>> <a href="http://www.vtk.org/doc/nightly/html/classvtkPolyDataToImageStencil.html" rel="noreferrer" target="_blank">http://www.vtk.org/doc/<wbr>nightly/html/<wbr>classvtkPolyDataToImageStencil<wbr>.html</a><br>
>>> <a href="http://www.vtk.org/doc/nightly/html/classvtkImagePointDataIterator.html" rel="noreferrer" target="_blank">http://www.vtk.org/doc/<wbr>nightly/html/<wbr>classvtkImagePointDataIterator<wbr>.html</a><br>
>>><br>
>>> The iterator can efficiently give you the pointId for every voxel enclosed<br>
>>> by the polyhedral surface (works for concave as well as convex surfaces).<br>
>>> Once you have the pointId, you can set that voxel to whatever you want.<br>
>>> There's a brief and vaguely relevant description on gitlab:<br>
>>> <a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/1118" rel="noreferrer" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/merge_requests/1118</a><br>
>>><br>
>>>  - David<br>
>>><br>
>>><br>
>>> On Sun, Jul 23, 2017 at 6:45 PM, Elvis Stansvik<br>
>>> <<a href="mailto:elvis.stansvik@orexplore.com">elvis.stansvik@orexplore.com</a>> wrote:<br>
>>>><br>
>>>> Hi all,<br>
>>>><br>
>>>> I have a set of points describing multiple convex polyhedra. The<br>
>>>> polyhedra are for the most part disjoint in space, but they may<br>
>>>> intersect slightly in some places.<br>
>>>><br>
>>>> I need to create an empty voxel volume (all scalars 0), and then<br>
>>>> "fill" the voxels that are inside one (or several) of the polyhedrons<br>
>>>> with some Perlin noise. I also have access to normals for the faces<br>
>>>> constituting the polyhedra, if necessary.<br>
>>>><br>
>>>> Finally, I also have a single separate polyhedron (non-convex this<br>
>>>> time), and as a finishing step, I'd like to fill the voxels that are<br>
>>>> inside this polyhedron with a constant scalar value.<br>
>>>><br>
>>>> Can VTK help me here?<br>
>>>><br>
>>>> As this is new territory for me as far as VTK goes, any<br>
>>>> pointers/advice on how to go about it would be much appreciated.<br>
>>>><br>
>>>> Cheers,<br>
>>>> Elvis<br>
>>><br>
>>><br>
>>> ______________________________<wbr>_________________<br>
>>> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
>>><br>
>>> Visit other Kitware open-source projects at<br>
>>> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
>>><br>
>>> Please keep messages on-topic and check the VTK FAQ at:<br>
>>> <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_<wbr>FAQ</a><br>
>>><br>
>>> Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>vtkusers</a><br>
>>><br>
>>> Follow this link to subscribe/unsubscribe:<br>
>>> <a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/vtkusers</a><br>
>>><br>
>><br>
</div></div></blockquote></div><br></div></div></div></div>