void Mesh::drawShadedSolid()
{
for (int i=0; i<gridW-1; i++){
for(int j=0; j<gridH-1; j++){
Vec3d A=grid[i][j];
Vec3d B=grid[i+1][j];
Vec3d C=grid[i+1][j+1];
Vec3d AB=B-A;
Vec3d AC=C-A;
Vec3d N= AB.cross(AC);
Vec3d normN=N/N.getLength();
Vec3d L(400, 20, 0);
Vec3d AL=L-A;
Vec3d normL=AL/AL.getLength();
float shade=normL.dot(normN);
glBegin(GL_TRIANGLES);
glColor3f(shade,shade,shade);
//glVertex3f( grid[i][j].x,grid[i][j].y,grid[i][j].z);
glVertex3fv((float*) &grid[i][j]);
glVertex3fv((float*) &grid[i+1][j]);
glVertex3fv((float*) &grid[i+1][j+1]);
glEnd();
glBegin(GL_TRIANGLES);
glVertex3fv((float*) &grid[i][j]);
glVertex3fv((float*) &grid[i][j+1]);
glVertex3fv((float*) &grid[i+1][j+1]);
glEnd();
}
}
}
void Mesh::drawWireframe()
{
for (int i=0; i<gridW-1; i++){
for(int j=0; j<gridH-1; j++){
//glVertex3f( grid[i][j].x,grid[i][j].y,grid[i][j].z);
glBegin(GL_LINE_LOOP);
glVertex3fv((float*) &grid[i][j]);
glVertex3fv((float*) &grid[i+1][j]);
glVertex3fv((float*) &grid[i+1][j+1]);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3fv((float*) &grid[i][j]);
glVertex3fv((float*) &grid[i][j+1]);
glVertex3fv((float*) &grid[i+1][j+1]);
glEnd();
}
}
}
void Mesh::makeGrid(){
for (int i=0; i<gridW; i++){
for(int j=0; j<gridH; j++){
grid[i][j].x=i*5;
grid[i][j].y=j*5;
grid[i][j].z=0;
}
}
}
