diff --git a/src/gfx/include/gfx/cam_control.hpp b/src/gfx/include/gfx/cam_control.hpp index d9bb69ccbee5a54b715d46e25bc46f843374e80a..372dbe82e9f9a868071ddd6a3e30bc5e2384708a 100644 --- a/src/gfx/include/gfx/cam_control.hpp +++ b/src/gfx/include/gfx/cam_control.hpp @@ -10,8 +10,9 @@ class CameraController : public Controller { + // TO DO: change to use quaternion float pitch = 0.0f; - float yaw = -90.0f; + float yaw = -90.0f; glm::vec2 sens; float sens_multiplier = 400.0f; diff --git a/src/gfx/include/gfx/control.hpp b/src/gfx/include/gfx/control.hpp index 1dee7d07b3efe35acdc72ea7e98f903dffe0f48a..14a64aa7414d6d2e1dbd727e67937f23719e96a4 100644 --- a/src/gfx/include/gfx/control.hpp +++ b/src/gfx/include/gfx/control.hpp @@ -22,7 +22,11 @@ protected: Frame &bound_frame; public: - Controller(Frame &frame) : bound_frame{frame} {} + Controller(Frame &frame) + : bound_frame{frame} {} + // frontVec{glm::normalize(glm::vec3(frame.getRotation().x, + // frame.getRotation().y, + // frame.getRotation().z))} {} glm::vec3 getFrontVec() { return frontVec; } glm::vec3 getUpVec() { return upVec; } diff --git a/src/gfx/src/render.cpp b/src/gfx/src/render.cpp index 6ca2a53fe39f1862dba0599ad821aff8760b9a6f..1371bb6e000165bd5435503d8f2a1873a0190f5f 100644 --- a/src/gfx/src/render.cpp +++ b/src/gfx/src/render.cpp @@ -17,7 +17,6 @@ #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/type_ptr.hpp> -//#include <SDL2/sdl.h> #include <SDL2/SDL.h> void send_matrices_to_shader(Shader &myShader, glm::mat4 &model, glm::mat4 &view, glm::mat4 &projection) @@ -49,31 +48,30 @@ void gfx_draw(Shader &myShader, myShader.use(); + /* -------------------- Transformation examples --------------------*/ // glm::mat4 transform = glm::mat4(1.0f); // transform = glm::rotate(transform, glm::radians(90.0f), glm::vec3(0.0, 0.0, 1.0)); // transform = glm::scale(transform, glm::vec3(0.5, 0.5, 0.5)); - // unsigned int transformLoc = glGetUniformLocation(myShader.ID, "transform"); - // glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(transform)); + // model = glm::rotate(model, glm::radians(-55.0f), glm::vec3(1.0f, 0.0f, 0.0f)); + // + // glm::mat4 view = glm::mat4(1.0f); + // note that we’re translating the scene in the reverse direction + // view = glm::translate(view, glm::vec3(0.0f, 0.0f, -3.0f)); + // + // view = glm::lookAt(glm::vec3(0.0f, 0.0f, 3.0f), + // glm::vec3(0.0f, 0.0f, 0.0f), + // glm::vec3(0.0f, 1.0f, 0.0f)); + /* ---------------------------------------------------------------- */ glm::mat4 model = glm::mat4(1.0f); - //model = glm::rotate(model, glm::radians(-55.0f), glm::vec3(1.0f, 0.0f, 0.0f)); - model *= obj_frame.getRotationMat(); + model *= obj_frame.getRotationMat(); // QUESTION: Is this correct? model = glm::translate(model, obj_frame.getPosition()); - //model = glm::rotate(model, ((float)SDL_GetTicks() / 1000) * glm::radians(50.0f), glm::vec3(0.5f, 1.0f, 0.0f)); - - // // glm::mat4 view = glm::mat4(1.0f); - // // note that we’re translating the scene in the reverse direction - // // view = glm::translate(view, glm::vec3(0.0f, 0.0f, -3.0f)); + glm::mat4 view; - // view = glm::lookAt(glm::vec3(0.0f, 0.0f, 3.0f), - // glm::vec3(0.0f, 0.0f, 0.0f), - // glm::vec3(0.0f, 1.0f, 0.0f)); - view = glm::lookAt(cam_frame.getPosition(), cam_frame.getPosition() + cam_control.getFrontVec(), cam_control.getUpVec()); glm::mat4 projection; - //projection = glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f); projection = glm::perspective(glm::radians(camera.getFOV()), camera.getWindowSize().x / camera.getWindowSize().y, 0.1f, @@ -85,7 +83,7 @@ void gfx_draw(Shader &myShader, ASSUMPTION(glGetError() == GL_NO_ERROR); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - ASSUMPTION(glGetError() == GL_NO_ERROR); // !!!!!!!!!!!!!!!!!!!!!!! + ASSUMPTION(glGetError() == GL_NO_ERROR); object.getVAO().Bind(); //glDrawArrays(GL_TRIANGLES, 0, 3); diff --git a/src/studio/src/simulator.cpp b/src/studio/src/simulator.cpp index 5f0e42d72523035b18312ccd84d2fc40d20b042e..50c96daf5e44837c37347ff194c8941e5a1bc730 100644 --- a/src/studio/src/simulator.cpp +++ b/src/studio/src/simulator.cpp @@ -10,10 +10,6 @@ #include <vector> namespace studio { - -// OBJECT -glm::vec3 obj_position = { 1.0f, -1.0f, 0.0f }; // frame -// rotation ? TO DO // frame std::vector<float> obj_vertices = { // positions @@ -45,13 +41,6 @@ std::vector<unsigned int> obj_indices = 1, 2, 5, 2, 5, 6 }; -// CAMERA -glm::vec3 cam_position = { 0.0f, 0.0f, 3.0f }; -glm::vec3 cam_direction = { 0.0f, 1.0f, 0.0f }; // currently useless -float FOV = 60.0f; -// camera type < fps / orbit > - - Simulator::Simulator() : osi::Simulator() // camera frame, object frame, camera, object @@ -69,11 +58,10 @@ Simulator::Simulator() 6, 7, 8 } } - , cam_frame{{0.0f, 0.0f, 3.0f}, {0.0f, 90.0f, 0.0f}} + , cam_frame{{0.0f, 0.0f, 3.0f}, {0.0f, -90.0f, 0.0f}} // Setting rotation currently does nothing , obj_frame{{ 0.0f, 0.0f, 0.0f }, { -50.0f, 0.0f, 0.0f }} - //, cam_control{cam_frame} - , obj_control{obj_frame} , cam_control{cam_frame} + , obj_control{obj_frame} // , object{{ 1.0f, -1.0f, 0.0f }, // { // // positions @@ -177,5 +165,4 @@ void Simulator::process_mouse() cam_control.turn(xoffset, yoffset); } - }