for(uint elementIdx = 0; elementIdx < vertArray->getNumElements(); ++elementIdx)
{
//--- read current vertex from array
osg::Vec3d llhVert = static_cast<osg::Vec3>((*vertArray)[elementIdx]);
//--- initialize geopoint
osgEarth::GeoPoint geoPoint;
geoPoint = osgEarth::GeoPoint(osgEarth::SpatialReference::get("epsg:4326", "egm96"),
llhVert.x(), llhVert.y(), llhVert.z(),
osgEarth::ALTMODE_ABSOLUTE);
//--- convert geopoint into ecef point
osg::Vec3d ecefVert;
geoPoint.toWorld(ecefVert);
//--- save vertex
(*vertArray)[elementIdx] = ecefVert;
}