How to build a swept surface ?

Hello, I’m trying to build a swept surface from a volume moving in space. I found sweptVtk.tcl in the old Tcl examples, but vtkSweptSurface no longer exists in VTK9. How should I do with current VTK? By successive Boolean operations? That could be a bit costly, don’t you think? Especially since I have thousands of positions to deal with. To be more precise, my volume is in fact a cylinder rounded at the tip. Its movement in space is based on a series of passage points, and at each point the volume has a position and orientation. In mathematical terms, this is defined as follows: Let S(u,v) be our volume and n(u,v) its normal. At each position, the curve to be considered (the sweep curve) is defined by n(u,v).V = 0 (scalar product), where V is the displacement vector at the given point. The final surface consists of a sweep of all intermediate curves. One problem is that, for a volume rounded off to the tip, the sweep curve is not contained in a plane. I suspect I have to use vtkImplicitModeller, vtkAlgorithm and maybe some kind of vtkContour, but I can’t sort it out. To be complete I would add I’m using the java wrapper of VTK, but I don’t think it has anything to do with my problem

Anyone to give me some pointers ?

Any kind of help would be gratefully appreciated.

jMax

Wow, that’s a blast from the past. Yes, I believe the filter you are looking for is vtkImplicitModeller (using append mode). It appears to be threaded. Yes, the algorithm can be quite slow as it is potentially accumulating a lot of data. Once the append process completes you should have a 3D volume that you can isocontour. I recommend that you use vtkFlyingEdges3D as it is fast. Make sure you are using multiple threads etc.

This C++ Example Morph3D, should help. Here a V is morphed into a T and finally a K.

Thanks for your responses. I try to figure out something starting from this. If I find an elegant way to do it, I’ll post it here.