- Timestamp:
- Mar 28, 2019, 3:32:09 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
r12247 r12253 3 3 namespace orxonox{ 4 4 5 MouseAPI::MouseAPI( Camera& camera)5 MouseAPI::MouseAPI() 6 6 { 7 cam = camera.getOgreCamera();8 state = InputManager::getInstance().createInputState("MouseAPI");9 state->setMouseExclusive(false);//does this work10 state->setMouseHandler(this);11 InputManager::getInstance().enterState("MouseAPI");12 7 13 8 } 14 9 15 MouseAPI::~MouseAPI(){ 16 InputManager::getInstance().leaveState("MouseAPI"); 17 state->setMouseHandler(nullptr); 18 InputManager::getInstance().destroyState("MouseAPI"); 10 void MouseAPI::activate() 11 { 12 if(InputManager::exists()) 13 { 14 cam = CameraManager::getInstance().getActiveCamera()->getOgreCamera(); 15 state = InputManager::getInstance().createInputState("MouseAPI"); 16 state->setMouseExclusive(false);//does this work 17 state->setMouseHandler(this); 18 InputManager::getInstance().enterState("MouseAPI"); 19 } 20 21 } 22 23 void MouseAPI::deactivate() 24 { 25 if(InputManager::exists()) 26 { 27 InputManager::getInstance().leaveState("MouseAPI"); 28 state->setMouseHandler(nullptr); 29 InputManager::getInstance().destroyState("MouseAPI"); 30 } 31 } 32 33 MouseAPI::~MouseAPI() 34 { 35 19 36 } 20 37 … … 27 44 for(auto wantedButton:event.buttons){ 28 45 if(wantedButton == button && ray.intersects(Ogre::Sphere(event.position,event.radius)).first) 29 (*(event.onClickedFunction))(button);46 event.onClickedFunction(button); 30 47 } 31 48 } … … 47 64 } 48 65 49 void MouseAPI::addClickableObject(const Vector3& position, float radius,const std::list<MouseButtonCode::ByEnum>& buttons,void (*onClickedFunction)(MouseButtonCode::ByEnum button))66 void MouseAPI::addClickableObject(const Vector3& position, float radius, const std::list<MouseButtonCode::ByEnum>& buttons, std::function<void(MouseButtonCode::ByEnum)> onClickedFunction) 50 67 { 51 68 clickEvents.insert(clickEvents.begin(),{position,radius,buttons,onClickedFunction});
Note: See TracChangeset
for help on using the changeset viewer.