* @param z2 bottom-left z
*/
void drawSquare(int recurseLevel, float x1, float z1, float x2, float z2) {
-
if ( drawFloorRecurse != recurseLevel ) {
// Calculate middle points
float xm = (x1 + x2) / 2.0;
} else {
// Draw square.
- // **NOTE: Is the polygon facing in the right direction?
-
- if ( (x1 - x2) / (z1 - z2)) {
- printf("(%f, %f), (%f, %f) is not square!\n", x1, z1, x2, z2);
- }
-
- //printf("Drawing square (%f, %f), (%f, %f), (%f, %f), (%f, %f)\n", x1, z1, x1, z2, x2, z2, x2, z1);
+ // **NOTE: We're drawing large strips, instead of squares, which might cause a lighting problem
glBegin(GL_QUADS);
- glNormal3f(0,1,0);
+ //glNormal3f(0,1,0);
+ glColor3f(1.0, 1.0, 1.0);
glVertex3f(x1, 0.0, z1);
glVertex3f(x1, 0.0, z2);
glVertex3f(x2, 0.0, z2);
glVertex3f(x2, 0.0, z1);
glEnd();
}
-
}
/**
* Draw x, z axis on floor
*/
void drawLine() {
- // **NOTE: fix function
- glDisable(GL_TEXTURE_2D);
- glDisable(GL_LIGHTING);
- //glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glColor3f( 0.0, 0.0, 0.0 );
-
- glBegin(GL_LINES);
+ // **NOTE: Function does not currently draw arrow-heads
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_LIGHTING);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glColor3f( 0.0, 0.0, 0.0 );
+
+ float arrowLength = 1.0;
+
+ glBegin(GL_LINES);
+ // x arrow
glVertex3i( lineLength, 0.0, 0.0 );
glVertex3i( -lineLength, 0.0, 0.0 );
- glEnd();
+
+ // x arrowheads
+ glVertex3i( lineLength, 0.0, 0.0 );
+ glVertex3i( lineLength - arrowLength, 0.0, 1.0 );
- glBegin(GL_LINES);
- glVertex3i( 0.0, 0.0, lineLength );
- glVertex3i( 0.0, 0.0, -lineLength );
- glEnd();
+ glVertex3i( lineLength, 0.0, 0.0 );
+ glVertex3i( lineLength - arrowLength, 0.0, -1.0 );
+
+ // z arrow
+ glVertex3i( 0.0, 0.0, lineLength );
+ glVertex3i( 0.0, 0.0, -lineLength );
+
+ // z arrowheads
+ glVertex3i( 0.0, 0.0, lineLength );
+ glVertex3i( 1.0, 0.0, lineLength - arrowLength );
+
+ glVertex3i( 0.0, 0.0, lineLength );
+ glVertex3i( -1.0, 0.0, lineLength - arrowLength );
+ glEnd();
- //glDisable(GL_BLEND);
- glEnable(GL_LIGHTING);
- glEnable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_TEXTURE_2D);
}
\ No newline at end of file