TazGraph Project v0.1.0
Loading...
Searching...
No Matches
SliderRotateZ.h
1#pragma once
2#include "../../../UIElement.h"
3
4class SliderRotateZ : public UIElement {
5private:
6 float cameraRotationZ = 0;
7
8public:
9 SliderRotateZ() = default;
10 ~SliderRotateZ() override = default;
11
12 void OnImGuiRender() override
13 {
14 if (ImGui::SliderFloat("Rotate Around Z", &cameraRotationZ, 0.0f, 360.0f)) {
15 rotateCamera(cameraRotationZ);
16 }
17 };
18
19 void rotateCamera(float& _cameraRotationZ) {
20 std::shared_ptr<PerspectiveCamera> main_camera2D = std::dynamic_pointer_cast<PerspectiveCamera>(CameraManager::getInstance().getCamera("main"));
21
22 float angleRad = glm::radians(_cameraRotationZ);
23 float radius = 1000.0f;
24
25 float x = cos(angleRad) * radius;
26 float y = sin(angleRad) * radius;
27 float z = main_camera2D->getPosition().z;
28
29 glm::vec3 newEyePos = glm::vec3(x, y, z);
30 main_camera2D->setPosition(newEyePos);
31
32 main_camera2D->setAimPos(glm::vec3(0.0f, 0.0f, 0.0f));
33 }
34};
Definition SliderRotateZ.h:4
Definition UIElement.h:16