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