Antkeeper  0.0.1
mouse.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Christopher J. Howard
3  *
4  * This file is part of Antkeeper source code.
5  *
6  * Antkeeper source code is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Antkeeper source code is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include <engine/input/mouse.hpp>
21 
22 namespace input {
23 
25 {
26  button_pressed_publisher.publish({this, position, button});
27 }
28 
30 {
31  button_released_publisher.publish({this, position, button});
32 }
33 
35 {
36  this->position = position;
37  moved_publisher.publish({this, position, difference});
38 }
39 
40 void mouse::scroll(const math::fvec2& velocity)
41 {
42  scrolled_publisher.publish({this, position, velocity});
43 }
44 
45 } // namespace input
void move(const math::vec2< std::int32_t > &position, const math::vec2< std::int32_t > &difference)
Simulates mouse movement.
Definition: mouse.cpp:34
void press(mouse_button button)
Simulates a mouse button press.
Definition: mouse.cpp:24
void scroll(const math::fvec2 &velocity)
Simulates mouse scrolling.
Definition: mouse.cpp:40
void release(mouse_button button)
Simulates a mouse button release.
Definition: mouse.cpp:29
constexpr int difference(T x, T y) noexcept
Returns the number of differing bits between two values, known as Hamming distance.
Definition: bit-math.hpp:280
Input devices, events, and mapping.
mouse_button
Mouse buttons.
n-dimensional vector.
Definition: vector.hpp:44