[vtkusers] vtkSeedWidget GetSeedDisplayPosition Question
Amy Squillacote
ahs at cfdrc.com
Wed Jun 25 08:52:22 EDT 2008
You might try using the vtkSeedRepresentation::GetActiveHandle method to
get the seed number to pass to the
vtkSeedRepresentation::GetSeedDisplayPosition method.
- Amy
David Cole wrote:
> seedNumber should range in value from 0 to GetNumberOfSeeds()-1 -- the
> reason you are getting the error is that you are using
> GetNumberOfSeeds() as the value...
>
>
> HTH,
> David
>
>
> On Tue, Jun 24, 2008 at 11:02 PM, Ken Urish <ken.urish at gmail.com
> <mailto:ken.urish at gmail.com>> wrote:
>
> Ive been struggling with vtkSeedWidget and I would apprecaite if
> anyone can point me in the right direction. Any example code on how to
> get seed position off 2d image would be just as good.
>
> I can easily place seeds on a 2d image using vtkSeedWidget. I am
> having difficulty getting their location. I setup a callback that
> monitors mouse position and pointPlaceEvents. It correctly tells me
> how many seeds I have.
> I am trying to then have it give me the seed location by calling:
> this->SeedRepresentation->GetSeedDisplayPosition (seedNumber, point);
>
> I get the error message: vtkSeedRepresentation (029B6D28): Trying to
> access non-existent handle. I am stuck. I put the call back below for
> any help.
>
> Thanks
> --Ken--
>
>
>
> // This callback is responsible for setting the seed label.
> class vtkSeedCallback : public vtkCommand
> {
> public:
> static vtkSeedCallback *New()
> { return new vtkSeedCallback; }
> virtual void Execute(vtkObject*, unsigned long eid, void*)
> {
> if ( eid == vtkCommand::CursorChangedEvent )
> cout << "cursor changed\n";
> else
> {
> int seedNumber;
> double point[3];
> double ptMapped[3];
>
> cout << "point placed\n";
> cout << "Total number of seeds: "
> <<
> this->SeedRepresentation->GetNumberOfSeeds () << "\n";
> seedNumber =
> this->SeedRepresentation->GetNumberOfSeeds ();
> this->SeedRepresentation->GetSeedDisplayPosition
> (seedNumber, point);
> }
>
> }
> vtkSeedCallback() : SeedRepresentation(0) {}
> vtkSeedRepresentation *SeedRepresentation;
> };
>
>
>
> //Below is the setup in main program for the callback
>
> vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
> iren->SetRenderWindow(renWin);
> renWin->Render();
>
> // Say hello to my big widget
> // Create the widget and its representation
> vtkPointHandleRepresentation2D *handle =
> vtkPointHandleRepresentation2D::New();
> handle->GetProperty()->SetColor(1,0,0);
> vtkSeedRepresentation *rep = vtkSeedRepresentation::New();
> rep->SetHandleRepresentation(handle);
>
> vtkSeedWidget *widget = vtkSeedWidget::New();
> widget->SetInteractor(iren);
> widget->SetRepresentation(rep);
>
> vtkSeedCallback *mcbk = vtkSeedCallback::New();
> mcbk->SeedRepresentation = rep;
> widget->AddObserver(vtkCommand::PlacePointEvent,mcbk);
> widget->AddObserver(vtkCommand::CursorChangedEvent,mcbk);
>
> // render the image
> iren->Initialize();
> renWin->Render();
> widget->On();
> iren->Start();
> _______________________________________________
> 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
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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
>
--
Amy Squillacote Phone: (256) 726-4839
Computer Scientist Fax: (256) 726-4806
CFD Research Corporation Web: http://www.cfdrc.com
215 Wynn Drive, Suite 501
Huntsville, AL 35805
More information about the vtkusers
mailing list