#pragma once #include #include #include namespace frostbite2D { class TouchEvent : public Event { public: TouchEvent(EventType type, uint32 timestamp, int64 touchId, int64 fingerId, const Vec2& position, const Vec2& delta, float pressure) : Event(timestamp) , type_(type) , touchId_(touchId) , fingerId_(fingerId) , position_(position) , delta_(delta) , pressure_(pressure) {} EventType getType() const override { return type_; } int64 getTouchId() const { return touchId_; } int64 getFingerId() const { return fingerId_; } const Vec2& getPosition() const { return position_; } const Vec2& getDelta() const { return delta_; } float getPressure() const { return pressure_; } private: EventType type_; int64 touchId_; int64 fingerId_; Vec2 position_; Vec2 delta_; float pressure_; }; class TouchDownEvent : public TouchEvent { public: TouchDownEvent(uint32 timestamp, int64 touchId, int64 fingerId, const Vec2& position, float pressure) : TouchEvent(EventType::TouchDown, timestamp, touchId, fingerId, position, Vec2(0, 0), pressure) {} }; class TouchUpEvent : public TouchEvent { public: TouchUpEvent(uint32 timestamp, int64 touchId, int64 fingerId, const Vec2& position, float pressure) : TouchEvent(EventType::TouchUp, timestamp, touchId, fingerId, position, Vec2(0, 0), pressure) {} }; class TouchMoveEvent : public TouchEvent { public: TouchMoveEvent(uint32 timestamp, int64 touchId, int64 fingerId, const Vec2& position, const Vec2& delta, float pressure) : TouchEvent(EventType::TouchMove, timestamp, touchId, fingerId, position, delta, pressure) {} }; }