Yes, I used this way. Thanks,
-M ---------------------------------------- Marlin Rowley Software Engineer, Staff [cid:[email protected]] Missiles and Fire Control 972-603-1931 (office) 214-926-0622 (mobile) [email protected]<mailto:[email protected]> From: osg-users [mailto:[email protected]] On Behalf Of Robert Osfield Sent: Tuesday, May 8, 2018 2:24 AM To: OpenSceneGraph Users <[email protected]> Subject: EXTERNAL: Re: [osg-users] Getting the combined matrix from a Node? Hi Marlin, 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. 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. 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. Robert. On 7 May 2018 at 19:58, Rowley, Marlin R <[email protected]<mailto:[email protected]>> wrote: Hello, 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, Osg::PositionAttitudeTransform trans; Trans.setScale(2,2,2); Trans.setPosition(0,10,0); Osg::Matrixd temp = getCombinedTransform(trans); Osg::Matrixd getCombinedTransform(const osg::ref_ptr<osg::Node> & mat) { Auto m = mat->asTransform(); Return m->computeLocalToWorldMatrix (m, ???); << ====== why use a node visitor on yourself? Or Return m->getCombinedMatrix()?? << ===== is there such a thing? } ---------------------------------------- Marlin Rowley Software Engineer, Staff [cid:[email protected]] Missiles and Fire Control 972-603-1931 (office) 214-926-0622 (mobile) [email protected]<mailto:[email protected]> _______________________________________________ osg-users mailing list [email protected]<mailto:[email protected]> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

