[vtkusers] Inconsistant Picking & possible Bug invtkWorldPointPicker

Sarah Macumber S.Macumber at QuestReliability.com
Thu Aug 7 17:58:10 EDT 2008


Hi Dave,
 
What seems to be going on is that the Z buffer value is 0.0 which causes the point to be returned as the center of the frustum.
double z1 = GraphicsWindowRenderer.GetPickedZ();                // value is 0
double z2 = GraphicsWindowRenderer.GetZ(pos[0], pos[1]);      // value is 0
if I forcibly set the value to something like 0.9999 then picking is correct.  
 
Since you have the start and end position of the rubber band interactor I think it would be best to expose them.
 
Thanks in advance,
Sarah

________________________________

From: David E DeMarle [mailto:dave.demarle at kitware.com]
Sent: Thu 8/7/2008 4:40 PM
To: Sarah Macumber
Cc: vtkusers at vtk.org
Subject: Re: [vtkusers] Inconsistant Picking & possible Bug invtkWorldPointPicker


Howdy,

This is dimly ringing a very rusty bell in my head.

Before AreaPicker and InterarctorStyleRBPick were added, all picking was done on a single pixel. Thus the comment in the AreaPicker doxygen about the GetPickPoint being ill-defined. As I recall I made it so that when you ask for that you get the center of the frustum. 

You may try getting a Frustum out or, we can add and accessor to the InteractorStyle to get screen start and end pick coordinates.

cheers,
Dave


On Thu, Aug 7, 2008 at 4:38 PM, Sarah Macumber <S.Macumber at questreliability.com> wrote:


	I have tried a few alternative methods for getting the world coordinate point but they are also failing and returning the center point ...
	
	Sarah
	

	vtkInteractorStyleRubberBand2D style = vtkInteractorStyleRubberBand2D.SafeDownCast(sender);
	
	int[] pos = style.GetInteractor().GetEventPosition();
	
	
	GraphicsWindowRenderer.SetDisplayPoint(pos[0], pos[1], 0);
	
	GraphicsWindowRenderer.DisplayToWorld();
	
	_startPickPosition = GraphicsWindowRenderer.GetWorldPoint();
	
	
	________________________________
	
	From: vtkusers-bounces at vtk.org on behalf of Sarah Macumber
	Sent: Thu 8/7/2008 11:42 AM
	To: vtkusers at vtk.org
	Subject: [vtkusers] Inconsistant Picking & possible Bug invtkWorldPointPicker
	



	Hello Hello,
	
	
	
	I have a question about vtkWorldPointPicker acting rather buggy & inconsistant.  I am using a
	
	vtkInteractorStyleRubberBand2D along with a vtkWorldPointPicker to select the start and end point of the
	
	rubber band since the Start and End point of all of the rubber band classes is a protected attribute.
	
	
	
	The behavior is such that sometimes the code returns the correct end point but sometimes it fails for no
	
	reason and returns the center of the data set.  Often times it seems to be accesing bad memory when it
	
	fails.
	
	
	
	Any thoughts & thanks in advance!
	
	Sarah
	
	
	
	private void GraphicsWindowPickingStyle_StartInteractionEvt(vtkObject sender, vtkObjectEventArgs e)
	
	{
	
	vtkInteractorStyleRubberBand2D style = vtkInteractorStyleRubberBand2D.SafeDownCast(sender);
	
	int[] pos = style.GetInteractor().GetEventPosition();
	
	style.GetInteractor().GetPicker().Pick(pos[0], pos[1], 0, style.GetCurrentRenderer());
	
	_startPickPosition = style.GetInteractor().GetPicker().GetPickPosition();
	
	}
	
	private void GraphicsWindowPickingStyle_EndInteractionEvt(vtkObject sender, vtkObjectEventArgs e)
	
	{
	
	vtkInteractorStyleRubberBand2D style = vtkInteractorStyleRubberBand2D.SafeDownCast(sender);
	
	int[] pos = style.GetInteractor().GetEventPosition();
	
	int returnValue = style.GetInteractor().GetPicker().Pick(pos[0], pos[1], 0, style.GetCurrentRenderer());
	
	_endPickPosition = style.GetInteractor().GetPicker().GetPickPosition();
	
	OnGridSelection(new GridSelectionEventArgs(_startPickPosition, _endPickPosition));
	
	}
	
	_______________________________________________
	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
	





More information about the vtkusers mailing list