| /* |
| * Copyright 2022 Rive |
| */ |
| |
| #ifndef _RIVE_HITTEST_COMMAND_PATH_HPP_ |
| #define _RIVE_HITTEST_COMMAND_PATH_HPP_ |
| |
| #include "rive/command_path.hpp" |
| #include "rive/math/hit_test.hpp" |
| |
| namespace rive { |
| class HitTester; |
| |
| class HitTestCommandPath : public CommandPath { |
| HitTester m_Tester; |
| Mat2D m_Xform; |
| IAABB m_Area; |
| FillRule m_FillRule = FillRule::nonZero; |
| |
| public: |
| HitTestCommandPath(const IAABB& area); |
| |
| // can call this between calls to move/line/etc. |
| void setXform(const Mat2D& xform) { m_Xform = xform; } |
| |
| bool wasHit(); |
| |
| // These 4 are not a good for the hit-tester |
| void reset() override; |
| void fillRule(FillRule value) override; |
| void addPath(CommandPath* path, const Mat2D& transform) override; |
| RenderPath* renderPath() override; |
| |
| void moveTo(float x, float y) override; |
| void lineTo(float x, float y) override; |
| void cubicTo(float ox, float oy, float ix, float iy, float x, float y) override; |
| void close() override; |
| }; |
| } // namespace rive |
| #endif |