int GlutApp::mousePressed(int button, int x, int y) { // std::cout << "mouse pressed: " << x << ", " << y << std::endl; lastMousePt->set(x, y); windowToViewport(*lastMousePt); m_button1Down = true; }
int GlutApp::mouseMoved(int x, int y) { // std::cout << "mouse moved: " << x << ", " << y << std::endl; currMousePt->set(x, y); windowToViewport(*currMousePt); m_camera->orbit(*lastMousePt, *currMousePt); *lastMousePt = *currMousePt; }
void WindowEventProducer::produceMouseDragged(const MouseEventDetails::MouseButton& Button, const Pnt2f& Location, const Vec2f& Delta) { //Check if Input is blocked if(_BlockInput) { return; } Pnt2f ViewportLocation; ViewportUnrecPtr ResultViewport; ResultViewport = windowToViewport(Location, ViewportLocation); if(ResultViewport != NULL) { MouseEventDetailsUnrecPtr Details = MouseEventDetails::create(this, getSystemTime(), Button, 0, ViewportLocation, ResultViewport,Delta ); WindowEventProducerBase::produceMouseDragged(Details); } }
void WindowEventProducer::produceMouseWheelMoved(const Int32& WheelRotation, const Pnt2f& Location, const MouseWheelEventDetails::ScrollType& TheScrollType) { //Check if Input is blocked if(_BlockInput) { return; } Pnt2f ViewportLocation; ViewportUnrecPtr ResultViewport; ResultViewport = windowToViewport(Location, ViewportLocation); if(ResultViewport != NULL) { const MouseWheelEventDetailsUnrecPtr Details = MouseWheelEventDetails::create( this, getSystemTime(), WheelRotation, TheScrollType,MouseWheelEventDetails::SCROLL_ORIENTATION_VERTICAL, ViewportLocation, ResultViewport ); WindowEventProducerBase::produceMouseWheelMoved(Details); } }
void WindowEventProducer::produceMouseExited(const Pnt2f& Location) { //Check if Input is blocked if(_BlockInput) { return; } Pnt2f ViewportLocation; ViewportUnrecPtr ResultViewport; ResultViewport = windowToViewport(Location, ViewportLocation); if(ResultViewport != NULL) { MouseEventDetailsUnrecPtr Details = MouseEventDetails::create(this, getSystemTime(), MouseEventDetails::NO_BUTTON, 0, ViewportLocation, ResultViewport ); WindowEventProducerBase::produceMouseExited(Details); } }
void WindowEventProducer::produceMouseClicked(const MouseEventDetails::MouseButton& Button, const Pnt2f& Location) { //Check if Input is blocked if(_BlockInput) { return; } Time t(getSystemTime()); updateClickCount(Button, t, Location); Pnt2f ViewportLocation; ViewportUnrecPtr ResultViewport; ResultViewport = windowToViewport(Location, ViewportLocation); if(ResultViewport != NULL) { MouseEventDetailsUnrecPtr Details = MouseEventDetails::create(this, t, Button, _ButtonClickCountMap[Button].size(), ViewportLocation, ResultViewport ); WindowEventProducerBase::produceMouseClicked(Details); } }
void WindowEventProducer::produceMouseReleased(const MouseEventDetails::MouseButton& Button, const Pnt2f& Location) { //Check if Input is blocked if(_BlockInput) { return; } TimeStamp t(getSystemTime()); validateClickCount(Button, t, Location); Pnt2f ViewportLocation; Real32 DriftAllowance(InputSettings::the()->getMultipleClickMouseDriftAllowance()); if(Location.dist2(_ButtonClickMap[Button]) <= (DriftAllowance * DriftAllowance)) { produceMouseClicked(Button, Location); } ViewportUnrecPtr ResultViewport; ResultViewport = windowToViewport(Location, ViewportLocation); if(ResultViewport != NULL) { MouseEventDetailsUnrecPtr Details = MouseEventDetails::create(this, t, Button, _ButtonClickCountMap[Button].size(), ViewportLocation, ResultViewport ); WindowEventProducerBase::produceMouseReleased(Details); } }