[osg-users] Getting texture coordinates of loaded models

Franclin Foping fsfoping at yahoo.fr
Thu Jul 31 05:10:13 PDT 2008


Hi,
 I would like to retrieve the texture and normal coordinates of a loaded model. But not sure how to do it. My first attempt was to use a visitor to traverse the node, retrieve its Drawable objects, convert them to Geometry and finally extract texture coordinates but unfortunately, it doesn't work. 
 Here is a fully commented code snippet for your information.

  class myVisitor : public osg::NodeVisitor
 {
 public: 
     myVisitor() : osg::NodeVisitor(TRAVERSE_ALL_CHILDREN){ } 
    void apply(osg::Geode& geode)
       {
          for (unsigned int i = 0; i < geode.getNumDrawables(); ++i)
         {
            osg::Drawable* draw = geode.getDrawable(i);
    //At this level, everything is ok since the Draw pointer contains at least one valid Drawable objects. If I use a TriangleFunctor, it will return all triangles of that Drawable :) 
 
 // However I would like to get the texture coordinates as well. 
 // HERE IS THE ISSUE. 
  
            const osg::Geometry* geometryd = dynamic_cast<const osg::Geometry*> (draw);
   // geometryd is dangling !!!
            if (geometryd)
            const osg::Array* tc = geometryd->getTexCoordArray(0);
         }
       }

 };
  osg::Node* myNode = osgDB::readNodeFile("my3DModel.3ds");
 myVisitor visit;
  myNode->accept (visit);
 //Rest of the program irrelevant for this post. 
 
  Hopefully, I have clarified the matter further and can expect some help from you guys.
 Kinds regards,
 Franclin.

       
---------------------------------
 Envoyé avec Yahoo! Mail.
Une boite mail plus intelligente. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20080731/7c047a55/attachment-0002.htm>


More information about the osg-users mailing list