[osg-users] Collect all the osg::Materials from a osg::Node using osg::NodeVisitor
Trajce Nikolov NICK
trajce.nikolov.nick at gmail.com
Fri Aug 26 09:13:49 PDT 2016
Ok :-) .. I will answer it too .....
I am working with older version of osg where the Geometry was still not
inherited from Node so I had to apply a special case for Geodes ... Sorry
for the noise ;-)
Cheers!
Nick
On Fri, Aug 26, 2016 at 5:58 PM, Trajce Nikolov NICK <
trajce.nikolov.nick at gmail.com> wrote:
> Hi Community,
>
> this is really simple, but for a reason it is not working on my end. I
> have simple model with animation (a cube that scales over time). On load I
> launch a NodeVisitor to collect all the Materials. I can see one Material
> in the text file but the parser is not hitng it. Here is my Visitor code:
> Any clue? And thanks a bunch as always!
>
> struct MaterialFinderVisitor : public osg::NodeVisitor
> {
> MaterialFinderVisitor()
> : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN)
> {
> }
>
> virtual void apply( osg::Node& node )
> {
> osg::StateAttribute* attr = node.getOrCreateStateSet()->
> getAttribute(osg::StateAttribute::MATERIAL);
> if (attr)
> {
> std::cout << "ATTRIBUTE: " << attr->getName() << std::endl;
>
> osg::Material* material = dynamic_cast<osg::Material*>(attr);
> if (material && (material->getName() != "@RootMaterial@"))
> {
> std::cout << "MATERIAL: " << material->getName() <<
> std::endl;
> }
> }
> traverse(node);
> }
>
>
> --
> trajce nikolov nick
>
--
trajce nikolov nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20160826/ea23fcc1/attachment-0003.htm>
More information about the osg-users
mailing list