Hi Marlin,

you need to get the appropriate parent-node paths:

osg::NodePathList parent_node_list = mat.getParentalNodePaths();
Now if you know the path you want to retrieve, you can call
e.g.:
node_path = parent_node_list[1];

osg::Matrix mat = osg::computeLocalToWorld(node_path);

Also the getParentalNodePaths() function lets you specify the node in the parent path where to stop traversal (e.g. to get transformations in a local model reference-frame)

The reason is, that the scene-graph is a DAG where nodes can have multiple parents. Another possibility is to use the per-instance transform inside an update callback:

void MyUpdateCallback::operator()( osg::Node* node, osg::NodeVisitor* nv)
{
        osg::NodePath& node_path = nv->getNodePath() ;
        osg::Matrix mat = osg::computeLocalToWorld(node_path);
        ///...
        traverse(node,nv);
}



Cheers
Sebastian


Am 07.05.2018 um 20:58 schrieb Rowley, Marlin R:
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]
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

Reply via email to