瀏覽代碼

better floor

Former-commit-id: da33a39c0ce6d54f53af2ffb2aa61fef8430e726
Alec Jacobson (jalec 11 年之前
父節點
當前提交
6bbc2f0f73
共有 1 個文件被更改,包括 10 次插入5 次删除
  1. 10 5
      include/igl/draw_floor.cpp

+ 10 - 5
include/igl/draw_floor.cpp

@@ -5,6 +5,10 @@
 
 IGL_INLINE void igl::draw_floor(const float * colorA, const float * colorB)
 {
+  // old settings
+  int old_lighting=0,old_color_material=0;
+  glGetIntegerv(GL_LIGHTING,&old_lighting);
+  glGetIntegerv(GL_COLOR_MATERIAL,&old_color_material);
   glDisable(GL_LIGHTING);
   glColorMaterial( GL_FRONT, GL_EMISSION);
   glEnable(GL_COLOR_MATERIAL);
@@ -43,15 +47,16 @@ IGL_INLINE void igl::draw_floor(const float * colorA, const float * colorB)
       {
         glColor4fv(colorB);
       }
-      glVertex3f(    x*SizeX,0,    y*SizeY);
-      glVertex3f((x+1)*SizeX,0,    y*SizeY);
-      glVertex3f((x+1)*SizeX,0,(y+1)*SizeY);
       glVertex3f(    x*SizeX,0,(y+1)*SizeY);
+      glVertex3f((x+1)*SizeX,0,(y+1)*SizeY);
+      glVertex3f((x+1)*SizeX,0,    y*SizeY);
+      glVertex3f(    x*SizeX,0,    y*SizeY);
     }
   }
   glEnd();
-  glDisable(GL_COLOR_MATERIAL);
-} 
+  (old_lighting ? glEnable(GL_LIGHTING) : glDisable(GL_LIGHTING));
+  (old_color_material? glEnable(GL_COLOR_MATERIAL) : glDisable(GL_COLOR_MATERIAL));
+}
 
 IGL_INLINE void igl::draw_floor()
 {