[vtkusers] vtkPicker returned actor

David Gobbi david.gobbi at gmail.com
Mon Feb 29 09:52:54 EST 2016


The PickTextureDataOn() method must be called before the Pick.

On Mon, Feb 29, 2016 at 7:18 AM, Lonni Besançon <lonni.besancon at gmail.com>
wrote:

> Hello David,
>
> Sorry I omitted this detail. Indeed that's exactly what I'm doing.
> Here the complete pipeline:
> /vtkSmartPointer<vtkImageData> ima = reslice->GetOutput();
> vtkSmartPointer<vtkDataArray> data = ima->GetPointData()->GetScalars();
> vtkSmartPointer<vtkTexture> texture = vtkSmartPointer<vtkTexture>::New();
> texture->SetInputData(ima);
> texture->InterpolateOn();
> ....
> vtkSmartPointer<vtkPolyDataMapper> planeMapper =
> vtkSmartPointer<vtkPolyDataMapper>::New();
> planeMapper->SetInputConnection(plane->GetOutputPort());
> ...
> vtkSmartPointer<vtkActor> planeActor = vtkSmartPointer<vtkActor>::New();
> planeActor->SetTexture(texture);
> planeActor->SetMapper(planeMapper);/
>
> I tried your solution with the following code:
> /if(picker->GetActor() == foo->planeActor){
>         picker->PickTextureDataOn();
>         double position[3];
>         picker->GetMapperPosition(position);
>         LOGW("Point position Initial = %f ::: %f :::
> %f",position[0],position[1],position[2]);
>         double point[4];
>         point[0] = position[0] ;
>         point[1] = position[1] ;
>         point[2] = position[2] ;
>         point[3] = 1 ;
>         resliceAxes->MultiplyPoint(point, point); // My reslice axes matrix
>         LOGW("Position in Volume = %f  ;;  %f  ;;  %f ;;
> %f",point[0],point[1],point[2],point[3] );
>
> }
> /
>
> Yet the values I get are weird. I tried having the plane parallel to the
> screen at a given depth d, and the volume actor not moved at all. The first
> log is ok though, it gives me values such as:
> 0.125766 ::: 0.176741 ::: 0.000000
> However the values I get after the multiplication do not seem so good, no
> matter where I trick to "click" I always get X value between 51.5 and 52.5
> (
> X = 51.5 is the middle of the x dimension of my data ), and Y values
> between
> 47 and 48 (similarly 47 is the middle of the y dimension of my data).
> The depth value I get however correspond very well to the position of my
> plane, so I'm guessing this value is good.
>
> Am I doing something wrong? Or maybe the pipeline description I gave you
> was
> not enough.
>
> Thanks again for your help
>
>
>
> --
> View this message in context:
> http://vtk.1045678.n5.nabble.com/vtkPicker-returned-actor-tp5736763p5736920.html
> Sent from the VTK - Users mailing list archive at Nabble.com.
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160229/c9ab7abd/attachment.html>


More information about the vtkusers mailing list