<div dir="ltr">Hi Jeremy,<div>editing your helicopter.osgt should work, and while I never work with <span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px">osgSim::DOFTransform (I alway use osg::MatixTransform) both descend from osg::Group, and can be used in osg text files to replace a group.</span></div><div><span style="color:rgb(0,0,0);font-family:Calibri,sans-serif;font-size:14.6667px">However, the optimizer might find a transform with an identity matrix, and optimize it to a Group again.</span></div><div><font color="#000000" face="Calibri, sans-serif"><span style="font-size:14.6667px">To test your edits, use these commands:</span></font></div><div><font color="#000000" face="Calibri, sans-serif"><span style="font-size:14.6667px"> set OSG_OPTIMIZER=OFF</span></font></div><div><font color="#000000" face="Calibri, sans-serif"><span style="font-size:14.6667px"> osgconv helicopter.osgt rw_test.osgt</span></font></div><div><font color="#000000" face="Calibri, sans-serif"><span style="font-size:14.6667px"> winmerge </span></font>helicopter.osgt rw_test.osgt </div><div>You should find all default values filled in the
rw_test.osgt. </div><div><br></div><div>Laurens.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 15, 2020 at 10:17 PM OpenSceneGraph Users <<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">First off, I hope everyone is staying sane and healthy during this pandemic.</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> </span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">I’m working with a collection of 3D models that have come from a variety of different source but are now all in osgb format. For several of the models I’d like to grab a “node” and apply rotation.</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> </span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">As I’m working through my understanding of the approach, I’ve created a simple application that loads the model, traverses the scene, returns a pointer to the “node”, casts to a DOFTransform and manipulate the “node” (DOFTransform). Snippet:</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;text-indent:0.5in;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font:inherit;vertical-align:baseline;color:inherit"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">FindNamedNodeVisitor fnnv("turret");</span></span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;text-indent:0.5in;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">scene->accept(fnnv);</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;text-indent:0.5in;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font:inherit;vertical-align:baseline;color:inherit"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">osg::ref_ptr<osgSim::DOFTransform> dofTrans = new osgSim::DOFTransform();</span></span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;text-indent:0.5in;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font:inherit;vertical-align:baseline;color:inherit"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">dofTrans = dynamic_cast<osgSim::DOFTransform*>(fnnv.getFoundNode()->asTransform());</span></span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;text-indent:0.5in;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font:inherit;vertical-align:baseline;color:inherit"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">if(dofTrans != NULL)</span></span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font:inherit;vertical-align:baseline;color:inherit"><span style="padding:0in;border-width:1pt;border-style:none;border-color:windowtext;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> </span></span><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">//manipulate (rotate)<span style="padding:0in;border-width:1pt;border-style:none;border-color:windowtext;font:inherit;vertical-align:baseline;color:inherit"><span style="font:inherit;vertical-align:baseline;color:inherit"> </span></span></span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> </span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">This approach works for the tank.osg model. Now I’m trying to apply this approach to a different model (helicopter for example). When I access the “node” of interest, “Main_Hub” which is an osg::Group I obviously can’t cast that to a osgSim::DOFTransform. I’m trying to get an understand of how I can change the model, now in osgt (readable) format, to a structure that can be used. I’ve been using the tank.osg as a guide and attempted to recreate a similar structure in the helicopter.osgt. I’m trying to take logical stabs in the dark, in the helicopter model I’ve attempted to simply renamed the “node” of interest from an osg::Group to osgSim::DOFTransform. The model still displays correctly, but the cast to osgSim::DOFTransform returns NULL. I thought there may be some required variables at are needed as part of the osgSim::DOFTransform structure, so I began adding currentHPR, currentTranslate, and currentScale and continued to add more bringing it in line with the tank.osg example. Through all the attempts I still getting NULL when casting.</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> </span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">I’m looking for any guidance/suggestions/lessons learned on how to properly do this.</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><br></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font:inherit;vertical-align:baseline;color:inherit"><span style="padding:0in;border-width:1pt;border-style:none;border-color:windowtext;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">Thanks</span></span><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> in advance</span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline"> </span></p><p style="color:rgb(0,0,0);font-size:12pt;font-family:"Times New Roman",serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><span style="font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:11pt;line-height:inherit;font-family:Calibri,sans-serif;vertical-align:baseline">Jeremy</span></p></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:osg-users+unsubscribe@googlegroups.com" target="_blank">osg-users+unsubscribe@googlegroups.com</a>.<br>
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/cbb4b132-24a7-4e75-b10f-7474c1a99378%40googlegroups.com?utm_medium=email&utm_source=footer" target="_blank">https://groups.google.com/d/msgid/osg-users/cbb4b132-24a7-4e75-b10f-7474c1a99378%40googlegroups.com</a>.<br>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:osg-users+unsubscribe@googlegroups.com">osg-users+unsubscribe@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/CAG7xrZczmUnpT7T0BoFgOWAcmqUeST8XrMaEXYG2kq-wYFKCaQ%40mail.gmail.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/osg-users/CAG7xrZczmUnpT7T0BoFgOWAcmqUeST8XrMaEXYG2kq-wYFKCaQ%40mail.gmail.com</a>.<br />