Hi everyone,<br><br>I am having a strange problem when visualizing spline data. When I visualize it, my spline data does not pass through the second last point in the control point collection. As I add new points interactively, it keeps updating the spline but it never passes through the second last position!
<br><br>I create the spline as follows:<br><br>m_parametricSpline = vtkParametricSpline::New();<br>m_parametricSpline-&gt;ClosedOff();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>vtkKochanekSpline* xspline = vtkKochanekSpline::New();<br>vtkKochanekSpline* yspline = vtkKochanekSpline::New();
<br>vtkKochanekSpline* zspline = vtkKochanekSpline::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>m_parametricSpline-&gt;SetXSpline(xspline);<br>m_parametricSpline-&gt;SetYSpline(yspline);<br>m_parametricSpline-&gt;SetZSpline(zspline);<br><br>
xspline-&gt;Delete();<br>yspline-&gt;Delete();<br>zspline-&gt;Delete();<br><br>m_splineSource = vtkParametricFunctionSource::New();<br>m_splineSource-&gt;SetUResolution(200);<br>m_splineSource-&gt;SetVResolution(200);<br>
m_controlPoints = vtkPoints::New();<br><br>The code to add the points is as follows:<br>As I add points here, the display is updated and the spline never passes through the second last point.<br><br>void KochanekSpline::PushPoint(float x, float y)
<br>{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int pos = m_controlPoints-&gt;InsertNextPoint(x, y, 0.0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (m_controlPoints-&gt;GetNumberOfPoints() &gt; 1)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_parametricSpline-&gt;SetPoints(0);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_parametricSpline-&gt;SetPoints(m_controlPoints);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_splineSource-&gt;SetParametricFunction(m_parametricSpline);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_splineSource-&gt;Update();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>}<br>
<br>Now here comes the strange part... I have code that the user can interact with the control points and move them around. This is pretty similar to the code above as follows:<br><br>void KochanekSpline::SetPointAtIndex(unsigned index, float x, float y)
<br>{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (m_controlPoints-&gt;GetNumberOfPoints() &gt; index)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_controlPoints-&gt;SetPoint(index, x, y, 0.0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (m_controlPoints-&gt;GetNumberOfPoints() &gt; 1)
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_parametricSpline-&gt;SetPoints(0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_parametricSpline-&gt;SetPoints(m_controlPoints);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_splineSource-&gt;SetParametricFunction(m_parametricSpline);
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_splineSource-&gt;Update();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>}<br><br>This works as intended! As soon as I click on a point, the spline now passes through all the control points!!<br><br>However, as you can see it is pretty similar to the function above! I have no idea why this is happening.
<br><br>Any suggestions and help will be greatly appreciated!<br><br>Thanks,<br>Anja<br clear="all"><br><br>