<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004>Hi, 
</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004>The pick function in 
VTK is some&nbsp;unstable. I&nbsp;tried to&nbsp;do some programming to pick a 
vtkProp in&nbsp;a vtkAssembly.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004>it turned out to 
crash after i picked several times. I&nbsp;tried to track the code in VTK, and 
found vtkPicker has some suspicious codes.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004>in version(4.2.1) 
line 300&nbsp;of vtkPicker.cxx:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004>&nbsp;&nbsp;<FONT 
size=3>&nbsp;&nbsp;&nbsp; this-&gt;Prop3Ds-&gt;AddItem((vtkProp3D 
*)prop);</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004><FONT size=3>I guess 
something is wrong there. it will collect the assembly many times. now I found 
it was updated with </FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004><FONT size=3>the 
codes in CVS&nbsp; </FONT></SPAN></FONT><FONT face=Arial size=2><SPAN 
class=578354923-22062004><FONT size=3>:</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004>&nbsp;&nbsp;&nbsp;<FONT size=2>&nbsp;&nbsp;<FONT 
size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if ( ! this-&gt;Prop3Ds-&gt;IsItemPresent(prop) )<BR></FONT><A name=368><FONT 
size=3>368</FONT></A><FONT 
size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR></FONT><A name=369><FONT size=3>369</FONT></A><FONT 
size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
this-&gt;Prop3Ds-&gt;AddItem((vtkProp3D *)prop);<BR></FONT><A name=370><FONT 
size=3>370</FONT></A></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004>I think it is better 
to change as:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if ( ! this-&gt;Prop3Ds-&gt;IsItemPresent(propCandidate) )<BR><A name=368><FONT 
size=3>368</FONT></A><FONT 
size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR></FONT><A name=369><FONT size=3>369</FONT></A><FONT 
size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
this-&gt;Prop3Ds-&gt;AddItem((vtkProp3D *)propCandidate);<BR></FONT><A 
name=370><FONT 
size=3>370</FONT></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004>As i read the code, 
I think prop is a&nbsp;vtkAssembly and propCandidate is a 
vtkProp&nbsp;composited in the assembly.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004>before we&nbsp;add 
this item to&nbsp;Props3Ds,&nbsp;propCandidate's&nbsp;bounding box is 
checked&nbsp;for the intersection test. So i think it </SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004>is rational to add 
propCandidate to Props3Ds.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004>Do we have some 
serious picking test&nbsp;with vtkAssembly involved?</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004>I'm not sure&nbsp;my 
opinion is correct or wrong.&nbsp;anyway, i hope vtk has a robust 
picking&nbsp;function.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004><FONT size=2>any 
hints will be helpful.</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004><FONT 
size=2>Thanks</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004><FONT 
size=2>Dennis</FONT>&nbsp;&nbsp;&nbsp;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=3><SPAN 
class=578354923-22062004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN></FONT></DIV>
<DIV><FONT face=Arial><SPAN class=578354923-22062004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=3><SPAN class=578354923-22062004><FONT size=3><FONT 
size=2></FONT>&nbsp;</DIV>
<DIV><BR></DIV></FONT></SPAN></FONT>
<DIV><FONT face=Arial size=2><SPAN class=578354923-22062004><FONT 
size=3><BR></FONT>&nbsp;&nbsp;</SPAN></FONT></DIV></BODY></HTML>