[vtk-developers] ARB - feature addition

Will Schroeder will.schroeder at kitware.com
Sat Dec 6 13:02:24 EST 2003


Hi Dean-

I am very interested in following your progress. These widgets all sound 
pretty nifty. It's hard to make a real judgement without actually running 
them, i.e., the details of the interaction are very important and can only 
be evaluated with experience. I'd suggest that you wait 'till Ken's done 
with his float->double conversion and then alter your widgets accordingly. 
Then check them in one or two at a time and have somebody look at them 
(I'll volunteer anyone else?) and provide feedback. We can iterate, get the 
first batch solid, and then move on to the next widget.

I didn't quite understand what you were proposing in the sense of having a 
class in between vtk3DWidget and these new classes. I'm wondering instead 
how about a vtkImageWidget or vtk2DWidget abstract superclass. Could you 
explain what these new widgets have in common and what features they need 
from vtk3DWidget?

A couple quick notes on your API for the ImageTraceWidget:
+ GetPolyData returns the path. Why not GetPath ?
+ You are using vtkGlyph2D to generate the glyphs. Why not generalize the 
class further and allow the user to set any polydata? By default you could 
depend on Glyph2D but still open it up for other choices.

Will


At 11:14 AM 11/21/2003, you wrote:
>Hi,
>
>this is not a major architectural dilemma.
>I've been tinkering for some time now on a
>widget for tracing on 2D images, got it
>up and running, and am happy to add it to
>the VTK/Hybrid widget collection.  Enclosed
>is the .h file so you can have peek at the
>methods.  What is potentially more interesting
>is that instead of 3D spherical handles,
>this widget uses vtkGlyphSource2D to generate
>the handle geometry, giving the users flexibility
>in customizing the widget's appearance.  I have
>also created a variant of vtkSplineWidget that
>uses the same handle generation approach...So,
>one could use these two widgets in concert:
>a) define a traced line either continuously or by
>discrete snap lines by point clicking
>b) toggle between the two widgets and set the tracer
>data to the spline so that one could have a smoothed
>spline fit to the trace.
>
>There are a few other widgets I have either in development
>or already to go geared to the image processing field
>based on some of the same common elements (2D handles etc.)
>
>vtkImageROIWidget - a rotatable 2D rectangular region of interest
>vtkImageWindowLevelWidget - 2D rectangle with histogram and
>linear or spline transfer function generator tied to a vtkLookupTable
>vtkVolumeTransferFunctionWidget - similar to above but more like
>what you would see at http: //www . cs. utah . edu/~jmk/simian/
>vtkImageSplineWidget - geared to 2D ortho image planes
>vtkImageTracerWidget - can also be used for placing and moving landmarks
>on images
>
>So perhaps there should be a superclass somewhere between
>vtk3DWidget and the above.
>
>your thoughts anyone?  Shall I commit vtkImageTracerWidget?
>
>Dean
>
>
>// .NAME vtkImageTracerWidget - 3D widget for tracing a free-hand/snap line.
>// .SECTION Description
>// vtkImageTracerWidget works by firing picks at the input prop.  This
>// widget is particulary useful for manually tracing on image data.  When
>// the widget is tied to a plane source, the intersection between the
>widget's
>// picked spherical handle and the plane generates a visible ring for
>enhanced
>// viewing.





More information about the vtk-developers mailing list