Hi Robert, DrawElementsUInt can make use of std::vector<> methods directly, such like:
osg::DrawElementsUInt* de = new osg::DrawElementsUInt(osg::PrimitiveSet::LINE_LOOP); de->push_back( 0 ); de->push_back( 1 ); de->push_back( 2 ); Or de->resize(3); (*de)[0] = 0; (*de)[1] = 1; (*de)[2] = 2; Just have a try. :-) Cheers, Wang Rui 2010/10/27 Robert Gosztyla <[email protected]> > Hi, > > Small piece of code: > > > Code: > osg::ref_ptr < osg::Vec3Array > verts = new osg::Vec3Array(); > > verts->push_back(osg::Vec3(-100.0f, 200.0f,-100.0f ) ); > verts->push_back(osg::Vec3( 100.0f, 200.0f,-100.0f ) ); > verts->push_back(osg::Vec3( 100.0f, 200.0f, 100.0f ) ); > verts->push_back(osg::Vec3(-100.0f, 200.0f, 100.0f ) ); > verts->push_back(osg::Vec3(-100.0f, 200.0f,-100.0f ) ); > > osg::ref_ptr < osg::DrawElements > elements = static_cast < > osg::DrawElements* > ( new osg::DrawElementsUInt( > osg::PrimitiveSet::LINE_LOOP ) ); > > elements->reserveElements( 3 ); > elements->addElement( 0 ); > elements->addElement( 1 ); > elements->addElement( 2 ); > > p_geometry->setVertexArray( verts.get() ); > > // does not work > p_geometry->addPrimitiveSet( elements.get() ); > > // works > p_geometry->addPrimitiveSet( new > osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP,0,verts->size() ) ); > > p_geode->addDrawable( p_geometry.get() ); > > > > Do you see something wrong in this code? Or I missed something? > > Thank you! > > Cheers, > Robert > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=33127#33127 > > > > > > _______________________________________________ > osg-users mailing list > [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

