[vtkusers] vtkSeedWidget: strange behavior when used in Qt

Miguel Sotaquirá msotaquira at gmail.com
Sat Mar 10 12:23:39 EST 2012


Hi all,

I'm implementing a Qt-VTK application for visualizing a 3-D volume and
its corresponding x, y, z slice planes. This application is based on
QtVTKRenderWindows.cxx (Examples/GUI/Qt) of VTK's devel version.

In this application I have 4 QVTKWidget panels for visualizing the
three 2-D slices ("viewerX", "viewerY", "viewerZ") and the 3-D volume
("viewer3D"). What I'm trying to do now is to use vtkSeedWidget in
order to select a set of fiducial points from any of the 2-D
cut-planes. I've implemented a callback (based on
http://www.vtk.org/Wiki/VTK/Examples/Cxx/Widgets/vtkSeedWidget
example) and here's the snippet I'm using for placing widgets within
the "viewer3D" panel:

1	this->seedWidget = vtkSmartPointer<vtkSeedWidget>::New();
2	this->seedWidget->SetInteractor(this->ui->viewer3D->GetInteractor());
3	this->seedWidget->SetRepresentation(this->seedWidgetRepresentation);

4	this->seedWidgetCallback = vtkSmartPointer<vtkSeedCallback>::New();
5	this->seedWidgetCallback->SetWidget(this->seedWidget);

6	this->seedWidget->AddObserver(vtkCommand::PlacePointEvent,
		this->seedWidgetCallback);
7	this->seedWidget->AddObserver(vtkCommand::InteractionEvent,
		this->seedWidgetCallback);
8	this->seedWidget->On();

The problem I'm having is that seed placement worksonly when I set the
interactor (line 2 in previous snippet) to "viewer3D". Thus, I'm able
to place seed points only in the 3-D volume, but not in individual 2-D
slices. When changing this interactor to any of the other QVTKWidgets
(for example by setting
this->seedWidget->SetInteractor(this->ui->viewerX->GetInteractor()) I
get nothing,  is simply as if vtkSeedWidget wouln't be there.

How can I use vtkSeedWidget for placing seed points ONLY in the 2-D slices?

Thanks for any suggestions,

Miguel



More information about the vtkusers mailing list