(no commit message)
[atyndall/cits2231.git] / helper.c
index 79e33be..d7d418b 100644 (file)
--- a/helper.c
+++ b/helper.c
@@ -216,7 +216,6 @@ int makeSubmenuFromArray( const char *menuEntries[], unsigned int menuEntriesSiz
  * @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;
@@ -233,21 +232,16 @@ void drawSquare(int recurseLevel, float x1, float z1, float x2, float z2) {
 
   } else {
     // Draw square.
-    // **NOTE: Is the polygon facing in the right direction?
-    srand ( time(NULL) );
-    if ( rand() % 10 < 5 ) {
-      return;
-    }
-    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();
   }
-
 }
 
 /**
@@ -261,24 +255,41 @@ void drawFloor() {
  * 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 = 0.3;
+
+  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

UCC git Repository :: git.ucc.asn.au