Index: new-game.cpp
===================================================================
--- new-game.cpp	(revision a5b5e9569309fd79ce1fb681ae9dbc7a3fde53cd)
+++ new-game.cpp	(revision 64a70f4ed82805ac7679c4d094945bbf3be13f44)
@@ -34,4 +34,6 @@
 bool clicked = false;
 int colors_i = 0;
+
+bool clicked_square = false;
 
 mat4 view_mat;
@@ -239,4 +241,6 @@
       clicked = insideTriangle(intersection, fp1, fp2, fp3);
       cout << (clicked ? "true" : "false") << endl;
+
+      clicked_square = !clicked_square;
    }
 }
@@ -324,4 +328,5 @@
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 
+   /*
    GLfloat points[] = {
        0.0f,  0.5f,  0.0f,
@@ -332,14 +337,14 @@
        0.0f,  0.5f,  0.0f,
    };
-   /*
+   */
+
    GLfloat points[] = {
-       0.0f,  1.0f,  0.0f,
-      -1.0f,  0.0f,  0.0f,
-       1.0f,  0.0f,  0.0f,
-       1.0f,  0.0f,  0.0f,
-      -1.0f,  0.0f,  0.0f,
-       0.0f,  1.0f,  0.0f,
-   };
-   */
+       0.5f,  0.5f,  0.0f,
+       0.0f, -0.5f,  0.0f,
+       1.0f, -0.5f,  0.0f,
+       1.0f, -0.5f,  0.0f,
+       0.0f, -0.5f,  0.0f,
+       0.5f,  0.5f,  0.0f,
+   };
 
    // initialize global variables for click intersection test
@@ -349,19 +354,19 @@
 
    GLfloat colors[] = {
-     1.0, 0.0, 0.0,
-     0.0, 0.0, 1.0,
-     0.0, 1.0, 0.0,
-     0.0, 1.0, 0.0,
-     0.0, 0.0, 1.0,
-     1.0, 0.0, 0.0,
+      1.0, 0.0, 0.0,
+      0.0, 0.0, 1.0,
+      0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
+      0.0, 0.0, 1.0,
+      1.0, 0.0, 0.0,
    };
 
    GLfloat colors_new[] = {
-     0.0, 1.0, 0.0,
-     0.0, 1.0, 0.0,
-     0.0, 1.0, 0.0,
-     0.0, 1.0, 0.0,
-     0.0, 1.0, 0.0,
-     0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
+      0.0, 1.0, 0.0,
    };
 
@@ -369,31 +374,40 @@
    int numPoints = (sizeof(points) / sizeof(float)) / 3;
 
+   /*
    GLfloat points2[] = {
-       0.5f,  0.5f,  0.0f,
+      0.5f,  0.5f,  0.0f,
       -0.5f,  0.5f,  0.0f,
       -0.5f, -0.5f,  0.0f,
-       0.5f,  0.5f,  0.0f,
+      0.5f,  0.5f,  0.0f,
       -0.5f, -0.5f,  0.0f,
-       0.5f, -0.5f,  0.0f,
-   };
-
-   /*
+      0.5f, -0.5f,  0.0f,
+   };
+   */
+
+   GLfloat points2[] = {
+       0.0f,  0.5f,  0.0f,
+      -1.0f,  0.5f,  0.0f,
+      -1.0f, -0.5f,  0.0f,
+       0.0f,  0.5f,  0.0f,
+      -1.0f, -0.5f,  0.0f,
+       0.0f, -0.5f,  0.0f,
+   };
+
    GLfloat colors2[] = {
-     0.0, 0.9, 0.9,
-     0.0, 0.9, 0.9,
-     0.0, 0.9, 0.9,
-     0.0, 0.9, 0.9,
-     0.0, 0.9, 0.9,
-     0.0, 0.9, 0.9,
-   };
-   */
+      0.0, 0.9, 0.9,
+      0.0, 0.9, 0.9,
+      0.0, 0.9, 0.9,
+      0.0, 0.9, 0.9,
+      0.0, 0.9, 0.9,
+      0.0, 0.9, 0.9,
+   };
 
    GLfloat texcoords[] = {
-     1.0f, 1.0f,
-     0.0f, 1.0f,
-     0.0, 0.0,
-     1.0, 1.0,
-     0.0, 0.0,
-     1.0, 0.0
+      1.0f, 1.0f,
+      0.0f, 1.0f,
+      0.0, 0.0,
+      1.0, 1.0,
+      0.0, 0.0,
+      1.0, 0.0
    };
 
