16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 00:49:19 +02:00
Files
maszyna/input/editormouseinput.h
2026-06-17 01:19:59 +02:00

46 lines
1.2 KiB
C++

/*
This Source Code Form is subject to the
terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not
distributed with this file, You can
obtain one at
http://mozilla.org/MPL/2.0/.
*/
#pragma once
#include "input/command.h"
class editormouse_input {
public:
// constructors
editormouse_input() = default;
// methods
bool
init();
void
position( double const Horizontal, double const Vertical );
inline
glm::dvec2
position() const {
return m_cursorposition; }
void
button( int const Button, int const Action );
inline
int
button( int const Button ) const {
return m_buttons[ Button ]; }
private:
// members
command_relay m_relay;
bool m_pickmodepanning { false }; // indicates mouse is in view panning mode
bool m_pickmodepanning_resync { false }; // skip the first delta after panning starts (avoids a jump when the cursor is grabbed/hidden)
glm::dvec2 m_cursorposition { 0.0 }; // stored last cursor position, used for panning
std::array<int, GLFW_MOUSE_BUTTON_LAST> m_buttons { GLFW_RELEASE };
};
//---------------------------------------------------------------------------