thank you for the prompt reply. I will check that.<br>
<br><br><div class="gmail_quote">On Mon, Sep 17, 2012 at 12:57 PM, David Gobbi <span dir="ltr">&lt;<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi Anant,<br>
<br>
The example program that you are trying to run was made for VTK 6.  If<br>
you have a copy of the VTK 5.10 source code, look for<br>
Hybrid/Testing/Cxx/TestBSplineWarp.cxx and use that instead.<br>
<br>
The vtkBSplineTransform doesn&#39;t manage missing points.  For that,<br>
someone would need to add an algorithm to VTK like the one described<br>
in this paper:<br>
<br>
Seungyong Lee, George Wolberg, and Sung Yong Shin,<br>
Scattered Data Interpolation with Multilevel B-Splines<br>
IEEE Transactions on Visualization and Computer Graphics,<br>
Vol. 3, pp. 228-244, 1997<br>
<span class="HOEnZb"><font color="#888888"><br>
 - David<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mon, Sep 17, 2012 at 2:03 AM, Anant Vemuri &lt;<a href="mailto:ajar108@gmail.com">ajar108@gmail.com</a>&gt; wrote:<br>
&gt; Hi David,<br>
&gt;<br>
&gt; Thanks... that is exactly what I want to do. I was wondering, how does it<br>
&gt; manage missing points.<br>
&gt;<br>
&gt; Another thing, I tried to compile the test program on vtk documentation<br>
&gt; website<br>
&gt;<br>
&gt; <a href="http://vtk.org/gitweb?p=VTK.git;a=blob_plain;f=Filters/Hybrid/Testing/Cxx/TestBSplineWarp.cxx" target="_blank">http://vtk.org/gitweb?p=VTK.git;a=blob_plain;f=Filters/Hybrid/Testing/Cxx/TestBSplineWarp.cxx</a><br>


