Hi Martin,
On 10/09/09 8:54 AM, Martin Großer wrote:
//... init geometry (geom) and vertex array (vertices)
float x = 1;
float y = 1;
float* ptrX = &x; // pointer to x value
float* ptrY = &y; // pointer to y value
vertices->push_back( osg::Vec3(0,0,0.0) );
vertices->push_back( osg::Vec3(ptrX, ptrY, 0.0) );
//... add vertex array to geom
geom->setDataVariance(osg::Object::DYNAMIC);
geom->setUseDisplayList(false);
// in the animation loop
x = 5;
y = 2;
geom->dirtyDisplayList();
Is it understandable and is it possible?
No, this is not possible.
Vec3f only accepts floats, not pointer to floats.
If you need to hold onto your _x, _y arrays then you have to put the changed values into
the vertex array everytime you do so and dirty the geometry (or turn off DL altogether).
The better way is to use the Vec3Array instead of your _x, _y arrays. It's absolutely
trivial to do, instead of:
_x[i] = 42.0f;
_y[i] = 23.0f;
you write
(*_vecArray)[i].set(42.0f, 23.0f, 0.0f);
Cheers,
/ulrich
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org