Bubba-3D  0.9.0
Awesome game engine!
MouseAxis.cpp
1 /*
2  * This file is part of Bubba-3D.
3  *
4  * Bubba-3D is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * Bubba-3D is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with Bubba-3D. If not, see http://www.gnu.org/licenses/.
16  */
17 //
18 // Created by simon on 2016-01-01.
19 //
20 
21 #include <MouseAxis.h>
22 #include <ControlStatus.h>
23 #include "Input.h"
24 #include <MousePosition.h>
25 #include <algorithm>
26 
27 MouseAxis::MouseAxis(Axis axis, float accelerator) : Input(true) {
28  this->axis = axis;
29  this->accelerator = accelerator;
30 }
31 
32 ControlStatus MouseAxis::getStatus() {
33  float value = axis == X ? MousePosition().getXMidOffset() : MousePosition().getYMidOffset();
34  return ControlStatus(ControlStatus::Activator::MOUSE,clip(value*accelerator));
35 }
36 
37 ControlStatus::Activator MouseAxis::getActivator() {
38  return ControlStatus::MOUSE;
39 }
40 
41 float MouseAxis::clip(float n) {
42  return std::max(-100.0f, std::min(n, 100.0f));
43 }
The class that contains information about a function at the state of creation.
Definition: ControlStatus.h:59
MouseAxis(Axis, float accelerator)
Definition: MouseAxis.cpp:27
Definition: Input.h:26