&gt;<br>
&gt; and I get an error as,<br>
&gt;<br>
&gt; error: ‘class vtkBSplineTransform’ has no member named ‘SetCoefficientData’.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Anant.<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Sep 14, 2012 at 2:37 PM, David Gobbi &lt;<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Anant,<br>
&gt;&gt;<br>
&gt;&gt; If you recompute the spline coefficients within the transform&#39;s<br>
&gt;&gt; Update() method, then it should provide the sort of pipeline behavior<br>
&gt;&gt; that you are looking for.  The following paper describes the VTK<br>
&gt;&gt; transform update mechanism:<br>
&gt;&gt; <a href="http://www.ncbi.nlm.nih.gov/pubmed/12631510" target="_blank">http://www.ncbi.nlm.nih.gov/pubmed/12631510</a><br>
&gt;&gt;<br>
&gt;&gt; I added a vtkBSplineTransform to VTK 5.10.  It might satisfy your<br>
&gt;&gt; needs, and if not, you might be able to re-use parts of it:<br>
&gt;&gt; <a href="http://hdl.handle.net/10380/3252" target="_blank">http://hdl.handle.net/10380/3252</a><br>
&gt;&gt;<br>
&gt;&gt;  - David<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Sep 14, 2012 at 4:02 AM, Anant Vemuri &lt;<a href="mailto:ajar108@gmail.com">ajar108@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; I am currently creating a spline using vtkSplineFilter. The points in<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; spline are changing as new positions for points are generated. However,<br>
&gt;&gt; &gt; now<br>
&gt;&gt; &gt; I want to put the position information into a vtkTransform and connect<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; Spline being created within a pipeline so that, it gets updated when the<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; transform changes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; currently I am doing this whenever I get new positions. Is it possible<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; put this in a pipeline so that the points are updated using a<br>
&gt;&gt; &gt; vtktransform<br>
&gt;&gt; &gt; when the transform changes. In vtkTransform there is a function called<br>
&gt;&gt; &gt; &quot;MultiplyPoint&quot; and &quot;TransformPoint&quot;, however both are not indicated to<br>
&gt;&gt; &gt; be<br>
&gt;&gt; &gt; pipelined.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I am curious if anyone has tried to do this, or if anyone has<br>
&gt;&gt; &gt; suggestions on<br>
&gt;&gt; &gt; this issue.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; myspline is a class containing vtkPoints, vtkPolyLine, vtkPolyData etc.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     //   In the constructor for my spline class<br>
&gt;&gt; &gt;     _points       = vtkSmartPointer&lt; vtkPoints &gt;::New();<br>
&gt;&gt; &gt;     _polyLine     = vtkSmartPointer&lt; vtkPolyLine &gt;::New();<br>
&gt;&gt; &gt;     _cells        = vtkSmartPointer&lt; vtkCellArray &gt;::New();<br>
&gt;&gt; &gt;     _polyData     = vtkSmartPointer&lt; vtkPolyData &gt;::New();<br>
&gt;&gt; &gt;     _splineFilter = vtkSmartPointer&lt; vtkSplineFilter &gt;::New();<br>
&gt;&gt; &gt;     _tubeFilter   = vtkSmartPointer&lt; vtkTubeFilter &gt;::New();<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     //   PIPELINE<br>
&gt;&gt; &gt;     _cells-&gt;InsertNextCell(_polyLine);<br>
&gt;&gt; &gt;     _polyData-&gt;SetPoints(_points);<br>
&gt;&gt; &gt;     _polyData-&gt;SetLines(_cells);<br>
&gt;&gt; &gt;     _splinefilter-&gt;SetInput( _polyData );<br>
&gt;&gt; &gt;     _splinefilter-&gt;SetMaximumNumberOfSubdivisions( 48 );<br>
&gt;&gt; &gt;     _tubeFilter-&gt;SetInputConnection( _splineFilter-&gt;GetOutputPort());<br>
&gt;&gt; &gt;     _tubeFilter-&gt;SetNumberOfSides( 12 );<br>
&gt;&gt; &gt;     _tubeFilter-&gt;SetRadius( 5.0 );<br>
&gt;&gt; &gt;     _tubeFilter-&gt;SetCapping(true);<br>
&gt;&gt; &gt;     _mapper-&gt;SetInputConnection( _tubeFilter-&gt;GetOutputPort() );<br>
&gt;&gt; &gt;     _actor-&gt;SetMapper(_mapper);<br>
&gt;&gt; &gt;     _actor-&gt;GetProperty()-&gt;SetLineWidth(4);<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     //----------------------------------------------------------------<br>
&gt;&gt; &gt;     // Updating for new vtkpoints<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     // I want to put this part into the pipeline if possible so that<br>
&gt;&gt; &gt;     // i can apply a vtkTransform to lets say the _points and the spline<br>
&gt;&gt; &gt;     // gets updated automatically. The updated _points that I get are<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     // absolute positions so I cannot appl<br>
&gt;&gt; &gt;     splineObj-&gt;getPoints()-&gt;Reset();<br>
&gt;&gt; &gt;     splineObj-&gt;getPolyLine()-&gt;GetPointIds()-&gt;Reset();<br>
&gt;&gt; &gt;     vtkIdType k = 0;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     // __scanorder contains the order in which the points need to be put<br>
&gt;&gt; &gt; into a spline<br>
&gt;&gt; &gt;     // __positions contains the updated point locations<br>
&gt;&gt; &gt;     for (int j = 0; j &lt; __scanOrder.size(); j++)<br>
&gt;&gt; &gt;     {<br>
&gt;&gt; &gt;          unsigned int __idx = __scanOrder[i][j]-1;<br>
&gt;&gt; &gt;          double &amp;__coord = __positions[__idx]-&gt;getCoordinate();<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; splineObj-&gt;getPoints()-&gt;InsertNextPoint(__coord[0],__coord[1],__coord[2]);<br>
&gt;&gt; &gt;          splineObj-&gt;getPolyLine()-&gt;GetPointIds()-&gt;InsertNextId( k );<br>
&gt;&gt; &gt;          k++;<br>
&gt;&gt; &gt;     }<br>
&gt;&gt; &gt;     splineObj-&gt;getCellArray()-&gt;Reset();<br>
&gt;&gt; &gt;     splineObj-&gt;getCellArray()-&gt;InsertNextCell(splineObj-&gt;getPolyLine());<br>
&gt;&gt; &gt;     splineObj-&gt;getPolyData()-&gt;Modified();<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thank you,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Anant.<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>