<div dir="ltr"><div><div><div><div>Hi Marlin,<br><br></div>The Transform class and it's subclasses are designed to be used as part of scene graph, this allow Transform subclasses that are absolute (ignore transforms+camera matrices above them) or relative (multiple the inherited modelview matrix) to enable this in a generic way the Transform class has two helper methods Transform::computeLocalToWorld(osg::Matrix& matrix, NodeVistor*) and computeWorldToLocal(osg::Matrix& matrix, NodeVisior*). Only some Transform implementations need to check the NodeVisitor for extra data, most will just ignore that parameter and just do the matrix maths required.<br><br></div>The computeLocalToWorld() method returns a bool on success, and you pass in the matrix you want to apply,  You're code segment appears to confuse things in this regard.  <br><br><br></div>If you want to transform of any node in the scene graph you can do Node::getWorldMatrices(), this finds all the parental NodePaths of that node and then returns a vector containing a matrix for each NodePath found.  <br><br></div>Robert.<br><div><div><div><br><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 May 2018 at 19:58, Rowley, Marlin R <span dir="ltr"><<a href="mailto:marlin.r.rowley@lmco.com" target="_blank">marlin.r.rowley@lmco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="#0563C1" vlink="#954F72" lang="EN-US">
<div class="m_-1973766471745095613WordSection1">
<p class="MsoNormal">Hello,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m trying to figure out how to retrieve the combined matrix from a node that is of a PositionAttitudeTransform node type.  I can get it converted to a Transform() class, but there is no clear way of getting the combined matrix from local
 to world.  For example,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Osg::PositionAttitudeTransform trans;<u></u><u></u></p>
<p class="MsoNormal">Trans.setScale(2,2,2);<u></u><u></u></p>
<p class="MsoNormal">Trans.setPosition(0,10,0);<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Osg::Matrixd temp = getCombinedTransform(trans);<u></u><u></u></p>
<p class="MsoNormal">Osg::Matrixd getCombinedTransform(const osg::ref_ptr<osg::Node> & mat)<u></u><u></u></p>
<p class="MsoNormal">{<u></u><u></u></p>
<p class="MsoNormal">              Auto m = mat->asTransform();<u></u><u></u></p>
<p class="MsoNormal">              Return m->computeLocalToWorldMatrix (m, ???); << ====== why use a node visitor on yourself?<u></u><u></u></p>
<p class="MsoNormal">              <u></u><u></u></p>
<p class="MsoNormal">              Or <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">              Return m->getCombinedMatrix()?? <<  ===== is there such a thing?<u></u><u></u></p>
<p class="MsoNormal">}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">------------------------------<wbr>----------<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">Marlin Rowley<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">Software Engineer, Staff<u></u><u></u></span></p>
<p class="MsoNormal"><img style="width:1.625in;height:.4166in" id="m_-1973766471745095613Picture_x0020_1" src="cid:image001.jpg@01D3E60B.3382B870" alt="cid:image002.jpg@01D39374.DEC5A2E0" height="40" width="156"><span style="font-size:10.0pt;font-family:"Times New Roman",serif;color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal"><i><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1f497d">Missiles and Fire Control</span></i><span style="color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">972-603-1931 (office)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">214-926-0622 (mobile)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"><a href="mailto:marlin.r.rowley@lmco.com" target="_blank"><span style="color:#0563c1">marlin.r.rowley@lmco.com</span></a></span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

<br>______________________________<wbr>_________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.<wbr>openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.<wbr>org/listinfo.cgi/osg-users-<wbr>openscenegraph.org</a><br>
<br></blockquote></div><br></div>