mirror of
https://github.com/virtcode/hypr-dynamic-cursors
synced 2025-09-19 16:13:21 +02:00
fix: ignore warps on modes and shake
This commit is contained in:
parent
553dc93cc0
commit
55e8b316ce
14 changed files with 80 additions and 9 deletions
|
@ -11,4 +11,6 @@ class IMode {
|
|||
virtual EModeUpdate strategy() = 0;
|
||||
/* updates the calculations and returns the new angle */
|
||||
virtual SModeResult update(Vector2D pos) = 0;
|
||||
/* called on warp, an update will be sent afterwards (probably) */
|
||||
virtual void warp(Vector2D old, Vector2D pos) = 0;
|
||||
};
|
||||
|
|
|
@ -45,3 +45,7 @@ SModeResult CModeRotate::update(Vector2D pos) {
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
void CModeRotate::warp(Vector2D old, Vector2D pos) {
|
||||
end += (pos - old);
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ class CModeRotate : public IMode {
|
|||
public:
|
||||
virtual EModeUpdate strategy();
|
||||
virtual SModeResult update(Vector2D pos);
|
||||
virtual void warp(Vector2D old, Vector2D pos);
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
@ -40,3 +40,10 @@ SModeResult CModeStretch::update(Vector2D pos) {
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
void CModeStretch::warp(Vector2D old, Vector2D pos) {
|
||||
auto delta = pos - old;
|
||||
|
||||
for (auto& sample : samples)
|
||||
sample += delta;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ class CModeStretch : public IMode {
|
|||
public:
|
||||
virtual EModeUpdate strategy();
|
||||
virtual SModeResult update(Vector2D pos);
|
||||
virtual void warp(Vector2D old, Vector2D pos);
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
@ -30,3 +30,10 @@ SModeResult CModeTilt::update(Vector2D pos) {
|
|||
result.rotation = activation(function, limit, speed) * (PI / 3); // 120° in both directions
|
||||
return result;
|
||||
}
|
||||
|
||||
void CModeTilt::warp(Vector2D old, Vector2D pos) {
|
||||
auto delta = pos - old;
|
||||
|
||||
for (auto& sample : samples)
|
||||
sample += delta;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ class CModeTilt : public IMode {
|
|||
public:
|
||||
virtual EModeUpdate strategy();
|
||||
virtual SModeResult update(Vector2D pos);
|
||||
virtual void warp(Vector2D old, Vector2D pos);
|
||||
|
||||
private:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue