diff options
Diffstat (limited to 'src/layout/algorithm/FloatingAlgorithm.hpp')
| -rw-r--r-- | src/layout/algorithm/FloatingAlgorithm.hpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/layout/algorithm/FloatingAlgorithm.hpp b/src/layout/algorithm/FloatingAlgorithm.hpp new file mode 100644 index 00000000..2c9ff14b --- /dev/null +++ b/src/layout/algorithm/FloatingAlgorithm.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include "../../helpers/math/Math.hpp" +#include "../../helpers/memory/Memory.hpp" + +#include "ModeAlgorithm.hpp" + +namespace Layout { + + class ITarget; + class CAlgorithm; + + class IFloatingAlgorithm : public IModeAlgorithm { + public: + virtual ~IFloatingAlgorithm() = default; + + // a target is being moved by a delta + virtual void moveTarget(const Vector2D& Δ, SP<ITarget> target) = 0; + + virtual void recenter(SP<ITarget> t); + + virtual void recalculate(); + + protected: + IFloatingAlgorithm() = default; + + WP<CAlgorithm> m_parent; + + friend class Layout::CAlgorithm; + }; +}
\ No newline at end of file |
