Wow, how's about that.  That's exactly what I'm looking for.  Thank you
so much for pointing it out.

Chase

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Robert
Osfield
Sent: Wednesday, February 07, 2007 1:50 PM
To: osg users
Subject: Re: [osg-users] Node tag field

HI Chase,

Would :

  osg::Object::setUserData(Referenced*) be what you are looking for?

osg::Node subclasses from osg::Object so has the same user data too.

Robert.

On 2/7/07, Bradford, Chase <[EMAIL PROTECTED]> wrote:
>
>
>
>
> Hi Everyone,
>
>
>
> I was wondering if it would be feasible to add a Referenced* member
variable
> to osg::Node in the OSG base that could be used for arbitrary
information
> tagging?
>
>
>
> I'm currently developing a project where picking specific nodes in the
scene
> needs to trigger specific actions in our GUI, and building the
connections
> between the node and the GUI is quite difficult.  The application is
broken
> down into a system where some classes (call them Foos) own nodes, and
> changes to the nodes are triggered through the Foo interface.  When a
> specific node is clicked, I want to notify its Foo.  I've tried
implementing
> this with event callbacks and global maps from nodes to Foos, but both
of
> those solutions seem overly cumbersome.
>
>
>
> We modified our version of OSG to have a tag field in osg::Node.  For
> simplicity, we only fill this field with types based of OsgTag
(inherited
> from osg::Referenced), which is a class we defined just for this
problem.
>
>
>
> To pull it off, we added this chunk of code to the end of osg::Node's
class
> description:
>
>
>
> public:
>
> void setTag( osg::Referenced* tag ) { _tag = tag; }
>
> osg::Referenced* getTag() { return _tag.get(); }
>
> const osg::Referenced* getTag() const { return _tag.get(); }
>
>
>
> private:
>
> osg::ref_ptr<osg::Referenced> _tag;
>
>
>
> I think this is a small change that won't impact too many other
aspects of
> the library, but can be very powerful if used cautiously.  Also, when
I
> would rather not change the OSG code if I can help it, and if it's in
future
> releases, I won't have to.
>
>
>
> Thanks,
>
> Chase Bradford
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
>
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to