\r
struct freecam {\r
glm::vec3 pos = glm::vec3(0, 0, -1);\r
- glm::vec2 rot;\r
+ glm::vec2 rot = glm::vec2(0, 0);\r
\r
void update(sf::Window &window) {\r
int mouseDeltaX = sf::Mouse::getPosition(window).x - window.getSize().x / 2;\r
}\r
\r
private:\r
- glm::vec3 forward;\r
+ glm::vec3 forward = glm::vec3(0, 0, 1);\r
glm::vec3 up = glm::vec3(0, 1, 0);\r
\r
const float angleFactor = 200;\r
\r
\r
struct arccam {\r
- glm::vec2 rot;\r
+ glm::vec2 rot = glm::vec2(0, 0);\r
float radius = 1;\r
\r
void update(sf::Window &window) {\r
case keys::Escape:\r
running = false;\r
break;\r
- case keys::F:\r
- options.freecam = !options.freecam;\r
- break;\r
- case keys::R:\r
- if (options.freecam) {\r
- freeCam.pos = glm::vec3(0, 0, -1);\r
- freeCam.rot = glm::vec2(0);\r
- }\r
- else {\r
- arcCam.rot = glm::vec2(0);\r
- arcCam.radius = 1;\r
- }\r
- break;\r
}\r
} else if (event.type == sf::Event::EventType::MouseWheelScrolled) {\r
if (! options.freecam) {\r
if (options.freecam) {\r
ImGui::LabelText("Position", "%f %f %f", freeCam.pos.x, freeCam.pos.y, freeCam.pos.z);\r
ImGui::LabelText("Rotation", "%f %f", freeCam.rot.x, freeCam.rot.y);\r
+ if (ImGui::Button("Reset")) {\r
+ freeCam.pos = glm::vec3(0, 0, -1);\r
+ freeCam.rot = glm::vec2(0);\r
+ }\r
} else {\r
ImGui::LabelText("Rotation", "%f %f", arcCam.rot.x, arcCam.rot.y);\r
ImGui::InputFloat("Radius", &arcCam.radius);\r
+ if (ImGui::Button("Reset")) {\r
+ arcCam.rot = glm::vec2(0);\r
+ arcCam.radius = 1;\r
+ }\r
}\r
ImGui::End();\r
\r