<div dir="ltr">Hi Julie,<br><div class="gmail_extra"><br><div class="gmail_quote">On 26 August 2015 at 08:06, Julie Green <span dir="ltr"><<a href="mailto:laroux92@mail.ru" target="_blank">laroux92@mail.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Stupid me finally got it.<br>
<br>
Code:<br>
<br>
osg::Geometry surface = new osg::Geometry();<br>
surface->setVertexArray(vertexArray);<br>
surface->setDataVariance(osg::Object::DYNAMIC);<br>
surface->setUpdateCallback(new UpdateSurfaceCallback());<br>
<br>
<br>
What i don't understand is how to get elements of vertex array in operator method using node pointer.<br><br></blockquote><div><br><br></div><div>Either do a asGeometry() or a dynamic_cast of the Node* to osg::Geometry* and then get the arrays from there. i.e<br><br><br><br></div><div>void UpdateSurfaceCallback::operator()(Node* node, NodeVisitor*)<br>{<br></div><div>    osg::Geometry* geometry = node->asGeometry();  // asGeometry() is faster than dynamic_cast<>, but requires Node* to be a valid object.<br></div><div>    if (geometry)<br>    {<br></div><div>         osg::Array* vertices = geometry->getVertexArray();<br>         .....<br></div><div>    }<br></div><div>}<br><br></div></div></div></div>