[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