Browse Source

In ViewerData use per_corner() where possible.

Nico Brügel 4 years ago
parent
commit
6083cb3a5d
1 changed files with 4 additions and 14 deletions
  1. 4 14
      include/igl/opengl/ViewerData.cpp

+ 4 - 14
include/igl/opengl/ViewerData.cpp

@@ -713,33 +713,23 @@ IGL_INLINE void igl::opengl::ViewerData::updateGL(
       if (meshgl.dirty & MeshGL::DIRTY_AMBIENT)
       if (meshgl.dirty & MeshGL::DIRTY_AMBIENT)
       {
       {
         meshgl.V_ambient_vbo.resize(data.F.rows()*3,4);
         meshgl.V_ambient_vbo.resize(data.F.rows()*3,4);
-        for (unsigned i=0; i<data.F.rows();++i)
-          for (unsigned j=0;j<3;++j)
-            meshgl.V_ambient_vbo.row(i*3+j) = data.V_material_ambient.row(data.F(i,j)).cast<float>();
+        per_corner(data.V_material_ambient,meshgl.V_ambient_vbo);
       }
       }
       if (meshgl.dirty & MeshGL::DIRTY_DIFFUSE)
       if (meshgl.dirty & MeshGL::DIRTY_DIFFUSE)
       {
       {
         meshgl.V_diffuse_vbo.resize(data.F.rows()*3,4);
         meshgl.V_diffuse_vbo.resize(data.F.rows()*3,4);
-        for (unsigned i=0; i<data.F.rows();++i)
-          for (unsigned j=0;j<3;++j)
-            meshgl.V_diffuse_vbo.row(i*3+j) = data.V_material_diffuse.row(data.F(i,j)).cast<float>();
+        per_corner(data.V_material_diffuse,meshgl.V_diffuse_vbo);
       }
       }
       if (meshgl.dirty & MeshGL::DIRTY_SPECULAR)
       if (meshgl.dirty & MeshGL::DIRTY_SPECULAR)
       {
       {
         meshgl.V_specular_vbo.resize(data.F.rows()*3,4);
         meshgl.V_specular_vbo.resize(data.F.rows()*3,4);
-        for (unsigned i=0; i<data.F.rows();++i)
-          for (unsigned j=0;j<3;++j)
-            meshgl.V_specular_vbo.row(i*3+j) = data.V_material_specular.row(data.F(i,j)).cast<float>();
+        per_corner(data.V_material_specular,meshgl.V_specular_vbo);
       }
       }
 
 
       if (meshgl.dirty & MeshGL::DIRTY_NORMAL)
       if (meshgl.dirty & MeshGL::DIRTY_NORMAL)
       {
       {
         meshgl.V_normals_vbo.resize(data.F.rows()*3,3);
         meshgl.V_normals_vbo.resize(data.F.rows()*3,3);
-        for (unsigned i=0; i<data.F.rows();++i)
-          for (unsigned j=0;j<3;++j)
-            meshgl.V_normals_vbo.row(i*3+j) =
-               data.V_normals.row(data.F(i,j)).cast<float>();
-
+        per_corner(data.V_normals,meshgl.V_normals_vbo);
 
 
         if (invert_normals)
         if (invert_normals)
           meshgl.V_normals_vbo = -meshgl.V_normals_vbo;
           meshgl.V_normals_vbo = -meshgl.V_normals_vbo;