@@ -409,6 +423,6 @@
    mat4 model_mat = T_model*R_model;
 
-   mat4 T_model2 = translate(mat4(), vec3(-1.0f, 0.0f, 0.0f));
-   // mat4 T_model2 = translate(mat4(), vec3(0.0f, 0.0f, 0.0f));
+   // mat4 T_model2 = translate(mat4(), vec3(-1.0f, 0.0f, 0.0f));
+   mat4 T_model2 = translate(mat4(), vec3(0.0f, 0.0f, 0.0f));
    mat4 R_model2 = rotate(mat4(), 0.0f, vec3(0.0f, 1.0f, 0.0f));
    mat4 model_mat2 = T_model2*R_model2;
@@ -440,10 +454,8 @@
    glBufferData(GL_ARRAY_BUFFER, sizeof(points2), points2, GL_STATIC_DRAW);
 
-   /*
    GLuint colors2_vbo = 0;
    glGenBuffers(1, &colors2_vbo);
    glBindBuffer(GL_ARRAY_BUFFER, colors2_vbo);
    glBufferData(GL_ARRAY_BUFFER, sizeof(colors2), colors2, GL_STATIC_DRAW);
-   */
 
    GLuint vt_vbo;
@@ -475,6 +487,6 @@
 
    //cam_pos = vec3(0.0f, 0.0f, 2.0f);
-   cam_pos = vec3(0.3f, 0.0f, 0.3f);
-   float cam_yaw = 45.0f * 2.0f * 3.14159f / 360.0f;
+   cam_pos = vec3(0.0f, 0.0f, 0.3f);
+   float cam_yaw = 0.0f * 2.0f * 3.14159f / 360.0f;
 
    mat4 T = translate(mat4(), vec3(-cam_pos.x, -cam_pos.y, -cam_pos.z));
@@ -523,9 +535,7 @@
    glUniformMatrix4fv(proj_test_loc, 1, GL_FALSE, value_ptr(proj_mat));
 
-   /*
    glUseProgram(shader_program2);
    glUniformMatrix4fv(model_mat_loc, 1, GL_FALSE, value_ptr(model_mat2));
    glUniformMatrix4fv(proj_mat_loc, 1, GL_FALSE, value_ptr(proj_mat));
-   */
 
    // glUniform1i(tex_loc, 0);
@@ -543,17 +553,17 @@
       }
 
-     if (clicked) {
-        glBindBuffer(GL_ARRAY_BUFFER, colors_vbo);
-
-        if (colors_i == 0) {
-           glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors_new, GL_STATIC_DRAW);
-           colors_i = 1;
-        } else {
-           glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors, GL_STATIC_DRAW);
-           colors_i = 0;
-        }
-
-        clicked = false;
-     }
+      if (clicked) {
+         glBindBuffer(GL_ARRAY_BUFFER, colors_vbo);
+
+         if (colors_i == 0) {
+            glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors_new, GL_STATIC_DRAW);
+            colors_i = 1;
+         } else {
+            glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors, GL_STATIC_DRAW);
+            colors_i = 0;
+         }
+
+         clicked = false;
+      }
 
       /*
@@ -571,12 +581,23 @@
       glDrawArrays(GL_TRIANGLES, 0, numPoints);
 
-      glUseProgram(shader_program2);
-      glUniformMatrix4fv(view_mat_loc, 1, GL_FALSE, value_ptr(view_mat));
-
-      glBindVertexArray(vao2);
-
-      int numPoints3 = numPoints2;
-      numPoints2 = numPoints3;
-      // glDrawArrays(GL_TRIANGLES, 0, numPoints2);
+      if (clicked_square) {
+         glUseProgram(shader_program);
+         glUniformMatrix4fv(view_test_loc, 1, GL_FALSE, value_ptr(view_mat));
+
+         glBindVertexArray(vao2);
+
+         glBindBuffer(GL_ARRAY_BUFFER, colors2_vbo);
+         glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, NULL);
+      } else {
+         glUseProgram(shader_program2);
+         glUniformMatrix4fv(view_mat_loc, 1, GL_FALSE, value_ptr(view_mat));
+
+         glBindVertexArray(vao2);
+
+         glBindBuffer(GL_ARRAY_BUFFER, vt_vbo);
+         glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, NULL);
+      }
+
+      glDrawArrays(GL_TRIANGLES, 0, numPoints2);
 
       glfwPollEvents();
