|
遇到一个问题:
比如绘制好了一个矩形,后期想动态实时重绘该矩形,但获取了数组指针,更新后并没有反应,是不是还要有其他操作
如下,坐标被更新了,但显示没有变化:
osg::ref_ptr<osg::Vec3Array> rtVerts = dynamic_cast<osg::Vec3Array*>(rtGeom->getVertexArray());
(*rtVerts)[0].set(0,0,0);
(*rtVerts)[1].set(w,0,0);
(*rtVerts)[2].set(w,h,0);
(*rtVerts)[3].set(0,h,0);
rtGeom->setVertexArray(rtVerts);
如果重新构建一个数组设置进去,就没有问题,如下:
osg::ref_ptr<osg::Vec3Array> rtVerts = new osg::Vec3Array;
rtVerts->push_back(osg::Vec3(0,0,0));
rtVerts->push_back(osg::Vec3(w,0,0));
rtVerts->push_back(osg::Vec3(w,h,0));
rtVerts->push_back(osg::Vec3(0,h,0));
rtGeom->setVertexArray(rtVerts);
但第二种方式明显又不合理,希望朋友们帮我解答一二,谢谢了
|
|