kick
/Users/morten/Programmering/cpp/kick/src/kick/core/mouse_input.cpp
00001 //
00002 //  mouse_input.cpp
00003 //  UnitTest_KickCPP
00004 //
00005 //  Created by morten on 24/04/14.
00006 //
00007 //
00008 
00009 #include "mouse_input.h"
00010 #include <cassert>
00011 
00012 using namespace glm;
00013 
00014 #define validButton(button) assert(button >=0); assert(button < mouseButtons);
00015 
00016 namespace kick {
00017 
00018     glm::ivec2 MouseInput::mPosition{0};
00019     glm::ivec2 MouseInput::mPositionDelta{0};
00020     glm::ivec2 MouseInput::mMouseWheelDelta{0};
00021     int MouseInput::mClicks {0};
00022 
00023     bool MouseInput::mButtonDown[] = {false, false, false, false};
00024     bool MouseInput::mButtonPressed[] = {false, false, false, false};
00025     bool MouseInput::mButtonUp[] = {false, false, false, false};
00026 
00027     void MouseInput::reset(){
00028         mPositionDelta = ivec2(0);
00029         mMouseWheelDelta = ivec2(0);
00030         for (int i=0;i<mouseButtons;i++){
00031             mButtonDown[i] = false;
00032             mButtonUp[i] = false;
00033         }
00034     }
00035 
00036     bool MouseInput::down(int button) {
00037         validButton(button);
00038         return mButtonDown[button];
00039     }
00040 
00041     bool MouseInput::pressed(int button) {
00042         validButton(button);
00043         return mButtonPressed[button];
00044     }
00045 
00046     bool MouseInput::up(int button) {
00047         validButton(button);
00048         return mButtonUp[button];
00049     }
00050 
00051     void MouseInput::buttonPressStarted(int button) {
00052         validButton(button);
00053         mButtonDown[button] = true;
00054         mButtonPressed[button] = true;
00055     }
00056 
00057     void MouseInput::buttonPressEnded(int button) {
00058         validButton(button);
00059         mButtonUp[button] = true;
00060         mButtonPressed[button] = false;
00061     }
00062 
00063     void MouseInput::setMouseWheelDelta(glm::ivec2 mouseWheelDelta) {
00064         MouseInput::mMouseWheelDelta = mouseWheelDelta;
00065     }
00066 
00067     glm::ivec2 MouseInput::mouseWheelDelta() {
00068         return mMouseWheelDelta;
00069     }
00070 
00071     void MouseInput::setPositionDelta(glm::ivec2 positionDelta) {
00072         MouseInput::mPositionDelta = positionDelta;
00073     }
00074 
00075     glm::ivec2 MouseInput::positionDelta() {
00076         return mPositionDelta;
00077     }
00078 
00079     void MouseInput::setPosition(glm::ivec2 position) {
00080         MouseInput::mPosition = position;
00081     }
00082 
00083     glm::ivec2 MouseInput::position() {
00084         return mPosition;
00085     }
00086 
00087     int MouseInput::clicks() {
00088         return mClicks;
00089     }
00090 
00091     void MouseInput::setClicks(int clicks) {
00092         MouseInput::mClicks = clicks;
00093     }
00094 }
 All Classes Functions Variables