Hello All

Hopefully a simple question.
How do I get the text out of a picked drawable?

I need to reduce it to a simple char* string to pass it onto another 
programming language for processing.

The following picker compiles except for the line:

                                osg::ref_ptr<osgText::Text> theText = 
hitr->drawable.get();
 of course?

Any idea what the correct syntax is for the cast?

Or is there a simpler way to accomplish this?

Thanks in advance for any advice.


void PickHandler::pick(osgViewer::View* view, const osgGA::GUIEventAdapter& ea)
{
    osgUtil::LineSegmentIntersector::Intersections intersections;
        
    float x = ea.getX();
    float y = ea.getY();
        if (view->computeIntersections(x,y,intersections))
        {
                for(osgUtil::LineSegmentIntersector::Intersections::iterator 
hitr = intersections.begin(); hitr != intersections.end(); ++hitr)
                {
                        if (hitr->drawable.valid())
                        {
                                std::cout << "Object \"" << 
hitr->drawable->className() << "\"" << std::endl;

                                osg::ref_ptr<osgText::Text> theText = 
hitr->drawable.get();

                                if(theText)
                                {
                                        osgText::String value = 
theText->getText();
                                        std::string cpptext = 
value.createUTF8EncodedString();
                                        const char *c = cpptext.c_str();
                                        printf("Text choosen:%s\n",c);
                                }
                                
                        }
                }
        }
}

Barry Evans

Reality is that which, when you stop believing in it, doesn't go away.
--Philip K. Dick

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to