[vtkusers] vtkSplineWidget

Renaud Isabelle renauisa at yahoo.fr
Fri Sep 23 09:29:02 EDT 2005


Does anyone have more examples about how to use vtkSplineWidget, except those in VTK folder?
 
Isabelle

Renaud Isabelle <renauisa at yahoo.fr> a écrit :

Hi,

I followed your advice and had a look on
vtkSplineWidget: It seems to do exactly all I have
tried to do without success. Moreover, it could
simplify my code a lot. Thanksa lot. 

So, i tried to implement it: however, it seems
that I missed something about projection or
something else.: the points (handle geometries) are
positionned correctly on my figure exactly where I
click. However, the splines passing through are just
parallel lines (no curve, no spline). 

In fact, I am using vtkImageActor to display just
one Z slice of my 3D image. So I thought that my
projection plane should be normal to Z axis. I tried
each possibility: SetProjectionNormalToXAxes,
SetProjectionNormalToYAxes,
SetProjectionNormalToZAxes. All I have is parallel
lines.

Could you have a look, please? 
Isabelle

points = vtkPoints::New();
points->SetNumberOfPoints( 100);

splineWidget = vtkSplineWidget::New();
splineWidget->SetCurrentRenderer(m_Renderer);
splineWidget->SetDefaultRenderer(m_Renderer);


splineWidget->SetInput(m_Actor->GetInput());//vtkImageActor

splineWidget->SetInteractor(m_RenderWindow->GetInteractor());
splineWidget->PlaceWidget(m_Actor->GetBounds());
splineWidget->ClosedOn();

//leftbuttonpressed handle
static int numberOfNodes = 0;
void vtkSliceViewer::SelectPoint( double x, double
y, double z )
{
if(numberOfNodes <100)
{
points->SetPoint( nodeId, x,y,z ); 
numberOfNodes ++; 

if(numberOfNodes >=2)
{
splineWidget->InitializeHandles(points);
splineWidget->SetProjectionNormalToZAxes();
splineWidget->SetProjectionPosition(z);
splineWidget->On();
this->Render();
} 
}
> > 
> > 
> > 
> > 
> > Dean Inglis a écrit :
> > why don't you just use the
> > new vtkParametricSpline and
> vtkParametricFunctionSource
> > classes? That way you just insert a vtkPoints
> containing
> > the points to fit a spline to into a
> > vtkParametricSpline and then
> vtkParametricFunctionSource
> > generates the polydata for you.
> > Have a look at cvs vtkSplineWidget
> > to see how this is can be done.
> > 
> > Dean
> > 
> > 
> > -----Original Message-----
> > From: Renaud Isabelle [mailto:renauisa at yahoo.fr]
> > Sent: Monday, September 12, 2005 11:48 AM
> > To: Dean Inglis; vtkusers archive
> > Subject: RE: [vtkusers] splines
> > 
> > 
> > Hi,
> > 
> > - i tried this but it didn't change anything.
> > 
> > - i have a question: do you know if my parameter t
> has to be a float between
> > 0 and 1?
> > 
> > When I traced spline_points, here is what I got:
> > 
> > t=0.000000, spline points:13.035959 10.105188
> 0.000000
> > t=5.210526, spline
> > points:-434367840.000000 -434367840.000000
> -434367840.000000
> > t=10.421053, spline
> > points:-431597504.000000 -431597504.000000
> -431597504.000000
> > t=15.631579, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=20.842106, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=26.052631, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=31.263159, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=36.473682, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=41.684212, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=46.894737, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=52.105263, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=57.315788, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=62.526318, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=67.736839, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=72.947365, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=78.157898, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=83.368423, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=88.578949, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=93.789474, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > t=99.000000, spline
> > points:-431602080.000000 -431602080.000000
> -431602080.000000
> > 
> > Maybe t could be the problem. I saw many examples:
> > - sometimes t is defined as:
> > t = ( (float)numberOfInputPoints - 1.0 ) / (
> (float)numberOfOutputPoints -
> > 1.0 ) * (float)i;
> > 
> > - sometimes length of the polyline is used, such
> as vtkSplineFilter:
> > t=len/length as cumulative distance
> > 
> > BTW, i tried to use vtkSplineFilter but i couldn't
> compile: undefined
> > identifier vtkGarbageCollector in
> vtkAlgortihm??????????
> > 
> > Please help,
> > 
> > Isabelle
> > 
> > Dean Inglis a écrit :
> > sorry, I missed that.
> > 
> > Maybe it's because you call Reset()
> > without setting the number of points.
> > 
> > 
> > if(spline_points) spline_points->Reset(); float t
> = 0.0;
> 
=== message truncated ===







___________________________________________________________________________ 
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger 
Téléchargez cette version sur http://fr.messenger.yahoo.com
_______________________________________________
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

		
---------------------------------
 Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
 Téléchargez le ici ! 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20050923/bd6c3040/attachment.htm>


More information about the vtkusers mailing list