-\r
- //rotate\r
- //model = glm::rotate(model, glm::radians(0.2f), glm::vec3(0.0f, 1.0f, 0.0f));\r
-\r
- if (options.freecam) {\r
- view = glm::lookAt(camPos, camPos + camForward, camUp);\r
- } else {\r
- float angle = arcball.mouseY / 200.0f;\r
- if (angle > glm::radians(89.0f)) {\r
- angle = glm::radians(89.0f);\r
- arcball.mouseY = angle * 200.0f;\r
- }\r
- if (angle < glm::radians(-89.0f)) {\r
- angle = glm::radians(-89.0f);\r
- arcball.mouseY = angle * 200.0f;\r
- }\r
- arcball.camX = sin(angle) * exp(options.radius);\r
- arcball.camZ = cos(angle) * exp(options.radius);\r
- view = glm::lookAt(glm::vec3(0.0, arcball.camX, arcball.camZ), glm::vec3(0, 0, 0), glm::vec3(0, 1, 0));\r
- view = glm::rotate(view, arcball.mouseX / 100.0f, glm::vec3(0, 1, 0));\r
- }\r
-\r
- glUniformMatrix4fv(glGetUniformLocation(shaderProgram, "model"), 1,\r
- GL_FALSE, glm::value_ptr(model));\r
- glUniformMatrix4fv(glGetUniformLocation(shaderProgram, "view"), 1, GL_FALSE,\r
- glm::value_ptr(view));\r
- glUniformMatrix4fv(glGetUniformLocation(shaderProgram, "projection"), 1,\r
- GL_FALSE, glm::value_ptr(proj));\r
-\r
- glUniform3f(glGetUniformLocation(shaderProgram, "objectColor"), 1.0f, 0.5f,\r
- 0.31f);\r
- glUniform3f(glGetUniformLocation(shaderProgram, "lightColor"), 1.0f, 1.0f,\r
- 1.0f);\r
- glUniform3fv(glGetUniformLocation(shaderProgram, "lightPos"), 1, glm::value_ptr(lightPos));\r
-\r
- glBindVertexArray(VAO);\r
- glDrawElements(GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0);\r
- glBindVertexArray(0);\r
+ \r
+ if (options.freecam)\r
+ view = freeCam.getViewMatrix();\r
+ else\r
+ view = arcCam.getViewMatrix();\r
+ \r
+ glUniformMatrix4fv(\r
+ glGetUniformLocation(shaderProgram, "model"),\r
+ 1, GL_FALSE, glm::value_ptr(model));\r
+ glUniformMatrix4fv(\r
+ glGetUniformLocation(shaderProgram, "view"),\r
+ 1, GL_FALSE, glm::value_ptr(view));\r
+ glUniformMatrix4fv(\r
+ glGetUniformLocation(shaderProgram, "projection"),\r
+ 1, GL_FALSE, glm::value_ptr(proj));\r
+\r
+ glUniform3f(\r
+ glGetUniformLocation(shaderProgram, "objectColor"),\r
+ 1.0f, 0.5f, 0.31f);\r
+ glUniform3f(\r
+ glGetUniformLocation(shaderProgram, "lightColor"),\r
+ 1.0f, 1.0f, 1.0f);\r
+ glUniform3fv(\r
+ glGetUniformLocation(shaderProgram, "lightPos"),\r
+ 1, glm::value_ptr(lightPos));\r
+\r
+ m.draw();\r