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

Reply via email to