<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">A possible workaround is to convert your 3D objects into volumetric image representation (<a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataToImageData">example</a>) using the same voxel lattice (same spacing, extent and origin). You can then do voxel-by-voxel Boolean operations and convert resulting image back into the polygonal representation using <a href="http://www.vtk.org/doc/nightly/html/classvtkMarchingCubes.html">marching cubes</a>. In the choice of spacing, there is a trade-off between loss of quality on one side and memory requirements and processing time on the other.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">You can also implement your own filter for Boolean operations of non-intersecting meshes. In case the meshes do not intersect, the operations are somewhat trivial:</div><div class="gmail_default" style=""><ul style=""><li style=""><font face="verdana, sans-serif">concentric objects, intersection: keep the inner object without modifications</font></li><li style=""><span style="font-family:verdana,sans-serif">concentric objects, difference: invert normals of the inner object and append it to the outer object (the case you described)</span><br></li><li style=""><span style="font-family:verdana,sans-serif">disjoint objects, intersection: empty set</span></li><li style=""><span style="font-family:verdana,sans-serif">disjoint objects, difference: keep one of the objects without modifications, discard the other</span></li></ul><div><font face="verdana, sans-serif">The non-trivial part is detecting which case is it (intersecting, concentric or disjoint meshes).</font></div></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">HTH</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 18, 2015 at 7:52 AM, Cory Quammen <span dir="ltr"><<a href="mailto:cory.quammen@kitware.com" target="_blank">cory.quammen@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">You are correct in assuming that the filter requires overlap. It sounds like you want a method that computes Boolean operations on volume meshes. I'm not aware of a filter that does that.</p><span class="HOEnZb"><font color="#888888">
<p dir="ltr">Cory</p></font></span><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On Nov 18, 2015 4:33 AM, "mbcx9rb9" <<a href="mailto:richard.j.brown@live.co.uk" target="_blank">richard.j.brown@live.co.uk</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I want to create a volume, which is a margin around a previously existing<br>
volume.<br>
<br>
I had initially thought to use vtkBooleanPolyDataFilter, except for two<br>
sphere sources with matching centres but differing radii,<br>
SetOperationToDifference returns nothing, but I was hoping that it would<br>
return a spherical shell.<br>
<br>
Looking at the example,<br>
Examples/Cxx/PolyData/BooleanOperationPolyDataFilter, I get the impression<br>
that there needs to be intersection between the two polydata, so I guess<br>
this method won't work for concentric objects.<br>
<br>
Can anyone suggest a way to create a polydata shell? At the moment, I will<br>
settle for methods that only work for vtkSphereSource, but in the future,<br>
I'll need to be able to extend this to more generic shapes.<br>
<br>
Thanks in advance for the help.<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/vtkBooleanPolyDataFilter-tp5735056.html" rel="noreferrer" target="_blank">http://vtk.1045678.n5.nabble.com/vtkBooleanPolyDataFilter-tp5735056.html</a><br>
Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<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 <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_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=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/mailman/listinfo/vtkusers</a><br>
</blockquote></div>
</div></div><br>_______________________________________________<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 <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_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=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/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div>