[vtkusers] Stretch/deform surface
Marius Erdt
marius.erdt at gmx.de
Fri Jun 20 08:13:53 EDT 2008
Thanks for your suggestion Miguel.
I've tried to use the vtkWeightedTransformFilter. The input is the
surface and a thinPlateSpline transform. In addition I've created a
label array that weights the transform for every point, i.e. 1 for every
point I want to transform and 0 for every point that should not be
transformed. However, the result was, that the whole surface was
distorted, so I think the weights have to be set in another way. What I
do know is that setting of all weights to 1 results in a global
transformation as one would expect. But setting some of the weights to 0
does not seem to work..
Miguel Ángel Rodríguez Florido wrote:
> If you know the points (or regions) or you can choose them, you
> could try vtkWeightedTransformFilter
>
> http://www.vtk.org/doc/release/5.0/html/a02205.html
>
> I hope to help.
> Best
>
> Karthik Krishnan escribió:
>> Marius Erdt wrote:
>>> Hi,
>>>
>>> I'd like to manually deform a polyData surface, i.e. I set two mouse
>>> positions and I want a part of the surface to be stretched in the
>>> direction given by the vector between the points (just like what is
>>> possible in CAD programs).
>>>
>>> I've tried to use the vtkThinPlateSplineTransform on the surface,
>>> but this has a very global effect on the model. That means, the
>>> whole surface is translated in the given direction, instead of just
>>> a small neighborhood.
>> The Kernel splines, one of which is the Thin plate spline (Thin
>> Plate, Thin Plate R2LogR) have infinite support. You can change the
>> decay, but it will still have a non-zero deformation at an infinite
>> distance from the center.
>>
>> You might want to consider BSpline transforms for your purpose. They
>> are local in support and you can define the locality (number of nodes).
>>
>> VTK does not have a BSpline implementation, but ITK does. You can use
>> the method
>>
>> itk::BSplineTransform< double, 3, 3 >::TransformPoint(..)
>>
>> and iterate over each point in your polydata.
>>
>>
>> --
>> Karthik Krishnan
>> R & D Engineer,
>> Kitware Inc,
>> Ph: +1 518 3713971 x119
>> Fax: +1 518 3714573
>>
>> _______________________________________________
>> This is the private VTK discussion list.
>> Please keep messages on-topic. Check the FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>
More information about the vtkusers
mailing list