Files
TSE/TSE_Editor/src/BehaviourScripts/basicEditorCamera.hpp

61 lines
1.7 KiB
C++

#pragma once
#define BASIC_EDITOR_CAMERA typeid(basicEditorCamera).name()
#include "elements/BehaviourScript.hpp"
#include "interfaces/ICursorHandler.hpp"
#include "interfaces/IKeyInputHandler.hpp"
#include "Vector2.hpp"
#include "Vector3.hpp"
#include "imgui/imgui.h"
#include "UI/windows/SceneView.hpp"
namespace TSE::EDITOR
{
class basicEditorCamera : public BehaviourScript, public ICursorHandler, public IKeyInputHandler
{
private:
bool keyInputEnabled = true;
bool mouseInputEnabled = true;
bool isShiftPressed = false;
bool holdingRightClick = false;
bool holdingLeftClick = false;
Vector3 delta = Vector3::zero;
Vector3 keydelta = Vector3::zero;
Vector2 rotDelta = Vector2::zero;
Vector2 lastMousepos;
float keyMultiplier = 0.5f;
float rotationMultiplier = 150;
float movementMultiplier = 64;
float zoomMultiplier = 2;
const float zoomMin = 6;
const float zoomMax = 500;
public:
void OnUpdate() override;
void Start() override;
inline const char* GetName() override
{
return "basicEditorCamera";
}
void OnKeyDown(const Key& key, const Modifier& mods) override;
void OnKeyUp(const Key& key, const Modifier& mods) override;
void OnMouseButtonDown(const MouseBtn& btn, const Modifier& mods) override;
void OnMouseButtonUp(const MouseBtn& btn, const Modifier& mods) override;
void OnMousePosition(const Vector2& pos) override;
void OnMouseScroll(const Vector2& delta) override;
void CustomDraw(const bool& debug) override;
};
} // namespace TSE::EDITOR