added computation of surface normals