#include "gridmesh.h" GridMesh::GridMesh(int width, int height, bool alternate) { for(int i=0; i<=width; ++i) { for(int j=0; j<=height; ++j) { float x = (float)i/(float)width; float y = (float)j/(float)height; addPosition(x, y, 0); addNormal(0, 0, 1); addTexCoord(x, y); if(i > 0 && j > 0) { if(alternate && (i+j)%2) { addTriangle(getVertexId(i, j, height), getVertexId(i-1, j, height), getVertexId(i, j-1, height)); addTriangle(getVertexId(i-1, j-1, height), getVertexId(i, j-1, height), getVertexId(i-1, j, height)); } else { addTriangle(getVertexId(i, j, height), getVertexId(i-1, j, height), getVertexId(i-1, j-1, height)); addTriangle(getVertexId(i, j, height), getVertexId(i-1, j-1, height), getVertexId(i, j-1, height)); } } } } } int GridMesh::getVertexId(int i, int j, int height) { return i*(height+1) + j; }