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

Reply via email to