<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns:o = "urn:schemas-microsoft-com:office:office"><HEAD><TITLE>NodeVisitors and Synchronization</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2>Let's forget semantics then.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2>If I run the following code:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008></SPAN><SPAN 
class=845410420-30092008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2>Node.accept( NodeVisitor& );</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2>Viewer.frame();</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=845410420-30092008><FONT face=Arial 
color=#0000ff size=2>What thread calls the NodeVisitor's various accept() 
methods? Or at least what stage of execution? Does the accept() call block until 
the NodeVisitor traverses the scene graph, or does it happen 
in the Viewer's update traversal? </FONT></SPAN><BR></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> osg-users-bounces@lists.openscenegraph.org 
[mailto:osg-users-bounces@lists.openscenegraph.org] <B>On Behalf Of 
</B>Tomlinson, Gordon<BR><B>Sent:</B> Tuesday, September 30, 2008 2:44 
PM<BR><B>To:</B> OpenSceneGraph Users<BR><B>Subject:</B> Re: [osg-users] 
NodeVisitors and Synchronization<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr align=left><SPAN class=265144118-30092008><FONT face=Arial 
color=#0000ff size=2>Hi</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=265144118-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=265144118-30092008><FONT face=Arial 
color=#0000ff size=2>You should not be doing this from the GUI thread, you 
should be doing this typically in the OSG app thread, so you need to have some 
form of messaging between the GUI and APP threads, such that you can kick off 
 your traversals at the appropriate time</FONT></SPAN></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT> </DIV>
<DIV align=left>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" align=left><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><EM><FONT 
size=1>Gordon<o:p></o:p></FONT></EM></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">__________________________________________________________<BR></SPAN><I><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #3333ff; FONT-FAMILY: 'Courier New'"><FONT 
size=1>Gordon Tomlinson</FONT></SPAN></I></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><I><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #3333ff; FONT-FAMILY: 'Courier New'"><FONT 
size=1>Product Manager 3D<BR></FONT></SPAN></I><FONT size=1><EM><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #3333ff; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">Email </SPAN></EM><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #3333ff; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"> </SPAN></FONT><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><FONT 
size=1>: <SPAN 
style="COLOR: green">gtomlinson @ overwatch.textron.com</SPAN></FONT><EM><SPAN 
style="COLOR: #3333ff; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><BR></P></SPAN></EM></SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">__________________________________________________________<BR></SPAN></SPAN><EM><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #3333ff; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><EM><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #3333ff; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">(C)</SPAN></EM><EM><SPAN 
style="FONT-SIZE: 7.5pt; FONT-STYLE: normal; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">:</SPAN></EM><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #009900; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"> 
</SPAN><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #006600; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">(+<SPAN 
class=468513319-21012006>1</SPAN>)<SPAN 
class=468513319-21012006> </SPAN><SPAN 
class=468513319-21012006>571-265-2612<FONT 
color=#ff0000><STRONG><BR></STRONG></FONT></SPAN></SPAN>(<SPAN 
class=468513319-21012006>W</SPAN>)</SPAN></EM><EM><SPAN 
style="FONT-SIZE: 7.5pt; FONT-STYLE: normal; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">:<SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #009900; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><EM> 
</EM></SPAN><SPAN 
style="FONT-SIZE: 7.5pt; COLOR: #006600; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><EM>(+<SPAN 
class=468513319-21012006>1</SPAN>)<SPAN 
class=468513319-21012006> 703-437-7651</SPAN></EM></SPAN></SPAN></EM></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'">"Self defence is not a 
function of learning tricks <BR></SPAN><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'">but is a function of how 
quickly and intensely one <BR></SPAN><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'">can arouse one's instinct 
for survival" <BR></SPAN><SPAN 
style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Courier New'">- <B 
style="mso-bidi-font-weight: normal"><I 
style="mso-bidi-font-style: normal">Master Tambo Tetsura</I></B></SPAN></P>
<DIV><FONT face=Arial size=2></FONT> </DIV></DIV>
<DIV> </DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> osg-users-bounces@lists.openscenegraph.org 
[mailto:osg-users-bounces@lists.openscenegraph.org] <B>On Behalf Of 
</B>Argentieri, John-P63223<BR><B>Sent:</B> Tuesday, September 30, 2008 2:09 
PM<BR><B>To:</B> osg-users@openscenegraph.org<BR><B>Subject:</B> [osg-users] 
NodeVisitors and Synchronization<BR></FONT><BR></DIV>
<DIV></DIV><!-- Converted from text/rtf format -->
<P><FONT face=Arial size=2>Folks,</FONT> </P>
<P><FONT face=Arial size=2>Once I've called Node::accept(NodeVisitor&), does 
osgViewer::Viewer wait until the update traversal to let the NodeVisitor perform 
it's traversal? If I am in the GUI thread when I call accept(), does 
NodeVisitor::apply happen in the GUI thread? Or does it happen in an osgViewer 
thread based on the threading model?</FONT></P>
<P><FONT face=Arial size=2>I'm trying to make sure my NodeVisitor's have done 
their work before reacting to osg::Camera's PostDraw callback. </FONT></P>
<P><FONT face=Arial size=2>I am considering having nodes accept all visitors, 
waiting for a single update callback, then registering for the osg::Camera's 
postdraw callback. Do you guys think that will solve my synchronization 
problem?</FONT></P>
<P><FONT face=Arial size=2>Thanks,</FONT> </P>
<P><B><FONT face=Arial size=2>John Argentieri</FONT></B> <BR><B><FONT face=Arial 
size=2>Software Engineer</FONT></B> <BR><B><FONT face=GDCorp color=#0000ff 
size=1>GENERAL DYNAMICS</FONT></B> <BR><B><FONT face=Arial color=#0000ff 
size=2>C4 Systems</FONT><FONT face=GDCorp color=#0000ff size=1> 
</FONT></B><BR><B><FONT face=Arial size=2>John.Argentieri@gdc4s.com</FONT></B> 
</P></BODY></HTML>